/* Plume — ton « papier » des maquettes (docs/maquettes), utilisable sur tablette. */
:root{--fond:#faf7f2;--encre:#2b2622;--brun:#3b2f2a;--creme:#f4ece1;--gris:#8a7f75;--bord:#e3dad0;--sable:#eee4d8;
--vert:#2f7d5b;--orange:#c98a2b;--rouge:#b5473a;--bleu:#4a7bb5;--violet:#7b5aa6;--jaune:#fff1b8}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font-family:"DejaVu Sans",system-ui,Arial,sans-serif;
font-size:16px;line-height:1.45}
a{color:var(--brun)}
.top{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px 24px;background:var(--brun);color:var(--creme)}
.top a{color:var(--creme);text-decoration:none;opacity:.85}.top a.on,.top a:hover{opacity:1;font-weight:bold}
.top .logo{font-family:Georgia,serif;font-size:21px;font-weight:bold;opacity:1}
.top .r{margin-left:auto;font-size:14px}
main{padding:20px 24px 110px;max-width:1500px;margin:0 auto}
h1{font-family:Georgia,serif;font-size:28px;margin:0 0 6px}h2{font-size:18px;margin:0 0 10px}h3{margin:14px 0 6px}
.muted{color:var(--gris);font-size:14px}.small{font-size:13px}.err{color:var(--rouge)}.ok{color:var(--vert)}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;background:#e3f1e9;border:1px solid #b9dcc8}
.flash.err{background:#f8e1dd;border-color:#e7b8b0;color:var(--rouge)}
.card{background:#fff;border:1px solid var(--bord);border-radius:10px;padding:16px;margin-bottom:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:2fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}.books{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media (max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}
.btn,button{display:inline-block;padding:9px 15px;border-radius:8px;border:1px solid #b9a998;background:#fff;
font-size:15px;color:var(--encre);cursor:pointer;text-decoration:none;font-family:inherit}
.btn.ok,button.ok{background:var(--vert);color:#fff;border-color:var(--vert)}
.btn.warn,button.warn{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn.bad,button.bad{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.btn.big{font-size:17px;padding:12px 20px}.btn.small,button.small{font-size:13px;padding:5px 10px}
button:disabled{opacity:.5;cursor:default}
form.inline{display:inline}
input[type=text],input[type=password],input[type=number],input[type=date],input[type=url],select,textarea{
width:100%;font-size:16px;padding:9px 11px;border:1px solid #d6cbbf;border-radius:7px;background:#fff;
font-family:inherit;color:var(--encre)}
textarea{min-height:90px;resize:vertical}
label{display:block;font-size:13px;color:var(--gris);margin:10px 0 4px}
.choice{display:flex;gap:8px;flex-wrap:wrap}.choice label{margin:0;font-size:15px;color:var(--encre)}
.choice input{display:none}.choice span{display:inline-block;border:1px solid #d6cbbf;border-radius:7px;padding:8px 13px;
cursor:pointer;background:#fff}.choice input:checked+span{background:var(--brun);color:#fff;border-color:var(--brun)}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:bold;color:#fff}
.p1{background:#9a8f85}.p2{background:var(--bleu)}.p3{background:var(--orange)}.p4{background:var(--rouge)}
.p5{background:var(--vert)}.p6{background:var(--violet)}
.bar{height:8px;background:var(--sable);border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:var(--vert)}
.cover{height:170px;border-radius:7px;display:flex;align-items:flex-end;padding:12px;color:#fff;font-family:Georgia,serif;
font-size:19px;font-weight:bold;background:linear-gradient(160deg,#4a6a8a,#22324a);background-size:cover;background-position:center}
.bookcard a{text-decoration:none;color:inherit}.bookcard h3{margin:10px 0 2px}
.newbook{display:flex;align-items:center;justify-content:center;border:1px dashed #cdbfb0;border-radius:10px;
min-height:260px;color:var(--gris);font-size:20px;text-decoration:none}
.steps{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.steps form{display:inline}.steps button{padding:5px 10px;border-radius:7px;background:var(--sable);border:0;font-size:14px}
.steps .d{background:var(--vert);color:#fff}.steps .c{background:var(--orange);color:#fff}
table{border-collapse:collapse;width:100%;font-size:15px}td,th{padding:8px;border-bottom:1px solid var(--sable);
text-align:left;vertical-align:top}th{color:var(--gris);font-weight:normal;font-size:13px}
.tablewrap{overflow-x:auto}
.review{position:fixed;left:0;right:0;bottom:0;background:#f3c27a;padding:10px 24px;display:flex;align-items:center;
gap:14px;flex-wrap:wrap;z-index:20;box-shadow:0 -2px 8px #0002}
.review b{font-size:17px}
.banner{padding:9px 14px;border-radius:8px;margin-bottom:14px;font-size:15px}
.banner.safe{background:#e3f1e9;border:1px solid #b9dcc8}.banner.wait{background:#fdecc8;border:1px solid #efce8a}
.banner.alert{background:#f8e1dd;border:1px solid #e7b8b0;color:var(--rouge)}
.notes{max-height:420px;overflow-y:auto;font-size:14px}.notes p{margin:0 0 9px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:0}.tabs a{padding:8px 13px;border-radius:8px 8px 0 0;
background:var(--sable);text-decoration:none;color:var(--encre)}.tabs a.on{background:#fff;border:1px solid var(--bord);
border-bottom:none;font-weight:bold}
.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 12px}.kv b{color:var(--gris);font-weight:normal}
@media (max-width:600px){.kv{grid-template-columns:1fr}}
.list a{display:block;padding:6px 0;text-decoration:none}.list a.on{font-weight:bold}
.lock{font-size:13px;color:var(--gris)}
.rule{border-left:4px solid var(--violet);padding:9px 13px;background:#fff;margin-bottom:10px;border-radius:0 8px 8px 0}
.rule.off{opacity:.55}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;font-family:Georgia,serif;font-size:15px}
.ba div{padding:7px 9px;border-radius:6px}.av{background:#f6d9d4}.ap{background:#d8efe3}
/* éditeur */
.editor{display:grid;grid-template-columns:1fr 330px;gap:18px}
@media (max-width:1000px){.editor{grid-template-columns:1fr}}
.page{font-family:Georgia,"DejaVu Serif",serif;font-size:19px;line-height:1.8;background:#fff;border:1px solid var(--bord);
border-radius:8px;padding:28px 46px;min-height:60vh}
@media (max-width:600px){.page{padding:18px;font-size:18px}}
.page p{margin:0 0 1em;text-align:justify;hyphens:auto}
.page textarea{min-height:70vh;font-family:Georgia,serif;font-size:18px;line-height:1.7;border:0;padding:0}
.erase{background:#f6d9d4;text-decoration:line-through;color:var(--rouge)}
.new{background:#d8efe3}.cursor{display:inline-block;width:2px;height:1.1em;background:var(--vert);vertical-align:middle;
margin-left:1px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}
.hl{background:var(--jaune)}
.live{border:2px solid var(--vert)}.live h2{color:var(--vert)}
.comment{border-top:1px solid var(--sable);padding:8px 0;font-size:14px}.comment q{background:var(--jaune)}
.comment .reply{margin-left:14px;color:#4a3f38}
del{background:#f6d9d4;color:var(--rouge)}ins{background:#d8efe3;text-decoration:none}
.chart{display:flex;align-items:flex-end;gap:10px;height:220px;padding-top:20px;border-bottom:1px solid #ccc}
.chart div{flex:1;text-align:center;font-size:12px}.chart i{display:block;background:var(--bleu);border-radius:4px 4px 0 0;
margin:0 auto;width:70%}.chart i.partout{background:var(--vert)}
.tile b{display:block;font-size:30px}
.dropzone{border:2px dashed #cdbfb0;border-radius:10px;padding:16px;text-align:center}
.login{max-width:440px;margin:8vh auto}
