:root{--navy:#08244e;--blue:#1557a8;--gold:#d6a83d;--ink:#13233f;--muted:#6e7d92;--line:#dce4ee;--paper:#f6f8fb;--danger:#a93434;--success:#24613d}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.55 Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.serif,h1,h2,h3{font-family:Georgia,"Times New Roman",serif}.container{width:min(1180px,calc(100% - 40px));margin:auto}
.topbar{background:#061b3b;color:#d8e4f3;font-size:11px;letter-spacing:.08em}.topbar .container{min-height:34px;display:flex;justify-content:space-between;align-items:center}
.nav{background:#fffffff2;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.nav-row{min-height:76px;display:flex;align-items:center;gap:14px}.brand-mark{width:44px;height:52px;flex:0 0 auto;clip-path:polygon(50% 0,94% 14%,86% 76%,50% 100%,14% 76%,6% 14%);display:grid;place-items:center;background:linear-gradient(145deg,#0b2b5c,#1b61ad);color:white;font:700 21px Georgia}.brand small{display:block;font-size:9px;letter-spacing:.16em;color:#69788d}.brand strong{font:700 21px Georgia}.nav-links{margin-left:auto;display:flex;align-items:center;gap:24px}.nav-links a{text-decoration:none;color:#40516a}
.btn{border:0;border-radius:8px;padding:11px 16px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.btn.primary{background:var(--navy);color:white}.btn.light{background:white;border:1px solid var(--line);color:#31445f}.btn.danger{background:#fff0f0;border:1px solid #efcaca;color:var(--danger)}.btn.small{padding:8px 11px;font-size:12px}.btn:disabled{opacity:.55;cursor:not-allowed}
.hero{background:linear-gradient(105deg,#051b3dfa,#0a3b71eb),repeating-linear-gradient(135deg,transparent 0 18px,#ffffff08 18px 19px);color:white;padding:65px 0 82px;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:330px;height:330px;right:8%;top:-160px;border:1px solid #ffffff25;border-radius:50%;box-shadow:0 0 0 46px #ffffff08,0 0 0 94px #ffffff05}.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end;position:relative;z-index:1}.eyebrow{font:700 11px Arial;letter-spacing:.2em;color:#d6a83d}.hero h1{font-size:clamp(44px,6vw,76px);line-height:.98;margin:16px 0;letter-spacing:-.04em}.hero p{font-size:17px;line-height:1.75;color:#d5e3f4;max-width:680px}.stats{border-left:1px solid #ffffff2c;padding-left:28px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats strong{display:block;font:36px Georgia}.stats span{font-size:11px;color:#b9cce5}
.search-panel{margin-top:-28px;position:relative;z-index:2;padding:18px;background:white;border:1px solid #e0e7ef;border-radius:12px;display:flex;gap:12px;box-shadow:0 18px 45px #1d35571a}.search-input{flex:1;display:flex;align-items:center;gap:10px;background:#f4f7fa;border:1px solid #dce4ed;border-radius:8px;padding:0 14px}.search-input input,.search-panel select{border:0;background:transparent;outline:none;padding:13px 0;width:100%;color:#263d5c}.search-panel select{flex:0 0 270px;background:#f4f7fa;border:1px solid #dce4ed;border-radius:8px;padding:0 14px}
.section-head{margin:52px 0 22px;display:flex;justify-content:space-between;align-items:end}.section-head h2{font-size:32px;margin:7px 0 0}.section-head p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-bottom:70px}.card{background:white;border:1px solid #dde5ed;border-radius:11px;overflow:hidden;transition:.25s}.card:hover{transform:translateY(-4px);box-shadow:0 18px 38px #18315317}.cover{height:162px;padding:22px;color:white;background:linear-gradient(145deg,#102e5c,#0c4c91);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.cover:after{content:"";position:absolute;width:180px;height:180px;border:1px solid #ffffff26;border-radius:50%;right:-70px;top:-70px;box-shadow:0 0 0 30px #ffffff0b}.cover[data-tone="1"]{background:linear-gradient(145deg,#5d3610,#b67c20)}.cover[data-tone="2"]{background:linear-gradient(145deg,#0b4146,#0c7a7d)}.cover[data-tone="3"]{background:linear-gradient(145deg,#30235c,#604ea0)}.cover b,.cover strong{position:relative;z-index:1}.cover b{font-size:11px;letter-spacing:.14em}.cover strong{font:700 30px Georgia}.card-body{padding:20px}.card-body h3{font-size:20px;line-height:1.28;margin:0 0 8px;min-height:52px}.meta{font-size:12px;color:#7b8899;display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}.card-actions{border-top:1px solid #edf1f5;padding-top:15px;display:flex;align-items:center;justify-content:space-between}.read{font-weight:700;color:#104e95;text-decoration:none}.icon-row{display:flex;gap:7px}.icon-btn{width:35px;height:35px;border:1px solid var(--line);background:white;border-radius:7px;display:grid;place-items:center}.empty{grid-column:1/-1;padding:60px;text-align:center;border:1px dashed #c7d3e0;border-radius:12px;background:white;color:var(--muted)}
.footer{background:#071c3c;color:#c4d3e6;padding:38px 0}.footer .container{display:flex;justify-content:space-between;align-items:center}.footer strong{color:white;font:700 19px Georgia}
.modal{position:fixed;inset:0;background:#06152dd9;z-index:80;display:none;place-items:center;padding:20px;backdrop-filter:blur(5px)}.modal.open{display:grid}.qr-card{width:min(370px,100%);background:white;border-radius:14px;padding:28px;text-align:center;box-shadow:0 30px 70px #0006}.qr-card canvas{width:220px!important;height:220px!important}.qr-card h3{font-size:21px;margin:12px 0 4px}.qr-card p{color:var(--muted);font-size:12px;word-break:break-word}
.install-body,.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#dce9f8,transparent 35%),#eff3f8;padding:22px}.install-card,.login-card{width:min(470px,100%);background:white;border:1px solid var(--line);border-radius:15px;padding:34px;box-shadow:0 26px 60px #16304f18}.install-card h1,.login-card h1{font-size:31px;margin:12px 0}.stack{display:grid;gap:16px}.stack label,.form-grid label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#526176}.stack input,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #d8e0e9;border-radius:8px;padding:12px;background:#fbfcfd;outline:none}.stack input:focus,.form-grid input:focus,.form-grid textarea:focus{border-color:#1b5ba4;box-shadow:0 0 0 3px #1b5ba418}.muted{color:var(--muted)}.alert{padding:12px 14px;border-radius:8px;margin:14px 0}.alert.success{background:#eaf7ef;color:var(--success);border:1px solid #c7e7d2}.alert.error{background:#fff0f0;color:var(--danger);border:1px solid #efcaca}
.admin-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#071d3e;color:#d9e5f4;padding:24px 18px;position:sticky;top:0;height:100vh}.side-brand{display:flex;gap:12px;align-items:center;padding:0 4px 24px;border-bottom:1px solid #ffffff18}.side-brand .brand-mark{width:36px;height:43px}.side-brand strong{display:block;color:white;font:700 16px Georgia}.side-brand small{font-size:9px;letter-spacing:.12em}.side-nav{display:grid;gap:7px;margin-top:24px}.side-nav a{padding:11px 12px;border-radius:7px;text-decoration:none;color:#c9d8eb}.side-nav a:hover,.side-nav a.active{background:#ffffff12;color:white}.side-user{position:absolute;bottom:20px;left:18px;right:18px;border-top:1px solid #ffffff18;padding-top:16px;font-size:12px}.side-user a{color:#f0c969}
.admin-main{min-width:0}.admin-top{height:72px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.admin-content{padding:30px}.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.page-head h1{margin:4px 0 0;font-size:31px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:11px;padding:22px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;font:36px Georgia;margin-top:8px}.panel{background:white;border:1px solid var(--line);border-radius:11px;padding:22px;margin-bottom:22px}.panel h2{margin:0 0 18px;font-size:22px}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:760px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #e7edf3;padding:13px 10px;vertical-align:top}.data-table th{font-size:11px;letter-spacing:.08em;color:#6b7a90}.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:11px;background:#eaf1fa;color:#1d5694}.badge.off{background:#f0f1f3;color:#687485}.table-actions{display:flex;gap:7px;flex-wrap:wrap}.inline{display:inline}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}.dropzone{padding:20px;border:1.5px dashed #aebed0;border-radius:9px;background:#f6f9fc}.form-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end}
.reader{position:fixed;inset:0;background:#061225;color:white;display:flex;flex-direction:column}.reader-bar{min-height:64px;background:#0a2147;display:flex;align-items:center;gap:15px;padding:10px 18px;border-bottom:1px solid #ffffff1a}.reader-title{min-width:0;flex:1}.reader-title strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-title span{font-size:11px;color:#adc2dd}.reader-btn{border:1px solid #ffffff28;background:#ffffff0d;color:white;border-radius:7px;padding:9px 12px;text-decoration:none}.book-stage{flex:1;min-height:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle,#213a61,#071225 68%);overflow:hidden}.pages{display:flex;justify-content:center;align-items:center;max-height:100%;max-width:100%;filter:drop-shadow(0 24px 28px #0008)}.pdf-page{background:white;width:auto;height:auto;max-height:calc(100vh - 135px);max-width:44vw}.pdf-page:first-child{border-radius:5px 0 0 5px}.pdf-page:last-child{border-left:1px solid #cbd1da;border-radius:0 5px 5px 0}.reader-foot{min-height:54px;background:#091d3e;display:flex;align-items:center;justify-content:center;gap:15px}.loading{text-align:center;color:#d2deee}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.stats{display:none}.cards{grid-template-columns:repeat(2,1fr)}.admin-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.side-nav{display:flex;overflow:auto}.side-user{position:static;margin-top:20px}.metric-grid{grid-template-columns:1fr}.nav-links a{display:none}}
@media(max-width:620px){.container{width:min(100% - 24px,1180px)}.topbar span:last-child{display:none}.nav-row{min-height:68px}.brand-mark{width:37px;height:44px}.brand strong{font-size:17px}.hero{padding:44px 0 67px}.hero h1{font-size:46px}.search-panel{flex-direction:column}.search-panel select{flex-basis:auto}.cards{grid-template-columns:1fr}.footer .container{align-items:flex-start;gap:18px;flex-direction:column}.admin-content{padding:20px 14px}.admin-top{padding:0 14px}.page-head{align-items:flex-start;gap:14px;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full,.form-actions{grid-column:1}.pdf-page{max-width:88vw}.pdf-page:last-child{display:none}.reader-btn span{display:none}}

/* ZDL refinements */
.brand-mark{font-family:Arial,Helvetica,sans-serif;font-size:12px;letter-spacing:-.04em;font-weight:800}
.side-brand .brand-mark{font-size:10px}
.read{display:inline-flex;align-items:center;gap:8px;background:#16833f;color:#fff;padding:10px 15px;border-radius:8px;box-shadow:0 7px 16px #16833f2b;transition:.2s ease}
.read:hover{background:#0f6c33;transform:translateY(-1px);box-shadow:0 9px 20px #16833f3b}

/* Single-page realistic flipbook */
.pages{perspective:2400px;filter:none}
.book-frame{position:relative;display:grid;place-items:center;max-width:100%;max-height:100%;perspective:2400px;filter:drop-shadow(0 26px 30px #0009);cursor:pointer;transform-style:preserve-3d}
.book-frame:after{content:"";position:absolute;z-index:4;top:1%;bottom:1%;left:0;width:12px;pointer-events:none;background:linear-gradient(90deg,#00000038,transparent);border-radius:5px 0 0 5px}
.book-frame:before{content:"";position:absolute;z-index:4;top:0;bottom:0;right:0;width:10px;pointer-events:none;background:linear-gradient(270deg,#00000018,transparent);border-radius:0 5px 5px 0}
.pdf-page{position:absolute;inset:0;background:#fff;max-height:calc(100vh - 145px);max-width:calc(100vw - 50px);border-radius:4px;backface-visibility:hidden;transform-style:preserve-3d;box-shadow:inset 0 0 0 1px #0000000c}
.current-page{position:relative;z-index:1}
.turn-page{z-index:3;will-change:transform,filter,box-shadow;transform-style:preserve-3d}
.turn-page.flip-next{transform-origin:left center;transform:rotateY(0deg) translateZ(1px)}
.turn-page.flip-next.is-turning{animation:zdlFlipNext 1.06s cubic-bezier(.22,.61,.28,1) forwards}
.turn-page.flip-previous{transform-origin:left center;transform:rotateY(-179deg) translateZ(1px)}
.turn-page.flip-previous.is-turning{animation:zdlFlipPrevious 1.06s cubic-bezier(.22,.61,.28,1) forwards}
@keyframes zdlFlipNext{
  0%{transform:rotateY(0deg) translateX(0) scaleX(1) skewY(0deg);filter:brightness(1);box-shadow:0 0 0 #0000}
  18%{transform:rotateY(-22deg) translateX(-2px) scaleX(.995) skewY(.12deg);filter:brightness(.99);box-shadow:10px 3px 18px #00000020}
  43%{transform:rotateY(-72deg) translateX(-5px) scaleX(.982) skewY(.28deg);filter:brightness(.92);box-shadow:22px 5px 28px #00000038}
  58%{transform:rotateY(-102deg) translateX(-5px) scaleX(.978) skewY(-.22deg);filter:brightness(.84);box-shadow:20px 4px 27px #00000042}
  82%{transform:rotateY(-155deg) translateX(-2px) scaleX(.992) skewY(-.08deg);filter:brightness(.78);box-shadow:8px 2px 16px #00000028}
  100%{transform:rotateY(-179deg) translateX(0) scaleX(1) skewY(0deg);filter:brightness(.75);box-shadow:0 0 0 #0000}
}
@keyframes zdlFlipPrevious{
  0%{transform:rotateY(-179deg) translateX(0) scaleX(1) skewY(0deg);filter:brightness(.75);box-shadow:0 0 0 #0000}
  18%{transform:rotateY(-155deg) translateX(-2px) scaleX(.992) skewY(-.08deg);filter:brightness(.79);box-shadow:8px 2px 16px #00000028}
  42%{transform:rotateY(-102deg) translateX(-5px) scaleX(.978) skewY(-.22deg);filter:brightness(.85);box-shadow:20px 4px 27px #00000042}
  57%{transform:rotateY(-72deg) translateX(-5px) scaleX(.982) skewY(.28deg);filter:brightness(.93);box-shadow:22px 5px 28px #00000038}
  82%{transform:rotateY(-22deg) translateX(-2px) scaleX(.995) skewY(.12deg);filter:brightness(.99);box-shadow:10px 3px 18px #00000020}
  100%{transform:rotateY(0deg) translateX(0) scaleX(1) skewY(0deg);filter:brightness(1);box-shadow:0 0 0 #0000}
}
@media(max-width:620px){.pdf-page{max-width:calc(100vw - 26px);max-height:calc(100vh - 132px)}.book-stage{padding:12px}.reader-foot{gap:8px}.reader-foot .reader-btn{padding:8px 10px}}
@media(max-width:620px){.book-frame .turn-page:not([hidden]){display:block}}


/* ZDL v1.0.3 — PageFlip paper-style viewer (same engine/feel as modul.php) */
.book-stage{
  perspective:2200px;
  perspective-origin:50% 48%;
  overflow:hidden;
}
.zdl-flipbook{
  transform-style:preserve-3d;
  margin:auto;
}
.zdl-flipbook .zdl-page{
  background:#fff;
  overflow:hidden;
  backface-visibility:hidden;
}
.zdl-flipbook .zdl-page[data-density="soft"]{
  box-shadow:inset 0 0 18px rgba(0,0,0,.025);
}
.zdl-pdf-page{
  display:block;
  width:100%;
  height:100%;
  background:#fff;
  transition:filter 1.05s cubic-bezier(.22,.61,.36,1);
}
.zdl-flipbook.is-turning .zdl-pdf-page{
  filter:brightness(.985) contrast(.995);
}
.stf__item{
  will-change:transform;
}
.stf__block{
  filter:drop-shadow(0 14px 22px rgba(0,0,0,.08));
}
.reader-foot #pageStatus{
  min-width:120px;
  text-align:center;
}
.reader-btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
@media(max-width:620px){
  .book-stage{padding:12px}
  .reader-foot{gap:8px}
  .reader-foot .reader-btn{padding:8px 10px}
}
@media(prefers-reduced-motion:reduce){
  .zdl-pdf-page{transition:none}
}

/* ============================================================
   RESOS4U v2.0.0 — public branding, PDF thumbnails & flipbook
   ============================================================ */
.brand-logo-slot{
  width:58px;height:58px;flex:0 0 58px;border-radius:14px;
  display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(145deg,#eef6ff,#e7f6ec);
  border:1px dashed #8ba8c6;
  box-shadow:0 5px 16px #173b6312;
}
.brand-logo-slot img{width:100%;height:100%;object-fit:contain;padding:5px;background:#fff}
.brand-logo-placeholder{font:800 16px Arial,Helvetica,sans-serif;letter-spacing:-.04em;color:#0b4d87}
.brand{line-height:1.15}.brand small{margin-bottom:3px}.brand strong{display:block;font:800 23px Arial,Helvetica,sans-serif;letter-spacing:-.025em;color:#092a50}
.brand-tagline{display:block;margin-top:4px;font-size:11px;color:#328051;font-weight:700;letter-spacing:.02em}

/* First-page PDF thumbnail */
.cover.pdf-thumb{
  height:220px;padding:0;display:grid;place-items:center;
  background:linear-gradient(145deg,#e9eef5,#dce6f1);
  position:relative;overflow:hidden;text-decoration:none;
}
.pdf-thumb-canvas{
  display:block;max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;background:#fff;box-shadow:0 9px 24px #102b4c33;
  transition:transform .28s ease;
}
.material-card:hover .pdf-thumb-canvas{transform:scale(1.018)}
.pdf-thumb.thumb-landscape .pdf-thumb-canvas{width:94%;height:auto;max-height:88%}
.pdf-thumb.thumb-portrait .pdf-thumb-canvas{height:94%;width:auto;max-width:88%}
.thumb-loading{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;color:#60748b;font-size:11px;background:linear-gradient(145deg,#f5f8fb,#e8eef5)}
.thumb-spinner{width:24px;height:24px;border-radius:50%;border:3px solid #c8d5e3;border-top-color:#1760a7;animation:r4uSpin .8s linear infinite}
@keyframes r4uSpin{to{transform:rotate(360deg)}}
.thumb-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;background:linear-gradient(145deg,#123961,#0f6d78);color:white}
.thumb-fallback strong{font:800 32px Arial}.thumb-fallback span{font-size:11px;letter-spacing:.15em}
.thumb-course{position:absolute;left:11px;bottom:10px;padding:5px 8px;border-radius:6px;background:#061b3bcc;color:white;font-size:10px;font-weight:800;letter-spacing:.08em;backdrop-filter:blur(4px)}

.footer-grid{gap:28px}.footer strong{font-family:Arial,Helvetica,sans-serif;font-weight:800}.footer small{line-height:1.6}

/* RESOS4U embedded flipbook */
.reader{background:#061225}
.reader-bar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
.book-stage{position:relative;perspective:2400px;perspective-origin:50% 48%;overflow:hidden;padding:18px;background:radial-gradient(circle at 50% 38%,#2b466d,#071225 70%)}
.zdl-flipbook{transform-style:preserve-3d;margin:auto;max-width:100%;max-height:100%}
.zdl-flipbook .zdl-page{background:#fff;overflow:hidden;backface-visibility:hidden}
.zdl-flipbook .zdl-page[data-density="soft"]{box-shadow:inset 0 0 18px rgba(0,0,0,.025)}
.zdl-pdf-page{display:block;width:100%;height:100%;object-fit:contain;background:#fff;transition:filter 1.05s cubic-bezier(.22,.61,.36,1)}
.zdl-flipbook.is-turning .zdl-pdf-page{filter:brightness(.985) contrast(.995)}
.stf__item{will-change:transform}.stf__block{filter:drop-shadow(0 14px 24px rgba(0,0,0,.14))}
.orientation-badge{position:absolute;top:12px;right:14px;z-index:8;padding:5px 9px;border-radius:999px;background:#061b3b9e;border:1px solid #ffffff22;color:#cfe0f4;font-size:10px;text-transform:uppercase;letter-spacing:.1em;backdrop-filter:blur(7px);pointer-events:none}
.reader-foot #pageStatus{min-width:130px;text-align:center;font-size:12px;color:#cbd9ea}.reader-btn:disabled,.reader-float-btn:disabled{opacity:.38;cursor:not-allowed}
.reader-floating-controls{display:none}

/* PDF page orientation tuning */
.reader[data-orientation="landscape"] .book-stage{padding:14px}
.reader[data-orientation="landscape"] .stf__parent{max-width:96vw!important}
.reader[data-orientation="portrait"] .stf__parent{max-height:calc(100vh - 138px)!important}

/* Smartphone/tablet: user may enter/leave immersive full-page mode */
.mobile-view-btn{display:none}
@media(max-width:1024px){
  .mobile-view-btn{display:inline-flex}
  .reader-bar{gap:8px;min-height:58px;padding-top:max(8px,env(safe-area-inset-top))}
  .reader-title span{display:none}
  .reader-btn{padding:8px 10px}
  .book-stage{padding:10px}
  .reader-foot{min-height:50px;padding-bottom:max(0px,env(safe-area-inset-bottom))}
  .reader[data-orientation="landscape"] .zdl-flipbook{width:min(96vw,100%)}
}
@media(max-width:620px){
  .reader-bar .reader-btn span{display:none}
  .reader-title strong{font-size:12px}
  .orientation-badge{top:7px;right:8px}
  .reader-foot .nav-page-btn span{display:none}
  .reader-foot #pageStatus{min-width:112px}
}

.reader.is-fullpage .reader-bar,
.reader.is-fullpage .reader-foot{display:none}
.reader.is-fullpage .book-stage{position:absolute;inset:0;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#031022}
.reader.is-fullpage .orientation-badge{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}
.reader.is-fullpage .reader-floating-controls{display:flex;position:fixed;z-index:70;left:50%;bottom:max(14px,calc(env(safe-area-inset-bottom) + 8px));transform:translateX(-50%);gap:10px;padding:7px;border-radius:999px;background:#06152dc9;border:1px solid #ffffff1c;backdrop-filter:blur(9px);box-shadow:0 10px 30px #0006}
.reader-float-btn{width:42px;height:42px;border-radius:50%;border:1px solid #ffffff28;background:#ffffff12;color:#fff;font-size:25px;line-height:1;display:grid;place-items:center}
.reader-float-btn:hover{background:#ffffff20}

@media(prefers-reduced-motion:reduce){.zdl-pdf-page,.pdf-thumb-canvas{transition:none}.thumb-spinner{animation:none}}

/* RESOS4U v2.1.0 — manual cover thumbnails + logo uploader */
.manual-thumb-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;background:#eef3f7;z-index:1;transition:transform .28s ease}
.material-card:hover .manual-thumb-image{transform:scale(1.018)}
.pdf-thumb.has-manual-thumb{padding:0;background:#eef3f7}
.pdf-thumb.has-manual-thumb:after{z-index:2;opacity:.08}
.pdf-thumb.has-manual-thumb .thumb-course{z-index:3}
.thumbnail-admin-box{border:1px solid #dbe4ee;border-radius:10px;padding:16px;background:#f8fafc;display:grid;gap:14px}
.admin-thumb-current{display:flex;align-items:flex-start;gap:15px;flex-wrap:wrap}
.admin-thumb-current img{width:180px;max-height:135px;object-fit:cover;border:1px solid #d5deea;border-radius:8px;background:white;box-shadow:0 7px 18px #15315312}
.admin-thumb-current label{font-size:12px;color:#526278;padding-top:4px}
.branding-panel{max-width:760px}
.branding-preview{display:flex;align-items:center;gap:18px;padding:16px;margin-bottom:18px;border:1px solid #e1e8ef;border-radius:10px;background:#f8fafc}
.admin-brand-logo-preview{width:130px;height:82px;flex:0 0 130px}
.brand-mark.has-logo{clip-path:none;background:white;border-radius:7px;padding:4px;overflow:hidden}
.brand-mark.has-logo img{width:100%;height:100%;object-fit:contain;display:block}
@media(max-width:620px){.admin-thumb-current img{width:145px}.branding-preview{align-items:flex-start}.admin-brand-logo-preview{width:100px;height:70px;flex-basis:100px}}


/* RESOS4U v2.2.0 — wide logo + multimedia library */
.nav-row .brand-logo-slot{width:220px;height:74px;flex:0 0 220px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;padding:0;display:flex;align-items:center}
.nav-row .brand-logo-slot img{width:100%;height:100%;object-fit:contain;object-position:left center;padding:0;background:transparent;display:block}
.nav-row .brand-logo-placeholder{width:100%;height:100%;display:grid;place-items:center;border:1px dashed #8ba8c6;border-radius:10px;background:#fff}
.nav-row{justify-content:space-between}.nav-links{margin-left:auto}
.media-thumb{position:relative}.thumb-type{position:absolute;right:10px;bottom:10px;z-index:5;background:#ffffffee;color:#08244e;border-radius:999px;padding:5px 9px;font:800 10px Arial;letter-spacing:.04em;box-shadow:0 4px 12px #0002}
.youtube-thumb{object-position:center}.play-badge{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#e62117;color:#fff;font-size:22px;padding-left:3px;box-shadow:0 7px 22px #0005}
.media-fallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:8px;background:linear-gradient(145deg,#123c69,#147d77);color:#fff}.media-fallback strong{font:800 29px Arial}.media-fallback span{font-size:12px;letter-spacing:.08em}
.embedded-media-stage{flex:1;min-height:0;background:#101722;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;overflow:auto}.embedded-media-frame{width:min(1180px,96vw);display:flex;align-items:center;justify-content:center;border-radius:12px;overflow:hidden;background:#000;box-shadow:0 18px 55px #0008}.video-frame{aspect-ratio:16/9}.video-frame iframe,.video-frame video{width:100%;height:100%;border:0;display:block;background:#000}.image-frame{background:#111;min-height:50vh}.image-frame img{max-width:100%;max-height:calc(100vh - 160px);width:auto;height:auto;display:block;object-fit:contain}.media-description{width:min(980px,94vw);margin:16px auto 0;color:#d8e1ec;background:#182230;border:1px solid #ffffff18;border-radius:10px;padding:14px 16px;line-height:1.55}.media-reader.is-fullpage .embedded-media-stage{padding:8px}.media-reader.is-fullpage .embedded-media-frame{width:100%;max-width:none;border-radius:0}.media-reader.is-fullpage .video-frame{height:calc(100vh - 60px);aspect-ratio:auto}.media-reader.is-fullpage .image-frame img{max-height:calc(100vh - 70px)}
@media(max-width:900px){.nav-row .brand-logo-slot{width:180px;height:60px;flex-basis:180px}}
@media(max-width:640px){.nav-row .brand-logo-slot{width:150px;height:50px;flex-basis:150px}.embedded-media-stage{padding:10px}.media-description{font-size:13px}.video-frame{width:100vw;border-radius:0}}
