:root{--bg:#f6f7f5;--ink:#1c2934;--muted:#627381;--line:#dce2e4;--paper:#fff;--navy:#18212b;--accent:#275b62;--lite:#e4eeee;--warn:#f4e8d4;--ok:#2a7953;--r:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}.topbar{background:var(--navy);color:white}.topinner{max-width:1180px;margin:auto;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{display:flex;gap:12px;align-items:center}.mark{border:1px solid #7b9698;color:#c6e0d9;border-radius:10px;width:38px;height:38px;display:grid;place-items:center;font-size:21px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:800;color:#afcfcb}.brandname{font-size:18px;font-weight:750}.version{font-size:12px;padding:3px 10px;border-radius:30px;border:1px solid #526370;color:#c6d4d9}.shell{max-width:1180px;margin:auto;padding:28px 20px 50px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:0 5px 22px rgba(18,37,45,.03)}.auth{max-width:530px;margin:42px auto 54px}.auth h1{font-size:29px;line-height:1.2;margin:13px 0}.authbadge{display:inline-block;border-radius:20px;padding:5px 12px;background:#e6efeb;color:#25584a;font-size:11px;font-weight:800;letter-spacing:.065em}.muted{color:var(--muted)}.small{font-size:12px}.error{color:#ad3333;font-weight:650;min-height:22px}.auth form{display:grid;gap:9px;margin:23px 0}.auth form button{margin-top:14px}.auth #confirmBox{display:grid;gap:9px}label{display:block;font-size:13px;font-weight:700;margin:0 0 5px}input:not([type=checkbox]):not([type=file]),textarea,select{width:100%;border:1px solid #cad3d7;border-radius:10px;background:white;padding:11px 12px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#247a83;box-shadow:0 0 0 3px #b4d8d84d}textarea{min-height:200px;resize:vertical}.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:5px}.primary{background:#245c62;color:white}.primary:hover{background:#17464d}.ghost{background:#fff;color:#245c62;border-color:#cbd5d8}.line{background:white;color:#245c62;border-color:#bac8ca}.full{width:100%}.pagehead{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:15px}.pagehead h1{font-size:27px;line-height:1.15;margin:0 0 5px}.pagehead p{color:var(--muted);margin:0}.safety{display:flex;align-items:flex-start;gap:12px;background:#e8f1ed;border:1px solid #cde0d8;color:#245c4b;padding:12px 15px;border-radius:12px;margin:17px 0}.safeicon{color:#16824f}.tabs{display:flex;flex-wrap:wrap;gap:5px;border-bottom:1px solid var(--line);margin:25px 0}.tab{background:none;border:none;color:var(--muted);font-weight:750;padding:10px 13px;border-bottom:3px solid transparent}.tab.active{color:#1f535c;border-bottom-color:#1f535c}.sectionheader h2{font-size:22px;margin:5px 0 3px}.sectionheader p{color:var(--muted);margin:0 0 18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 15px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:17px}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:30px;line-height:1.4;font-variant-numeric:tabular-nums}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.grid2 .card h2,.card h2{margin:0 0 12px;font-size:19px}.card p{margin-top:0}.card ul,.card ol{padding-left:24px}.editorlayout{display:grid;grid-template-columns:290px minmax(0,1fr);align-items:start;gap:16px}.sidebar{padding:17px}.itemlist{max-height:64vh;overflow-y:auto;margin:12px 0;display:grid;gap:6px}.item{display:block;text-align:left;width:100%;padding:10px 11px;border:1px solid transparent;background:#f6f8f8;color:#273844;border-radius:8px;line-height:1.35}.item small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.item.active{background:#e5eff0;color:#134f57;border-color:#b6d5d8;font-weight:750}.editorForm{display:grid;gap:10px}.editor{min-height:470px}.noSection{color:var(--muted);padding:40px 10px;text-align:center}.caps{text-transform:uppercase;letter-spacing:.08em;font-weight:750;color:#4e7680}.editorTools{display:flex;justify-content:space-between;gap:12px}.wordcount{font-size:12px;color:#3f6d74}.editor textarea{min-height:410px;line-height:1.7}.checkrow{display:flex;align-items:start;gap:9px;background:#f4f7f7;border-radius:10px;padding:11px 13px}.checkrow input{margin-top:4px}.checkrow label{margin:0;font-weight:500}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.history{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:7px}.notelist{display:grid;gap:10px;margin-top:15px}.note{display:flex;gap:12px;justify-content:space-between}.note small{display:block;color:var(--muted);margin-top:10px}.note p{white-space:pre-wrap}.notesText{min-height:95px}input[type=file]{width:100%;margin:9px 0 16px}.toast{position:fixed;bottom:22px;right:18px;max-width:min(450px,calc(100vw - 36px));background:#152d34;color:white;border-radius:12px;padding:14px 16px;box-shadow:0 8px 35px #1329362e;opacity:0;transition:opacity .2s;pointer-events:none}.toast.visible{opacity:1}.footer{padding:25px;text-align:center;color:#667681;font-size:12px;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:780px){.shell{padding:19px 12px 35px}.topinner{padding:13px 14px}.brandname{font-size:15px}.pagehead h1{font-size:24px}.card{padding:17px}.stats{gap:8px}.stat{padding:12px}.stat strong{font-size:25px}.editorlayout,.grid2{grid-template-columns:1fr}.itemlist{max-height:210px}.sidebar{padding:13px}.editor textarea{min-height:340px}.tabs{gap:0}.tab{font-size:13px;padding:9px 10px}.auth{margin:20px auto}.pagehead{align-items:center}}

/* V1.1 leesbare boekopmaak: geen tekst of gegevens in publiek bronbestand */
.readercontrol{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bookreader{background:#fffefa;border:1px solid #ddd9ce;border-radius:12px;padding:25px 24px;max-height:62vh;overflow-y:auto}
.bookreadercontents{max-width:70ch;margin:0 auto;color:#232b30;font-family:Georgia,"Times New Roman",serif;font-size:16px;line-height:1.62}
.bookreadercontents h1{font-family:Georgia,"Times New Roman",serif;font-size:28px;line-height:1.28;text-align:left;margin:0 0 1.15em;color:#192e39;letter-spacing:-.025em}
.bookreadercontents h2{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.4;font-weight:770;letter-spacing:.055em;text-transform:uppercase;margin:1.65em 0 .55em;color:#27545a}
.bookreadercontents p{margin:0 0 .85em;line-height:1.62}
.bookreadercontents p + p{margin-top:0}
@media(max-width:780px){.bookreader{padding:20px 15px}.bookreadercontents{font-size:16px}.bookreadercontents h1{font-size:25px}}

/* V1.2: handmatige lokale export; zichtbare waarschuwing bij onversleutelde inhoud */
.manuscript-export-card{border-color:#d8c49e;background:#fffdfa}
.export-warning{margin:15px 0 0!important;padding:12px 14px;border-radius:10px;background:#faf0de;color:#6a4d24;font-size:13px;line-height:1.5}
@media(max-width:780px){.manuscript-export-card .btn{width:100%}}

/* V1.3: lokale invoer van redactie-updates, zonder boektekst in publieke website */
.chapter-import-panel{margin:0 0 16px;background:#fbfdfd}
.chapter-import-panel h2{font-size:18px;margin:0 0 7px}
.chapter-import-panel p{margin:0 0 12px}
.update-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.update-title-control{grid-template-columns:1fr}
.update-form input[type=file]{margin:4px 0 0}
.update-preview{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.update-preview-item{border:1px solid var(--line);border-radius:10px;background:white;padding:12px;margin:10px 0}
.update-preview-label{display:flex;align-items:flex-start;gap:10px;font-weight:720;line-height:1.5}
.update-preview-label input{flex-shrink:0;margin-top:5px}
.update-preview-item p{font-size:13px;color:var(--muted);margin:5px 0 0 26px}
.update-preview-item pre{font:12px/1.6 system-ui,-apple-system,Segoe UI,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8f8;border:1px solid #edf0f1;border-radius:6px;padding:9px;margin:9px 0 3px 26px;max-height:112px;overflow:auto}
@media(max-width:780px){.update-form{grid-template-columns:1fr}.chapter-import-panel .btn{width:100%}.update-preview-item pre{margin-left:0}}

/* V1.5: installatietoets zonder toegang tot privé-inhoud */
.page-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@media(max-width:780px){.page-actions .btn{padding:9px 12px}.pagehead{gap:8px}}

/* V1.6 privécloud: optioneel, geen publiek boekmateriaal */

/* V1.7: status is tekst en mag ook op een smal telefoonscherm niet afbreken. */
.stat-status strong{font-size:clamp(15px,2.5vw,23px);line-height:1.6;overflow-wrap:anywhere}
.stat-status small{line-height:1.45}
.sync-card{margin-bottom:16px;border-color:#c0d4d5;background:#fcfefe}
.sync-indicator{display:grid;gap:3px;margin:12px 0 16px;padding:12px 15px;background:#edf3f2;border-left:4px solid #37777c;border-radius:9px}
.sync-fields{display:grid;gap:5px;margin:15px 0}
.sync-fields input{margin-bottom:10px}
.sync-actions{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0}
.btn.danger{background:#fff2ee;color:#873b31;border:1px solid #deb0a6}
.sync-card hr{border:0;border-top:1px solid var(--line);margin:24px 0}
@media(max-width:780px){.sync-actions>.btn{flex:1 1 100%}}

/* V1.8: lokale, alleen-lezen inhoudscontrole en versleutelde cloudvergelijking. */
.integrity-card{border-color:#bfd5d5;margin:0 0 16px;background:#fbfdfc}
.integrity-result{border:1px solid var(--line);padding:11px 13px;background:#f5f8f8;border-radius:10px;margin:10px 0;white-space:pre-line;overflow-wrap:anywhere;font-size:13px}
.integrity-result[data-outcome="ok"]{border-left:4px solid #39765e}
.integrity-result[data-outcome="attention"]{border-left:4px solid #b28a4b}
.integrity-result[data-outcome="error"]{border-left:4px solid #aa5249}
@media(max-width:780px){.integrity-card .sync-actions>.btn{width:100%}}
