:root{--ink:#1f2933;--muted:#68727c;--line:#aeb7bf;--soft:#eef1f3;--paper:#fff;--accent:#2c536f;--accent-soft:#dce7ed;--radius:12px;--story-size:1.08rem}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:#dfe3e6;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}.skip-link{position:fixed;left:1rem;top:-4rem;background:#fff;padding:.75rem;z-index:99}.skip-link:focus{top:1rem}button,select,input,textarea{font:inherit}button{cursor:pointer;color:inherit}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:14px;position:sticky;top:0;z-index:20}.icon-button{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:50%;font-size:1.35rem}.brand{display:flex;flex-direction:column}.brand strong{font-size:1.08rem}.brand span{font-size:.78rem;color:var(--muted)}.top-actions{margin-left:auto;display:flex;gap:8px}.text-button,.outline-button,.small-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.66rem .9rem}.text-button:hover,.outline-button:hover,.small-button:hover{background:var(--soft)}.app-shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 74px)}.sidebar{background:#f7f8f9;border-right:1px solid var(--line);padding:28px 18px;position:sticky;top:74px;height:calc(100vh - 74px)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:800;color:var(--muted);margin:0 0 .4rem}.sidebar nav{display:grid;gap:5px;margin-top:14px}.sidebar nav button{border:0;background:transparent;text-align:left;padding:11px 9px;border-radius:8px;display:flex;gap:10px;align-items:center}.sidebar nav button span{font-size:.72rem;color:var(--muted);width:24px}.sidebar nav button:hover{background:#e9edf0}.sidebar nav button.active{background:var(--ink);color:#fff}.sidebar nav button.active span{color:#cbd5dc}.legend{position:absolute;bottom:25px;left:22px;display:grid;gap:8px;font-size:.78rem;color:var(--muted)}.legend span{display:flex;align-items:center;gap:7px}.dot{width:9px;height:9px;border-radius:50%;background:#fff;border:1px solid var(--line)}.dot.done{background:#546e5f}.dot.current{background:var(--accent)}.workspace{padding:20px 34px 32px;min-width:0}.prototype-note{max-width:1180px;margin:0 auto 18px;display:flex;justify-content:space-between;font-size:.77rem;color:var(--muted)}.prototype-note span:first-child{border:1px dashed var(--line);padding:3px 8px;border-radius:99px}.screen{max-width:1180px;margin:0 auto;background:#f8f9fa;border:1px solid var(--line);border-radius:16px;padding:32px;min-height:680px;box-shadow:0 12px 40px rgba(31,41,51,.08)}.screen[hidden]{display:none}.screen-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}h1,h2,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05;margin-bottom:.6rem}h2{font-family:Georgia,serif;line-height:1.18}.primary-button{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:8px;padding:.72rem 1rem;font-weight:700}.primary-button:hover{background:#35434f}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.tag{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:.24rem .55rem;font-size:.76rem;font-weight:700;margin-bottom:10px;background:#fff}.library-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:24px}.book-cover,.map-panel,.itinerary-card,.doc-card{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:20px}.book-cover.featured{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center}.cover-placeholder,.large-cover{background:repeating-linear-gradient(135deg,#e4e8eb,#e4e8eb 10px,#f7f8f9 10px,#f7f8f9 20px);border:2px solid var(--ink);box-shadow:8px 8px 0 #c7ced4;aspect-ratio:3/4;display:grid;place-items:center;text-align:center;font-family:Georgia,serif;font-weight:700}.book-cover h2{font-size:1.8rem;margin-bottom:.6rem}.map-panel{display:flex;flex-direction:column}.panel-label{font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.map-placeholder{position:relative;min-height:310px;background-image:radial-gradient(#aeb7bf 1px,transparent 1px);background-size:17px 17px;border:1px dashed var(--line);overflow:hidden}.map-land{position:absolute;font:700 3rem Georgia,serif;color:#c9d0d5;left:35%;top:38%}.map-placeholder svg{position:absolute;inset:0;width:100%;height:100%}.map-placeholder path{fill:none;stroke:#7e8b95;stroke-width:3;stroke-dasharray:8 8}.map-pin{position:absolute;z-index:2;width:34px;height:34px;border-radius:50%;border:2px solid #fff;background:var(--ink);color:#fff;font-weight:800;box-shadow:0 0 0 2px var(--ink)}.map-pin.future{background:#fff;color:var(--muted);border-color:#fff;box-shadow:0 0 0 2px var(--line)}.map-panel>p{margin:16px 0 0}.back-link{border:0;background:transparent;padding:0 0 22px;text-decoration:underline}.book-detail{display:grid;grid-template-columns:minmax(240px,350px) 1fr;gap:58px;align-items:center;max-width:960px;margin:16px auto}.large-cover{width:100%;max-height:520px}.book-copy .lead{font-size:1.15rem;max-width:600px}.meta-grid{display:flex;gap:12px;margin:24px 0}.meta-grid>div{border:1px solid var(--line);background:#fff;padding:12px 16px;border-radius:9px;min-width:110px}.meta-grid strong,.meta-grid span{display:block}.meta-grid strong{font-size:1.25rem}.meta-grid span{font-size:.76rem;color:var(--muted)}.route-strip{display:flex;align-items:center;flex-wrap:wrap;gap:9px;color:var(--muted)}.route-strip i{width:36px;border-top:2px dashed var(--line)}.chapters-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:24px}.chapter-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.chapter{display:grid;grid-template-columns:42px 1fr auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);padding:14px;border-radius:10px}.chapter>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line)}.chapter div>*{display:block}.chapter small{color:var(--muted)}.chapter button{border:0;background:transparent;text-decoration:underline}.chapter.current{border:2px solid var(--ink)}.chapter.locked{opacity:.55}.vertical-route{padding:10px}.route-stop{position:relative;display:flex;gap:14px;align-items:center;min-height:100px}.route-stop:not(:last-child):after{content:"";position:absolute;left:17px;top:62px;height:48px;border-left:2px dashed var(--line)}.route-stop b{width:36px;height:36px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;background:#fff;z-index:1}.route-stop.reached b{background:#596f61;color:#fff;border-color:#596f61}.route-stop.here b{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.route-stop span>*{display:block}.route-stop small{color:var(--muted)}.reader-screen{background:#c9ced2;padding:18px}.reader-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#fff;border-radius:10px;padding:10px 16px;margin-bottom:14px}.reader-toolbar .back-link{padding:0;text-align:left}.reader-toolbar>div:nth-child(2){text-align:center}.reader-toolbar span,.reader-toolbar strong{display:block}.reader-toolbar span{font-size:.72rem;color:var(--muted)}.reading-tools{justify-self:end;display:flex}.reading-tools button{background:#fff;border:1px solid var(--line);padding:7px 10px}.book-spread{display:grid;grid-template-columns:1fr 1fr;max-width:1040px;margin:auto;box-shadow:0 16px 35px rgba(20,28,36,.2);transition:transform .35s ease}.book-spread.turning{transform:perspective(900px) rotateY(-5deg)}.paper-page{background:#fff;min-height:510px;padding:52px 54px;position:relative}.paper-page:first-child{border-right:1px solid #bcc3c8;border-radius:12px 0 0 12px}.paper-page:last-child{border-radius:0 12px 12px 0}.page-number{position:absolute;bottom:20px;color:var(--muted);font-size:.78rem}.text-page .page-number{left:26px}.image-page .page-number{right:26px}#storyText{font-family:Georgia,serif;font-size:var(--story-size);line-height:1.75}.word-help{font-family:inherit;font-size:inherit;background:#edf1f3;border:0;border-bottom:2px dotted var(--ink);padding:0}.illustration-placeholder{height:100%;min-height:405px;border:2px dashed #77838c;background:repeating-linear-gradient(45deg,#e6e9eb,#e6e9eb 14px,#f6f7f8 14px,#f6f7f8 28px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.image-label{font:700 1.5rem Georgia,serif}.motion-note{margin-top:30px;border:1px solid var(--line);background:#fff;padding:7px 10px;font-size:.76rem}.reader-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px}.reader-footer>span{text-align:center;font-size:.8rem;color:#4d5962}.mobile-page-tabs{display:none}.definition-popover{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:30;background:var(--ink);color:#fff;border-radius:8px;padding:12px 16px;max-width:420px}.quiz-shell{max-width:760px;margin:42px auto}.quiz-progress{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:.82rem;margin-bottom:36px}.quiz-progress>div{height:7px;background:#d5dadd;flex:1;border-radius:99px;overflow:hidden}.quiz-progress i{display:block;width:33%;height:100%;background:var(--ink)}#quizOptions{border:0;padding:0;display:grid;gap:10px;margin:26px 0}#quizOptions label{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);padding:16px;border-radius:10px}#quizOptions label:has(input:checked){border:2px solid var(--ink)}#quizOptions input{width:20px;height:20px}.feedback{margin-top:18px;border-left:5px solid var(--accent);background:#e8eef1;padding:18px;border-radius:0 10px 10px 0}.feedback .primary-button{float:right}.notebook-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.notebook-page{min-height:500px;background:#fff;border:1px solid var(--line);padding:38px;box-shadow:4px 5px 0 #c9cfd3;position:relative;background-image:linear-gradient(#fff 31px,#dfe3e6 32px);background-size:100% 32px}.summary-page p{font-family:Georgia,serif;font-size:1.12rem;line-height:1.7;background:rgba(255,255,255,.92)}.tape{display:inline-block;background:#e2e5e7;padding:6px 12px;transform:rotate(-1.5deg);font-size:.75rem;margin-bottom:26px}.stamp{position:absolute;right:34px;bottom:34px;border:3px double #7a858d;border-radius:50%;width:100px;height:100px;display:grid;place-items:center;text-align:center;transform:rotate(-9deg);color:#68747d;font-weight:800;font-size:.75rem}.notebook-tabs{display:flex;gap:4px;margin-bottom:20px}.notebook-tabs button{border:1px solid var(--line);background:#fff;padding:8px 14px}.notebook-tabs button.active{background:var(--ink);color:#fff}.note-panel label{display:block;font-weight:800;margin-bottom:8px}.note-panel textarea{width:100%;min-height:335px;resize:vertical;border:1px dashed var(--line);padding:12px;background:rgba(255,255,255,.8)}.drawing-panel canvas{width:100%;height:330px;border:1px dashed var(--line);background:#fff;touch-action:none;display:block}.save-state{font-size:.78rem;color:var(--muted)}.docs-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.doc-card.wide{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.photo-placeholder,.mini-map{min-height:230px;background:repeating-linear-gradient(135deg,#e1e5e8,#e1e5e8 12px,#f4f6f7 12px,#f4f6f7 24px);border:1px dashed var(--line);display:grid;place-items:center;text-align:center;padding:22px}.photo-placeholder.small{min-height:180px;margin-bottom:18px}.mini-map{font:1.15rem Georgia,serif;line-height:2;margin-bottom:18px}.screen-switcher{max-width:1180px;margin:18px auto 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.screen-switcher button,.screen-switcher select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px}.screen-switcher select{display:none}dialog{border:1px solid var(--line);border-radius:14px;max-width:480px;padding:30px;box-shadow:0 20px 80px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(20,28,36,.55)}dialog label{display:grid;gap:6px;margin:22px 0}dialog input{border:1px solid var(--line);border-radius:7px;padding:10px}.dialog-close{position:absolute;right:12px;top:9px;border:0;background:transparent;font-size:1.6rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.workspace{padding:16px}.screen{padding:22px;min-height:620px}.library-layout,.chapters-layout,.book-detail{grid-template-columns:1fr}.book-detail{gap:28px}.large-cover{max-width:260px;margin:auto}.map-placeholder{min-height:260px}.reader-toolbar{grid-template-columns:1fr auto}.reader-toolbar>div:nth-child(2){display:none}.paper-page{padding:36px 28px}.notebook-layout{grid-template-columns:1fr}.docs-grid{grid-template-columns:1fr}.doc-card.wide{grid-column:auto;grid-template-columns:1fr}.screen-switcher select{display:block}.top-actions .text-button:first-child{display:none}}
@media (max-width:680px){.topbar{padding:0 12px}.top-actions{gap:4px}.top-actions button{padding:.55rem;font-size:.78rem}.brand span{display:none}.screen{border-radius:10px;padding:18px}.screen-heading{display:block}.screen-heading .outline-button{margin-top:10px}.book-cover.featured{grid-template-columns:1fr}.cover-placeholder{max-width:210px;margin:auto}.meta-grid{flex-direction:column}.book-spread{display:block}.paper-page{min-height:500px;border-radius:10px!important;border:0!important}.image-page{display:none}.book-spread.show-image .text-page{display:none}.book-spread.show-image .image-page{display:block}.mobile-page-tabs{display:flex;justify-content:center;margin:10px 0}.mobile-page-tabs button{padding:8px 16px;border:1px solid var(--line);background:#fff}.mobile-page-tabs button.active{background:var(--ink);color:#fff}.reader-footer{flex-wrap:wrap}.reader-footer>span{order:-1;width:100%}.chapter{grid-template-columns:38px 1fr}.chapter button{grid-column:2}.notebook-page{padding:24px}.screen-switcher button{font-size:.74rem;padding:8px}.screen-switcher select{max-width:150px;font-size:.78rem}.docs-grid{display:block}.doc-card{margin-bottom:14px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Prototype chapitre pilote */
.cover-placeholder,.large-cover{aspect-ratio:2/3}
.real-cover{display:block;overflow:hidden;background:#dce3e6;border:0;box-shadow:8px 10px 24px rgba(27,39,48,.22)}
.real-cover img{display:block;width:100%;height:100%;object-fit:cover}
.book-spread{height:680px}
.paper-page{background:#fffdf8;height:100%;min-height:0;padding:44px 48px 50px;overflow-y:auto}
.story-text{font-family:Georgia,serif;font-size:var(--story-size);line-height:1.62}
.story-text p{margin-bottom:.72em}
.story-text h2{font-size:1.55rem;margin-bottom:1rem}
.text-page:nth-child(2) .page-number{left:auto;right:26px}
.final-visual-page{grid-column:1/-1;padding:0;overflow:hidden;background:#101820;height:100%;min-height:0;border-radius:12px!important}
.final-visual-page img{display:block;width:100%;height:100%;object-fit:cover}
.visual-caption{position:absolute;left:22px;bottom:18px;background:rgba(19,30,38,.82);color:#fff;border-radius:7px;padding:8px 11px;font-size:.8rem}
.visual-caption strong{display:block}
.quiz-progress i{width:100%}
.reader-navigation{position:relative;max-width:1140px;margin:auto}
.reader-navigation .book-spread{margin:0 50px}
.page-arrow{position:absolute;top:50%;z-index:5;display:grid;place-items:center;width:44px;height:72px;padding:0;transform:translateY(-50%);border:1px solid rgba(31,41,51,.22);border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 8px 22px rgba(20,28,36,.22);font-size:2rem;line-height:1;transition:background .2s ease,transform .2s ease,opacity .2s ease}
.page-arrow:hover:not(:disabled){background:#fff;transform:translateY(-50%) scale(1.06)}
.page-arrow:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.page-arrow:disabled{opacity:.22;cursor:not-allowed}
.page-arrow-prev{left:0}
.page-arrow-next{right:0}
.reader-page-status{margin-top:12px;text-align:center;font-size:.8rem;color:#4d5962}

@media (max-width:680px){
  .book-spread{height:auto}
  .reader-navigation .book-spread{margin:0 22px}
  .page-arrow{width:38px;height:58px;font-size:1.65rem}
  .page-arrow-prev{left:0}
  .page-arrow-next{right:0}
  .paper-page{height:auto;min-height:560px;padding:34px 28px 48px;overflow-y:visible}
  .book-spread .paper-page:nth-child(2){display:none}
  .final-visual-page{display:block!important;min-height:auto}
  .final-visual-page img{height:auto;min-height:0;aspect-ratio:16/9}
}

/* Identité finale du prototype : carnet de voyage en Thaïlande */
:root{--ink:#24333b;--muted:#68757a;--line:#c9b991;--soft:#f2ead8;--paper:#fffaf0;--accent:#235f78;--accent-soft:#d9ebef;--saffron:#d79a2b;--terracotta:#b65d43;--jungle:#426b58;--sand:#efe1c2}
body{background:linear-gradient(135deg,#dce8e9 0%,#eee5d5 52%,#e4dac8 100%);background-attachment:fixed}
.topbar{background:rgba(255,250,240,.96);border-color:#cbbd9d;box-shadow:0 4px 18px rgba(53,67,66,.08)}
.compass{background:var(--accent);color:#fff;border-color:var(--accent)}
.sidebar-toggle{margin-left:14px;background:#fffaf0;border-color:#bcae8f;transition:transform .2s ease,background .2s ease}
.sidebar-toggle:hover{background:#f3e6c8;transform:scale(1.04)}
.app-shell{transition:grid-template-columns .3s ease}
.sidebar{background:linear-gradient(180deg,#f7f0df,#eee2c9);border-color:#c7b892;transition:opacity .2s ease,transform .3s ease,padding .3s ease;overflow:hidden}
.sidebar nav button:hover{background:rgba(215,154,43,.13)}
.sidebar nav button.active{background:linear-gradient(135deg,#235f78,#24495d);box-shadow:0 7px 18px rgba(35,95,120,.22)}
.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}
.sidebar-collapsed .sidebar{opacity:0;transform:translateX(-100%);padding-left:0;padding-right:0;pointer-events:none}
.workspace{transition:padding .3s ease}
@media (min-width:901px){
  .sidebar-collapsed .reader-screen{max-width:1320px}
  .sidebar-collapsed .reader-navigation{max-width:1250px}
  .sidebar-collapsed .reader-navigation .book-spread{max-width:1150px}
}
.prototype-note span:first-child{background:rgba(255,250,240,.72);border-color:#b8a77d;color:#5d655f}
.screen{background-color:#f8f1e3;background-image:radial-gradient(rgba(70,107,88,.08) 1px,transparent 1px);background-size:22px 22px;border-color:#c9b991;box-shadow:0 16px 42px rgba(46,61,59,.12)}
.screen-heading{position:relative;border-bottom:1px dashed rgba(35,95,120,.32);padding-bottom:18px}
.screen-heading:after{content:"✦";position:absolute;right:0;bottom:-13px;width:25px;height:25px;display:grid;place-items:center;background:#f8f1e3;color:var(--terracotta)}
.eyebrow{color:#527064}
.tag{background:#f4d88f;border-color:#c98f25;color:#4a3b18}
.primary-button{background:#235f78;border-color:#235f78;box-shadow:0 5px 13px rgba(35,95,120,.18)}
.primary-button:hover{background:#18495e}
.outline-button,.text-button,.small-button{background:#fffaf0;border-color:#bdaF90}
.book-cover,.map-panel,.itinerary-card,.doc-card{background:rgba(255,250,240,.94);border-color:#cbbd9d;box-shadow:0 9px 22px rgba(56,67,61,.08)}
.book-cover.featured{border-top:5px solid var(--saffron)}
.map-panel{border-top:5px solid var(--jungle)}
.map-placeholder{background-color:#e5efe9;background-image:radial-gradient(rgba(35,95,120,.28) 1px,transparent 1px);border-color:#8ca79b}
.map-land{color:rgba(66,107,88,.22)}
.map-pin{background:var(--terracotta);box-shadow:0 0 0 2px var(--terracotta)}
.route-strip{color:#536d65}
.route-strip i{border-color:var(--saffron)}

/* Une vraie couverture, éditable et agrandissable */
.real-cover{position:relative;padding:0;overflow:hidden;color:#182d38;cursor:zoom-in;border:0;text-align:left;isolation:isolate}
.real-cover:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(255,248,223,.96) 0%,rgba(255,248,223,.68) 13%,rgba(255,248,223,0) 31%,rgba(16,32,36,0) 73%,rgba(16,32,36,.58) 100%);pointer-events:none}
.real-cover img{position:absolute;inset:0;z-index:0}
.cover-copy{position:absolute;z-index:2;top:4.5%;left:7%;right:7%;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,.65)}
.cover-copy small{display:block;margin-bottom:.42em;font:800 .64rem/1.1 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#27586b}
.cover-copy strong{display:block;font:700 1.05rem/1.03 Georgia,serif;letter-spacing:-.025em}
.large-cover .cover-copy strong{font-size:1.55rem}
.large-cover .cover-copy small{font-size:.75rem}
.cover-labels{position:absolute;z-index:2;left:6%;right:6%;bottom:3.5%;display:flex;justify-content:space-between;align-items:center;gap:8px}
.cover-labels em{display:inline-block;padding:.32rem .48rem;border:1px solid rgba(255,255,255,.7);border-radius:99px;background:rgba(26,55,61,.78);color:#fff;font:700 .58rem/1 Inter,sans-serif;font-style:normal;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(4px)}
.cover-magnify{position:absolute;z-index:3;right:10px;top:50%;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,250,240,.92);box-shadow:0 5px 14px rgba(24,45,56,.22);opacity:0;transform:translateY(-50%) scale(.8);transition:opacity .2s ease,transform .2s ease}
.cover-zoom:hover .cover-magnify,.cover-zoom:focus-visible .cover-magnify{opacity:1;transform:translateY(-50%) scale(1)}
.cover-zoom:focus-visible{outline:4px solid var(--saffron);outline-offset:4px}
.cover-dialog{width:auto;max-width:none;padding:0;border:0;background:transparent;overflow:visible}
.cover-dialog::backdrop{background:rgba(13,27,31,.82);backdrop-filter:blur(5px)}
.cover-modal-art{height:min(88vh,900px);aspect-ratio:2/3;box-shadow:0 24px 90px rgba(0,0,0,.5);border-radius:7px}
.cover-modal-art .cover-copy strong{font-size:clamp(1.85rem,4vh,2.75rem)}
.cover-modal-art .cover-copy small{font-size:clamp(.75rem,1.5vh,1rem)}
.cover-modal-art .cover-labels em{font-size:clamp(.65rem,1.2vh,.85rem);padding:.48rem .7rem}
.cover-dialog-close{right:-18px;top:-18px;z-index:5;width:44px;height:44px;border-radius:50%;background:#fffaf0!important;box-shadow:0 7px 22px rgba(0,0,0,.35)}

/* Sommaire et itinéraire */
.chapters-layout{align-items:start}
.chapter{background:#fffaf0;border-color:#d4c6a6;border-left:5px solid #d9c79f;box-shadow:0 5px 13px rgba(56,67,61,.06);transition:transform .18s ease,box-shadow .18s ease}
.chapter:nth-child(3n+2){background:#f1f6f1;border-left-color:#8eaa94}
.chapter:nth-child(3n){background:#fbf0e8;border-left-color:#cf8b72}
.chapter:nth-child(3n+1){background:#f9f3df;border-left-color:#d4a63e}
.chapter:hover{transform:translateX(4px);box-shadow:0 8px 18px rgba(56,67,61,.1)}
.chapter.current{background:linear-gradient(100deg,#fff0bd,#e5f1f2);border:2px solid #235f78;border-left:7px solid #235f78;box-shadow:0 9px 22px rgba(35,95,120,.14)}
.chapter.locked{opacity:.78}
.chapter.completed{border-left-color:var(--jungle)}
.chapter.completed>span{background:var(--jungle);border-color:var(--jungle);color:#fff;font-weight:800}
.chapter>span{background:rgba(255,255,255,.72);border-color:#bbaa84}
.itinerary-card{position:sticky;top:94px;border-top:6px solid var(--terracotta);background:linear-gradient(150deg,#fffaf0,#f3e6ca)}
.itinerary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.travel-stamp{width:86px;height:86px;display:grid;place-items:center;align-content:center;border:3px double var(--terracotta);border-radius:50%;color:var(--terracotta);text-align:center;transform:rotate(6deg)}
.travel-stamp strong{font:800 1.1rem/1 Inter,sans-serif;letter-spacing:.12em}
.travel-stamp small{font-size:.58rem;line-height:1.25}
.route-stop:not(:last-child):after{border-color:#c7923c}
.route-stop.here b{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 6px #d9ebef}
.route-stop b{border-color:#c29a4c;background:#fffaf0}

/* Les autres écrans reprennent le même carnet */
.reader-screen{background:#bdc9c7;background-image:linear-gradient(135deg,rgba(35,95,120,.08),rgba(215,154,43,.08))}
.reader-toolbar{background:#fffaf0;border:1px solid #cdbf9e}
.paper-page{background:#fffdf7}
#quizOptions label{background:#fffaf0;border-color:#cbbd9d}
#quizOptions label:nth-child(2){background:#eef5ef}
.feedback{background:#e3f0ed;border-color:var(--jungle)}
.notebook-page{background-color:#fffaf0}
.notebook-summaries{max-height:370px;overflow-y:auto;padding-right:8px;scrollbar-color:#c69c55 transparent;scrollbar-width:thin}
.notebook-summary{margin:0 0 14px;padding:12px 14px;border-left:4px solid #cbbd9d;border-radius:0 9px 9px 0;background:rgba(255,255,255,.88)}
.notebook-summary.latest{border-left-color:var(--terracotta);background:#fff1dd}
.notebook-summary strong{display:block;margin-bottom:5px;color:#264b43}
.notebook-summary p{margin:0!important;font-size:.92rem!important;line-height:1.55!important;background:transparent!important}
.doc-card{border-top:5px solid var(--saffron)}
.doc-card:nth-child(2){border-top-color:var(--jungle)}
.doc-card:nth-child(3){border-top-color:var(--terracotta)}
.photo-placeholder,.mini-map{background-color:#e8eee7;border-color:#9daf9e}
.docs-pending{min-height:430px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;padding:42px;border:2px dashed #c9b98f;border-radius:18px;background:linear-gradient(145deg,#fff8e5,#e9f2ed)}
.docs-pending span{font-size:3rem;color:var(--terracotta)}
.docs-pending h2,.docs-pending p{margin:0;max-width:560px}
.docs-pending p{color:var(--muted)}
.sidebar nav button.nav-locked{opacity:.42;cursor:not-allowed}
.order-answer{display:grid!important;grid-template-columns:46px 1fr!important;gap:12px!important}
.order-answer strong{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#235f78;color:#fff}
.order-answer select{width:100%;min-height:44px;padding:8px 10px;border:1px solid #bdae8d;border-radius:8px;background:#fff}

/* Identité commune aux Escales */
.portal-compass{flex:0 0 auto;width:54px;height:54px;display:grid;place-items:center;overflow:hidden;border:2px solid #e4c979;border-radius:50%;background:#eaf4f5;box-shadow:0 5px 15px rgba(42,74,82,.22);transition:transform .2s ease,box-shadow .2s ease}
.portal-compass img{display:block;width:100%;height:100%;object-fit:cover}
.portal-compass:hover{transform:translateY(-2px) rotate(-4deg);box-shadow:0 8px 20px rgba(42,74,82,.3)}
.portal-compass:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.brand strong{font-size:1.12rem;color:#173654}
.icon-action{width:46px;height:46px;padding:0;border:1px solid #bdaf90;border-radius:13px;background:#fffaf0;display:grid;place-items:center}
.icon-action:hover{background:#f3e6c8}
.icon-action svg{grid-area:1/1;width:24px;height:24px;fill:none;stroke:#235f78;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.icon-action .sound-on-icon path:first-child,.icon-action .sound-off-icon path:first-child{fill:rgba(35,95,120,.12)}
.sound-off-icon{display:none}
#soundToggle[aria-pressed="false"] .sound-on-icon{display:none}
#soundToggle[aria-pressed="false"] .sound-off-icon{display:block}

/* Bibliothèque : une couverture, une destination, une vraie carte */
.library-layout{grid-template-columns:minmax(220px,.48fr) minmax(520px,1.52fr);align-items:stretch}
.book-cover.featured.library-book-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:0;overflow:hidden}
.library-shelf-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:15px 18px;border-bottom:1px dashed #cbbd9d;background:linear-gradient(135deg,#fff3ca,#f2ead9)}
.library-shelf-heading span{font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#536d65}
.library-shelf-heading strong{flex:0 0 auto;min-width:32px;height:32px;padding:0 9px;display:grid;place-items:center;border-radius:99px;background:var(--terracotta);color:#fff;font-size:1rem;box-shadow:0 3px 0 #a8402b}
.library-shelf-scroll{flex:1;min-height:0;max-height:630px;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:26px 18px;scrollbar-color:#c69c55 transparent;scrollbar-width:thin}
.library-cover-wrap{position:relative;width:min(100%,230px)}
.library-cover-link{width:100%;box-shadow:10px 12px 26px rgba(27,39,48,.22);transition:transform .2s ease,box-shadow .2s ease}
.library-cover-link:hover{transform:translateY(-4px);box-shadow:12px 18px 30px rgba(27,39,48,.27)}
.library-cover-link:focus-visible{outline:4px solid var(--saffron);outline-offset:4px}
.library-cover-link .cover-copy strong{font-size:1.12rem}
.library-cover-link .cover-copy small{font-size:.58rem}
.library-zoom{position:absolute;z-index:5;right:10px;top:50%;width:42px;height:42px;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(255,250,240,.95);color:#235f78;box-shadow:0 6px 18px rgba(24,45,56,.28);opacity:0;transform:translateY(-50%) scale(.82);transition:opacity .2s ease,transform .2s ease}
.library-cover-wrap:hover .library-zoom,.library-zoom:focus-visible{opacity:1;transform:translateY(-50%) scale(1)}
.library-zoom svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.library-zoom:focus-visible{outline:3px solid var(--saffron);outline-offset:3px}
.library-book-reference{display:flex;align-items:center;justify-content:center;gap:7px;margin:0;padding:.36rem .68rem;border:1px solid #cbbd9d;border-radius:99px;background:#fffaf0;color:#426b58;font-size:.84rem;font-weight:700}
.library-book-reference strong{color:#235f78}
.book-themes{margin:24px 0;padding:16px 18px;border-left:5px solid var(--saffron);border-radius:0 12px 12px 0;background:linear-gradient(135deg,#fff2c7,#edf5ef)}
.book-themes-title{margin:0 0 11px;font-weight:850;color:#264b43}
.theme-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}
.theme-label{min-width:64px;color:var(--muted);font-size:.72rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
.theme-chip{display:inline-flex;align-items:center;min-height:30px;padding:4px 10px;border:1px solid #cbbd9d;border-radius:99px;background:#fffaf0;font-size:.82rem;font-weight:750;color:#243b3d}
.asia-map{position:relative;overflow:hidden;border:1px solid #8ca79b;border-radius:10px;background:#dff1f2}
.asia-interactive-map{display:block;width:100%;height:auto;background:#dff1f2}
.map-ocean{fill:#dff1f2}
.asia-interactive-map .country{fill:var(--country-fill,#3b9b7b);stroke:#fffaf0;stroke-width:1.7;vector-effect:non-scaling-stroke;pointer-events:none;transition:fill .2s ease,stroke .2s ease,stroke-width .2s ease,filter .2s ease,transform .2s ease}
.asia-interactive-map .country-thailand{pointer-events:auto;cursor:pointer;transform-box:fill-box;transform-origin:center;outline:none}
.library-layout:has(.library-book-card:hover) .country-thailand,
.library-layout:has(.library-book-card:focus-within) .country-thailand,
.country-thailand:hover,
.country-thailand:focus-visible{fill:#ffd052;stroke:#173f52;stroke-width:4;filter:drop-shadow(0 0 7px rgba(255,208,82,.95));transform:scale(1.075)}
.library-layout:has(.country-thailand:hover) .library-cover-link,
.library-layout:has(.country-thailand:focus-visible) .library-cover-link{transform:translateY(-5px) scale(1.025);box-shadow:0 0 0 5px #ffd052,12px 20px 34px rgba(27,39,48,.28)}
.map-caption{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:13px}
.map-caption p{margin:0;display:grid}
.map-caption p span{font-size:.82rem;color:var(--muted)}
.map-caption small{font-size:.68rem;color:var(--muted);text-align:right}

/* Commandes de lecture */
.reading-tools button{min-width:44px;min-height:42px}
.reading-tools .reader-fullscreen{display:grid;place-items:center;padding:0;margin-left:6px;border-radius:7px}
.reader-fullscreen svg{grid-area:1/1;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.exit-fullscreen-icon{display:none}
html:fullscreen .reader-fullscreen .enter-fullscreen-icon{display:none}
html:fullscreen .reader-fullscreen .exit-fullscreen-icon{display:block}
html:fullscreen .topbar{display:none}
html:fullscreen .app-shell{min-height:100vh}
html:fullscreen .sidebar{top:0;height:100vh}
html:fullscreen .reader-screen{max-width:none;min-height:100vh;border-radius:0}

@media (max-width:900px){
  .sidebar-toggle{display:none}
  .library-layout{grid-template-columns:1fr}
  .library-book-card{max-width:330px;width:100%;margin:auto}
  .library-shelf-scroll{max-height:none;overflow:visible}
}
@media (max-width:680px){
  .cover-modal-art{height:auto;width:min(84vw,420px);aspect-ratio:2/3}
  .cover-dialog-close{right:-8px;top:-16px}
  .cover-copy strong,.large-cover .cover-copy strong{font-size:clamp(1.05rem,6vw,1.55rem)}
  .cover-copy small,.large-cover .cover-copy small{font-size:.65rem}
  .itinerary-card{position:static}
  .portal-compass{width:44px;height:44px}
  .icon-action{width:40px;height:40px}
  .top-actions .text-button:first-child{display:grid}
  .library-book-card{max-width:280px}
  .library-cover-wrap{width:min(100%,200px)}
  .map-caption{display:block}
  .map-caption small{display:block;text-align:left;margin-top:6px}
}
