/* FILE: /assets/css/books.css */
/* Version nettoyée — Books SCI VMA */

:root{
  --bg:#f7f4ee;
  --card:#ffffff;
  --text:#171717;
  --muted:#72717a;
  --line:#e8e1d6;
  --accent:#FC6413;
  --accent-soft:#fff0e8;
  --dark:#181818;
  --shadow:0 18px 50px rgba(20,20,20,.08);
}

*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
body{background:radial-gradient(circle at 0 0, rgba(252,100,19,.10), transparent 28%),var(--bg)}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
svg{width:20px;height:20px}

/* Layout */
.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;padding:24px;display:flex;flex-direction:column;gap:28px;background:rgba(255,255,255,.72);border-right:1px solid var(--line);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:46px;height:46px;border-radius:16px;background:var(--dark);color:#fff;display:grid;place-items:center;font-weight:900;font-size:22px}
.brand strong{display:block;font-size:18px}
.brand small{color:var(--muted)}
.side-nav{display:grid;gap:8px}
.side-nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;color:#3f3f46;font-weight:800}
.side-nav a:hover,.side-nav a.active{background:var(--accent-soft);color:var(--accent)}
.sidebar-user{margin-top:auto;display:flex;gap:12px;align-items:center;padding:14px;border-radius:18px;background:#fff;box-shadow:var(--shadow)}
.avatar{width:40px;height:40px;border-radius:14px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:900}
.sidebar-user strong{display:block}
.sidebar-user a{font-size:13px;color:var(--muted)}
.main{padding:28px 32px 96px;min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.eyebrow{margin:0 0 6px;color:var(--accent);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
h1{margin:0;font-size:clamp(28px,4vw,46px);line-height:1}

/* Common */
.btn{border:0;border-radius:999px;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#fff;color:var(--text);box-shadow:0 8px 24px rgba(0,0,0,.08);font-weight:900}
.btn.primary{background:var(--accent);color:#fff}
.btn.light{background:#fff;color:var(--dark)}
.btn.ghost{background:#fff;color:var(--text);box-shadow:none;border:1px solid var(--line)}
.btn.danger{background:#fee2e2;color:#991b1b;box-shadow:none;border:1px solid #fecaca}
.btn.large{width:100%;padding:15px 18px}
.round-link{width:44px;height:44px;flex:0 0 44px;border-radius:999px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px rgba(20,20,20,.06)}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 14px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.field{display:grid;gap:7px}
.field.full{grid-column:1 / -1}
.field label{font-weight:900;font-size:13px}
.field textarea{min-height:150px;resize:vertical}
.progress{height:6px;border-radius:999px;background:#eee7dd;overflow:hidden}
.progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}
.alert{padding:14px 16px;margin-bottom:16px;border-radius:18px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}

/* Home */
.mobile-search{display:none}
.hero-clean{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px;padding:34px;border-radius:34px;color:#fff;background:radial-gradient(circle at top right, rgba(252,100,19,.32), transparent 34%),linear-gradient(135deg,#181818,#30231b 62%,#4b260f);box-shadow:0 24px 70px rgba(0,0,0,.16)}
.hero-clean h2{max-width:760px;margin:0 0 10px;font-size:clamp(34px,5vw,64px);line-height:.92;letter-spacing:-.055em}
.hero-clean p{max-width:660px;margin:0;color:rgba(255,255,255,.72);font-size:17px;line-height:1.45}
.stats-clean{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.stats-clean div{padding:18px;border-radius:24px;background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:0 12px 34px rgba(20,20,20,.06)}
.stats-clean strong{display:block;font-size:32px;letter-spacing:-.04em}
.stats-clean span{font-size:14px;color:var(--muted)}
.filters-clean{display:grid;grid-template-columns:minmax(0,1fr) 170px 170px auto;gap:12px;padding:12px;margin-bottom:16px;border-radius:28px;background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:0 14px 42px rgba(20,20,20,.06)}
.search-box{display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.search-box svg{color:var(--muted);flex:0 0 auto}
.search-box input{border:0;padding:14px 0;background:transparent;box-shadow:none}
.search-box input:focus{box-shadow:none}
.chips-scroll,.category-scroll{display:flex;gap:9px;overflow:auto;padding:2px 0 12px;margin-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.chips-scroll::-webkit-scrollbar,.category-scroll::-webkit-scrollbar{display:none}
.chip,.cat-pill{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 13px;font-weight:800;color:#3f3f46}
.chip span,.cat-pill span{min-width:24px;height:24px;padding:0 8px;border-radius:999px;background:rgba(0,0,0,.06);display:grid;place-items:center;font-size:12px}
.chip.active,.cat-pill.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.chip.active span,.cat-pill.active span{background:rgba(255,255,255,.18)}
.section-title{margin:20px 0 12px}
.section-title h3{margin:0;font-size:26px;letter-spacing:-.035em}
.continue-clean{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:10px}
.continue-item{display:flex;gap:12px;align-items:center;padding:12px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 32px rgba(20,20,20,.06)}
.tiny-cover{width:54px;height:72px;border-radius:14px;background:linear-gradient(145deg,#27211d,#151515);color:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;font-weight:900}
.tiny-cover img{width:100%;height:100%;object-fit:cover}
.continue-item strong{display:block;font-size:14px;line-height:1.2;margin-bottom:4px}
.continue-item small{display:block;color:var(--muted);margin-bottom:7px}
.books-clean{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.book-clean{display:block;padding:12px;border-radius:30px;background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:0 15px 42px rgba(20,20,20,.07)}
.book-cover{display:grid;place-items:center;aspect-ratio:3/4;border-radius:23px;overflow:hidden;background:linear-gradient(145deg,#27211d,#151515);color:#fff;font-weight:900;font-size:24px}
.book-cover img{width:100%;height:100%;object-fit:cover}
.book-data{padding:13px 4px 3px;min-width:0}
.book-data h2{margin:0 0 6px;font-size:16px;line-height:1.22;letter-spacing:-.015em}
.book-data p{margin:0 0 10px;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-tags{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}
.book-tags span{padding:5px 8px;border-radius:999px;background:#f5f1ea}
.book-progress{margin-top:10px}
.book-actions{display:flex;gap:8px;margin-top:12px}
.read-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;background:var(--accent);color:#fff;padding:11px 12px;font-weight:900}
.more-button{width:44px;border-radius:999px;background:#fff;border:1px solid var(--line);display:grid;place-items:center}
.empty-clean{display:grid;place-items:center;text-align:center;gap:12px;padding:58px 24px;border-radius:34px;background:#fff;box-shadow:var(--shadow)}
.empty-clean svg{width:42px;height:42px;color:var(--accent)}
.empty-clean h2{margin:0}
.empty-clean p{margin:0;color:var(--muted)}

/* Item */
.mobile-item-header{display:none}
.item-mobile-first{display:grid;grid-template-columns:310px minmax(0,1fr);gap:34px;align-items:start;padding:28px;border-radius:36px;background:rgba(255,255,255,.82);border:1px solid var(--line);box-shadow:var(--shadow)}
.item-cover-mobile{aspect-ratio:3/4;border-radius:30px;overflow:hidden;background:linear-gradient(145deg,#27211d,#151515)}
.item-cover-mobile img{width:100%;height:100%;object-fit:cover}
.cover-fallback{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:#fff}
.cover-fallback strong{font-size:42px}
.cover-fallback span{line-height:1.25;color:rgba(255,255,255,.75)}
.item-main-info h2{margin:0 0 12px;font-size:clamp(36px,5vw,72px);line-height:.9;letter-spacing:-.06em}
.subtitle{font-size:18px;color:var(--muted);line-height:1.45}
.item-actions-primary{display:flex;gap:10px;margin:22px 0 14px}
.item-admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 14px}
.item-admin-actions form{margin:0}
.info-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.info-cards div{padding:16px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.info-cards span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.info-cards strong{font-size:15px}
.description-card{padding:20px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 34px rgba(20,20,20,.05)}
.description-card h3{margin:0 0 10px}
.description-card p{margin:0;color:#3f3f46;line-height:1.65}
.favorite-form{margin:0}
.favorite-btn.active{background:#fff0f3;color:#e11d48;border:1px solid #fecdd3;box-shadow:none}
.favorite-btn.active svg{fill:currentColor}

/* Forms */
.edit-card,.upload-card{padding:22px;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.edit-head,.upload-head{margin-bottom:22px}
.edit-head{display:flex;align-items:center;gap:14px}
.edit-head h2,.upload-head h2{margin:0 0 8px;font-size:34px;letter-spacing:-.04em}
.upload-head p{margin:0;color:var(--muted)}
.edit-form,.upload-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.edit-actions,.upload-actions{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap}
.upload-form .full{grid-column:1 / -1}
.upload-drop{position:relative}
.upload-drop label{min-height:170px;display:grid;place-items:center;text-align:center;gap:8px;padding:24px;border:2px dashed var(--line);border-radius:24px;background:var(--accent-soft);cursor:pointer}
.upload-drop label svg{width:42px;height:42px;color:var(--accent)}
.upload-drop label strong{font-size:20px}
.upload-drop label span{color:var(--muted)}
.upload-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.category-form{display:grid;grid-template-columns:minmax(0, 1fr) 120px auto;gap:14px;align-items:end}
.categories-admin-list{display:grid;gap:12px;margin-top:18px}
.category-admin-card{display:grid;grid-template-columns:minmax(0, 1fr) auto;gap:12px;align-items:center;padding:14px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 34px rgba(20,20,20,.05)}
.category-edit-form{display:grid;grid-template-columns:54px minmax(0, 1fr) 110px auto;gap:12px;align-items:end}
.category-icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:900;font-size:22px}
.category-name-field small{margin-top:4px;color:var(--muted);font-size:12px}
.small-field input{text-align:center}
.category-delete-form{margin:0}

/* Favorites */
.favorite-actions{align-items:center}
.favorite-actions form{margin:0}
.danger-icon{color:#991b1b;border-color:#fecaca;background:#fee2e2}

/* Login */
.login-page{min-height:calc(100vh - 160px);display:grid;place-items:center}
.login-card{width:min(100%, 520px);padding:28px;border-radius:32px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.login-brand h1{margin:0}
.login-intro{margin:0 0 22px;color:var(--muted);line-height:1.5}
.login-form{display:grid;gap:16px}

/* PDF reader */
.reader-mobile{display:grid;gap:12px}
.reader-top{position:sticky;top:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:24px;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 12px 34px rgba(20,20,20,.08);backdrop-filter:blur(16px)}
.reader-top div{min-width:0;text-align:center}
.reader-top strong{display:block;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.reader-top span{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}
.reader-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.saved-page{display:inline-flex;align-items:center;min-height:42px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:800}
.reader-frame{width:100%;height:calc(100vh - 175px);min-height:640px;border:0;border-radius:24px;background:#fff;box-shadow:var(--shadow)}

/* =========================
   Lecteur EPUB — Apple Books propre
   Remplace toutes les anciennes règles EPUB
========================= */

.apple-reader-pro{
  max-width:1500px;
  margin:0 auto;
  display:grid;
  gap:10px;
}

/* Barre titre */
.reader-pro-top{
  width:min(920px, 86vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 96px;
  align-items:center;
  gap:10px;
  padding:7px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(232,225,214,.88);
  box-shadow:0 12px 34px rgba(0,0,0,.06);
  backdrop-filter:blur(18px);
}

.reader-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:96px;
}

.reader-circle,
.reader-settings-btn,
.bookmark-main-btn{
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  flex:0 0 44px;
  padding:0;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(20,20,20,.06);
  line-height:1;
}

.reader-circle svg,
.reader-settings-btn svg,
.bookmark-main-btn svg,
.reader-pill svg,
.reader-mini-btn svg{
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  display:block;
  flex:0 0 20px;
}

.bookmark-main-btn.active{
  background:#eaf3ff;
  color:#0b7cff;
  border-color:#b9d7ff;
  animation:bookmarkPop .28s ease;
}

.bookmark-main-btn.active svg{
  fill:currentColor;
}

@keyframes bookmarkPop{
  0%{transform:scale(.9)}
  60%{transform:scale(1.12)}
  100%{transform:scale(1)}
}

.reader-pro-title{
  min-width:0;
  text-align:center;
  line-height:1.15;
}

.reader-pro-title strong{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:14px;
  font-weight:900;
}

.reader-pro-title span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}

/* Panneau préférences */
.reader-settings-panel{
  width:min(920px, 86vw);
  margin:0 auto;
  display:none;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:10px;
  align-items:center;
  padding:8px 10px;
  border-radius:24px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(232,225,214,.88);
  box-shadow:0 12px 34px rgba(0,0,0,.06);
}

.reader-settings-panel.open{
  display:grid;
}

.reader-setting-group{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:0;
}

.reader-setting-group:first-child{
  justify-content:flex-start;
}

.reader-setting-group span{
  display:inline-flex;
  align-items:center;
  height:40px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
  white-space:nowrap;
}

.reader-font-select{
  height:40px;
  min-height:40px;
  max-width:100%;
  padding:0 42px 0 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#0b7cff;
  font-weight:900;
  line-height:40px;
  box-shadow:none;
}

.reader-mini-btn{
  height:40px;
  min-height:40px;
  min-width:44px;
  padding:0 13px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#0b7cff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1;
  font-weight:900;
  box-shadow:none;
}

.reader-mini-btn.wide{
  min-width:auto;
  white-space:nowrap;
  padding:0 16px;
}

/* Barre navigation page */
.reader-pro-controls{
  width:min(860px, 86vw);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.reader-pill{
  height:42px;
  min-height:42px;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.90);
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1;
  font-weight:900;
  box-shadow:0 8px 24px rgba(20,20,20,.05);
}

.reader-pill.primary{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
}

/* Livre */
.reader-book-shell{
  position:relative;
  width:100%;
  max-width:1320px;
  height:calc(100vh - 132px);
  min-height:620px;
  margin:0 auto;
  border-radius:28px;
  background:
    linear-gradient(90deg, rgba(0,0,0,.055), transparent 5%, transparent 95%, rgba(0,0,0,.055)),
    #fffdf8;
  border:1px solid rgba(232,225,214,.9);
  box-shadow:
    0 28px 80px rgba(60,40,20,.16),
    inset 0 0 0 1px rgba(0,0,0,.035);
  overflow:hidden;
}

.reader-book-shell::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  background:linear-gradient(to bottom, transparent, rgba(0,0,0,.08), transparent);
  box-shadow:0 0 22px rgba(0,0,0,.14);
  pointer-events:none;
  z-index:4;
}

.reader-epub-viewer{
  width:100%;
  height:100%;
  background:#fffdf8;
  overflow:hidden;
}

.reader-epub-viewer iframe{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  border:0 !important;
}

.reader-epub-viewer img,
.reader-epub-viewer svg,
.reader-epub-viewer image{
  max-width:100% !important;
  height:auto !important;
}

.reader-page-zone{
  position:absolute;
  top:0;
  bottom:0;
  z-index:6;
  width:28%;
  border:0;
  background:transparent;
}

.reader-page-zone.left{left:0}
.reader-page-zone.right{right:0}

.reader-loading{
  min-height:80px;
  display:grid;
  place-items:center;
  text-align:center;
  color:var(--muted);
}

.reader-loading svg{
  width:42px;
  height:42px;
  color:var(--accent);
}

/* Signets */
.reader-bookmark-panel{
  position:fixed;
  top:0;
  right:0;
  z-index:80;
  width:min(420px,92vw);
  height:100vh;
  padding:18px;
  background:#fff;
  border-left:1px solid var(--line);
  box-shadow:-18px 0 60px rgba(0,0,0,.14);
  transform:translateX(110%);
  transition:transform .22s ease;
  overflow:auto;
}

.reader-bookmark-panel.open{
  transform:translateX(0);
}

.reader-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}

.reader-panel-head h3{
  margin:0;
  font-size:28px;
  letter-spacing:-.04em;
}

.reader-bookmark-list{
  display:grid;
  gap:10px;
}

.reader-bookmark-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:8px;
  align-items:center;
}

.reader-bookmark-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px;
  border-radius:18px;
  border:1px solid var(--line);
  background:#fff;
  text-align:left;
}

.reader-bookmark-item svg{
  color:var(--accent);
  flex:0 0 20px;
}

.reader-bookmark-item strong{display:block}

.reader-bookmark-item small{
  display:block;
  color:var(--muted);
  margin-top:3px;
}

.reader-bookmark-delete{
  width:44px;
  height:44px;
  border:1px solid #fecaca;
  border-radius:16px;
  background:#fee2e2;
  color:#991b1b;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

/* Fallback image EPUB */
.epub-image-fallback{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fffdf8;
  padding:12px;
  pointer-events:none;
  overflow:hidden;
}

.epub-image-fallback[hidden]{
  display:none !important;
}

.epub-image-fallback img{
  max-width:92% !important;
  max-height:92% !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
}

/* iPad / tablette paysage */
@media (min-width:900px) and (max-width:1180px){
  .reader-pro-top{
    width:86vw;
    grid-template-columns:44px minmax(0,1fr) 96px;
  }

  .reader-settings-panel{
    width:86vw;
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:8px;
  }

  .reader-setting-group{
    gap:7px;
  }

  .reader-setting-group span{
    font-size:11px;
    letter-spacing:.06em;
  }

  .reader-font-select{
    max-width:460px;
  }

  .reader-pro-controls{
    gap:8px;
  }

  .reader-pill{
    height:42px;
    min-height:42px;
    padding:0 16px;
  }

  .reader-mini-btn{
    height:40px;
    min-height:40px;
  }

  .reader-book-shell{
    height:calc(100vh - 150px);
  }
}

/* iPhone / petite largeur */
@media (max-width:899px){
  body{
    background:#f7f4ee !important;
  }

  .main{
    padding:6px !important;
  }

  .apple-reader-pro{
    gap:6px;
  }

  .reader-pro-top{
    width:100%;
    grid-template-columns:42px minmax(0,1fr) 90px;
    border-radius:18px;
    padding:6px 8px;
  }

  .reader-top-actions{
    min-width:90px;
    gap:6px;
  }

  .reader-circle,
  .reader-settings-btn,
  .bookmark-main-btn{
    width:42px;
    height:42px;
    min-width:42px;
    min-height:42px;
    flex-basis:42px;
  }

  .reader-pro-title span{
    display:none;
  }

  .reader-pro-title strong{
    max-width:190px;
    font-size:13px;
  }

  .reader-pro-controls{
    display:none;
  }

  .reader-settings-panel{
    width:100%;
    grid-template-columns:1fr;
    border-radius:18px;
  }

  .reader-setting-group,
  .reader-setting-group:first-child{
    justify-content:space-between;
  }

  .reader-book-shell{
    height:calc(100vh - 62px);
    min-height:0;
    border-radius:18px;
  }

  .reader-book-shell::after{
    display:none;
  }
}


/* Navigation mobile */

.mobile-nav{
  display:none;
}

@media (max-width:900px){

  .mobile-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:100;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:0;
    background:#ffffff;
    border-top:1px solid var(--line);
    box-shadow:0 -10px 30px rgba(0,0,0,.08);
    padding-bottom:env(safe-area-inset-bottom);
  }

  .mobile-nav a{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    min-height:64px;
    font-size:11px;
    font-weight:700;
    color:var(--muted);
  }

  .mobile-nav a svg{
    width:20px;
    height:20px;
  }

  .mobile-nav a.active{
    color:var(--accent);
  }

  .main{
    padding-bottom:90px !important;
  }
}

.reader-mode {
  background: #111;
}

.reader-shell {
  min-height: 100vh;
}

.reader-shell .main {
  padding: 0;
  margin: 0;
  max-width: none;
}


/* =========================
   MOBILE iPHONE — refonte visuelle
========================= */
@media (max-width:900px){

  html,
  body{
    width:100%;
    overflow-x:hidden;
    background:#f7f4ee;
  }

  .app-shell{
    display:block !important;
    min-height:100vh;
  }

  .sidebar{
    display:none !important;
  }

  .main{
    width:100%;
    max-width:100%;
    padding:18px 14px 96px !important;
    overflow:hidden;
  }

  .topbar{
    margin:0 0 16px;
    padding:14px 2px 4px;
    align-items:flex-start;
  }

  .topbar .eyebrow{
    font-size:11px;
    letter-spacing:.12em;
  }

  .topbar h1{
    font-size:34px;
    line-height:.95;
    letter-spacing:-.045em;
  }

  .topbar .btn{
    width:42px;
    height:42px;
    padding:0;
    border-radius:16px;
  }

  .topbar .btn span{
    display:none;
  }

  .hero-clean{
    padding:24px;
    border-radius:30px;
    margin-bottom:14px;
    min-height:260px;
    align-items:flex-start;
    background:
      radial-gradient(circle at 100% 0, rgba(252,100,19,.38), transparent 38%),
      linear-gradient(145deg,#181818,#3a2115 70%,#FC6413);
  }

  .hero-clean h2{
    font-size:42px;
    line-height:.92;
    max-width:100%;
  }

  .hero-clean p{
    font-size:16px;
    line-height:1.45;
  }

  .stats-clean{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:2px 2px 12px;
    margin-bottom:12px;
    scrollbar-width:none;
  }

  .stats-clean::-webkit-scrollbar{
    display:none;
  }

  .stats-clean div{
    min-width:112px;
    padding:16px 14px;
    border-radius:24px;
  }

  .stats-clean strong{
    font-size:34px;
  }

  .filters-clean{
    grid-template-columns:1fr;
    gap:10px;
    padding:10px;
    border-radius:26px;
  }

  .books-clean{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .book-clean{
    padding:8px;
    border-radius:24px;
  }

  .book-cover{
    border-radius:18px;
  }

  .book-data h2{
    font-size:14px;
  }

  .book-data p{
    font-size:12px;
  }

  .book-tags{
    display:none;
  }

  .book-actions{
    margin-top:8px;
  }

  .read-button{
    padding:9px 10px;
    font-size:13px;
  }

  .mobile-nav{
    border-top:1px solid rgba(232,225,214,.9);
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(18px);
  }

  .mobile-nav a{
    min-height:66px;
    font-size:11px;
  }

  .mobile-nav a svg{
    width:22px;
    height:22px;
  }
}

.reader-top-actions{
    display:flex;
    align-items:center;
    gap:8px;
}


.books-login-screen{
  min-height:calc(100vh - 80px);
  padding:24px;
  background:
    radial-gradient(circle at top left, rgba(252,100,19,.18), transparent 32%),
    radial-gradient(circle at bottom right, rgba(48,7,128,.10), transparent 34%);
}

.books-login-card{
  position:relative;
  overflow:hidden;
}

.books-login-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:7px;
  background:linear-gradient(90deg, var(--accent), #300780);
}

.remember-line{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  font-weight:800;
  color:var(--muted);
  cursor:pointer;
}

.remember-line input{
  width:18px;
  height:18px;
  accent-color:var(--accent);
}


.empty-clean .btn svg{
  width:20px;
  height:20px;
  color:currentColor;
}

/* Titre global plus discret sur les fiches livre */
body .topbar h1{
  font-size:clamp(24px, 2.5vw, 34px);
  letter-spacing:-.035em;
}

@media (max-width:900px){
  body .topbar h1{
    font-size:28px;
  }
}

.side-categories{
  display:grid;
  gap:5px;
  margin-top:8px;
  padding-top:14px;
  border-top:1px solid var(--line);
}

.side-categories-title{
  padding:0 14px 6px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.09em;
}

.side-category-parent,
.side-category-child{
  display:flex;
  align-items:center;
  gap:10px;
  border-radius:14px;
  color:#3f3f46;
  font-weight:800;
}

.side-category-parent{
  padding:10px 14px;
}

.side-category-child{
  padding:8px 14px 8px 42px;
  font-size:13px;
  color:var(--muted);
}

.side-category-parent:hover,
.side-category-child:hover{
  background:var(--accent-soft);
  color:var(--accent);
}

.side-category-parent svg{
  width:18px;
  height:18px;
}

.side-category-group{
  display:grid;
  gap:4px;
}

.side-category-toggle{
  width:100%;
  border:0;
  background:transparent;
  justify-content:space-between;
  cursor:pointer;
}

.side-category-toggle span{
  display:flex;
  align-items:center;
  gap:10px;
}

.side-category-toggle > svg{
  width:16px;
  height:16px;
  transition:transform .18s ease;
}

.side-category-group.open .side-category-toggle > svg{
  transform:rotate(180deg);
}

.side-category-children{
  display:none;
  gap:4px;
}

.side-category-group.open .side-category-children{
  display:grid;
}

.sidebar{
  overflow-y:auto;
}

.side-categories{
  max-height:calc(100vh - 280px);
  overflow-y:auto;
  padding-right:4px;
}

.side-category-parent{
  padding:8px 12px;
  font-size:14px;
}

.side-category-child{
  padding:6px 12px 6px 38px;
  font-size:12.5px;
}

.mobile-nav-btn{
  border:0;
  background:transparent;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:66px;
  font-size:11px;
  font-weight:700;
  color:var(--muted);
}

.mobile-categories-panel{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:200;
  max-height:78vh;
  padding:18px 18px calc(90px + env(safe-area-inset-bottom));
  background:#fff;
  border-radius:28px 28px 0 0;
  box-shadow:0 -18px 60px rgba(0,0,0,.18);
  transform:translateY(110%);
  transition:transform .22s ease;
  overflow:auto;
}

.mobile-categories-panel.open{
  transform:translateY(0);
}

.mobile-categories-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}

.mobile-categories-head strong{
  font-size:24px;
}

.mobile-categories-head button{
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  display:grid;
  place-items:center;
}

.mobile-categories-list{
  display:grid;
  gap:8px;
}

.mobile-categories-list a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border-radius:16px;
  background:#f7f4ee;
  font-weight:900;
}

.mobile-categories-list a.child{
  margin-left:20px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:14px;
}


.side-category-parent.active,
.side-category-child.active,
.side-category-group.active .side-category-parent{
  background:rgba(252,100,19,.12);
  color:var(--accent);
  font-weight:900;
}

.side-category-parent.active svg,
.side-category-group.active .side-category-parent svg{
  color:var(--accent);
}

.mobile-nav-btn.active{
  color:var(--accent);
}

.mobile-categories-list a.active{
  background:var(--accent-soft);
  color:var(--accent);
  font-weight:900;
  border-color:rgba(252,100,19,.24);
}