@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800;900&display=swap');
:root{--blue:#2563eb;--blue-dark:#0b1f4d;--navy:#07152f;--text:#0b1f4d;--muted:#405375;--line:#d9e8ff;--surface:#f6f9ff;--white:#fff;--lime:#ff9f1c;--pink:#ff6b2c;--orange:#ff9f1c;--cyan:#16c7e8;--green:#24b45a;--shadow:0 16px 42px rgba(11,31,77,.13);--radius:20px}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Be Vietnam Pro","Segoe UI",Arial,system-ui,sans-serif;color:var(--text);background:#fff;overflow-x:hidden}
button,input,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.promo-bar{min-height:34px;background:linear-gradient(90deg,#004adf,#1677ff,#004adf);color:#fff;display:flex;align-items:center;justify-content:center;gap:18px;font-size:12px;padding:6px 48px;position:relative}
.promo-bar a{background:#ff3b76;padding:5px 13px;border-radius:6px;text-transform:uppercase;font-size:10px;font-weight:800}
.promo-close{position:absolute;right:20px;background:none;border:0;color:#fff;font-size:20px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.91);backdrop-filter:blur(18px);border-bottom:1px solid rgba(210,221,238,.8)}
.nav-wrap{height:78px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:13px;line-height:1.15;letter-spacing:.03em}
.brand b{font-size:16px}
.brand-mark{width:38px;height:42px;color:var(--blue);display:grid;place-items:center}
.brand-mark svg{width:100%;fill:currentColor}
.desktop-nav{display:flex;align-items:center;gap:42px}
.desktop-nav a{font-weight:600;font-size:14px;display:flex;align-items:center;gap:9px;position:relative}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-12px;height:3px;border-radius:9px;background:var(--blue);transform:scaleX(0);transition:.25s}
.desktop-nav a:hover::after{transform:scaleX(1)}
[data-icon] svg{width:20px;height:20px;display:block}
.nav-actions{display:flex;align-items:center;gap:9px}
.icon-btn{width:42px;height:42px;border:0;background:transparent;border-radius:12px;color:var(--text);display:grid;place-items:center;position:relative}
.icon-btn:hover{background:#edf4ff;color:var(--blue)}
.saved-count{position:absolute;right:1px;top:1px;min-width:17px;height:17px;background:var(--pink);color:#fff;border-radius:10px;font-size:9px;font-style:normal;display:grid;place-items:center;border:2px solid #fff}
.btn{border:0;border-radius:12px;padding:13px 20px;font-weight:700;transition:.22s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-primary{background:linear-gradient(135deg,#0878ff,#064fd4);color:#fff;box-shadow:0 8px 18px rgba(6,91,229,.25)}
.btn:hover{transform:translateY(-2px);filter:saturate(1.1)}
.menu-toggle{display:none}
.mobile-nav{display:none}
.hero{position:relative;padding:48px 0 32px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;align-items:center;min-height:520px}
.hero-copy{position:relative;z-index:3}
.eyebrow,.kicker{font-size:12px;font-weight:800;color:var(--blue);text-transform:uppercase;letter-spacing:.09em}
.eyebrow{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#edf5ff}
.hero h1{font-size:clamp(44px,5.25vw,72px);line-height:.98;letter-spacing:-.055em;text-transform:uppercase;margin:20px 0 16px;font-weight:900;color:#082454}
.hero h1 span{color:var(--blue);position:relative}
.hero h1 span::after{content:"";position:absolute;height:10px;background:var(--lime);left:0;right:4px;bottom:2px;z-index:-1;transform:rotate(-1deg);border-radius:50%}
.hero-copy>p{font-size:15px;line-height:1.75;color:var(--muted);max-width:560px}
.hero-search{height:58px;display:flex;align-items:center;border:2px solid #bbd4ff;border-radius:15px;padding-left:18px;box-shadow:0 12px 28px rgba(9,87,213,.11);background:#fff;max-width:610px;margin:24px 0 12px;transition:.2s}
.hero-search:focus-within{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 15px 32px rgba(9,87,213,.2)}
.hero-search>span{color:#95a5bf}
.hero-search input{border:0;outline:0;flex:1;height:100%;min-width:0;padding:0 12px;color:var(--text)}
.hero-search button{height:48px;width:54px;margin-right:4px;border:0;border-radius:11px;background:var(--blue);color:#fff;display:grid;place-items:center}
.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:610px}
.filter-row label{height:48px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:#fff;box-shadow:0 6px 14px rgba(29,58,103,.06)}
.filter-row label>span{color:var(--blue)}
.filter-row select{border:0;outline:0;width:100%;color:#334768;background:transparent}
.trending{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:14px;font-size:10px;color:var(--muted)}
.trending button{border:1px solid var(--line);border-radius:99px;background:#fff;padding:5px 9px;font-size:10px;color:#61708a}
.trending button:hover{border-color:var(--blue);color:var(--blue)}
.stats{display:flex;align-items:center;margin-top:20px;border:1px solid var(--line);border-radius:14px;width:max-content;max-width:100%;background:#fff;box-shadow:0 8px 22px rgba(35,61,101,.07)}
.stats>div{min-width:128px;padding:12px 16px;display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:center}
.stats>div+div{border-left:1px solid var(--line)}
.stat-icon{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center}
.stat-icon.blue{color:var(--blue);background:#edf5ff}
.stat-icon.green{color:var(--green);background:#ebfbef}
.stat-icon.pink{color:var(--pink);background:#fff0f6}
.stats strong{font-size:20px;line-height:1}
.stats small{font-size:10px;color:var(--muted)}
.hero-visual{position:relative;height:540px;display:flex;align-items:center;justify-content:flex-end}
.hero-visual::before{content:"";position:absolute;width:430px;height:430px;border-radius:50%;background:linear-gradient(145deg,#e9f4ff,#f7fbff);right:-20px;top:48px;box-shadow:inset 0 0 0 1px #e7effb}
.hero-visual img{width:108%;max-width:650px;position:relative;z-index:1;mix-blend-mode:multiply;filter:drop-shadow(0 20px 25px rgba(22,44,79,.12))}
.hero-badge{position:absolute;z-index:4;left:20px;bottom:48px;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border:1px solid #e2e8f2;border-radius:16px;padding:12px 16px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow);animation:float 4s ease-in-out infinite}
.hero-badge>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:#fff}
.hero-badge b,.hero-badge small{display:block}
.hero-badge small{color:var(--muted);font-size:10px;margin-top:2px}
.floating-note{position:absolute;z-index:3;top:45px;right:6px;background:#fff;border:1px solid #dfe7f3;border-radius:50%;width:70px;height:70px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--pink);font:900 25px/1 cursive;transform:rotate(8deg);box-shadow:var(--shadow)}
.floating-note small{font:600 8px/1.5 "Be Vietnam Pro";text-transform:uppercase;color:var(--muted)}
.hero-blob{position:absolute;border-radius:50%;filter:blur(1px);opacity:.7}
.hero-blob-one{width:230px;height:230px;background:#eef8c5;left:-130px;top:260px}
.hero-blob-two{width:180px;height:180px;background:#e6f0ff;right:-110px;top:70px}
.section{padding:48px 0}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px;gap:16px}
.section-heading h2{margin:7px 0 0;font-size:28px;line-height:1.2;letter-spacing:-.035em;text-transform:uppercase;color:#0a439f}
.section-heading>a{font-size:13px;color:var(--blue);font-weight:700;display:flex;align-items:center;gap:6px}
.section-heading>a [data-icon] svg{width:16px}
.categories{padding-top:20px}
.category-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.category-card{height:260px;border-radius:16px;overflow:hidden;position:relative;color:#fff;padding:18px;border:0;isolation:isolate;cursor:pointer;transition:.3s;box-shadow:0 8px 20px rgba(21,53,95,.12)}
.category-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 55%);z-index:-1}
.category-card:hover{transform:translateY(-8px);box-shadow:0 18px 34px rgba(20,50,93,.2)}
.category-card div{position:relative;z-index:2}
.category-card span{font-size:11px}
.category-card h3{font-size:21px;margin:5px 0 0;line-height:1.1}
.category-card img{position:absolute;width:100%;height:73%;bottom:0;left:0;object-fit:cover;object-position:bottom;mix-blend-mode:multiply}
.category-card button{position:absolute;z-index:4;left:14px;bottom:14px;width:34px;height:34px;border:0;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;transition:.25s}
.category-card:hover button{transform:translateX(6px)}
.category-card button svg{width:16px}
.cat-blue{background:#0877e8}
.cat-lime{background:#84d406}
.cat-orange{background:#ff9c08}
.cat-pink{background:#ff3c7b}
.cat-purple{background:#685bd7}
.documents{background:linear-gradient(180deg,#f7faff,#fff)}
.doc-tabs{display:flex;gap:6px;background:#eaf0f8;padding:4px;border-radius:12px;flex-wrap:wrap}
.doc-tabs button{border:0;background:transparent;color:#65748f;padding:8px 12px;border-radius:9px;font-size:11px;font-weight:700}
.doc-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 4px 11px rgba(29,58,103,.09)}
.document-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.doc-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;transition:.25s;min-width:0;display:flex;flex-direction:column}
.doc-card:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:#c5d8f5}
.doc-cover{height:205px;background:#f3f6fb;position:relative;overflow:hidden}
.doc-cover img{width:100%;height:100%;object-fit:cover;transition:.35s}
.doc-card:hover .doc-cover img{transform:scale(1.04)}
.file-type{position:absolute;top:9px;left:9px;padding:4px 6px;border-radius:5px;color:#fff;font-size:8px;font-weight:800;z-index:2}
.file-type.pdf{background:#ef3b58}
.file-type.doc{background:#2370db}
.file-type.ppt{background:#f28b1a}
.file-type.xls{background:#16a45c}
.save-btn{position:absolute;right:9px;top:9px;width:31px;height:31px;border:0;border-radius:9px;background:rgba(255,255,255,.92);color:#264367;display:grid;place-items:center;box-shadow:0 4px 12px rgba(13,37,72,.12)}
.save-btn svg{width:16px}
.save-btn.active{background:var(--blue);color:#fff}
.doc-info{padding:12px;display:flex;flex-direction:column;flex:1}
.doc-school{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-info h3{font-size:12px;line-height:1.45;margin:5px 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:35px}
.doc-meta{display:flex;justify-content:space-between;color:#718098;font-size:9px;margin-top:auto}
.doc-meta span{display:flex;align-items:center;gap:4px}
.doc-meta svg{width:13px}
.preview-btn{width:100%;border:0;border-top:1px solid var(--line);background:#fff;color:var(--blue);font-size:10px;font-weight:800;padding:10px}
.preview-btn:hover{background:#edf5ff}
.empty-state{display:none;text-align:center;padding:60px 0}
.empty-state>span{color:#99aac2;display:inline-block}
.empty-state>span svg{width:44px;height:44px}
.empty-state h3{margin:12px 0 5px}
.empty-state p{color:var(--muted);font-size:13px}
.campaign{padding:22px 0}
.campaign .container{position:relative}
.campaign img{width:100%;display:block;border-radius:18px;box-shadow:0 12px 28px rgba(7,34,76,.16)}
.campaign-hotspot{position:absolute;right:12%;bottom:17%;width:22%;height:30%;border-radius:12px}
.school-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.school-list button{height:82px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left;transition:.2s}
.school-list button:hover,.school-list button.active{border-color:var(--blue);box-shadow:0 10px 22px rgba(5,90,220,.12);transform:translateY(-3px)}
.school-logo{width:49px;height:49px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;background:#edf5ff;border:2px solid currentColor;flex:0 0 auto}
.neu{color:#1973d7}
.hust{color:#d88300}
.ftu{color:#cd333d}
.vnu{color:#309158}
.ueh{color:#0e9fb2}
.school-list b,.school-list small{display:block}
.school-list b{font-size:12px}
.school-list small{font-size:9px;color:var(--muted);line-height:1.4;margin-top:4px}
.live-pill{font-size:10px;color:#47607e;background:#eef3f8;padding:7px 10px;border-radius:99px}
.live-pill i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#25bd64;margin-right:5px;box-shadow:0 0 0 4px rgba(37,189,100,.12)}
.test-panel{border:1px solid var(--line);border-radius:18px;background:#fff;display:grid;grid-template-columns:200px 1.4fr 1fr 190px;gap:14px;padding:12px;box-shadow:0 12px 30px rgba(20,53,98,.07)}
.test-intro{background:linear-gradient(150deg,#075ee5,#0045ba);border-radius:14px;color:#fff;padding:18px;position:relative;overflow:hidden}
.test-intro::before{content:"";position:absolute;width:110px;height:110px;border:22px solid rgba(255,255,255,.08);border-radius:50%;right:-50px;top:35px}
.test-label{font-size:9px;text-transform:uppercase;background:rgba(255,255,255,.15);padding:5px 8px;border-radius:99px}
.test-intro h3{font-size:22px;margin:11px 0 5px}
.test-intro p{font-size:10px;opacity:.8}
.test-illustration{display:flex;justify-content:center;padding:16px 0}
.test-illustration span{display:grid;place-items:center;width:70px;height:70px;border-radius:20px;background:rgba(255,255,255,.14);transform:rotate(-4deg)}
.test-illustration svg{width:44px;height:44px}
.btn-light{background:#fff;color:var(--blue);font-size:10px;width:100%;padding:11px}
.test-progress,.score-card,.test-types{padding:14px}
.progress-head{display:flex;justify-content:space-between;font-size:11px}
.progress-head strong{font-size:10px}
.progress-track{height:7px;border-radius:99px;background:#e8edf5;margin:10px 0 17px;overflow:hidden}
.progress-track i{display:block;height:100%;width:56%;background:linear-gradient(90deg,var(--blue),#2993ff);border-radius:inherit;transition:.4s}
.muted{font-size:10px;color:var(--muted)}
.question-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.question-grid button{aspect-ratio:1;border:0;border-radius:5px;background:#edf0f4;font-size:8px;color:#5b687c}
.question-grid button.done{background:#25b25b;color:#fff}
.question-grid button.current{background:#ff9f0a;color:#fff;box-shadow:0 0 0 3px #fff4df}
.question-grid button:hover{transform:scale(1.08)}
.score-card{border-left:1px solid var(--line);border-right:1px solid var(--line)}
.score-card>span,.test-types>span{font-size:11px;font-weight:700}
.score-ring{margin:14px auto;width:110px;height:110px;border-radius:50%;background:conic-gradient(#25b25b 0 64%,#ef4655 64% 78%,#e5e8ed 78%);position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column}
.score-ring::before{content:"";position:absolute;inset:13px;background:#fff;border-radius:50%}
.score-ring strong,.score-ring small{position:relative}
.score-ring strong{font-size:27px}
.score-ring small{font-size:9px;color:var(--muted)}
.score-legend{display:grid;gap:5px;font-size:9px;color:var(--muted)}
.dot{width:7px;height:7px;border-radius:2px;display:inline-block;margin-right:5px}
.dot.green{background:#25b25b}
.dot.red{background:#ef4655}
.dot.gray{background:#d4d8df}
.score-card>p{font-size:10px;margin-top:14px}
.test-types{background:#edf5ff;border-radius:13px}
.test-types>button{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;width:100%;border:1px solid #dce6f3;border-radius:12px;background:#fff;text-align:left;margin-top:12px;padding:11px;color:var(--blue)}
.test-types>button b{font-size:9px;color:var(--text)}
.test-types>button small{font-weight:500;color:var(--muted)}
.test-types>button i{font-style:normal;background:var(--blue);color:#fff;border-radius:50%;width:26px;height:26px;display:grid;place-items:center}
.test-types>button i svg{width:14px}
.tools-contribute{padding-bottom:70px}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tool-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px;display:flex;align-items:center;gap:13px;text-align:left;transition:.25s}
.tool-card:hover{transform:translateY(-4px);border-color:#bed5f8;box-shadow:0 10px 25px rgba(15,51,101,.1)}
.tool-emoji{font-size:38px}
.tool-card b,.tool-card small,.tool-card em{display:block}
.tool-card b{font-size:12px}
.tool-card small{font-size:9px;color:var(--muted);line-height:1.45;margin:3px 0 7px}
.tool-card em{font-size:9px;color:var(--blue);font-style:normal;font-weight:800}
.tool-card em i{display:inline-block}
.tool-card em svg{width:12px;height:12px}
.mini-list{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.mini-list>div{display:flex;align-items:center;gap:9px;padding:10px}
.mini-list>div+div{border-top:1px solid var(--line)}
.mini-list .file-type{position:static;flex:0 0 auto}
.mini-list p{margin:0;min-width:0;flex:1}
.mini-list b,.mini-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-list b{font-size:9px}
.mini-list small{font-size:8px;color:var(--muted);margin-top:3px}
.mini-list button{border:0;background:transparent;color:var(--blue)}
.contribute-card{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;min-height:470px;background:#f6f1df}
.contribute-card img{width:100%;height:100%;object-fit:cover}
.contribute-overlay{position:absolute;left:8%;top:auto;bottom:8%;background:rgba(255,255,255,.91);backdrop-filter:blur(9px);padding:22px;border-radius:16px;box-shadow:var(--shadow);max-width:270px}
.contribute-overlay h2{margin:0;color:var(--blue-dark);font-size:25px}
.contribute-overlay p{font-size:11px;color:var(--muted);line-height:1.5}
.contribute-overlay .btn{font-size:11px}
.footer{background:#061c3c;color:#fff;padding:42px 0 18px}
.footer-grid{display:grid;grid-template-columns:1.2fr .7fr .7fr 1.2fr;gap:50px}
.brand-light{color:#fff}
.brand-light .brand-mark{color:#fff}
.footer p,.footer a,.footer small{font-size:10px;color:#aebcd0;line-height:1.7}
.footer h4{font-size:11px;margin:5px 0 12px}
.footer-grid>div>a:not(.brand){display:block;margin:5px 0}
.footer form{display:flex;background:rgba(255,255,255,.11);padding:5px;border-radius:10px}
.footer input{border:0;outline:0;background:transparent;color:#fff;padding:8px;min-width:0;flex:1;font-size:10px}
.footer form button{border:0;border-radius:7px;background:var(--blue);color:#fff;padding:8px 14px;font-size:9px;font-weight:800}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:16px;color:#7f91aa;font-size:9px}
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(2,17,41,.64);backdrop-filter:blur(6px)}
.modal-panel{position:relative;background:#fff;width:min(700px,100%);max-height:90vh;overflow:auto;border-radius:22px;box-shadow:0 28px 90px rgba(0,14,40,.35);animation:modalIn .25s ease}
.modal-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border:0;background:#edf2f8;color:#41516c;border-radius:50%;font-size:22px;z-index:3}
.preview-layout{display:grid;grid-template-columns:260px 1fr}
.preview-layout img{width:100%;height:390px;object-fit:cover}
.preview-copy{padding:38px 30px}
.preview-copy .file-type{position:static;display:inline-block}
.preview-copy h2{font-size:25px;line-height:1.3;margin:12px 0}
.preview-copy p{font-size:12px;color:var(--muted);line-height:1.7}
.preview-details{display:flex;gap:20px;margin:20px 0;color:#536682;font-size:11px}
.preview-actions{display:flex;gap:8px;flex-wrap:wrap}
.preview-actions button{flex:1}
.login-panel{width:min(430px,100%);padding:38px;text-align:center}
.login-icon{width:66px;height:66px;border-radius:18px;background:#edf5ff;color:var(--blue);display:grid;place-items:center;margin:auto}
.login-icon svg{width:34px;height:34px}
.login-panel h2{margin:15px 0 5px}
.login-panel>p{font-size:11px;color:var(--muted)}
.login-panel form{display:grid;gap:13px;text-align:left;margin-top:25px}
.login-panel label{font-size:10px;font-weight:700}
.login-panel input{display:block;width:100%;border:1px solid var(--line);border-radius:11px;padding:13px;margin-top:6px;outline:0}
.login-panel input:focus{border-color:var(--blue)}
.toast{position:fixed;z-index:120;right:25px;bottom:25px;background:#08254d;color:#fff;border-radius:13px;padding:13px 17px;display:flex;align-items:center;gap:8px;font-size:11px;box-shadow:var(--shadow);transform:translateY(100px);opacity:0;transition:.3s}
.toast.show{transform:translateY(0);opacity:1}
.toast>span:first-child{color:var(--lime)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:none}
.delay-1{transition-delay:.08s}
.delay-2{transition-delay:.16s}
.delay-3{transition-delay:.24s}
.delay-4{transition-delay:.32s}
@keyframes float{50%{transform:translateY(-10px) rotate(1deg)}
}
@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.98)}
}

@media(max-width:1050px){.desktop-nav{gap:20px}
.hero-grid{grid-template-columns:1fr 1fr}
.hero h1{font-size:50px}
.category-grid{grid-template-columns:repeat(5,210px);overflow:auto;padding:0 0 16px;scroll-snap-type:x mandatory}
.category-card{scroll-snap-align:start}
.document-grid{grid-template-columns:repeat(3,1fr)}
.test-panel{grid-template-columns:190px 1.3fr 1fr}
.test-types{grid-column:1/-1;display:flex;align-items:center;gap:10px}
.test-types>button{margin:0}
.split-grid{grid-template-columns:1fr}
.contribute-card{min-height:450px}
.school-list{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:780px){.container{width:min(100% - 28px,1180px)}
.promo-bar{justify-content:flex-start;font-size:9px;padding-left:14px}
.promo-bar a{display:none}
.nav-wrap{height:66px}
.desktop-nav,.nav-actions>.open-search{display:none}
.menu-toggle{display:grid}
.mobile-nav{display:none;padding:10px 14px 16px;grid-template-columns:repeat(2,1fr);gap:8px}
.mobile-nav.open{display:grid}
.mobile-nav a{background:#f0f5fc;padding:11px;border-radius:10px;font-size:11px;font-weight:700}
.hero{padding-top:22px}
.hero-grid{display:block}
.hero-copy{text-align:center}
.hero-copy>p{font-size:13px}
.hero h1{font-size:42px}
.hero-search,.filter-row{margin-left:auto;margin-right:auto}
.filter-row{grid-template-columns:1fr}
.trending{justify-content:center}
.stats{margin-inline:auto}
.hero-visual{height:390px;margin-top:8px}
.hero-visual img{max-width:500px;width:100%;margin:auto}
.hero-visual::before{width:330px;height:330px;right:calc(50% - 165px)}
.hero-badge{left:12%;bottom:20px}
.floating-note{right:8%;top:35px}
.section{padding:35px 0}
.section-heading{align-items:flex-start}
.section-heading h2{font-size:23px}
.document-grid{grid-template-columns:repeat(2,1fr)}
.doc-cover{height:240px}
.campaign .container{width:100%}
.campaign img{border-radius:0;min-height:125px;object-fit:cover}
.school-list{grid-template-columns:1fr 1fr}
.test-panel{grid-template-columns:1fr}
.test-intro{display:grid;grid-template-columns:1fr auto;align-items:center}
.test-intro .test-label,.test-intro p,.test-intro .btn{grid-column:1}
.test-intro h3{grid-column:1}
.test-illustration{grid-column:2;grid-row:1/5}
.score-card{border:0;border-top:1px solid var(--line)}
.test-types{grid-column:auto;display:block}
.test-types>button{margin-top:10px}
.split-grid{gap:35px}
.footer-grid{grid-template-columns:1fr 1fr}
.preview-layout{grid-template-columns:1fr}
.preview-layout img{height:300px;object-fit:contain;background:#f1f4f8}
.preview-copy{padding:24px}
.modal-panel{max-height:94vh}
}

@media(max-width:520px){.brand{font-size:10px}
.brand b{font-size:13px}
.brand-mark{width:31px}
.login-btn{padding:10px 13px;font-size:10px}
.icon-btn{width:36px;height:36px}
.hero h1{font-size:35px}
.eyebrow{font-size:9px}
.hero-copy>p{font-size:11px}
.hero-search{height:52px}
.stats{width:100%;justify-content:center}
.stats>div{min-width:0;flex:1;padding:10px 5px;column-gap:5px}
.stat-icon{width:30px;height:30px}
.stats strong{font-size:14px}
.stats small{font-size:8px}
.hero-visual{height:320px}
.hero-badge{left:4%;bottom:10px;padding:8px 10px}
.floating-note{width:55px;height:55px;font-size:19px}
.section-heading{display:block}
.section-heading .doc-tabs{margin-top:14px}
.category-grid{grid-template-columns:repeat(5,180px)}
.category-card{height:230px}
.document-grid{gap:9px}
.doc-cover{height:190px}
.doc-info{padding:9px}
.doc-info h3{font-size:10px}
.school-list{grid-template-columns:1fr}
.question-grid{grid-template-columns:repeat(10,1fr)}
.tools-grid{grid-template-columns:1fr}
.contribute-card{min-height:390px}
.contribute-overlay{left:5%;right:auto;top:auto;bottom:5%;max-width:none}
.footer-grid{grid-template-columns:1fr;gap:24px}
.footer-bottom{display:block}
.preview-copy h2{font-size:20px}
.toast{left:14px;right:14px;bottom:14px}
.login-panel{padding:30px 20px}
}


/* University carousel */
.universities{overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}
.school-heading{align-items:center;margin-bottom:18px}
.school-heading p{margin:8px 0 0;color:var(--muted);font-size:12px}
.school-heading-actions,.school-controls{display:flex;align-items:center;gap:9px}
.school-region{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #d9e7fb;border-radius:999px;background:#f3f8ff;color:#32629d;font-size:10px;font-weight:700}
.school-region span{color:#22b65e;font-size:9px}
.school-nav{width:40px;height:40px;border:1px solid #d6e2f3;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;box-shadow:0 7px 18px rgba(13,61,128,.08);transition:.2s}
.school-nav:hover{color:#fff;background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}
.school-nav span svg{width:17px;height:17px}
.school-prev span{transform:rotate(180deg)}
.school-carousel{position:relative}
.school-carousel::before,.school-carousel::after{content:"";position:absolute;z-index:2;top:0;bottom:34px;width:42px;pointer-events:none}
.school-carousel::before{left:-1px;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.school-carousel::after{right:-1px;background:linear-gradient(270deg,#f8fbff,rgba(248,251,255,0))}
.school-track{display:flex;gap:14px;overflow-x:auto;padding:8px 4px 22px;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;cursor:grab;touch-action:pan-y;overscroll-behavior-inline:contain}
.school-track::-webkit-scrollbar{display:none}
.school-track.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.school-track>button{position:relative;flex:0 0 275px;height:104px;border:1px solid #dce6f3;border-radius:18px;background:rgba(255,255,255,.94);padding:13px 15px;display:flex;align-items:center;gap:13px;text-align:left;scroll-snap-align:start;overflow:hidden;box-shadow:0 8px 24px rgba(27,67,122,.06);transition:border-color .24s,box-shadow .24s,transform .24s}
.school-track>button::after{content:"";position:absolute;inset:auto -22px -38px auto;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,rgba(8,105,240,.11),transparent 68%);transition:.24s}
.school-track>button:hover,.school-track>button.active{border-color:#1680ff;box-shadow:0 14px 30px rgba(7,95,222,.14);transform:translateY(-4px)}
.school-track>button.active{background:linear-gradient(135deg,#fff,#f0f7ff)}
.school-logo{width:66px;height:66px;border:0;border-radius:15px;background:#fff;box-shadow:inset 0 0 0 1px #e6edf7;display:grid;place-items:center;padding:7px;flex:0 0 auto;color:inherit}
.school-logo img{display:block;width:100%;height:100%;object-fit:contain}
.school-info{min-width:0;position:relative;z-index:1}
.school-info b,.school-info small,.school-info em{display:block}
.school-info b{font-size:14px;color:#082958;letter-spacing:.02em}
.school-info small{font-size:10px;color:#526987;line-height:1.35;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.school-info em{font-size:8px;color:#0874e8;font-style:normal;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.school-carousel-footer{display:flex;align-items:center;gap:12px;color:#708199;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.school-progress{height:3px;background:#dce7f5;border-radius:99px;flex:1;overflow:hidden}
.school-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#086ef1,#41a6ff);border-radius:inherit;transform:scaleX(.08);transform-origin:left;transition:transform .2s ease}
.school-carousel-footer span:last-child{color:#0a55c5;min-width:43px;text-align:right;font-variant-numeric:tabular-nums}

@media(max-width:780px){.school-heading{display:flex}
.school-heading p{max-width:360px}
.school-region{display:none}
.school-carousel::before,.school-carousel::after{width:22px}
.school-track>button{flex-basis:250px}
.school-controls{flex:0 0 auto}
}

@media(max-width:520px){.school-heading{display:flex;align-items:flex-end}
.school-heading p{font-size:10px;line-height:1.45}
.school-nav{width:36px;height:36px}
.school-track{margin-right:-14px;padding-right:14px;touch-action:pan-x pan-y}
.school-track>button{flex-basis:82vw;height:98px}
.school-logo{width:61px;height:61px}
.school-carousel::after{right:-14px}
.school-carousel-footer{margin-top:2px}
}

@media(prefers-reduced-motion:reduce){.school-track{scroll-behavior:auto}
.school-track>button,.school-nav,.school-progress i{transition:none}
}


/* Auto slideshow: no scrollbar/progress UI */
.school-carousel::before,.school-carousel::after{bottom:0}
.school-track{overflow:hidden;padding-bottom:16px;scroll-snap-type:none;scrollbar-width:none;cursor:default;touch-action:auto;overscroll-behavior:auto}
.school-track::-webkit-scrollbar{display:none}
.school-carousel-footer{display:none}


/* Typography from Quick Explore downward */
@font-face{font-family:"Be Vietnam Pro";src:url("assets/fonts/be-vietnam-pro-400.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}

@font-face{font-family:"Be Vietnam Pro";src:url("assets/fonts/be-vietnam-pro-600.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}

@font-face{font-family:"Be Vietnam Pro";src:url("assets/fonts/be-vietnam-pro-900.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap}

.categories,.categories~section,.footer{font-family:"Be Vietnam Pro","Segoe UI",Arial,sans-serif}

.categories .kicker,.categories~section .kicker{font-size:14px;font-weight:900;letter-spacing:.1em}

.categories .section-heading h2,.categories~section .section-heading h2{font-size:32px;font-weight:900;letter-spacing:-.045em}

.categories .section-heading>a,.categories~section .section-heading>a{font-size:14px;font-weight:900}

.category-card div>span{font-size:12px;font-weight:600}
.category-card h3{font-size:26px;line-height:1.12}

.doc-tabs button{font-size:12px;font-weight:600}
.doc-school{font-size:11px}
.doc-info h3{font-size:14px;font-weight:600;line-height:1.5;min-height:42px}
.doc-meta{font-size:11px}
.preview-btn{font-size:12px;padding:12px}

.school-heading p{font-size:14px;line-height:1.6}
.school-region{font-size:11px}
.school-info b{font-size:16px;font-weight:900}
.school-info small{font-size:12px;line-height:1.45}
.school-info em{font-size:10px}

.live-pill{font-size:12px}
.test-label{font-size:11px;font-weight:600}
.test-intro h3{font-size:24px;font-weight:900}
.test-intro p{font-size:12px}
.btn-light{font-size:12px}
.progress-head{font-size:13px}
.progress-head strong{font-size:12px}
.muted{font-size:12px}
.question-grid button{font-size:10px;font-weight:600}
.score-card>span,.test-types>span{font-size:13px;font-weight:900}
.score-ring small{font-size:11px}
.score-legend{font-size:11px}
.score-card>p{font-size:12px}
.test-types>button b{font-size:11px}
.test-types>button small{font-size:10px}

.tool-card b{font-size:14px;font-weight:900}
.tool-card small{font-size:11px;line-height:1.55}
.tool-card em{font-size:11px}
.mini-list b{font-size:11px}
.mini-list small{font-size:10px}
.contribute-overlay h2{font-size:28px;font-weight:900}
.contribute-overlay p{font-size:13px;line-height:1.65}
.contribute-overlay .btn{font-size:13px}

.footer p,.footer a,.footer small{font-size:12px;line-height:1.7}
.footer h4{font-size:14px;font-weight:900}
.footer input{font-size:12px}
.footer form button{font-size:11px}
.footer-bottom{font-size:11px}

@media(max-width:780px){.categories .section-heading h2,.categories~section .section-heading h2{font-size:27px}
.category-card h3{font-size:24px}
.school-heading p{font-size:12px}
.footer p,.footer a,.footer small{font-size:11px}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}
.reveal{opacity:1;transform:none}
}


/* Quick explore cards: full-bleed image, readable title, no button overlap */
.category-card{height:290px;padding:0;border:1px solid rgba(255,255,255,.55);box-shadow:0 14px 30px rgba(18,47,91,.16)}

.category-card::after{z-index:1;background:linear-gradient(180deg,rgba(4,20,51,.8) 0%,rgba(4,20,51,.46) 30%,rgba(4,20,51,.04) 62%,rgba(4,20,51,.28) 100%)}

.category-card div{position:static}

.category-card div>span{position:absolute;z-index:3;top:17px;left:17px;display:inline-flex;align-items:center;padding:6px 9px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(3,24,59,.36);backdrop-filter:blur(7px);color:#fff;font-size:10px;font-weight:700;line-height:1;box-shadow:0 4px 12px rgba(1,15,38,.12)}

.category-card h3{position:absolute;z-index:3;top:55px;left:17px;right:17px;margin:0;color:#fff;font-size:24px;font-weight:900;line-height:1.08;letter-spacing:-.035em;text-shadow:0 2px 5px rgba(0,15,42,.8),0 8px 22px rgba(0,15,42,.35)}

.category-card img{z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;mix-blend-mode:normal;filter:saturate(1.08) contrast(1.05);transition:transform .45s ease,filter .45s ease}

.category-card button{display:none}

.category-card:hover img{transform:scale(1.055);filter:saturate(1.15) contrast(1.06)}

.category-card:hover{transform:translateY(-8px);box-shadow:0 20px 42px rgba(18,47,91,.23)}


@media(max-width:520px){.category-card{height:250px}
.category-card h3{font-size:21px;top:52px}
.category-card div>span{top:15px;left:15px}
.category-card h3{left:15px;right:15px}
}


/* Full MVC application */
body{font-family:"Be Vietnam Pro","Segoe UI",Arial,sans-serif}
.user-menu{position:relative}
.user-menu-button{background:#edf5ff;color:var(--blue);max-width:150px;overflow:hidden;text-overflow:ellipsis}
.user-menu>div{display:none;position:absolute;right:0;top:calc(100% + 10px);width:230px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.user-menu.open>div{display:grid}
.user-menu>div span{padding:8px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis}
.user-menu>div a,.user-menu>div button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:8px;font-weight:700;color:var(--text)}
.user-menu>div a:hover,.user-menu>div button:hover{background:#edf5ff;color:var(--blue)}
.server-flash{position:fixed;z-index:90;top:100px;right:20px;padding:13px 18px;border-radius:12px;background:#e8faef;color:#117439;box-shadow:var(--shadow)}

.trending a{border:1px solid var(--line);border-radius:99px;background:#fff;padding:5px 9px;font-size:10px}
.document-grid{grid-template-columns:repeat(4,1fr)}
.doc-cover{display:block;height:255px}
.doc-card .lock-badge{position:absolute;right:10px;bottom:10px;z-index:2;width:32px;height:32px;border-radius:9px;background:rgba(7,30,66,.85);display:grid;place-items:center}
.card-actions{display:flex;border-top:1px solid var(--line)}
.card-actions .preview-btn{border:0;flex:1}
.save-btn-inline{width:44px;border:0;border-left:1px solid var(--line);background:#fff;color:#59708f;display:grid;place-items:center}
.save-btn-inline.active,.save-detail.active{background:var(--blue);color:#fff}
.empty-state.visible{display:block}
.school-track>a{position:relative;flex:0 0 275px;height:104px;border:1px solid #dce6f3;border-radius:18px;background:rgba(255,255,255,.94);padding:13px 15px;display:flex;align-items:center;gap:13px;text-align:left;overflow:hidden;box-shadow:0 8px 24px rgba(27,67,122,.06);transition:.24s}
.school-track>a:hover{border-color:#1680ff;box-shadow:0 14px 30px rgba(7,95,222,.14);transform:translateY(-4px)}

.upgrade-badge{position:absolute;z-index:3;right:9px;bottom:9px;padding:7px 9px;border-radius:9px;background:rgba(255,151,24,.94);color:#fff;font-size:8px;font-weight:900;box-shadow:0 6px 16px rgba(189,101,0,.25)}
.doc-card.is-upgrading .doc-cover img{filter:saturate(.65)}
.doc-card.is-upgrading .preview-btn{color:#b46500;background:#fff8e9}

.auth-panel,.form-modal{width:min(540px,100%);padding:34px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#eef3f9;padding:4px;border-radius:12px;margin-bottom:24px}
.auth-tabs button{border:0;background:transparent;border-radius:9px;padding:11px;font-weight:800;color:#60708b}
.auth-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 5px 14px rgba(20,55,105,.1)}
.auth-form{display:none;gap:14px}
.auth-form.active{display:grid}
.auth-form h2{margin:0 0 5px}
.auth-form label,.form-modal label{font-size:12px;font-weight:700}
.auth-form input,.form-modal input,.form-modal textarea{display:block;width:100%;border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:6px;outline:0}
.auth-form input:focus,.form-modal input:focus,.form-modal textarea:focus{border-color:var(--blue)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.toast.error{background:#b42334}
.tool-modal-panel{width:min(660px,100%);padding:36px}
.tool-app{text-align:center}
.tool-big-icon{font-size:56px}
.timer-display{font-size:70px;font-weight:900;color:var(--blue);letter-spacing:-.06em;margin:20px}
.timer-actions{display:flex;justify-content:center;gap:10px}
.admin-secondary{background:#edf4ff;color:var(--blue)}
.gpa-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin:9px 0}
.gpa-row input,.schedule-form input,.schedule-form select,.bus-form input{border:1px solid var(--line);border-radius:10px;padding:11px;min-width:0}
.gpa-row button,.schedule-item button{border:0;border-radius:9px;background:#fff0f2;color:#d32842}
.gpa-result{margin-top:20px;padding:18px;border-radius:14px;background:#edf5ff;font-size:18px}
.gpa-result strong{font-size:34px;color:var(--blue)}
.schedule-form,.bus-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px}
.bus-form{grid-template-columns:1fr 1fr auto}
.schedule-item{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;text-align:left;padding:12px;border-bottom:1px solid var(--line)}
.schedule-item span{color:var(--muted);font-size:12px}
.quiz-head{display:flex;justify-content:space-between;align-items:center}
.quiz-options{display:grid;gap:10px;margin-top:22px}
.quiz-options button{border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;padding:14px;font-weight:700}
.quiz-options button:hover{border-color:var(--blue);color:var(--blue);background:#edf5ff}
.quiz-result{text-align:center}
.quiz-result>span{font-size:60px}
.quiz-result>strong{display:block;font-size:65px;color:var(--blue)}
.question-grid button.wrong{background:#e94355;color:#fff}

.page-main{min-height:70vh}
.page-hero{padding:70px 0 45px;background:linear-gradient(145deg,#eef6ff,#fff)}
.page-hero h1{font-size:45px;letter-spacing:-.05em;color:#083d91;margin:8px 0 25px}
.catalog-filter{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:10px}
.catalog-filter input,.catalog-filter select{min-width:0;border:1px solid #cddbef;border-radius:12px;padding:13px;background:#fff;outline:0}
.catalog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.catalog-head h2{font-size:22px}
.catalog-head a{color:var(--blue);font-weight:700}
.catalog-grid{grid-template-columns:repeat(4,1fr)}

.document-header{padding:42px 0;background:linear-gradient(145deg,#f0f6ff,#fff)}
.breadcrumb{display:flex;gap:8px;color:var(--muted);font-size:12px;margin-bottom:24px;white-space:nowrap;overflow:hidden}
.breadcrumb a{color:var(--blue)}
.document-title-grid{display:grid;grid-template-columns:190px 1fr;gap:30px;align-items:center}
.document-title-grid>img{width:190px;height:250px;object-fit:cover;border-radius:17px;box-shadow:var(--shadow)}
.document-title-grid h1{font-size:40px;line-height:1.15;letter-spacing:-.04em;margin:12px 0}
.document-title-grid p{color:var(--muted);line-height:1.7;max-width:780px}
.access-pill{display:inline-flex;padding:7px 10px;border-radius:99px;background:#eaf3ff;color:var(--blue);font-size:11px;font-weight:800}
.document-stats{display:flex;gap:18px;flex-wrap:wrap;color:#536784;font-size:12px;margin:18px 0}
.save-detail{background:#eaf3ff;color:var(--blue)}
.document-list-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:14px;padding-bottom:5px}
.document-list-tabs button{border:1px solid var(--line);background:#fff;padding:11px 15px;border-radius:11px;white-space:nowrap;font-weight:700}
.document-list-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff}
.document-viewer{display:none}
.document-viewer.active{display:block}
.resource-frame{display:block;width:100%;height:min(78vh,820px);border:1px solid var(--line);border-radius:18px;background:#f2f5f9}
.external-resource,.access-gate{text-align:center;border:1px solid var(--line);border-radius:18px;background:#fff;padding:70px 25px}
.external-resource>span,.gate-icon{font-size:60px}
.external-resource p,.access-gate>p{color:var(--muted)}
.task-list{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:25px;text-align:left}
.task-list article{border:1px solid var(--line);border-radius:15px;padding:18px}
.task-list article p{font-size:12px;line-height:1.6;color:var(--muted)}
.task-list article>a{color:var(--blue);font-weight:800;font-size:12px}
.task-list form{display:flex;gap:8px;margin-top:14px}
.task-list input{flex:1;border:1px solid var(--line);border-radius:10px;padding:11px;min-width:0}
.error-page{min-height:70vh;display:grid;place-items:center;text-align:center;padding:40px}
.error-page strong{font-size:100px;color:#d6e5fb}
.error-page p{color:var(--muted)}

.access-pill.upgrading{background:#fff2d8;color:#a45c00}
.document-upgrading{position:relative;overflow:hidden;text-align:center;padding:75px 28px;border:1px solid #f1d39d;border-radius:22px;background:linear-gradient(145deg,#fffaf0,#fff 58%,#f1f7ff);box-shadow:0 16px 42px rgba(67,78,98,.08)}
.document-upgrading:before,.document-upgrading:after{content:"";position:absolute;border-radius:50%;background:#fff0cf;filter:blur(1px)}
.document-upgrading:before{width:180px;height:180px;left:-70px;top:-80px}
.document-upgrading:after{width:240px;height:240px;right:-110px;bottom:-150px}
.upgrading-gears{position:relative;z-index:1;height:90px;display:flex;align-items:center;justify-content:center}
.upgrading-gears span{display:block;color:#ff9b17;text-shadow:0 7px 18px rgba(211,117,0,.2);animation:upgradeSpin 5s linear infinite}
.upgrading-gears span:first-child{font-size:72px}
.upgrading-gears span:last-child{font-size:42px;margin:48px 0 0 -14px;color:#0878ff;animation-direction:reverse;animation-duration:3.8s}
.upgrading-kicker{position:relative;z-index:1;display:inline-block;margin-top:13px;padding:6px 10px;border-radius:99px;background:#fff0d1;color:#a96100;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.document-upgrading h2{position:relative;z-index:1;margin:12px 0 8px;font-size:30px;color:#082454}
.document-upgrading p{position:relative;z-index:1;max-width:600px;margin:0 auto 22px;color:var(--muted);font-size:13px;line-height:1.7}
.document-upgrading .btn{position:relative;z-index:1}
.status.upgrading{background:#fff1d8;color:#a45d00}
@keyframes upgradeSpin{to{transform:rotate(360deg)}
}


/* Admin */
.admin-body{background:#f3f6fb}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#061c3c;color:#fff;padding:25px 18px;z-index:70}
.admin-sidebar .brand{padding:0 12px 25px}
.admin-sidebar nav{display:grid;gap:5px}
.admin-sidebar nav a{padding:12px;border-radius:10px;color:#b8c7dc;font-size:13px;font-weight:700}
.admin-sidebar nav a:hover{background:rgba(255,255,255,.1);color:#fff}
.admin-main{margin-left:245px;min-height:100vh;padding:28px}
.admin-main>header{display:flex;align-items:center;gap:15px;margin-bottom:24px}
.admin-main>header h1{margin:0;font-size:27px}
.admin-main>header p{margin:5px 0 0;color:var(--muted);font-size:12px}
.admin-menu{display:none}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.admin-stats article,.admin-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 7px 22px rgba(30,60,105,.05)}
.admin-stats article{padding:20px;display:flex;align-items:center;gap:15px}
.admin-stats article>span{font-size:30px}
.admin-stats strong,.admin-stats small{display:block}
.admin-stats strong{font-size:28px}
.admin-stats small{color:var(--muted);font-size:11px}
.admin-card{padding:22px;margin-top:18px}
.admin-card h2{font-size:18px;margin:0 0 12px}
.admin-card>p,.admin-section-head p{color:var(--muted);font-size:12px}
.admin-welcome{padding:35px}
.admin-welcome div{display:flex;gap:10px;margin-top:20px}
.admin-toolbar{display:flex;justify-content:space-between;gap:15px;margin-bottom:16px}
.admin-toolbar form{display:flex;gap:8px}
.admin-toolbar input{border:1px solid var(--line);border-radius:10px;padding:10px;min-width:280px}
.table-wrap{overflow:auto;padding:0}
.table-wrap>h2{padding:20px 20px 5px}
.table-wrap table{border-collapse:collapse;width:100%;min-width:800px}
.table-wrap th,.table-wrap td{text-align:left;padding:14px;border-bottom:1px solid #e7edf5;font-size:12px}
.table-wrap th{color:#60718b;background:#f8fafd;font-size:10px;text-transform:uppercase}
.table-wrap td small{display:block;color:var(--muted);margin-top:4px}
.row-actions{white-space:nowrap}
.row-actions a,.row-actions button,.link-danger{border:0;background:none;color:var(--blue);font-weight:800;padding:5px}
.row-actions button:last-child,.link-danger{color:#d53349}
.status{display:inline-block;padding:5px 8px;border-radius:99px;background:#edf2f8;color:#53647e;font-size:10px;font-weight:800}
.status.published,.status.approved,.status.active,.status.public{background:#e7f9ed;color:#168343}
.status.pending,.status.login{background:#fff5df;color:#a36800}
.status.rejected,.status.blocked{background:#ffeaed;color:#c52e44}
.status.task,.status.draft{background:#eaf2ff;color:#1768d4}
.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.admin-form .admin-card{margin:0}
.admin-form label{display:block;font-size:11px;font-weight:800;margin:12px 0}
.admin-form input,.admin-form select,.admin-form textarea,.admin-inline-form select,.admin-inline-form textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;margin-top:6px;background:#fff;outline:0}
.check-label{display:flex!important;align-items:center;gap:8px}
.check-label input{width:auto!important;margin:0!important}
.admin-form hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.admin-section-head{display:flex;justify-content:space-between;align-items:center}
.repeat-row{display:grid;grid-template-columns:1.3fr 160px 2fr 40px;gap:8px;margin-top:9px}
.repeat-row.task-row{grid-template-columns:1.2fr 140px 1.5fr 1.5fr 0 40px}
.repeat-row input,.repeat-row select{margin:0}
.repeat-row>button{border:0;border-radius:9px;background:#fff0f2;color:#cf2f46}
.sticky-submit{position:sticky;bottom:15px;margin:20px 0 0 auto;width:max-content;display:flex;gap:16px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}
.admin-inline-form{display:grid;gap:12px}
.admin-alert{padding:12px 15px;border-radius:11px;background:#e8faef;color:#197a3c;margin-bottom:15px}
.reset-password{display:flex;gap:5px}
.reset-password input{border:1px solid var(--line);border-radius:8px;padding:8px;width:150px}
.reset-password button{border:0;border-radius:8px;background:var(--blue);color:#fff;font-weight:700}
.proof-cell{max-width:320px;word-break:break-word}

.document-access-panel{margin-top:28px;border-color:#cfe0f8}
.access-grant-count{flex:0 0 auto;padding:7px 10px;border-radius:99px;background:#eaf3ff;color:var(--blue);font-size:10px;font-weight:900}
.document-access-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:24px;margin-top:18px}
.access-grant-form{align-self:start;padding:17px;border:1px solid #dce7f5;border-radius:14px;background:#f8fbff}
.access-grant-form label{font-size:11px;font-weight:800}
.access-grant-form textarea{resize:vertical;min-height:135px}
.access-grant-list{min-width:0}
.access-grant-list h3{margin:0 0 10px;font-size:13px}
.access-grant-list .table-wrap{max-height:330px;border:1px solid #e1e8f2;border-radius:13px}
.access-grant-list .table-wrap table{min-width:540px}
.access-grant-list .table-wrap th,.access-grant-list .table-wrap td{padding:11px}
.access-grant-empty{min-height:180px;display:grid;place-items:center;align-content:center;border:1px dashed #ccd9ea;border-radius:13px;background:#fafcff;color:var(--muted);text-align:center}
.access-grant-empty span{font-size:34px}
.access-grant-empty p{margin:8px 0 0;font-size:11px}
@media(max-width:900px){.document-access-grid{grid-template-columns:1fr}
.document-access-panel .admin-section-head{align-items:flex-start;gap:12px}
.access-grant-list .table-wrap table{min-width:500px}
}

.bulk-document-form{display:grid;gap:18px}
.bulk-document-bar{position:sticky;top:16px;z-index:12;margin:0;display:flex;align-items:end;gap:12px;padding:15px 17px;border-color:#cbdcf3;box-shadow:0 12px 30px rgba(12,55,112,.12)}
.bulk-document-bar [hidden]{display:none!important}
.bulk-selection{align-self:center;min-width:115px}
.bulk-selection strong{display:block;color:var(--blue);font-size:24px;line-height:1}
.bulk-selection span{font-size:10px;color:var(--muted)}
.bulk-document-bar label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#5d6e87}
.bulk-document-bar select,.bulk-document-bar textarea{min-width:170px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;outline:0}
.bulk-document-bar textarea{min-width:280px;resize:vertical}
.bulk-users{flex:1}
.bulk-users textarea{width:100%}
.bulk-document-bar .btn{min-height:42px}
.bulk-document-bar .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.select-column{width:46px;text-align:center!important}
.select-column input{width:17px;height:17px;accent-color:var(--blue);cursor:pointer}
.bulk-document-table tbody tr{transition:.18s}
.bulk-document-table tbody tr.selected{background:#edf5ff}
.bulk-document-table tbody tr.selected td:first-child{box-shadow:inset 3px 0 var(--blue)}

@media(max-width:1000px){.bulk-document-bar{position:static;flex-wrap:wrap;align-items:end}
.bulk-users{flex-basis:100%}
.bulk-users textarea{min-width:0}
.bulk-document-bar .btn{margin-left:auto}
}

.document-filter-toolbar{align-items:flex-start}
.document-filter-toolbar form{display:flex;flex:1;flex-wrap:wrap}
.document-filter-toolbar input:not([type="hidden"]){flex:1 1 260px}
.filter-reset{align-self:center;padding:9px 5px;color:var(--blue);font-size:11px;font-weight:800;white-space:nowrap}
.table-sort{display:inline-flex;align-items:center;min-height:24px;color:#60718b;white-space:nowrap;transition:.18s}
.table-sort:hover,.table-sort.active{color:var(--blue)}
.table-sort.active{font-weight:900}
.document-created-date{white-space:nowrap}
.document-created-date b,.document-created-date small{display:block}
.document-created-date small{margin-top:4px;color:var(--muted)}


@media(max-width:1050px){.document-grid,.catalog-grid{grid-template-columns:repeat(3,1fr)}
.catalog-filter{grid-template-columns:2fr 1fr 1fr}
.catalog-filter select[name="major"]{display:none}
.admin-stats{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:780px){.document-grid,.catalog-grid{grid-template-columns:repeat(2,1fr)}
.doc-cover{height:260px}
.catalog-filter{grid-template-columns:1fr}
.catalog-filter select[name="major"]{display:block}
.school-track>a{flex-basis:250px}
.document-title-grid{grid-template-columns:1fr;text-align:center}
.document-title-grid>img{margin:auto}
.document-title-grid h1{font-size:30px}
.document-stats{justify-content:center}
.task-list{grid-template-columns:1fr}
.admin-sidebar{transform:translateX(-100%);transition:.25s}
.admin-sidebar.open{transform:none}
.admin-main{margin-left:0;padding:18px}
.admin-menu{display:block;border:0;background:#fff;border-radius:10px;padding:10px}
.admin-form-grid{grid-template-columns:1fr}
.repeat-row,.repeat-row.task-row{grid-template-columns:1fr}
.repeat-row.task-row input[type="hidden"]{display:none}
.admin-toolbar{align-items:stretch;flex-direction:column}
.admin-toolbar form{display:grid;grid-template-columns:1fr auto}
.admin-toolbar input{min-width:0}
.form-grid{grid-template-columns:1fr}
.schedule-form,.bus-form{grid-template-columns:1fr}
}

@media(max-width:520px){.document-grid,.catalog-grid{grid-template-columns:1fr 1fr}
.doc-cover{height:190px}
.school-track>a{flex-basis:82vw;height:98px}
.page-hero h1{font-size:34px}
.document-title-grid>img{width:150px;height:200px}
.resource-frame{height:70vh}
.admin-stats{grid-template-columns:1fr}
.gpa-row{grid-template-columns:1fr 1fr}
.gpa-row input:first-child{grid-column:1/-1}
.user-menu-button{max-width:90px}
}


/* Featured documents: one-row automatic carousel */
.hot-document-carousel{overflow:hidden;padding:8px 0 18px;margin:-8px 0 -18px}

.hot-document-track{display:flex;grid-template-columns:none;gap:14px;transition:transform 1.05s cubic-bezier(.22,.72,.22,1)!important;will-change:transform;transform:translateZ(0);backface-visibility:hidden}

.hot-document-track>.doc-card{flex:0 0 calc((100% - 42px)/4);transition:transform .55s ease,box-shadow .55s ease,border-color .55s ease,opacity .35s ease;backface-visibility:hidden}

.hot-document-carousel.is-sliding .hot-document-track>.doc-card{pointer-events:none}

@media(max-width:780px){.hot-document-track>.doc-card{flex-basis:calc((100% - 14px)/2)}
}

@media(max-width:520px){.hot-document-track>.doc-card{flex-basis:100%}
}

@media(prefers-reduced-motion:reduce){.hot-document-track{transition:transform 1.05s cubic-bezier(.22,.72,.22,1)!important}
}


/* Study profile */
.auth-form select{display:block;width:100%;border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:6px;outline:0;background:#fff}
.auth-form select:focus{border-color:var(--blue)}
.study-select-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.study-profile-page .page-hero p{color:var(--muted);margin-top:-12px}
.study-profile-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}
.study-profile-summary,.study-profile-form{border:1px solid var(--line);border-radius:20px;background:#fff;padding:28px;box-shadow:0 12px 35px rgba(20,58,110,.08)}
.study-profile-summary{background:linear-gradient(145deg,#edf6ff,#fff)}
.study-profile-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:var(--blue);color:#fff}
.study-profile-summary h2{margin:20px 0 8px}
.study-profile-summary p{color:var(--blue);font-weight:800}
.study-profile-summary small{display:block;color:var(--muted);line-height:1.7}
.study-profile-form{display:grid;gap:18px}
.study-profile-form h2{margin:0}
.study-profile-form label{font-size:12px;font-weight:800}
.study-profile-form select{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff;outline:0}
.study-profile-form select:focus{border-color:var(--blue)}
.study-profile-form .btn{justify-self:start}

@media(max-width:780px){.study-select-grid,.study-profile-grid{grid-template-columns:1fr}
}


/* Complete PDF Flipbook */
.flipbook-viewer{position:relative;display:flex;flex-direction:column;height:min(82vh,900px);min-height:650px;overflow:hidden;border:1px solid #263a5b;border-radius:18px;background:#0b1730;color:#fff;box-shadow:0 18px 50px rgba(3,18,42,.2);outline:0}

.flipbook-viewer:focus-visible{box-shadow:0 0 0 4px rgba(22,128,255,.28),0 18px 50px rgba(3,18,42,.2)}

.flipbook-toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:54px;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.11);background:rgba(5,18,40,.96);backdrop-filter:blur(14px)}

.flipbook-tool-group{display:flex;align-items:center;gap:5px;min-width:0}

.flipbook-tool-group button,.flipbook-tool-group>a{min-width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#172946;color:#eaf3ff;font-size:17px;font-weight:800;line-height:1;transition:.2s}

.flipbook-tool-group button:hover,.flipbook-tool-group>a:hover,.flipbook-tool-group button.active{border-color:#3d8eff;background:#1268df;color:#fff;transform:translateY(-1px)}

.flipbook-tool-group button:disabled{opacity:.35;cursor:not-allowed;transform:none}

.flipbook-tool-group [data-zoom-reset]{min-width:58px;font-size:11px}

.flipbook-page-field{height:36px;display:flex;align-items:center;gap:5px;padding:0 8px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#101f38;color:#aebdd2;font-size:10px;white-space:nowrap}

.flipbook-page-field input{width:46px;height:26px;border:1px solid #324967;border-radius:6px;background:#08172d;color:#fff;text-align:center;font-size:11px;outline:0}

.flipbook-page-field input:focus{border-color:#3286ff;box-shadow:0 0 0 2px rgba(50,134,255,.2)}

.flipbook-body{position:relative;display:flex;flex:1;min-height:0;overflow:hidden}

.flipbook-thumbnails{flex:0 0 0;width:0;overflow:hidden;border-right:0 solid rgba(255,255,255,.1);background:#0d1d35;transition:width .28s ease,flex-basis .28s ease,border-width .28s ease}

.flipbook-viewer.thumbnails-open .flipbook-thumbnails{flex-basis:158px;width:158px;border-right-width:1px}

.flipbook-thumbnail-list{height:100%;width:158px;overflow:auto;padding:10px 9px;scrollbar-width:thin;scrollbar-color:#39577d transparent}

.flipbook-thumbnail{width:100%;margin:0 0 9px;padding:6px;border:1px solid transparent;border-radius:10px;background:#142742;color:#aebdd2;transition:.2s}

.flipbook-thumbnail:hover,.flipbook-thumbnail.active{border-color:#388aff;background:#1d3a61;color:#fff;box-shadow:0 7px 16px rgba(0,0,0,.18)}

.flipbook-thumbnail canvas{display:block;width:100%;height:auto;min-height:80px;border-radius:5px;background:linear-gradient(135deg,#fff,#e8edf4)}

.flipbook-thumbnail span{display:block;margin-top:5px;font-size:9px;font-weight:700;text-align:center}

.flipbook-workspace{position:relative;flex:1;min-width:0;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:26px;background:radial-gradient(circle at 50% 20%,#263c5f 0,#152742 42%,#0d1b31 100%);overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin;scrollbar-color:#486381 #102039}

.flipbook-stage{position:relative;display:flex;align-items:center;justify-content:center;gap:0;min-width:min-content;min-height:min-content;perspective:2200px;transform-style:preserve-3d}

.flipbook-page{position:relative;flex:none;background:#fff;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity,filter}

.flipbook-page[hidden]{display:none}
.flipbook-page canvas{display:block;max-width:none;background:#fff;backface-visibility:hidden}

.flipbook-page>span{position:absolute;z-index:2;bottom:7px;min-width:24px;padding:3px 6px;border-radius:10px;background:rgba(8,22,43,.66);color:#fff;font-size:8px;font-weight:800;text-align:center;pointer-events:none}

.flipbook-page-left{border-radius:3px 0 0 3px;box-shadow:-14px 18px 40px rgba(0,0,0,.38)}
.flipbook-page-left canvas{border-radius:3px 0 0 3px}
.flipbook-page-left>span{left:9px}

.flipbook-page-right{border-radius:0 3px 3px 0;box-shadow:14px 18px 40px rgba(0,0,0,.38)}
.flipbook-page-right canvas{border-radius:0 3px 3px 0}
.flipbook-page-right>span{right:9px}

.flipbook-viewer.book-mode .flipbook-stage:after{content:"";position:absolute;z-index:8;top:0;bottom:0;left:50%;width:2px;transform:translateX(-1px);background:linear-gradient(90deg,rgba(0,0,0,.3),rgba(255,255,255,.42),rgba(0,0,0,.2));box-shadow:0 0 18px rgba(0,0,0,.42);pointer-events:none}

.flipbook-viewer.book-mode .flipbook-stage.single-page-spread:after{display:none}

.flipbook-viewer.book-mode .flipbook-page-left:after,.flipbook-viewer.book-mode .flipbook-page-right:before{content:"";position:absolute;z-index:1;top:0;bottom:0;width:7%;pointer-events:none}
.flipbook-viewer.book-mode .flipbook-page-left:after{right:0;background:linear-gradient(90deg,transparent,rgba(0,0,0,.18))}
.flipbook-viewer.book-mode .flipbook-page-right:before{left:0;background:linear-gradient(90deg,rgba(0,0,0,.2),transparent)}

.flipbook-loading{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(10,24,44,.68);backdrop-filter:blur(3px);color:#fff}

.flipbook-loading[hidden]{display:none}
.flipbook-loading span{width:38px;height:38px;border:3px solid rgba(255,255,255,.2);border-top-color:#49a1ff;border-radius:50%;animation:flipbookSpin .8s linear infinite}
.flipbook-loading b{font-size:12px}
.flipbook-loading small{color:#9ec8ff;font-size:10px}

.flipbook-error{position:absolute;z-index:6;inset:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#13233b}
.flipbook-error[hidden]{display:none}
.flipbook-error>span{font-size:42px;color:#ffc44d}
.flipbook-error h3{margin:10px 0 4px}
.flipbook-error p{max-width:560px;color:#afbdd1;font-size:11px;line-height:1.6}
.flipbook-error .btn{width:auto;margin-top:8px}

.flipbook-status{min-height:31px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 12px;border-top:1px solid rgba(255,255,255,.1);background:#09172b;color:#8fa3bf;font-size:9px}
.flipbook-status span:first-child{color:#fff;font-weight:800}
.flipbook-fallback{display:none!important}

.flipbook-viewer.is-fullscreen{height:100vh;max-height:none;border:0;border-radius:0}
.flipbook-viewer.is-fullscreen .flipbook-workspace{padding:36px}

.flipbook-tool-group [data-flip-animation] span{font-size:9px;font-weight:900;letter-spacing:-.3px}
.flipbook-viewer.animation-disabled [data-flip-animation]{opacity:.55}

.flipbook-viewer:not(.book-mode) .flipbook-stage.flip-leave-next .flipbook-page-left{animation:flipLeaveNext .17s ease-in forwards!important}
.flipbook-viewer:not(.book-mode) .flipbook-stage.flip-leave-prev .flipbook-page-left{animation:flipLeavePrev .17s ease-in forwards!important}
.flipbook-viewer:not(.book-mode) .flipbook-stage.flip-enter-next .flipbook-page-left{animation:flipEnterNext .36s cubic-bezier(.18,.74,.22,1) forwards!important}
.flipbook-viewer:not(.book-mode) .flipbook-stage.flip-enter-prev .flipbook-page-left{animation:flipEnterPrev .36s cubic-bezier(.18,.74,.22,1) forwards!important}

.flipbook-viewer.book-mode .flipbook-stage.flip-leave-next .flipbook-page-right{z-index:7;transform-origin:left center;animation:bookTurnNextOut .33s cubic-bezier(.55,.05,.7,.35) forwards!important}
.flipbook-viewer.book-mode .flipbook-stage.flip-enter-next .flipbook-page-left{z-index:7;transform-origin:right center;animation:bookTurnNextIn .54s cubic-bezier(.18,.7,.2,1) forwards!important}

.flipbook-viewer.book-mode .flipbook-stage.flip-leave-prev .flipbook-page-left{z-index:7;transform-origin:right center;animation:bookTurnPrevOut .33s cubic-bezier(.55,.05,.7,.35) forwards!important}
.flipbook-viewer.book-mode .flipbook-stage.flip-enter-prev .flipbook-page-right{z-index:7;transform-origin:left center;animation:bookTurnPrevIn .54s cubic-bezier(.18,.7,.2,1) forwards!important}

@keyframes flipbookSpin{to{transform:rotate(360deg)}
}

@keyframes flipLeaveNext{to{transform:perspective(1400px) rotateY(-16deg) translateX(-18px);opacity:.15;filter:blur(1px)}
}

@keyframes flipLeavePrev{to{transform:perspective(1400px) rotateY(16deg) translateX(18px);opacity:.15;filter:blur(1px)}
}

@keyframes flipEnterNext{from{transform:perspective(1400px) rotateY(18deg) translateX(26px);opacity:.15}
to{transform:none;opacity:1}
}

@keyframes flipEnterPrev{from{transform:perspective(1400px) rotateY(-18deg) translateX(-26px);opacity:.15}
to{transform:none;opacity:1}
}

@keyframes bookTurnNextOut{0%{transform:rotateY(0);filter:brightness(1)}
100%{transform:rotateY(-92deg);filter:brightness(.55);box-shadow:-20px 10px 35px rgba(0,0,0,.42)}
}

@keyframes bookTurnNextIn{0%{transform:rotateY(92deg);filter:brightness(.58);box-shadow:20px 10px 35px rgba(0,0,0,.42)}
100%{transform:rotateY(0);filter:brightness(1)}
}

@keyframes bookTurnPrevOut{0%{transform:rotateY(0);filter:brightness(1)}
100%{transform:rotateY(92deg);filter:brightness(.55);box-shadow:20px 10px 35px rgba(0,0,0,.42)}
}

@keyframes bookTurnPrevIn{0%{transform:rotateY(-92deg);filter:brightness(.58);box-shadow:-20px 10px 35px rgba(0,0,0,.42)}
100%{transform:rotateY(0);filter:brightness(1)}
}

@media(max-width:900px){.flipbook-viewer{height:78vh;min-height:580px}
.flipbook-toolbar{flex-wrap:wrap;justify-content:center}
.flipbook-tool-actions{margin-left:auto}
.flipbook-page-field>span:first-child{display:none}
.flipbook-status span:last-child{display:none}
}

@media(max-width:620px){.flipbook-viewer{height:76vh;min-height:520px;border-radius:13px}
.flipbook-toolbar{gap:6px;padding:6px}
.flipbook-tool-group{gap:3px}
.flipbook-tool-group button,.flipbook-tool-group>a{min-width:32px;width:32px;height:32px;font-size:15px}
.flipbook-tool-group [data-zoom-reset]{min-width:50px;width:50px}
.flipbook-page-field{height:32px;padding:0 5px}
.flipbook-page-field input{width:38px;height:24px}
.flipbook-thumbnails{position:absolute;z-index:8;inset:0 auto 0 0;box-shadow:12px 0 30px rgba(0,0,0,.4)}
.flipbook-viewer.thumbnails-open .flipbook-thumbnails{width:142px;flex-basis:142px}
.flipbook-thumbnail-list{width:142px}
.flipbook-workspace{padding:14px}
.flipbook-status{justify-content:center}
.flipbook-status span:nth-child(2){display:none}
}


/* Admin document filters and pagination */
.document-filter-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
.document-filter-form{display:grid!important;grid-template-columns:repeat(4,minmax(145px,1fr));gap:9px!important;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(30,60,105,.05)}
.document-filter-search{grid-column:span 2;display:flex;gap:8px}
.document-filter-form input:not([type="hidden"]),.document-filter-form select{width:100%;min-width:0!important;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--text);outline:0}
.document-filter-form input:focus,.document-filter-form select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,120,255,.09)}
.document-filter-search input{flex:1}
.document-filter-search .btn{padding:10px 16px;background:#eaf3ff;color:var(--blue)}
.document-filter-form .filter-reset{grid-column:1/-1;width:max-content;padding:3px 2px}
.add-document-button{white-space:nowrap}
.document-result-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 2px 0;color:var(--muted);font-size:11px}
.document-result-summary b{color:var(--text)}
.document-empty-row{height:190px!important;text-align:center!important;color:var(--muted)}
.document-empty-row strong,.document-empty-row span{display:block}
.document-empty-row strong{margin-bottom:7px;color:var(--text);font-size:15px}
.admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:22px}
.pagination-pages{display:flex;align-items:center;gap:6px}
.admin-pagination a,.pagination-pages span{min-width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;color:#53647e;font-size:11px;font-weight:800}
.admin-pagination a:hover,.admin-pagination a.active{border-color:var(--blue);background:var(--blue);color:#fff}
.admin-pagination .pagination-nav{display:flex;width:auto;padding:0 14px}
.admin-pagination a.disabled{pointer-events:none;opacity:.45}
.pagination-pages span{border:0;background:transparent;min-width:22px}

@media(max-width:1150px){.document-filter-form{grid-template-columns:repeat(3,minmax(140px,1fr))}
.document-filter-search{grid-column:span 2}
}

@media(max-width:780px){.document-filter-toolbar{grid-template-columns:1fr}
.document-filter-form{grid-template-columns:1fr 1fr!important}
.document-filter-search{grid-column:1/-1}
.document-filter-toolbar .add-document-button{width:100%}
.admin-pagination{justify-content:space-between}
.pagination-pages a:not(.active):not(:first-child):not(:last-child),.pagination-pages span{display:none}
}

@media(max-width:520px){.document-filter-form{grid-template-columns:1fr!important}
.document-filter-search{display:grid;grid-template-columns:1fr}
.document-result-summary{align-items:flex-start;flex-direction:column}
.admin-pagination{gap:6px}
.admin-pagination .pagination-nav{padding:0 10px}
}


/* YouTube online lectures */
.field-help{display:block;margin-top:7px;color:var(--muted);font-size:9px;font-weight:600;line-height:1.5}
.youtube-lecture-viewer{overflow:hidden;border:1px solid #d6e1f0;border-radius:20px;background:#071426;box-shadow:0 18px 45px rgba(4,22,48,.16)}
.youtube-frame-wrap{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.youtube-frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.youtube-lecture-meta{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 16px;background:linear-gradient(90deg,#071426,#102b50);color:#fff;font-size:11px;font-weight:800}
.youtube-lecture-meta span{color:#ff5266}
.youtube-lecture-meta a{color:#9ecaff}
.youtube-embed-error{min-height:380px;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;background:#fff;color:var(--text)}
.youtube-embed-error>span{font-size:45px}
.youtube-embed-error h3{margin:10px 0 3px}
.youtube-embed-error p{margin:0 0 15px;color:var(--muted);font-size:12px}
.youtube-embed-error .btn{width:max-content;margin:auto}
@media(max-width:620px){.youtube-lecture-viewer{border-radius:13px}
.youtube-lecture-meta{align-items:flex-start;flex-direction:column;gap:6px}
.youtube-embed-error{min-height:260px}
}
.doc-info h3{margin-bottom:4px}
.doc-description{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:30px;overflow-wrap:anywhere}
.catalog-groups{padding-top:34px;background:linear-gradient(180deg,#f7faff 0,#fff 100%)}
.catalog-group+.catalog-group{margin-top:52px;padding-top:44px;border-top:1px solid var(--line)}
.catalog-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.catalog-group-head h2{margin:5px 0 4px;color:var(--blue-dark);font-size:26px;line-height:1.2}
.catalog-group-head p{margin:0;color:var(--muted);font-size:11px}
.catalog-group-head>a{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:10px 14px;border:1px solid #c8daf5;border-radius:11px;background:#fff;color:var(--blue);font-size:11px;font-weight:800;transition:.2s}
.catalog-group-head>a:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 8px 18px rgba(6,91,229,.12)}
.catalog-group-head>a svg{width:15px;height:15px}
.catalog-group-empty{padding:24px;border:1px dashed #c7d5e8;border-radius:14px;background:#fff;color:var(--muted);font-size:12px;text-align:center}
@media(max-width:520px){.catalog-group+.catalog-group{margin-top:34px;padding-top:30px}.catalog-group-head{align-items:flex-start}.catalog-group-head h2{font-size:21px}.catalog-group-head p{font-size:9px;line-height:1.5}.catalog-group-head>a{padding:8px 10px;font-size:9px}}

/* Thuviensinhvien.wiki brand system */
.brand-logo{display:block;flex:0 0 auto;line-height:0}.brand-logo img{display:block;width:auto;height:52px;max-width:250px;object-fit:contain}.footer-brand-logo img{height:64px;max-width:280px}.admin-brand-logo img{width:100%;height:auto;max-height:62px;object-position:left center}
.promo-bar{background:linear-gradient(90deg,#2563eb,#16c7e8,#2563eb);box-shadow:0 5px 22px rgba(22,199,232,.18)}.promo-bar a{background:linear-gradient(135deg,#ff6b2c,#ff9f1c);box-shadow:0 5px 14px rgba(255,107,44,.24)}
.site-header{background:rgba(255,255,255,.94);border-bottom-color:rgba(37,99,235,.16)}.desktop-nav a:hover,.desktop-nav a:focus-visible{color:var(--blue)}.desktop-nav a::after{background:linear-gradient(90deg,var(--blue),var(--cyan),var(--pink))}.icon-btn:hover{background:rgba(22,199,232,.1);color:var(--blue)}
.btn-primary,.hero-search button,.footer form button,.catalog-filter button{background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;box-shadow:0 9px 22px rgba(37,99,235,.24)}.btn-primary:hover,.hero-search button:hover,.footer form button:hover,.catalog-filter button:hover{background:linear-gradient(135deg,var(--pink),var(--orange));box-shadow:0 10px 25px rgba(255,107,44,.25)}
.hero{background:radial-gradient(circle at 8% 20%,rgba(22,199,232,.09),transparent 28%),radial-gradient(circle at 86% 12%,rgba(37,99,235,.1),transparent 28%),#fff}.hero h1{color:var(--navy)}.hero h1 span{color:var(--blue)}.hero h1 span::after{background:linear-gradient(90deg,var(--orange),var(--pink))}.eyebrow{color:var(--blue);background:rgba(22,199,232,.11)}.hero-search{border-color:rgba(37,99,235,.28)}.hero-search:focus-within{border-color:var(--cyan);box-shadow:0 15px 32px rgba(22,199,232,.17)}.hero-visual::before{background:linear-gradient(145deg,rgba(22,199,232,.11),rgba(37,99,235,.06));box-shadow:inset 0 0 0 1px rgba(37,99,235,.12)}.hero-badge>span{background:linear-gradient(135deg,var(--pink),var(--orange))}
.section-heading h2,.page-hero h1{color:var(--navy)}.kicker,.section-heading>a,.catalog-head a{color:var(--blue)}.documents,.catalog-groups{background:linear-gradient(180deg,var(--surface),#fff)}
.cat-blue{background:#2563eb}.cat-lime{background:#16a7c7}.cat-orange{background:#ff6b2c}.cat-pink{background:#ff9f1c}.cat-purple{background:#0b1f4d}.category-card:hover{box-shadow:0 18px 38px rgba(11,31,77,.2)}
.doc-card{border-color:rgba(37,99,235,.16)}.doc-card:hover{border-color:rgba(22,199,232,.62);box-shadow:0 18px 42px rgba(11,31,77,.13)}.preview-btn{color:var(--blue)}.preview-btn:hover{background:rgba(22,199,232,.09)}.save-btn-inline.active,.save-detail.active,.save-btn.active{background:linear-gradient(135deg,var(--blue),var(--cyan))}.file-type.pdf{background:var(--pink)}.file-type.ppt{background:var(--orange)}
.page-hero{background:radial-gradient(circle at 14% 20%,rgba(22,199,232,.1),transparent 30%),linear-gradient(145deg,var(--surface),#fff)}.catalog-filter input:focus,.catalog-filter select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(22,199,232,.1)}.catalog-group-head>a{border-color:rgba(37,99,235,.22)}.catalog-group-head>a:hover{border-color:var(--cyan);box-shadow:0 8px 18px rgba(22,199,232,.14)}
.test-intro{background:linear-gradient(150deg,var(--navy),var(--blue))}.progress-track i{background:linear-gradient(90deg,var(--blue),var(--cyan))}.test-types{background:rgba(22,199,232,.08)}.test-types>button{color:var(--blue)}.test-types>button i{background:linear-gradient(135deg,var(--blue),var(--cyan))}
.footer{position:relative;background:var(--navy);background-image:radial-gradient(circle at 12% 18%,rgba(22,199,232,.11),transparent 28%),radial-gradient(circle at 88% 10%,rgba(37,99,235,.14),transparent 30%)}.footer::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,var(--blue),var(--cyan),var(--pink),var(--orange),transparent)}.footer p strong{color:#fff;font-size:13px}.footer p,.footer a,.footer small{color:#b9cae5}.footer a:hover{color:var(--cyan)}
.admin-body{background:var(--surface)}.admin-sidebar{background:radial-gradient(circle at 25% 8%,rgba(22,199,232,.13),transparent 28%),linear-gradient(180deg,var(--navy),#0b1f4d)}.admin-sidebar nav a{color:#b9cae5}.admin-sidebar nav a:hover{background:rgba(22,199,232,.12);color:#fff}.admin-card,.panel{border-color:rgba(37,99,235,.16)}.admin-card h2,.admin-main>header h1{color:var(--navy)}
@media(max-width:520px){.brand-logo img{height:43px;max-width:205px}.footer-brand-logo img{height:55px;max-width:235px}.admin-brand-logo img{height:auto;max-height:56px}}
