:root{--bg:#F7F8FA;--card:#FFF;--text:#111;--muted:#4A4A4A;--border:#E6E8EF;--accent:#3A7BFA;--danger:#C0392B;--success:#1E8E3E;--z-header:50;--z-ai-panel:100;--bubble-bg:rgba(82,82,91,.92);--bubble-border:rgba(255,255,255,.14);--bubble-text:rgba(255,255,255,.92);--bubble-text-dim:rgba(255,255,255,.70);--bubble-hover:rgba(255,255,255,.08);--bubble-active:rgba(255,255,255,.14);--bubble-shadow:0 10px 26px rgba(0,0,0,.18);--bubble-radius:10px;--bubble-gap:6px;--bubble-btn-h:28px;--bubble-btn-px:10px;--bubble-font-size:13px}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1320px;margin:0 auto;padding:16px}
.layout{display:grid;grid-template-columns:180px 1fr;min-height:100vh}
.sidebar{background:#fff;border-right:1px solid var(--border);padding:16px;position:sticky;top:0;height:100vh;overflow:auto}
.sidebar h1{font-size:18px;margin:0 0 12px 0}
.sidebar h1 a{color:inherit;text-decoration:none;display:inline-block}
.sidebar h1 a:hover{text-decoration:underline;text-decoration-color:#d1d5db}
.sidebar nav{display:flex;flex-direction:column;gap:12px}
.sidebar nav a{display:block;font-size:14px;padding:8px 10px;border-radius:8px;color:var(--text)}
.sidebar nav a.active,.sidebar nav a:hover{background:#EFF3FF}
.nav-section{display:flex;flex-direction:column}
.nav-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin:12px 0 6px 0}
.nav-section:first-child .nav-section-title{margin-top:0}
.content{padding:24px}
.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}
.header-ia{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-bottom:8px}
.header-ia{z-index:var(--z-header)}
[data-test-id="ns-header"]{z-index:var(--z-header);position:sticky;top:0}
.header-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.header-ia select,.header-ia button,.header-ia input{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}
.ia-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid #e5e5e5;border-radius:999px;background:#fff;cursor:pointer;font-weight:600;user-select:none;transition:transform .08s ease;position:relative;pointer-events:auto}
.ia-chip:active{transform:translateY(1px)}
.ia-dot{width:10px;height:10px;border-radius:50%;background:#9ca3af;display:inline-block}
.ia-chip[aria-busy="true"] .ia-dot{background:#f97316;animation:ia-pulse 1.1s ease-in-out infinite}
.ia-chip[aria-invalid="true"] .ia-dot{background:#c0392b;animation:none}
@keyframes ia-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}
#ns-ia-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:9999}
#ns-ia-overlay .panel{background:#fff;border:1px solid var(--border);border-radius:12px;max-width:920px;margin:6vh auto;padding:16px}
.table{width:100%;border-collapse:separate;border-spacing:0}
.table thead th{position:sticky;top:0;background:#fafbff;border-bottom:1px solid var(--border);text-align:left;padding:8px}
.table tbody td{border-bottom:1px solid var(--border);padding:8px;vertical-align:middle}
textarea{width:100%;min-height:65vh;padding:12px;border:1px solid var(--border);border-radius:8px;background:#fff}
input,select,button{padding:10px;border:1px solid var(--border);border-radius:8px;background:#fff}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.helper{color:var(--muted);font-size:14px}
.projtitle{font-weight:600}
@media (max-width:1024px){.layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}}
.action-row{display:flex;gap:8px;flex-wrap:wrap}
.badge{display:inline-block;padding:2px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px;background:#fff}
.badge.ok{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}
.badge.bad{border-color:#fecaca;background:#fef2f2;color:#b91c1c}

/* QA (Chapitres) — panneau lisible + actionnable */
.badge.ns-qa-badge{cursor:pointer;background:#f8fafc}
.badge.ns-qa-badge:hover{background:#eef2ff;border-color:#c7d2fe}
.ns-qa-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px}
.ns-qa-modal{width:min(980px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:0 20px 60px rgba(0,0,0,.25);padding:14px}
.ns-qa-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;background:#fff;padding:6px 0 10px;border-bottom:1px solid var(--border);z-index:1}
.ns-qa-modal-title{font-weight:700}
.ns-qa-modal-actions{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ns-qa-btn-primary{background:#111827;color:#fff;border:1px solid #111827}
.ns-qa-btn-primary:disabled{opacity:.6}
.ns-qa-meta{margin-top:10px;font-size:12px;color:#475569}
.ns-qa-summary{margin-top:8px;padding:10px;background:#f8fafc;border:1px solid var(--border);border-radius:12px}
.ns-qa-section{margin-top:12px}
.ns-qa-section-title{font-weight:700;font-size:12px;margin-bottom:8px;color:#0f172a}
.ns-qa-empty{font-size:12px;color:#64748b;padding:6px 2px}
.ns-qa-issue{border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff;margin-bottom:8px}
.ns-qa-issue.is-must{border-color:#fb7185;background:#fff1f2}
.ns-qa-issue-head{font-size:12px;color:#334155;margin-bottom:6px}
.ns-qa-issue-note{font-size:13px;font-weight:600;color:#0f172a;margin-bottom:6px}
.ns-qa-issue-quote{margin:0 0 6px;padding:8px 10px;border-left:3px solid #cbd5e1;background:#f8fafc;border-radius:10px;font-size:12px;color:#334155;white-space:pre-wrap}
.ns-qa-issue-hint{font-size:12px;color:#0f172a}
.ns-qa-footnote{margin-top:10px;font-size:12px;color:#64748b}
.ns-qa-timings{display:flex;flex-direction:column;gap:6px}
.ns-qa-timing-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.ns-qa-timing-label{font-weight:600;font-size:12px;color:#0f172a}
.ns-qa-timing-meta{font-size:11px;color:#64748b}
.ns-qa-timing-cache{font-size:11px;padding:1px 6px;border:1px solid var(--border);border-radius:999px;background:#fff;color:#334155}
.ns-qa-timing-cache.hit{background:#ecfdf3;border-color:#bbf7d0;color:#15803d}
.ns-qa-timing-cache.miss{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.series-shell{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
.series-left,.series-right{min-width:0}
.series-panel{display:flex;flex-direction:column;gap:12px}
.series-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.series-search{width:100%}
.series-create-form{display:flex;flex-direction:column;gap:8px}
.series-list{display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 260px);overflow:auto}
.series-list-state{padding:8px 10px;border:1px dashed var(--border);border-radius:8px;background:#fff;font-size:12px;color:#475569}
.series-list-state.is-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}
.series-list-error{margin:6px 0;padding:8px 10px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:12px}
.series-list-error{margin:6px 0;padding:8px 10px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:12px}
.series-list-state{padding:8px 10px;border:1px dashed var(--border);border-radius:8px;background:#fff;font-size:12px;color:#475569}
.series-list-state.is-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}
.series-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px;border-radius:8px;border:1px solid transparent;background:#fff}
.series-item:hover,.series-item.active{background:#eef2ff;border-color:#c7d2fe}
.series-item-main{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}
.series-item-main:focus-visible{outline:2px solid #6366f1;outline-offset:2px;border-radius:6px}
.series-item-actions{display:flex;align-items:center;gap:6px}
.series-item-delete{padding:6px 8px;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#b91c1c;font-size:12px}
.series-item-delete:hover{background:#fef2f2}
.series-empty{color:var(--muted);font-size:14px;padding:8px 0}
.series-fields{display:flex;flex-direction:column;gap:12px}
.series-fields label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:4px}
.series-tabs{display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--border);padding-bottom:6px}
.series-tab{background:#fff;border:1px solid transparent;border-radius:8px;padding:6px 10px;font-size:13px;cursor:pointer}
.series-tab.is-active{background:#eef2ff;border-color:#c7d2fe;font-weight:600}
.series-tab-panel{display:flex;flex-direction:column;gap:12px}
.series-bible{display:flex;flex-direction:column;gap:10px}
.series-bible-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.series-bible-version{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.series-bible-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#series-bible-text{min-height:60vh}
.series-ledger{display:flex;flex-direction:column;gap:10px}
.series-ledger-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.series-ledger-version{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.series-ledger-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.series-ledger-views{display:flex;gap:6px;align-items:center}
.series-subtab{background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}
.series-subtab.is-active{background:#eef2ff;border-color:#c7d2fe;font-weight:600}
.series-ledger-preview{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fff;min-height:240px}
#series-ledger-text{min-height:45vh}
.series-packaging{display:flex;flex-direction:column;gap:10px}
.series-packaging-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.series-packaging-version{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.series-packaging-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#series-packaging-text{min-height:50vh}
.series-packaging-apply{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:8px}
.series-packaging-apply-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.series-qa{display:flex;flex-direction:column;gap:10px}
.series-qa-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.series-qa-version{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.series-qa-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.series-qa-views{display:flex;gap:6px;align-items:center}
.series-qa-preview{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fff;min-height:220px}
#series-qa-text{min-height:35vh}
.series-autopilot{display:flex;flex-direction:column;gap:10px}
.series-autopilot-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.series-autopilot-list{display:flex;flex-direction:column;gap:6px}
.series-autopilot-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:#fff;cursor:pointer}
.series-autopilot-item.active{border-color:#c7d2fe;background:#eef2ff}
.series-autopilot-actions{display:flex;flex-direction:column;gap:8px}
.series-autopilot-meta{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.series-autopilot-meta-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155}
.series-autopilot-meta-row .label{font-weight:600;color:#475569;min-width:70px}
.series-autopilot-meta-row a{color:#2563eb;text-decoration:none;font-weight:600}
.series-autopilot-meta-row a:hover{text-decoration:underline}
.series-autopilot-events{display:flex;flex-direction:column;gap:6px}
.series-autopilot-events-head{font-weight:600}
.series-autopilot-events-list{border:1px solid var(--border);border-radius:10px;padding:8px;background:#fff;max-height:240px;overflow:auto;font-size:12px}
.series-autopilot-event{display:flex;gap:8px;align-items:flex-start;padding:4px 0;border-bottom:1px solid #f1f5f9}
.series-autopilot-event:last-child{border-bottom:none}
.series-books{display:flex;flex-direction:column;gap:8px}
.series-books-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.series-add-panel{border:1px dashed var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.series-inline{display:flex;gap:8px;align-items:center}
.series-error{display:none;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;padding:8px 10px;border-radius:8px;font-size:13px}
.series-error.is-visible{display:block}
.series-delete{border-color:#fecaca;color:#b91c1c;background:#fff}
.series-delete:hover{background:#fef2f2}
@media (max-width:1100px){.series-shell{grid-template-columns:1fr}.series-list{max-height:none}}
.ns-hud{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.ns-hud-inline{margin-left:8px}
#btn-journal{margin-left:6px}
/* HUD coherence indicator */
.ns-hud-indicator{display:inline-block;width:8px;height:8px;border-radius:9999px;margin-right:6px;background-color:#e5e7eb}
.ns-hud-indicator--ok{background-color:#22c55e}
.ns-hud-indicator--running{background-color:#0ea5e9;animation:ns-hud-pulse 1s infinite ease-in-out}
.ns-hud-indicator--error{background-color:#ef4444}
.ns-hud-indicator--stale{background-color:#f97316}
@keyframes ns-hud-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}
.ns-hud-journal-btn{margin-left:8px}
.ns-hud-coherence-badge{font-size:13px;padding:4px 10px;border-radius:999px;border:1px solid #e0e0e0;background:#fafafa;cursor:pointer;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-hud-coherence-ok{border-color:#1b9e5a;background:#e9f8f0;color:#137344}
.ns-hud-coherence-warn{border-color:#f0a500;background:#fff6e6;color:#b47400}
.ns-hud-coherence-bad{border-color:#e5534b;background:#ffecec;color:#b02a26}
.ns-hud-coherence-unknown{opacity:.7}
.ns-coherence-modal .ns-coherence-body{max-height:70vh;overflow:auto;margin-top:12px;padding:12px;background:#f7f7f9;border-radius:8px}
.ns-coherence-modal pre{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:13px;line-height:1.5}
.ns-coherence-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.45);display:none;align-items:center;justify-content:center;z-index:9999}
.ns-coherence-overlay.ns-coherence-open{display:flex}
.ns-coherence-modal{position:relative;background:#ffffff;border-radius:12px;box-shadow:0 20px 45px rgba(15,23,42,0.35);max-width:900px;width:min(900px,90vw);max-height:80vh;display:flex;flex-direction:column;padding:24px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}
.ns-coherence-header{margin-bottom:12px;padding-right:36px}
.ns-coherence-title{margin:0 0 4px 0;font-size:18px;font-weight:600}
.ns-coherence-meta{font-size:13px;color:#6b7280}
.ns-coherence-body{flex:1;margin-top:8px;margin-bottom:16px;overflow-y:auto;border-radius:8px;background:#f9fafb;padding:12px 14px;border-left:3px solid #e5e7eb}
.ns-coherence-report{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:13px;line-height:1.5}
.ns-coherence-tools{margin-top:16px}
.ns-coherence-suggestions{margin-top:10px;padding:10px 12px;border-left:3px solid #d1d5db;background:#f3f4f6;border-radius:8px}
.ns-coherence-suggestions h4{margin:0 0 6px 0;font-size:13px;font-weight:600}
.ns-coherence-suggestions ul{margin:0;padding-left:18px;font-size:13px;line-height:1.4}
.ns-coherence-close{position:absolute;top:12px;right:12px}
.ns-coherence-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px}
.ns-coherence-target-hint{font-size:12px;color:#6b7280}
.ns-coherence-reason-row{margin:0 0 10px 0}
.ns-coherence-reason{width:100%;max-width:100%;padding:8px 10px;border:1px solid #e5e7eb;border-radius:10px;font-size:13px}
.ns-coherence-issues{margin:10px 0 14px 0;padding:10px 12px;background:#ffffff;border:1px solid #e5e7eb;border-radius:10px}
.ns-coherence-issues h4{margin:0 0 8px 0;font-size:13px;font-weight:600}
.ns-coherence-issues-empty{font-size:13px;color:#6b7280}
.ns-coherence-issues-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ns-coherence-issue{padding:10px;border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb}
.ns-coherence-issue-head{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.ns-coherence-sev{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}
.ns-coh-sev-high{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.ns-coh-sev-medium{background:#fffbeb;color:#92400e;border-color:#fed7aa}
.ns-coh-sev-low{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}
.ns-coherence-issue-title{font-size:13px;font-weight:600;color:#111827}
.ns-coherence-issue-desc{font-size:13px;color:#374151;margin:0 0 8px 0}
.ns-coherence-issue-actions{display:flex;gap:10px;align-items:center;justify-content:flex-start}
.ns-coherence-issue-status{font-size:12px;color:#6b7280}
.ns-coherence-pill{display:inline-flex;align-items:center;padding:0 10px;height:30px;border-radius:999px;font-size:12px;font-weight:500;background:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb;margin-right:8px;white-space:nowrap}
.ns-coherence-pill--unknown{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}
.ns-coherence-pill--ok{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}
.ns-coherence-pill--warn{background:#fffbeb;color:#92400e;border-color:#fed7aa}
.ns-coherence-pill--bad{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.ns-coherence-pill--running{position:relative}
.ns-coherence-pill--running::after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:1px solid rgba(59,130,246,0.5);animation:ns-coherence-pulse 1.2s ease-out infinite}
@keyframes ns-coherence-pulse{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.06)}}
.ns-stale-pill{display:none;align-items:center;padding:0 10px;height:30px;border-radius:999px;font-size:12px;font-weight:500;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;margin-left:8px;cursor:pointer}
.ns-stale-pill--visible{display:inline-flex}
.ns-brief-params{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
@media (max-width:768px){.ns-brief-params{grid-template-columns:1fr}}
.ns-brief-params .ns-field-group{display:flex;flex-direction:column;gap:4px}
.ns-field-group .ns-label{display:block;font-size:12px;font-weight:600;color:#374151}
.ns-brief-params .ns-input,.ns-brief-params select.ns-input{width:100%;font-family:inherit;font-size:13px;line-height:1.4;color:#111827;padding:10px 12px;border-radius:8px;border:1px solid #d1d5db;background-color:#ffffff;box-sizing:border-box}
.ns-brief-params .ns-input:focus,.ns-brief-params select.ns-input:focus{outline:2px solid #c7d2fe;outline-offset:1px}

/* Reusable AI panel (right-side, non-modal, no dimming) */
.ns-ai-panel{position:fixed;top:0;right:0;height:100vh;width:min(420px,40vw);min-width:360px;max-width:92vw;background:#fff;border-left:1px solid var(--border);box-shadow:-6px 0 18px rgba(0,0,0,0.12);z-index:var(--z-ai-panel);display:none;flex-direction:column}
.ns-ai-panel.is-open{display:flex}
@media (max-width:900px){.ns-ai-panel{min-width:0;width:min(420px,92vw)}}
.ns-ai-panel__header{padding:10px 12px;border-bottom:1px solid var(--border);background:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ns-ai-panel__titlewrap{display:flex;flex-direction:column;gap:2px;min-width:0}
.ns-ai-panel__title{font-weight:600;color:#111827}
.ns-ai-panel__subtitle{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-ai-panel__actions{display:flex;gap:6px;align-items:center;flex:0 0 auto}
.ns-ai-panel__close{width:32px;height:28px;padding:0;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;line-height:1;font-size:18px}
.ns-ai-panel__content{flex:1;min-height:0;overflow-y:auto;padding:10px 12px}

/* Reader / Proof / Devices */
.reader-shell{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}
.reader-shell.is-toc-collapsed{grid-template-columns:1fr}
.reader-shell.is-toc-collapsed .reader-toc{display:none}
.reader-toc{border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px;max-height:calc(100vh - 220px);overflow:auto}
.reader-toc-title{font-weight:600;font-size:13px;margin-bottom:6px}
.reader-toc-filter{width:100%;padding:6px 8px;border-radius:8px;border:1px solid var(--border);font-size:12px;margin:6px 0}
.reader-toc-list{display:flex;flex-direction:column;gap:6px}
.reader-toc-item{display:block;padding:6px 8px;border-radius:8px;color:#111827;border:1px solid transparent}
.reader-toc-item.active,.reader-toc-item:hover{background:#eef2ff;border-color:#c7d2fe}
.reader-main{display:flex;flex-direction:column;min-height:0}
.reader-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:#fff;position:sticky;top:0;z-index:2}
.reader-bar-left{display:flex;gap:10px;align-items:center;min-width:0}
.reader-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
.reader-bar-right{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.reader-scroll{margin-top:12px;border:1px solid var(--border);border-radius:12px;background:var(--reader-bg,#fff);color:var(--reader-text,#111827);padding:16px;overflow:auto;height:calc(100vh - 260px)}
.reader-content{max-width:var(--reader-width,740px);margin:0 auto;font-family:var(--reader-font,Georgia,"Times New Roman",serif);font-size:var(--reader-size,16px);line-height:var(--reader-line,1.6);text-align:var(--reader-align,left)}
.reader-section{margin-bottom:24px}
.reader-section-title{font-size:18px;margin:0 0 10px 0}
.reader-content p{margin:0 0 var(--reader-paragraph,8px) 0}
.reader-content h1{font-size:24px;margin:18px 0 10px}
.reader-content h2{font-size:18px;margin:14px 0 8px}
.reader-content ul,.reader-content ol{margin:8px 0 8px 20px}
.reader-content blockquote{margin:12px 0;padding-left:12px;border-left:3px solid var(--border);color:#374151}
.reader-progress{margin-top:10px;color:#6b7280;font-size:12px}
.reader-search{display:flex;gap:6px;align-items:center}
.reader-search input{padding:6px 8px}
.reader-search-count{font-size:12px;color:#6b7280;min-width:24px;text-align:center}
.reader-hit{background:#fff3bf;padding:0 2px;border-radius:3px}
.reader-hit.is-active{background:#ffd43b}
.reader-settings-panel{position:absolute;right:10px;top:46px;min-width:260px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:10px;box-shadow:0 12px 30px rgba(0,0,0,.12);z-index:5}
.reader-settings-panel label{font-size:12px;color:#6b7280}
.reader-settings-panel .row{display:flex;gap:8px;align-items:center;margin-top:8px}
.reader-shell[data-theme="paper"] .reader-scroll{background:#fbf7ef;color:#2b2b2b}
.reader-shell[data-theme="dark"] .reader-scroll{background:#111827;color:#e5e7eb}
.reader-book-nav{display:flex;gap:8px;align-items:center;margin-top:10px}
.reader-book-nav button{min-width:34px}
.reader-shell[data-mode="print"] .reader-toc{display:none}
.reader-shell[data-mode="print"] .reader-scroll{height:auto;max-height:none;border:none;padding:0}
.reader-shell[data-mode="print"] .reader-content{max-width:none}

.proof-shell{display:flex;flex-direction:column;gap:12px}
.proof-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:#fff;position:sticky;top:0;z-index:2}
.proof-content{border:1px solid var(--border);border-radius:12px;background:#f7f7f9;padding:16px;overflow:auto;max-height:calc(100vh - 240px);counter-reset:page}
.proof-page{width:var(--proof-width,14.8cm);min-height:var(--proof-height,21cm);margin:12px auto;background:#fff;border:1px solid #e5e7eb;box-shadow:0 10px 25px rgba(0,0,0,.08);padding:2.2cm 2cm;position:relative;counter-increment:page}
.proof-page.break{page-break-before:always}
.proof-page.show-margins{outline:1px dashed rgba(148,163,184,.6);outline-offset:-14px}
.proof-folio{position:absolute;bottom:1cm;right:1.4cm;font-size:11px;color:#6b7280}
.proof-content.show-folios .proof-folio::after{content:counter(page)}
.proof-content:not(.show-folios) .proof-folio{display:none}

.devices-shell{display:flex;flex-direction:column;gap:12px}
.devices-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:#fff;position:sticky;top:0;z-index:2}
.devices-frames{display:flex;gap:16px;flex-wrap:wrap}
.device-frame{background:#0f172a;border-radius:22px;padding:10px;color:#111827}
.device-frame-inner{background:#fff;border-radius:14px;overflow:auto}
.device-frame h4{margin:6px 0 8px;font-size:12px;color:#e2e8f0;font-weight:600}
.device-frame[data-device="iphone"] .device-frame-inner{width:390px;height:844px}
.device-frame[data-device="ipad"] .device-frame-inner{width:820px;height:1180px}
.device-frame[data-device="kindle"] .device-frame-inner{width:410px;height:730px}
.device-frame .device-content{padding:14px;font-family:Georgia,"Times New Roman",serif;font-size:15px;line-height:1.6}
.devices-shell[data-mode="iphone"] .device-frame:not([data-device="iphone"]),
.devices-shell[data-mode="ipad"] .device-frame:not([data-device="ipad"]),
.devices-shell[data-mode="kindle"] .device-frame:not([data-device="kindle"]){display:none}

@media print{
  .proof-bar,.sidebar,.header-ia{display:none !important}
  .proof-content{border:0;background:#fff;box-shadow:none;max-height:none;overflow:visible;padding:0}
  .proof-page{box-shadow:none;border:0;margin:0 auto;page-break-after:always}
}

@media (max-width:1100px){
  .reader-shell{grid-template-columns:1fr}
  .reader-shell.is-toc-collapsed .reader-toc{display:none}
  .reader-shell:not(.is-toc-collapsed) .reader-toc{display:block}
  .reader-scroll{height:auto;max-height:none}
}

@media print{
  .sidebar,
  .header-ia,
  .reader-bar,
  .reader-toc,
  .reader-progress{display:none !important}
  .reader-shell{grid-template-columns:1fr}
  .reader-scroll{height:auto;max-height:none;border:none;padding:0}
  .reader-content{max-width:none}
}

/* AI drawer tabs (Brief) */
.ns-ai-tabs{display:flex;gap:8px;position:sticky;top:0;background:#fff;padding:6px 0 10px 0;z-index:1}
.ns-ai-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:13px;font-weight:600;color:#111827;cursor:pointer}
.ns-ai-tab.is-active{background:#EEF3FF;border-color:#c7d2fe}
.ns-ai-tab-panel{min-height:0}

/* Drawer "Activité IA" (Brief-like) */
.ns-ia-section{padding:10px 0;border-top:1px solid #e5e5e5}
.ns-ia-section:first-child{border-top:none;padding-top:0}
.ns-ia-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ns-ia-section-title-row h3{margin:0;font-size:13px}
.ns-ia-kpi-row{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12px;color:#374151;margin-top:8px}
.ns-ia-kpi-row strong{font-weight:600}
.ns-ia-empty{font-size:12px;color:#6b7280;padding:6px 0}
.ns-ia-problems{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.ns-ia-issue{border:1px solid #e5e5e5;border-radius:10px;padding:10px;background:#fff}
.ns-ia-issue-message{font-weight:600;font-size:12px;color:#111827}
.ns-ia-issue-hint{font-size:12px;color:#6b7280;margin-top:4px}
.ns-ia-issue-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ns-ia-issue-actions button{padding:6px 10px;font-size:12px}
.ns-ia-entry{border-top:1px solid #e5e5e5;padding:6px 0}
.ns-ia-entry:first-child{border-top:none}
.ns-ia-entry-summary{list-style:none;cursor:pointer}
.ns-ia-entry-summary::-webkit-details-marker{display:none}
.ns-ia-entry-row{display:flex;justify-content:space-between;gap:8px}
.ns-ia-entry-left{display:flex;flex-direction:column;gap:2px}
.ns-ia-entry-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:#6b7280}
.ns-ia-entry-key{font-weight:600;font-size:12px;color:#111827}
.ns-ia-entry-model{font-size:11px;color:#4b5563}
.ns-ia-entry-date,.ns-ia-entry-kpis{font-size:11px;color:#6b7280}
.ns-ia-entry-body{margin-top:6px;display:flex;flex-direction:column;gap:8px;font-size:12px}
.ns-ia-entry-section-title{font-weight:600;margin-bottom:2px}

/* Power-user section (Journal IA) */
.ns-ia-power-user-pre{margin:6px 0 0 0;padding:10px;border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:12px;line-height:1.5;color:#111827}

/* Diff modal (Brief) */
.ns-diff-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.55);display:none;align-items:center;justify-content:center;z-index:calc(var(--z-ai-panel) + 10);padding:16px}
.ns-diff-overlay.is-open{display:flex}
.ns-diff-modal{background:#fff;border-radius:12px;box-shadow:0 20px 45px rgba(15,23,42,0.35);max-width:980px;width:min(980px,96vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden}
.ns-diff-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);background:#fff}
.ns-diff-title{font-weight:700;color:#111827;font-size:13px}
.ns-diff-close{padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:12px;cursor:pointer}
.ns-diff-body{padding:10px 12px;overflow:auto;background:#fff}
.ns-diff-pre{margin:0;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:12px;line-height:1.45}
.ns-diff-line{padding:0 6px;border-radius:6px}
.ns-diff-line-add{background:#ecfdf3;color:#15803d}
.ns-diff-line-del{background:#fef2f2;color:#b91c1c}
.ns-diff-line-eq{color:#111827}

/* Diff modal (Nexus editor) */
.nx-diff-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.55);display:none;align-items:center;justify-content:center;z-index:calc(var(--z-ai-panel) + 10);padding:16px}
.nx-diff-panel{background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(15,23,42,0.35);max-width:1120px;width:min(1120px,96vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.nx-diff-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:#fff}
.nx-diff-title{font-weight:700;color:#0f172a;font-size:14px}
.nx-diff-close{padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:12px;cursor:pointer}
.nx-diff-body{padding:12px 14px;display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:auto;background:#fff}
.nx-diff-body label{display:block;font-size:12px;color:#6b7280;margin-bottom:6px}
.nx-diff-left,.nx-diff-right{width:100%;min-height:240px;max-height:54vh;resize:vertical;border:1px solid #e5e7eb;border-radius:10px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:12px;line-height:1.45;background:#fff}
.nx-diff-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:#fff}
.nx-diff-actions button{padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:12px;cursor:pointer}
@media (max-width: 820px){
  .nx-diff-body{grid-template-columns:1fr}
}

/* Diff modal (Nexus editor) */
.nx-diff-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.55);display:none;align-items:center;justify-content:center;z-index:calc(var(--z-ai-panel) + 10);padding:16px}
.nx-diff-panel{background:#fff;border-radius:12px;box-shadow:0 20px 45px rgba(15,23,42,0.35);max-width:1100px;width:min(1100px,96vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden}
.nx-diff-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);background:#fff}
.nx-diff-title{font-weight:700;color:#111827;font-size:13px}
.nx-diff-close{padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:12px;cursor:pointer}
.nx-diff-body{padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:auto;background:#fff}
.nx-diff-body label{display:block;font-size:12px;color:#6b7280;margin-bottom:6px}
.nx-diff-left,.nx-diff-right{width:100%;min-height:240px;max-height:52vh;resize:vertical;border:1px solid #e5e7eb;border-radius:10px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:12px;line-height:1.45}
.nx-diff-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:#fff}
.nx-diff-actions button{padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:12px;cursor:pointer}
#ns-editor-bubble{position:fixed;display:none;align-items:center;gap:var(--bubble-gap);padding:6px;background:var(--bubble-bg);border:1px solid var(--bubble-border);border-radius:var(--bubble-radius);box-shadow:var(--bubble-shadow);z-index:9999;color:var(--bubble-text);backdrop-filter:blur(8px)}
.ns-editor-bubble-btn{height:var(--bubble-btn-h);padding:0 var(--bubble-btn-px);font-size:var(--bubble-font-size);font-weight:600;color:var(--bubble-text);background:transparent;border:0;border-radius:8px;cursor:pointer}
.ns-editor-bubble-btn:hover{background:var(--bubble-hover)}
.ns-editor-bubble-btn.is-active{background:var(--bubble-active)}
.ns-editor-bubble-btn:focus{outline:none;box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.ns-editor-bubble-btn--italic{font-style:italic}
.ns-editor-bubble-btn--underline{text-decoration:underline;text-underline-offset:2px}
.ns-editor-bubble-btn--strike{text-decoration:line-through}
.ns-editor-bubble-btn--sup{font-variant-position:super}
.ns-editor-bubble-input{display:none;width:220px;height:var(--bubble-btn-h);padding:0 10px;border-radius:8px;background:rgba(255,255,255,.08);color:var(--bubble-text);border:1px solid rgba(255,255,255,.16);font-size:var(--bubble-font-size)}
.ns-editor-bubble-input::placeholder{color:var(--bubble-text-dim)}
.style-refs-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
#brief-refs-url.ns-refs-url{flex:1;height:36px;padding:0 12px;font-size:13px;border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;min-width:0}
#brief-add-url,.btn-file{height:36px;padding:0 10px;font-size:12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap}
#brief-add-url:hover,.btn-file:hover{background:#f3f4f6}
