:root{--bg:#fbfaf8;--card:#fff;--ink:#241f2b;--muted:#6d6572;--accent:#6b3fa0;--line:#e9e2ec}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6}
a{color:var(--accent)}.site-header{display:flex;justify-content:space-between;align-items:center;padding:18px 5vw;background:var(--header-bg);border-bottom:1px solid var(--header-border);position:sticky;top:0;z-index:10}
.brand{text-decoration:none;font-weight:800;font-size:1.25rem;color:var(--brand-text)}.site-header nav{display:flex;gap:18px;flex-wrap:wrap}.site-header nav a{text-decoration:none;color:var(--menu-text);padding:7px 9px;border-radius:8px;transition:color .15s ease,background .15s ease}
.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--menu-hover);background:color-mix(in srgb,var(--menu-hover) 12%,transparent)}
main{min-height:75vh}.hero{padding:9vw 7vw;background:linear-gradient(135deg,#f3eafa,#fff);min-height:55vh;display:grid;align-items:center}.hero>div{max-width:780px}.hero h1{font-size:clamp(2.4rem,6vw,5rem);line-height:1.05;margin:.2em 0}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--accent)}.section{padding:64px 6vw}.narrow{max-width:860px;margin:auto}.book-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,290px));
  gap:30px;
  justify-content:start;
  align-items:start;
}
.book-card{
  width:100%;
  max-width:290px;
  background:var(--card);
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 10px 30px rgba(38,24,54,.08);
  overflow:hidden;
}.book-card img{
  display:block;
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  object-position:center;
  border-radius:12px;
  background:#eee9f2;
}
.button{display:inline-flex;border:0;border-radius:999px;padding:12px 20px;background:var(--accent);color:white;text-decoration:none;font-weight:700;cursor:pointer}.button.secondary{background:white;color:var(--accent);border:1px solid var(--accent)}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px}.book-detail{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:56px;max-width:1100px;margin:auto}.cover-large{width:100%;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.18)}
.metadata{display:grid;grid-template-columns:150px 1fr;gap:8px 18px}.metadata dt{font-weight:700}.metadata dd{margin:0}.form{display:grid;gap:16px}.form label{display:grid;gap:6px;font-weight:700}.form input,.form textarea{width:100%;padding:12px;border:1px solid #cfc5d3;border-radius:10px;font:inherit}.check{grid-template-columns:auto 1fr!important;align-items:center}
.flash{margin:20px auto;padding:14px;max-width:900px;border-radius:10px}.success{background:#e6f7e9}.error{background:#fde7e7}.reader-shell{max-width:980px;margin:auto;padding:20px}.reader-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;position:sticky;top:75px;background:var(--bg);padding:12px;border-bottom:1px solid var(--line)}
.reader-content{font-family:Georgia,serif;font-size:19px;line-height:1.85;background:#fff;padding:clamp(24px,6vw,80px);box-shadow:0 10px 35px rgba(0,0,0,.08);min-height:70vh}.sample-end{text-align:center;padding:50px}
.dark-reader{background:#18151c;color:#eee}.dark-reader .reader-content{background:#211d27;color:#f5f0f8}.cart-row,.title-row{display:flex;justify-content:space-between;gap:20px;align-items:center}.cart-row{padding:14px 0;border-bottom:1px solid var(--line)}.total{font-size:1.2rem}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin:12px 0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}.stat{background:#fff;border:1px solid var(--line);padding:25px;border-radius:16px;display:grid}.stat strong{font-size:2rem}.muted{color:var(--muted);font-size:.95rem}footer{text-align:center;padding:35px;border-top:1px solid var(--line)}
@media(max-width:800px){.site-header{align-items:flex-start;flex-direction:column}.site-header nav{gap:10px;font-size:.92rem}.book-detail{grid-template-columns:1fr}.cover-large{max-width:340px}.reader-toolbar{top:116px;flex-wrap:wrap}}

.secret-key{font-family:ui-monospace,monospace;font-size:1.25rem;letter-spacing:.12em;word-break:break-all;background:#f3eef6;padding:14px;border-radius:10px}.break-all{word-break:break-all}.recovery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.recovery-grid code{background:#fff;border:1px solid var(--line);padding:12px;border-radius:8px;text-align:center;font-size:1rem}

.maintenance-page{min-height:75vh;display:grid;place-items:center;padding:40px;background:linear-gradient(135deg,#f3eafa,#fff)}.maintenance-card{max-width:760px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(30px,6vw,70px);text-align:center;box-shadow:0 20px 60px rgba(60,35,80,.12)}.form select{width:100%;padding:12px;border:1px solid #cfc5d3;border-radius:10px;font:inherit}

.payment-total{float:right;font-size:1.25rem;font-weight:800}#checkout{min-height:520px;margin-top:20px}

.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.footer-links a{color:var(--muted)}

.site-logo{max-height:48px;max-width:220px;display:block}
.settings-grid{display:block}
.settings-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.settings-column{display:grid;gap:22px;align-content:start;min-width:0}
.settings-column .panel{margin:0}
.settings-grid>.button{margin-top:22px}
@media(max-width:1100px){
  .settings-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-column-design{grid-column:1/-1}
}
@media(max-width:720px){
  .settings-columns{grid-template-columns:1fr}
  .settings-column-design{grid-column:auto}
}
.settings-preview{max-width:240px;border-radius:14px;margin-top:12px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:24px}
.media-card{display:grid;gap:10px;background:#fff;border:1px solid var(--line);padding:16px;border-radius:14px}
.media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.media-card code{font-size:.75rem;word-break:break-all}
.file-placeholder{display:grid;place-items:center;aspect-ratio:4/3;background:#eee;border-radius:8px;font-weight:800}
.button.danger{background:#a12f3b}

.toc{max-width:1100px;margin:45px auto 0}
.toc ol{columns:2;column-gap:40px}
.toc li{break-inside:avoid;margin-bottom:6px}
.import-info{background:#f7f1fb}
.sample-chapter{margin-bottom:3rem}
@media(max-width:700px){.toc ol{columns:1}}

.full-reader{display:grid;grid-template-columns:300px 1fr;min-height:100vh;background:#f2eef4}
.reader-sidebar{background:#211d27;color:#fff;padding:18px;overflow:auto;position:sticky;top:0;height:100vh}
.reader-side-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}
.reader-sidebar a{display:block;color:#f4eef7;text-decoration:none;padding:8px 10px;border-radius:8px}
.reader-sidebar a:hover,.reader-sidebar a.active{background:rgba(255,255,255,.12)}
.chapter-list{display:grid;gap:3px}
.reader-search{display:grid;gap:6px;margin-bottom:15px}
.reader-search input{padding:10px;border:0;border-radius:8px}
.reader-search-results{display:grid;gap:8px;margin-bottom:18px}
.reader-search-results a{background:rgba(255,255,255,.08)}
.reader-search-results span{display:block;font-size:.82rem;opacity:.8;margin-top:3px}
.reader-main{min-width:0}
.reader-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;position:sticky;top:0;z-index:12;padding:10px 16px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.reader-topbar-left,.reader-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.reader-controls{justify-content:flex-end}
.reader-controls button,.reader-controls select,.icon-button{border:1px solid #d7cddb;background:#fff;border-radius:8px;padding:7px 9px;cursor:pointer}
.reader-topbar-center{text-align:center;display:grid;font-size:.9rem}
.reader-topbar-center span{color:var(--muted)}
.reader-progress-track{height:4px;background:#ddd;position:sticky;top:61px;z-index:11}
.reader-progress-track div{height:100%;width:0;background:var(--accent);transition:width .2s}
.full-reader-content{max-width:820px;margin:35px auto;padding:clamp(30px,6vw,75px);border-radius:14px;box-shadow:0 15px 45px rgba(0,0,0,.08)}
.full-reader-content.theme-light{background:#fff;color:#211f23}
.full-reader-content.theme-sepia{background:#f4ecd8;color:#3c3025}
.full-reader-content.theme-dark{background:#211d27;color:#f6f0f8}
.full-reader-content.font-serif{font-family:Georgia,"Times New Roman",serif}
.full-reader-content.font-sans{font-family:Arial,Helvetica,sans-serif}
.full-reader-content.font-dyslexic{font-family:Verdana,Tahoma,sans-serif;letter-spacing:.025em}
.reader-navigation{max-width:820px;margin:0 auto 50px;display:flex;justify-content:space-between;gap:16px;align-items:center}
.reader-body-dark{background:#17141b}
.mini-progress{height:7px;background:#e5dde8;border-radius:999px;overflow:hidden;margin-top:12px}
.mini-progress span{display:block;height:100%;background:var(--accent)}
@media(max-width:1000px){
  .full-reader{grid-template-columns:1fr}
  .reader-sidebar{position:fixed;left:-330px;top:0;width:300px;z-index:50;transition:left .2s}
  .reader-sidebar.open{left:0}
  .reader-topbar{grid-template-columns:1fr}
  .reader-topbar-center{text-align:left}
  .reader-controls{justify-content:flex-start}
  .reader-progress-track{top:142px}
}
@media(max-width:600px){
  .full-reader-content{margin:12px;padding:24px 20px}
  .reader-navigation{padding:0 12px;flex-wrap:wrap}
}

.report-table{width:100%;border-collapse:collapse}.report-table th,.report-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.inline-form input{max-width:140px;padding:8px;border:1px solid var(--line);border-radius:8px}

.readiness-summary{padding:18px;border-radius:14px;margin:22px 0;font-size:1.15rem}
.status-ok{--status:#17713a}.status-warning{--status:#9a6a00}.status-fail{--status:#a72b36}
.readiness-summary.status-ok{background:#e5f6ea;color:#145d31}
.readiness-summary.status-warning{background:#fff3cf;color:#765000}
.readiness-summary.status-fail{background:#ffe5e7;color:#7d1b23}
.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.health-card{display:flex;gap:15px;background:#fff;border:1px solid var(--line);border-left:6px solid var(--status);border-radius:14px;padding:18px}
.health-card h2{font-size:1.05rem;margin:0}.health-card p{margin:.35rem 0 0}.health-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:var(--status);color:#fff;font-weight:900}
.checklist{display:grid;gap:10px}.checklist label{display:flex;gap:10px;align-items:center;font-weight:600}

.twofa-qr-wrap{text-align:center;margin:20px 0}.twofa-qr{display:block;width:min(300px,100%);height:auto;margin:0 auto 12px;background:#fff;padding:10px;border:1px solid var(--line);border-radius:14px;image-rendering:pixelated}

/* Luna CMS adminområde */
.admin-body{margin:0;background:#f3f5f8;color:#1e2430;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.admin-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}
.admin-sidebar{background:#172033;color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}
.admin-brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;padding:8px;margin-bottom:22px}
.admin-brand img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:10px;padding:4px}
.admin-brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#8a5cc4;font-weight:900}
.admin-brand span:last-child{display:grid}.admin-brand small{color:#aeb8cb;font-weight:500}
.admin-nav{display:grid;gap:4px}.admin-nav a{color:#dce3ef;text-decoration:none;padding:10px 12px;border-radius:9px}.admin-nav a:hover{background:#26334b;color:#fff}
.admin-nav-heading{color:#8390a7;text-transform:uppercase;font-size:.72rem;font-weight:800;letter-spacing:.12em;padding:18px 12px 5px}
.admin-workspace{min-width:0}.admin-topbar{height:68px;background:#fff;border-bottom:1px solid #dde2e9;display:flex;align-items:center;gap:18px;padding:0 28px;position:sticky;top:0;z-index:20}
.admin-menu-toggle{display:none;border:0;background:none;font-size:1.4rem}.admin-back{font-weight:750;text-decoration:none;color:#4e3b69}.admin-top-actions{margin-left:auto;display:flex;gap:18px;align-items:center}.admin-top-actions a{text-decoration:none;color:#4e3b69}
.admin-content{padding:30px;max-width:1450px;width:100%;margin:auto}.admin-content>.section{padding:0}.admin-content .panel,.admin-form-card{background:#fff;border:1px solid #dde2e9;border-radius:15px;box-shadow:0 5px 18px rgba(31,40,58,.05)}
.admin-page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.admin-page-heading h1{margin:.15em 0}.admin-kicker{margin:0;color:#77529f;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:850}
.admin-form-card{padding:25px;max-width:900px}.admin-image-preview{display:grid;gap:8px}.admin-image-preview img{max-width:520px;width:100%;border-radius:12px;border:1px solid #dde2e9}.admin-image-preview span{color:#667085;font-size:.9rem}
.admin-content .stats{grid-template-columns:repeat(4,minmax(150px,1fr))}.admin-content .stat{border-radius:15px;box-shadow:none}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:fixed;left:-290px;width:270px;z-index:50;transition:left .2s}.admin-sidebar.open{left:0}.admin-menu-toggle{display:block}.admin-content{padding:18px}.admin-topbar{padding:0 15px}.admin-top-actions span{display:none}.admin-content .stats{grid-template-columns:repeat(2,minmax(130px,1fr))}}


/* Sikker adgang før adminpanelet vises */
.admin-auth-body{min-height:100vh;margin:0;background:linear-gradient(135deg,#211d27,#5f3a78);display:grid;place-items:center;padding:24px}
.admin-auth-shell{width:min(680px,100%)}
.admin-auth-brand{display:flex;align-items:center;justify-content:center;gap:13px;color:#fff;margin-bottom:18px;text-align:left}
.admin-auth-brand img{max-height:54px;max-width:190px;object-fit:contain}
.admin-auth-brand>div{display:grid}.admin-auth-brand small{opacity:.72}
.admin-auth-card{background:#fff;border-radius:22px;padding:clamp(22px,5vw,44px);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.admin-auth-card .section{padding:0}.admin-auth-card .narrow{max-width:none;margin:0}
.admin-auth-card .panel{box-shadow:none}

.color-setting{display:grid;grid-template-columns:58px minmax(130px,1fr);gap:10px;align-items:center}
.color-setting input[type="color"]{width:58px;height:44px;padding:3px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.color-setting input[type="text"]{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}


.author-intro-card{
  display:grid;
  grid-template-columns:minmax(180px,280px) 1fr;
  gap:clamp(24px,5vw,56px);
  align-items:center;
  padding:clamp(24px,5vw,52px);
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,#fff),#fff);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:0 18px 45px rgba(43,34,56,.08);
}
.author-intro-image{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center;
  border-radius:20px;
  box-shadow:0 14px 35px rgba(35,25,55,.18);
}
.author-intro-content p{max-width:660px}
.author-page-profile{
  display:grid;
  grid-template-columns:minmax(220px,340px) 1fr;
  gap:clamp(28px,6vw,70px);
  align-items:start;
}
.author-page-image{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center;
  border-radius:22px;
  box-shadow:0 18px 45px rgba(35,25,55,.18);
}
.author-page-content h1{margin-top:.15rem}
@media(max-width:760px){
  .author-intro-card,.author-page-profile{grid-template-columns:1fr}
  .author-intro-image,.author-page-image{max-width:360px;margin-inline:auto}
}


/* Version 1.0.17: dynamisk udseende */
.site-header{
  min-height:var(--header-height);
  border-bottom-width:var(--header-border-width);
  padding-inline:max(20px,calc((100vw - var(--content-max-width))/2));
}
.has-sticky-header .site-header{position:sticky;top:0;z-index:40}
.has-header-shadow .site-header{box-shadow:0 8px 28px rgba(28,18,45,.14)}
.site-header .brand{display:flex;align-items:center;flex:0 0 auto;max-width:none}
.site-header .site-logo{display:block;width:var(--logo-width-desktop);max-width:none;max-height:none;height:auto;object-fit:contain}
.site-header nav{font-size:var(--menu-font-size);gap:var(--menu-gap);flex:1}
.logo-align-left .brand{justify-self:start}
.logo-align-center .brand{justify-self:center}
.logo-align-right .brand{justify-self:end}
.menu-align-left .site-header nav{justify-content:flex-start}
.menu-align-center .site-header nav{justify-content:center}
.menu-align-right .site-header nav{justify-content:flex-end}
.button,.reader-controls button,.reader-controls select{border-radius:var(--button-radius)}
main>.section,main>.hero,footer>*{max-width:var(--content-max-width);margin-inline:auto}

@media(max-width:760px){
  .site-header .site-logo{width:var(--logo-width-mobile);max-width:none;max-height:none}
}

/* Faner og udseendepanel */
.settings-tabs-form{display:block}
.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0;border-bottom:1px solid var(--line);padding-bottom:10px}
.settings-tab{border:0;background:#eee8f1;color:#403448;padding:10px 17px;border-radius:999px;font:inherit;font-weight:750;cursor:pointer}
.settings-tab:hover{background:#e2d8e7}
.settings-tab.active{background:var(--admin-accent,#7a4aa0);color:#fff}
.settings-tab-panel{display:none}
.settings-tab-panel.active{display:block}
.settings-savebar{display:flex;gap:12px;align-items:center;position:sticky;bottom:0;margin-top:22px;padding:14px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:14px;box-shadow:0 -8px 28px rgba(30,20,40,.08);z-index:8}
.appearance-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:24px;align-items:start}
.appearance-controls{display:grid;gap:22px}
.appearance-controls .panel{margin:0}
.appearance-preview-panel{min-width:0}
.sticky-preview{position:sticky;top:85px}
.range-setting{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:12px;align-items:center}
.range-setting input[type="range"]{width:100%}
.range-setting output{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-align:right}
.settings-logo-preview{display:block;max-width:260px;max-height:120px;object-fit:contain;background:#f5f1f7;padding:10px;border-radius:10px}
.site-preview{overflow:hidden;border:1px solid #d9d0df;border-radius:14px;background:#fff;box-shadow:0 14px 35px rgba(40,25,55,.10)}
.site-preview-header{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:14px;align-items:center;padding:12px 16px;border-bottom-style:solid;border-bottom-width:1px}
.site-preview-brand{display:flex;align-items:center;min-width:0}
.site-preview-brand img{display:block;width:100%;height:auto;max-height:72px;object-fit:contain}
.site-preview-brand strong{font-size:1.05rem}
.site-preview nav{display:flex;align-items:center;flex-wrap:wrap}
.site-preview nav a{text-decoration:none}
.site-preview-body{padding:28px}
.site-preview-body h3{font-size:1.55rem;margin:.25rem 0}
.site-preview-body button{border:0;color:#fff;padding:10px 16px;font-weight:750}
@media(max-width:1050px){
  .appearance-layout{grid-template-columns:1fr}
  .sticky-preview{position:static}
}
@media(max-width:680px){
  .settings-tabs{display:grid;grid-template-columns:1fr 1fr}
  .appearance-preview-panel{display:none}
  .settings-savebar{flex-wrap:wrap}
}


/* Version 1.0.19: logo size without changing header structure */
.site-header nav{min-width:0}
@media(max-width:1100px) and (min-width:801px){
  .site-header .site-logo{width:min(var(--logo-width-desktop),32vw)}
}


.book-card h3{
  margin:16px 0 8px;
  font-size:1.2rem;
  line-height:1.25;
}
.book-card p{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.55;
}
.book-card .text-link{
  font-weight:750;
  text-decoration:none;
}
@media(max-width:680px){
  .book-grid{
    grid-template-columns:minmax(0,320px);
    justify-content:center;
  }
  .book-card{
    max-width:320px;
  }
}








/* Version 1.0.24: EPUB-læser med bogens egne XHTML- og CSS-filer */
.sample-reader-open{overflow:hidden}
.sample-reader-modal{
  width:min(1100px,96vw);
  max-width:none;
  height:min(850px,95vh);
  padding:0;
  border:0;
  border-radius:20px;
  background:transparent;
}
.sample-reader-modal::backdrop{
  background:rgba(18,12,28,.78);
  backdrop-filter:blur(5px);
}
.sample-reader-window{
  display:grid;
  grid-template-rows:auto 1fr auto;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:20px;
  background:#281a3b;
  box-shadow:0 28px 90px rgba(0,0,0,.42);
}
.sample-reader-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:14px 20px;
  color:#fff;
  background:#21152f;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.sample-reader-header h2{margin:0;font-size:1.15rem;color:inherit}
.sample-reader-kicker{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.72}
.reader-close-button{
  display:grid;
  place-items:center;
  min-width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:10px;
  color:#fff;
  background:rgba(255,255,255,.08);
  font-size:1.65rem;
  cursor:pointer;
}
.reader-close-button:hover{background:rgba(255,255,255,.16)}

.sample-book-stage{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 54px;
  gap:14px;
  align-items:center;
  min-height:0;
  padding:24px;
  background:
    radial-gradient(circle at center,rgba(255,255,255,.08),transparent 60%),
    #332246;
}
.epub-frame-shell{
  height:100%;
  min-height:0;
  overflow:hidden;
  border-radius:7px 15px 15px 7px;
  background:#fff;
  box-shadow:0 24px 58px rgba(0,0,0,.34);
  transform-origin:center;
}
.sample-epub-frame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.sample-page-arrow{
  width:48px;
  height:64px;
  border:0;
  border-radius:14px;
  color:#fff;
  background:rgba(255,255,255,.12);
  font-size:2.5rem;
  cursor:pointer;
}
.sample-page-arrow:hover:not(:disabled){background:rgba(255,255,255,.22)}
.sample-page-arrow:disabled{opacity:.25;cursor:not-allowed}
.sample-reader-footer{
  display:grid;
  grid-template-columns:auto minmax(120px,1fr) auto;
  gap:18px;
  align-items:center;
  padding:12px 20px;
  color:#fff;
  background:#21152f;
}
.sample-reader-progress{
  height:5px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(255,255,255,.17);
}
.sample-reader-progress span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:#c1a4ff;
  transition:width .25s ease;
}
.epub-frame-shell.turn-next{animation:epubTurnNext .32s ease}
.epub-frame-shell.turn-previous{animation:epubTurnPrevious .32s ease}
@keyframes epubTurnNext{
  0%{transform:perspective(1400px) rotateY(0);opacity:1}
  45%{transform:perspective(1400px) rotateY(-5deg);opacity:.62}
  100%{transform:perspective(1400px) rotateY(0);opacity:1}
}
@keyframes epubTurnPrevious{
  0%{transform:perspective(1400px) rotateY(0);opacity:1}
  45%{transform:perspective(1400px) rotateY(5deg);opacity:.62}
  100%{transform:perspective(1400px) rotateY(0);opacity:1}
}
@media(max-width:700px){
  .sample-reader-modal{width:100vw;height:100dvh;border-radius:0}
  .sample-reader-window{border-radius:0}
  .sample-book-stage{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;padding:10px 6px}
  .sample-page-arrow{width:36px;height:56px}
  .sample-reader-footer{grid-template-columns:1fr auto}
  .sample-reader-progress{grid-column:1/-1;grid-row:2}
}
\n/* Luna CMS 2.0 EPUB.js */\n.epub-modal{width:min(1200px,96vw);height:min(900px,95vh);padding:0;border:0;border-radius:18px;background:#1d1428}.epub-modal::backdrop{background:rgba(10,7,15,.78);backdrop-filter:blur(5px)}.epub-reader-app{height:100%;display:grid;grid-template-rows:auto 1fr auto}.epub-reader-bar,.epub-reader-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;background:#241832;color:#fff}.epub-reader-actions,.epub-toolbar-controls,.epub-toolbar-left{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.epub-reader-actions button,.epub-toolbar-controls button,.epub-toolbar-controls select{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:inherit;border-radius:9px;padding:8px 11px}.epub-viewer{min-width:0;min-height:0;background:#ddd}.epub-full-reader{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:auto 1fr auto;background:#25202b}.epub-full-toolbar,.epub-full-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 16px;color:#fff;background:#21172d}.epub-toolbar-left a{color:#fff}.epub-reader-body{position:relative;display:grid;grid-template-columns:0 1fr;min-height:0}.epub-toc{overflow:auto;background:#fff;width:0;transition:.2s}.epub-toc.open{width:min(340px,85vw);padding:18px;box-shadow:6px 0 22px rgba(0,0,0,.18);z-index:3}.epub-toc nav{display:grid}.epub-toc button{text-align:left;border:0;background:transparent;padding:8px;cursor:pointer}.epub-progress{height:5px;flex:1;max-width:600px;background:rgba(255,255,255,.18);border-radius:99px;overflow:hidden}.epub-progress span{display:block;height:100%;background:#b69cff;width:0}.sample-reader-open{overflow:hidden}@media(max-width:760px){.epub-full-toolbar{align-items:flex-start;flex-direction:column}.epub-modal{width:100vw;height:100dvh;border-radius:0}}\n

/* Luna CMS 2.1 – EPUB-import */
.epub-import-panel{border-left:5px solid var(--admin-accent,#7a4aa0)}
.epub-analysis-status{padding:12px 14px;border-radius:10px;font-weight:700}
.epub-analysis-status.working{background:#f0eaf6;color:#52336b}
.epub-analysis-status.success{background:#e7f6eb;color:#196137}
.epub-analysis-status.error{background:#ffe6e8;color:#8d1f2a}
.epub-analysis-result{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:22px;
  align-items:start;
  padding:18px;
  background:#f8f5fa;
  border:1px solid var(--line);
  border-radius:14px;
}
.epub-cover-preview,.existing-book-cover{
  display:block;
  width:100%;
  max-width:180px;
  aspect-ratio:2/3;
  object-fit:cover;
  border-radius:10px;
  box-shadow:0 10px 26px rgba(35,22,48,.16);
}
.epub-no-cover{
  display:grid;
  place-items:center;
  min-height:210px;
  padding:15px;
  text-align:center;
  background:#ede8f0;
  border:1px dashed #b7a9c1;
  border-radius:10px;
}
.epub-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:14px 0 0}
.epub-facts div{padding:10px;background:#fff;border-radius:9px}
.epub-facts dt{font-size:.78rem;color:var(--muted)}
.epub-facts dd{margin:3px 0 0;font-weight:800}
@media(max-width:620px){
  .epub-analysis-result{grid-template-columns:1fr}
  .epub-cover-preview{max-width:150px}
  .epub-facts{grid-template-columns:1fr}
}


/* Luna CMS 2.2 – forbedret EPUB-læser */
.epub-full-reader,
.epub-reader-app{
  --reader-toolbar:#21152f;
  --reader-surface:#2f2142;
  --reader-text:#fff;
}

.epub-full-reader{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  grid-template-rows:auto 1fr auto;
  min-height:100dvh;
  background:var(--reader-surface);
}

.epub-full-toolbar,
.epub-reader-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:64px;
  padding:10px 18px;
  color:#fff;
  background:var(--reader-toolbar);
}

.epub-toolbar-left,
.epub-toolbar-controls,
.epub-reader-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.epub-toolbar-left a{color:#fff;text-decoration:none}
.epub-toolbar-controls button,
.epub-reader-actions button,
.epub-toolbar-controls select,
.epub-reader-actions select{
  min-height:40px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9px;
  color:#fff;
  background:rgba(255,255,255,.08);
  font:inherit;
}

.reader-select-label{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.78rem;
}

.reader-select-label span{opacity:.75}

.epub-reader-body,
.epub-sample-body{
  position:relative;
  min-height:0;
  overflow:hidden;
  background:#e9e4ed;
}

.epub-viewer{
  width:100%;
  height:100%;
  min-height:0;
  background:#fff;
}

.epub-toc{
  position:absolute;
  z-index:20;
  top:0;
  bottom:0;
  left:0;
  width:min(360px,88vw);
  padding:0;
  overflow:auto;
  transform:translateX(-102%);
  transition:transform .22s ease;
  color:#2d2633;
  background:#fff;
  box-shadow:10px 0 30px rgba(24,16,33,.2);
}

.epub-toc.open{transform:translateX(0)}

.epub-toc-header{
  position:sticky;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px;
  background:#fff;
  border-bottom:1px solid #e5dfe8;
}

.epub-toc-header h2{margin:0}
.epub-toc-header button{border:0;background:transparent;font-size:1.5rem}

.epub-toc nav{display:grid;padding:10px}
.epub-toc nav button{
  width:100%;
  padding:10px 12px;
  border:0;
  border-radius:8px;
  text-align:left;
  color:#342a3c;
  background:transparent;
  cursor:pointer;
}
.epub-toc nav button:hover,
.epub-toc nav button.active{background:#eee7f4;color:#603a85}

.epub-edge-button{
  position:absolute;
  z-index:10;
  top:50%;
  width:48px;
  height:72px;
  transform:translateY(-50%);
  border:0;
  border-radius:12px;
  color:#fff;
  background:rgba(31,20,44,.6);
  font-size:2.4rem;
  cursor:pointer;
}
.epub-edge-prev{left:12px}
.epub-edge-next{right:12px}
.epub-edge-button:hover{background:rgba(31,20,44,.82)}

.epub-full-footer,
.epub-reader-footer{
  display:grid;
  grid-template-columns:auto minmax(120px,1fr) auto;
  gap:16px;
  align-items:center;
  min-height:52px;
  padding:10px 18px;
  color:#fff;
  background:var(--reader-toolbar);
}

.epub-progress{
  height:5px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.18);
}
.epub-progress span{
  display:block;
  width:0;
  height:100%;
  background:#c6a7ff;
  transition:width .25s ease;
}

.epub-modal{
  width:min(1200px,96vw);
  max-width:none;
  height:min(880px,95vh);
  padding:0;
  border:0;
  border-radius:18px;
  background:transparent;
}
.epub-modal::backdrop{
  background:rgba(15,10,22,.78);
  backdrop-filter:blur(4px);
}
.epub-reader-app{
  display:grid;
  grid-template-rows:auto 1fr auto;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:18px;
  background:var(--reader-surface);
}
.sample-reader-label{
  display:block;
  margin-bottom:2px;
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.7;
}

#epubReaderApp[data-reader-theme="dark"]{
  --reader-toolbar:#0f0d12;
  --reader-surface:#17131d;
}
#epubReaderApp[data-reader-theme="sepia"]{
  --reader-toolbar:#4b3827;
  --reader-surface:#d6c7ab;
}
#epubReaderApp[data-reader-theme="light"]{
  --reader-toolbar:#3d2e4d;
  --reader-surface:#ece8ef;
}

@media(max-width:900px){
  .reader-select-label span{display:none}
  .epub-toolbar-left strong{max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

@media(max-width:700px){
  .epub-full-toolbar,
  .epub-reader-bar{
    min-height:56px;
    padding:8px 10px;
  }

  .epub-toolbar-controls,
  .epub-reader-actions{
    gap:5px;
  }

  .epub-toolbar-controls button,
  .epub-reader-actions button,
  .epub-toolbar-controls select,
  .epub-reader-actions select{
    min-height:36px;
    padding:6px 8px;
  }

  .epub-toolbar-controls .reader-select-label:nth-of-type(2){
    display:none;
  }

  .epub-edge-button{
    width:38px;
    height:58px;
    font-size:2rem;
  }

  .epub-edge-prev{left:4px}
  .epub-edge-next{right:4px}

  .epub-full-footer,
  .epub-reader-footer{
    grid-template-columns:1fr auto;
    gap:8px;
    padding:8px 10px;
    font-size:.82rem;
  }

  .epub-progress{
    grid-column:1/-1;
    grid-row:2;
  }

  #epubChapterText{display:none}

  .epub-modal{
    width:100vw;
    height:100dvh;
    border-radius:0;
  }

  .epub-reader-app{border-radius:0}
}


/* Luna CMS 3.1.1 – tydelig fejlvisning i EPUB-læseren */
.epub-reader-error{
  display:grid;
  place-content:center;
  min-height:100%;
  padding:40px;
  text-align:center;
  color:#5c2630;
  background:#fff4f5;
}
.epub-reader-error strong{
  margin-bottom:8px;
  font-size:1.25rem;
}
.epub-reader-error p{
  margin:0;
  line-height:1.55;
}

.epub-toc-warning{padding:16px;color:#6f6478;line-height:1.5}
