:root {
  --bg:#f3f7fb;--panel:#fff;--ink:#172238;--muted:#66758a;--line:#d7e1ec;
  --primary:#155eaa;--primary-dark:#0d4783;--accent:#14b8a6;--danger:#b91c1c;
  --shadow:0 18px 48px rgba(27,58,94,.12);
}

/* PNJ — lecture progressive des rôles, scénarios et décisions Word. */
.scenario-role-scan{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(320px,1fr) auto;gap:18px;align-items:center;padding:18px 20px;background:#fff;border:1px solid #d9e1ec;border-radius:12px}.scenario-role-scan-main{display:grid;gap:3px}.scenario-role-scan-main strong{font-size:1.1rem}.scenario-role-scan-main small{color:#667085}.scenario-role-state-pills,.scenario-role-scan-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.scenario-role-scan-actions{justify-content:flex-end}.scenario-role-menu-button{border:1px solid #c8d3e2;background:#fff;border-radius:8px;min-width:38px;height:34px;font-size:1.35rem;cursor:pointer}.scenario-role-edit-menu{margin-top:8px;border:1px solid #dbe3ee;border-radius:10px;background:#f8fafc}.scenario-role-edit-menu>summary{padding:11px 14px;cursor:pointer;font-weight:700}.scenario-role-edit-menu>.scenario-role-summary{border:0;border-top:1px solid #dbe3ee;border-radius:0}.scenario-role-annexes{margin:10px 0;padding:16px;border:1px solid #cbd8e8;border-radius:10px;background:#f9fbfe}.scenario-role-annex-form,.scenario-role-annex-create{display:grid;gap:12px}.scenario-role-annex-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}.scenario-role-annex-list label{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:10px;border:1px solid #d8e0eb;border-radius:8px;background:#fff}.scenario-role-annex-list small{color:#667085}.scenario-role-annex-create{grid-template-columns:2fr 2fr auto;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid #d8e0eb}.scenario-role-details-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.scenario-card-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px}.scenario-compact-card{display:block;width:100%;border:1px solid #cbd7e6;border-radius:10px;background:#fff}.scenario-compact-card>summary{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.4fr);gap:4px 16px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none}.scenario-compact-card>summary::-webkit-details-marker{display:none}.scenario-compact-card>summary:after{content:'▾';grid-column:3;grid-row:1/3;align-self:center}.scenario-compact-card[open]>summary{border-bottom:1px solid #dbe3ee;background:#f6f9fc}.scenario-compact-card[open]>summary:after{transform:rotate(180deg)}.scenario-compact-card>summary small{grid-column:2;color:#667085}.scenario-compact-card>.scenario-compact-head,.scenario-compact-card>.scenario-location-field,.scenario-compact-card>.scenario-editor-fields,.scenario-compact-card>.scenario-compact-meta,.scenario-compact-card>.scenario-compact-actions,.scenario-compact-card>.scenario-relation-editor{margin-left:16px;margin-right:16px}.scenario-compact-card>.scenario-compact-head{margin-top:16px}.scenario-editor-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.scenario-editor-fields label{display:grid;gap:5px;font-weight:700}.scenario-editor-fields textarea{width:100%;resize:vertical}.scenario-editor-fields .scenario-development{grid-column:1/-1}.scenario-development textarea{min-height:220px}.scenario-relation-editor{margin-top:14px;margin-bottom:16px;border:1px solid #dce4ee;border-radius:8px}.scenario-relation-editor>summary{padding:11px 12px;font-size:.84rem;font-weight:800;letter-spacing:.06em}.word-reconciliation-group{margin-top:14px;border:1px solid #dbe3ee;border-radius:10px;overflow:hidden}.word-reconciliation-group>header{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:#f6f8fb}.word-reconciliation-row{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border-top:1px solid #e4e9f0}.word-reconciliation-row>div:first-of-type{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center}.word-reconciliation-row small{grid-column:2;color:#667085}.word-reconciliation-row .form-actions{margin:0}.word-reconciliation-group>details{padding:10px 14px;border-top:1px solid #e4e9f0}.word-reconciliation-group>details summary{cursor:pointer}.word-reconciliation-group ul{margin:10px 0 0}.pnj-annex-current{padding:10px 0}.pnj-annex-secondary{margin:8px 0}.pnj-annex-secondary>summary{cursor:pointer;font-weight:700}.pnj-annex-create-primary{grid-template-columns:2fr 2fr auto;align-items:end}
@media(max-width:980px){.scenario-role-scan{grid-template-columns:1fr}.scenario-role-scan-actions{justify-content:flex-start}.scenario-editor-fields{grid-template-columns:1fr}.scenario-role-annex-create,.pnj-annex-create-primary{grid-template-columns:1fr}.word-reconciliation-row{grid-template-columns:1fr}.scenario-compact-card>summary{grid-template-columns:1fr}.scenario-compact-card>summary small{grid-column:1}}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(21,94,170,.12),transparent 34rem),linear-gradient(135deg,#fbfdff,var(--bg))}a{color:inherit}h1,h2,h3,h4,p{overflow-wrap:anywhere}h1{margin:0;font-size:24px}h2{margin:0 0 7px;font-size:24px}h3{margin:0;font-size:18px}h4{margin:16px 0 6px}p{line-height:1.48}button,input,select,textarea{font:inherit}label{display:block;margin-bottom:6px;color:#334155;font-size:13px;font-weight:750}input,select,textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}textarea{min-height:90px;line-height:1.45;resize:vertical}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgba(21,94,170,.13)}input[type=checkbox],input[type=color]{width:auto;min-height:auto}.shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(470px,100%);padding:32px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px;text-decoration:none}.brand-compact{margin:0}.brand-mark{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;color:#fff;font-size:21px;font-weight:900;background:linear-gradient(135deg,var(--primary),var(--accent))}.subtitle,.muted{margin:4px 0 0;color:var(--muted);font-size:13px}.app{width:min(1560px,calc(100% - 24px));min-height:calc(100vh - 24px);margin:12px auto;background:var(--panel);border:1px solid var(--line);border-radius:23px;box-shadow:var(--shadow);overflow:hidden}.topbar{display:grid;grid-template-columns:minmax(290px,1fr) minmax(260px,.9fr) minmax(220px,.7fr);align-items:center;gap:18px;padding:17px 24px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#eff7ff,#f2fffd)}.event-switcher label{margin-bottom:3px}.userbox{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px 11px;color:var(--muted);font-size:13px;text-align:right}.userbox strong{width:100%;color:var(--ink)}.userbox form{margin:0}.main-nav{display:flex;align-items:center;gap:5px;padding:9px 18px;overflow-x:auto;border-bottom:1px solid var(--line);background:#fbfdff}.nav-link{padding:8px 10px;border-radius:9px;color:#31506f;font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}.nav-link:hover,.nav-link.active{color:var(--primary-dark);background:#eaf4ff}.content{padding:25px}.app-footer{padding:15px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}.button{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:9px 13px;border:1px solid transparent;border-radius:9px;font-weight:800;text-decoration:none;cursor:pointer}.button-primary{color:#fff;background:linear-gradient(135deg,var(--primary),#287cc9)}.button-secondary{color:#fff;background:#155e75}.button-light{color:var(--primary-dark);background:#fff;border-color:var(--line)}.button-warning{color:#7c2d12;background:#ffedd5;border-color:#fed7aa}.button-danger{color:#991b1b;background:#fee2e2;border-color:#fecaca}.button-mini{min-height:29px;padding:4px 8px;font-size:11px}.button-block{width:100%;margin-top:19px}.alert{margin-bottom:17px;padding:13px 15px;border:1px solid;border-radius:12px;line-height:1.45}.alert-success{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.alert-error{color:#9f1239;background:#fff1f2;border-color:#fecdd3}.alert-warning{color:#92400e;background:#fff7ed;border-color:#fed7aa}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.page-heading p,.panel h3+p{margin:4px 0 0;color:var(--muted)}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.stat-grid{display:grid;gap:11px;margin-bottom:18px}.stat-grid-four{grid-template-columns:repeat(4,minmax(150px,1fr))}.stat-grid-six{grid-template-columns:repeat(6,minmax(105px,1fr))}.stat-card{padding:15px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#fff,#f5faff)}.stat-card strong{display:block;color:var(--primary-dark);font-size:23px}.stat-card span{color:var(--muted);font-size:12px}.stat-danger strong{color:#b91c1c}.stat-warning strong{color:#b45309}.stat-success strong{color:#166534}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}.module-card{min-height:112px;padding:17px;border:1px solid var(--line);border-radius:15px;background:#fbfdff}.module-card h2{font-size:16px}.module-card p{margin:0;color:var(--muted);font-size:13px}.module-link{text-decoration:none;transition:.13s}.module-link:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(21,94,170,.1)}.panel{margin-top:16px;padding:19px;border:1px solid var(--line);border-radius:17px;background:#fff}.prose{line-height:1.55}.creation-box+.creation-box{margin-top:14px}.creation-box>summary,.edit-box>summary{width:max-content;max-width:100%;color:var(--primary-dark);font-weight:850;cursor:pointer}.creation-box>summary{font-size:17px}.creation-box[open]>summary,.edit-box[open]>summary{margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:13px;align-items:end}.module-form{margin-top:13px}.span-2{grid-column:span 2}.span-3{grid-column:1/-1}.form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-grid{display:grid;grid-template-columns:minmax(210px,1.7fr) repeat(3,minmax(145px,1fr)) auto;gap:11px;align-items:end}.todo-filter-grid{grid-template-columns:minmax(200px,1.5fr) repeat(4,minmax(130px,1fr)) auto}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:6px;max-height:190px;padding:8px;overflow:auto;border:1px solid var(--line);border-radius:11px;background:#f8fafc}.check-row{min-height:40px;display:flex;align-items:center;gap:8px;margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.check-row input{margin:0}.readonly-field{min-height:42px;display:flex;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f1f5f9}.card-list{display:grid;gap:13px;margin-top:17px}.entity-card{padding:17px;border:1px solid var(--line);border-left:5px solid #60a5fa;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(30,64,100,.05)}.entity-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:850}.badge-role,.badge-blue{color:#075985;background:#e0f2fe}.badge-green{color:#166534;background:#dcfce7}.badge-yellow{color:#854d0e;background:#fef9c3}.badge-orange{color:#9a3412;background:#ffedd5}.badge-red{color:#991b1b;background:#fee2e2}.badge-gray{color:#475569;background:#e2e8f0}.progress-badge{min-width:62px;padding:8px 10px;border-radius:11px;color:#075985;background:#e0f2fe;font-weight:900;text-align:center}.progress-track{height:7px;margin:12px 0;overflow:hidden;border-radius:999px;background:#e8eef5}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0ea5e9,#14b8a6)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:13px 0}.detail-grid div{padding:9px;border-radius:9px;background:#f8fafc}.detail-grid dt{color:var(--muted);font-size:11px;font-weight:800}.detail-grid dd{margin:3px 0 0;font-size:13px}.edit-box{margin-top:12px;padding-top:11px;border-top:1px dashed #dbe4ee}.archive-form{margin-top:12px}.subpanel{margin-top:12px;padding:12px;border-radius:12px;background:#f8fafc}.empty-state{padding:24px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center}.money-summary{display:flex;flex-direction:column;text-align:right}.money-summary strong{font-size:20px}.money-summary span{color:var(--muted);font-size:12px}.quick-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding-top:11px;border-top:1px solid #edf2f7}.quick-actions form{margin:0}.todo-overdue{border-left-color:#ef4444;background:linear-gradient(90deg,#fff7f7,#fff 28%)}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.npc-sheet{page-break-inside:avoid}.npc-print-content{padding:12px 0}.budget-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:11px}.budget-kpi{padding:15px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.budget-kpi span{display:block;color:var(--muted);font-size:12px}.budget-kpi strong{display:block;margin-top:4px;font-size:21px}.positive{color:#166534}.negative{color:#b91c1c}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:12px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:13px}th{background:#f5f9fd;color:#334155}.inline-form{display:flex;align-items:center;gap:6px;min-width:270px}.money-input{width:100px}.check-inline{display:flex;align-items:center;gap:4px;margin:0;white-space:nowrap}.subtotal{font-weight:800;background:#f8fafc}.total{font-size:15px;font-weight:900;background:#eaf7f4}.timeline-controls{padding:12px 17px}.timeline-board{display:grid;grid-template-columns:75px repeat(var(--days,3),minmax(260px,1fr));gap:0;min-height:1700px;margin-top:16px;overflow:auto;border:1px solid var(--line);border-radius:15px;background:#fff}.timeline-hours,.timeline-day{position:relative;min-width:75px}.timeline-day{min-width:260px;border-left:1px solid var(--line)}.timeline-day-title{position:sticky;top:0;z-index:20;height:44px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);background:#eff7ff;font-size:13px;font-weight:850}.timeline-grid-column{position:relative;height:1512px;background:linear-gradient(to bottom,transparent 41px,#edf2f7 42px);background-size:100% 42px}.time-label{position:absolute;top:0;right:8px;transform:translateY(34px);color:var(--muted);font-size:11px}.timeline-slot{position:absolute;left:0;right:0;height:42px;border-top:1px solid rgba(215,225,236,.45)}.timeline-event{position:absolute;left:7px;right:7px;z-index:5;overflow:auto;padding:7px 8px;border:1px solid #bfdbfe;border-left:5px solid var(--primary);border-radius:9px;background:rgba(239,247,255,.97);box-shadow:0 4px 12px rgba(15,74,130,.13);cursor:grab}.timeline-event.dragging{opacity:.45}.timeline-event strong,.timeline-event span{display:block}.timeline-event strong{font-size:12px}.timeline-event span{color:#466078;font-size:10px}.timeline-event details{margin-top:5px;font-size:11px}.timeline-event .module-form{grid-template-columns:1fr;width:350px;max-width:80vw;padding:8px;background:#fff;border-radius:8px}.timeline-event .span-2,.timeline-event .span-3{grid-column:auto}.timeline-board:fullscreen{padding:10px;overflow:auto;background:#f3f7fb}.timeline-board:fullscreen .timeline-grid-column{height:1512px}@media(max-width:1200px){.topbar{grid-template-columns:1fr 1fr}.userbox{grid-column:1/-1;justify-content:flex-start;text-align:left}.userbox strong{width:auto}.stat-grid-six{grid-template-columns:repeat(3,1fr)}.filter-grid,.todo-filter-grid{grid-template-columns:repeat(3,1fr)}.budget-summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app{width:100%;min-height:100vh;margin:0;border-radius:0}.topbar{grid-template-columns:1fr}.content,.topbar{padding:17px}.form-grid,.filter-grid,.todo-filter-grid{grid-template-columns:1fr 1fr}.span-3{grid-column:1/-1}.page-heading,.entity-card-head{flex-direction:column}.money-summary{text-align:left}.stat-grid-four{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}}@media(max-width:560px){.form-grid,.filter-grid,.todo-filter-grid,.stat-grid-four,.stat-grid-six,.budget-summary-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.content{padding:14px}.entity-card{padding:14px}}


/* ========================================================================== 
   V0.8.6 — langage visuel V3 validé
   ========================================================================== */
:root{
  --primary:#4f7ee8;--primary-dark:#315da9;--accent:#36a779;--violet:#7558b6;
  --ink:#20324c;--muted:#657a96;--line:#cbdced;--soft:#f4f9ff;
}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 8% -8%,rgba(79,126,232,.18),transparent 34rem),
    radial-gradient(circle at 95% 2%,rgba(54,167,121,.14),transparent 36rem),
    linear-gradient(135deg,#fbfdff,#f0f7ff 58%,#fff8f0);
}
.app{width:min(1940px,calc(100% - 24px));margin:12px auto;border:1px solid #c9daec;border-radius:22px;background:rgba(255,255,255,.92);box-shadow:0 20px 70px rgba(48,71,108,.14);overflow:hidden}
.topbar{position:sticky;top:0;z-index:90;display:grid;grid-template-columns:minmax(310px,1fr) minmax(260px,420px) auto;gap:18px;align-items:center;padding:11px 16px;background:rgba(249,252,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid #cbdced}
.brand-mark{background:linear-gradient(135deg,#5d8ef1,#50c4a6 52%,#f0a35b);box-shadow:0 7px 18px rgba(67,100,176,.22)}
.brand h1{font-size:17px;color:#263957}.brand .subtitle{color:#5c6f8d;font-size:11px;font-weight:750}
.event-switcher{padding:7px 10px;border:1px solid #d5e1ef;border-radius:12px;background:#f6faff}.event-switcher label{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#6b7f99}.event-switcher select{padding:7px 9px;background:white}
.userbox{display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center}.userbox strong{color:#2f4668}.userbox span{font-size:10px;color:#71839b}.userbox form{grid-column:2;grid-row:1/3}
.main-nav{position:sticky;top:69px;z-index:80;display:flex;gap:5px;overflow-x:auto;padding:7px 12px;background:linear-gradient(90deg,#f2f7ff,#f0fbf8,#fff8ed);border-bottom:1px solid #d5e1ef;scrollbar-width:thin}
.nav-link{padding:8px 10px;border:1px solid #d6e1ef;border-radius:10px;background:#fff;color:#49617f;font-size:11px;font-weight:800;box-shadow:0 3px 10px rgba(54,76,110,.04)}
.nav-link:hover,.nav-link.active{color:white;background:linear-gradient(135deg,#4e85ec,#695fe3);border-color:transparent}
.content{padding:18px}.page-heading{padding:17px 19px;border:1px solid #cbdced;border-radius:18px;background:radial-gradient(circle at 10% 0,rgba(92,143,242,.18),transparent 25rem),radial-gradient(circle at 95% 20%,rgba(84,200,170,.18),transparent 22rem),linear-gradient(135deg,#fff,#f5faff 64%,#fff9f2);box-shadow:0 12px 32px rgba(50,74,111,.08)}
.page-heading h2{margin:0;color:#273c5c;font-size:24px}.page-heading p{max-width:1000px;color:#657b98;line-height:1.45}
.panel{border-color:#d2e0ef;border-radius:17px;box-shadow:0 9px 28px rgba(52,75,108,.065)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-19px -19px 15px;padding:12px 15px;border-bottom:1px solid #e1e9f3;background:linear-gradient(90deg,#f7fbff,#fbfdff)}
.panel-head h3{margin:0;color:#2e4566}.panel-head span{font-size:11px;color:#6b809a}
.button{border-radius:10px}.button-primary{background:linear-gradient(135deg,#4f8cf2,#6b61e8)}.button-secondary{background:linear-gradient(135deg,#328ab8,#36a779)}
.stat-grid a{text-decoration:none}.stat-card{position:relative;overflow:hidden;border-radius:16px;box-shadow:0 8px 23px rgba(50,74,111,.07);transition:.14s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(50,74,111,.11)}
.stat-card::after{content:"";position:absolute;width:85px;height:85px;border-radius:50%;right:-38px;top:-43px;background:rgba(79,126,232,.12)}
.stat-card strong{font-size:26px}.distribution-kpis .unassigned-trigger{display:block;width:auto;text-align:left;border:1px solid var(--line);cursor:pointer;color:inherit}
.text-danger{color:#b91c1c!important}.muted,.secondary-text{color:var(--muted)}

/* Distribution unifiée */
.distribution-controls{margin-bottom:13px}.distribution-filter{grid-template-columns:minmax(260px,1fr) minmax(250px,.7fr) auto}
.dual-scroll-shell{position:relative;border:1px solid #c9d9eb;border-radius:18px;background:#fff;box-shadow:0 17px 48px rgba(50,74,111,.12);overflow:hidden}
.dual-scroll-shell:fullscreen{width:100vw;height:100vh;border:0;border-radius:0;background:white}.dual-scroll-shell:fullscreen .distribution-table-wrap{height:calc(100vh - 102px);max-height:none}
.dual-scroll-toolbar{display:flex;align-items:center;gap:10px;padding:10px 13px;background:linear-gradient(90deg,#eaf3ff,#eafbf6,#fff2e0,#f5eaff);border-bottom:1px solid #cbdced}.dual-scroll-toolbar strong{color:#345472}.dual-scroll-toolbar span{flex:1;color:#647b98;font-size:10px}
.dual-top-scroll{position:sticky;top:0;z-index:30;height:19px;overflow-x:scroll;overflow-y:hidden;background:#f5f8fd;border-bottom:1px solid #dce6f1}.dual-top-scroll>div{height:1px}
.dual-body{display:grid;grid-template-columns:19px minmax(0,1fr)}.dual-left-scroll{position:sticky;left:0;z-index:25;overflow-y:scroll;overflow-x:hidden;height:calc(100vh - 290px);min-height:470px;background:#f5f8fd;border-right:1px solid #dce6f1}.dual-left-scroll>div{width:1px}
.distribution-table-wrap{overflow:auto;height:calc(100vh - 290px);min-height:470px;scrollbar-color:#8b99bc #edf1f8}
.distribution-table{min-width:2600px;margin:0;border-collapse:separate;border-spacing:0}.distribution-table th{position:sticky;top:0;z-index:15;padding:11px;background:linear-gradient(180deg,#f9fbff,#edf4fc);color:#3c5575;border-bottom:1px solid #cbd9e9;border-right:1px solid #e1e9f2;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.distribution-table td{padding:11px;border-right:1px solid #e5ecf4;border-bottom:1px solid #dae4ef;vertical-align:top;background:#fff}.distribution-table tbody tr:nth-child(even) td{background:#fbfdff}.distribution-table tbody tr:hover td{background:#f5f9ff}
.distribution-table .identity-col{min-width:300px;width:300px}.distribution-table .scenario-col{min-width:720px;width:720px}.distribution-table th:nth-last-child(2){min-width:330px}.distribution-table th:nth-last-child(1){min-width:150px}
.role-identity-block input{font-size:18px;font-weight:900;color:#284869;background:#f7fbff}.role-identity-block textarea{font-size:13px;font-weight:650;min-height:70px}.interpreter-identity-block select{font-size:14px;font-weight:800}.interpreter-identity-block strong{display:block;margin-top:9px;color:#2d4e72;font-size:17px}.interpreter-identity-block span{display:block;margin-top:3px;color:#6f839b;font-size:11px}
.word-card{display:grid;gap:8px;min-width:300px;padding:11px;border:1px solid #d5e2ef;border-radius:13px;background:linear-gradient(145deg,#fff,#f5f9ff)}.word-card>strong{font-size:13px;color:#30577f;word-break:break-word}.word-card small{color:#75869b}.word-actions{display:flex;gap:5px;flex-wrap:wrap}.tracking-cell{display:grid;gap:7px;min-width:300px}.tracking-cell label{font-size:10px;color:#687c95;font-weight:800}.tracking-cell textarea{min-height:150px}.actions-cell{min-width:165px}.actions-cell>.button,.actions-cell>form{display:block;width:100%;margin-bottom:7px}.actions-cell form .button{width:100%}
.scenario-cell{min-width:720px}.scenario-inline{margin-bottom:8px;border:1px solid #d5e1ef;border-radius:12px;background:#fbfdff;overflow:hidden}.scenario-inline>summary{display:flex;align-items:center;gap:7px;padding:9px 10px;cursor:pointer;background:linear-gradient(90deg,#f2f7ff,#f8fbff);font-weight:850;color:#345472}.scenario-inline>summary span:first-child{flex:1}.scenario-inline-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:7px;padding:10px}.scenario-inline-grid label{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#70839a;font-weight:850}.scenario-inline-grid .wide{grid-column:1/-1}.scenario-inline-grid textarea{min-height:115px}.source-links{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:8px;border-radius:9px;background:#eef6ff;color:#4f6682;font-size:10px}.source-links strong{grid-column:1/-1;color:#315d8b}.empty-mini{padding:14px;border:1px dashed #cddbea;border-radius:10px;color:#7b8ca2;text-align:center}
.app-dialog{width:min(720px,94vw);border:1px solid #cbd9e9;border-radius:17px;padding:0;box-shadow:0 30px 90px rgba(38,57,87,.35)}.app-dialog::backdrop{background:rgba(31,46,70,.46)}.app-dialog header{position:static;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:14px 16px;background:#f5f9ff;border-bottom:1px solid #d8e3ee}.app-dialog h3{margin:0;color:#304e70}.app-dialog p{margin:4px 0 0;color:#71849a;font-size:11px}.dialog-list{display:grid;gap:7px;max-height:65vh;padding:13px;overflow:auto}.dialog-list article{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 11px;border:1px solid #dae4ef;border-radius:11px}.dialog-list span{color:#71839a;font-size:11px}

/* Fiche Compé */
.relationship-strip{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;margin:14px 0}.relationship-strip article{padding:10px 12px;border:1px solid #d5e1ef;border-radius:13px;background:linear-gradient(145deg,#fff,#f5f9ff)}.relationship-strip span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#72869f;font-weight:900}.relationship-strip strong{display:block;margin-top:4px;color:#315474;font-size:12px}
.subnav-tabs{display:flex;gap:5px;overflow-x:auto;padding:5px;margin-bottom:13px;border:1px solid #d5e1ef;border-radius:13px;background:#f2f6fb}.subnav-tabs a{flex:1;min-width:120px;padding:8px 10px;border-radius:9px;color:#5b708d;font-size:11px;font-weight:850;text-align:center;text-decoration:none}.subnav-tabs a.active,.subnav-tabs a:hover{background:#fff;color:#3d62b7;box-shadow:0 5px 15px rgba(46,75,112,.1)}
.custom-gifts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.custom-gifts-grid>div{padding:9px;border:1px solid #dbe5ef;border-radius:11px;background:#f8fbff}.reference-table-wrap{max-height:68vh}.reference-table{min-width:1250px}.reference-table td{line-height:1.4}.reference-table td strong{color:#315270}.reference-table td small{display:block;margin-top:4px;color:#71849a}.reference-table td p{margin:4px 0;color:#4f6480}.reference-table input[type=checkbox]{width:22px;height:22px}.reference-table input[type=number]{min-width:70px}.sticky-save{position:sticky;bottom:0;z-index:20;display:flex;justify-content:flex-end;gap:10px;padding:10px 13px;margin:0 -19px -19px;background:rgba(245,249,255,.96);backdrop-filter:blur(10px);border-top:1px solid #d5e1ef}
.faction-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:12px}.faction-grid article{padding:12px;border:1px solid #d6e2ef;border-radius:13px;background:#fbfdff}
.rules-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.rules-reference-grid article{padding:14px;border:1px solid #d8e4ef;border-radius:14px;background:linear-gradient(145deg,#fff,#f6faff)}.rules-reference-grid span{color:#6b54a0;font-size:9px;font-weight:900}.rules-reference-grid h3{margin:5px 0;color:#345472}.rules-reference-grid p{min-height:48px;color:#71839a;font-size:10px;line-height:1.45}
.fiche-compe-print{width:min(900px,100%);margin:auto;padding:25px;border:1px solid #aab8c8;background:#fff;box-shadow:0 15px 35px rgba(37,56,84,.15);color:#111;font-family:Georgia,"Times New Roman",serif}.fiche-compe-print header{position:static;background:none;border:0;box-shadow:none;text-align:center}.fiche-compe-print h1{font-size:22px}.fiche-compe-print h2{margin-top:15px;padding:5px;border:1px solid #333;background:#dfeaf5;text-align:center;font-size:13px}.fiche-compe-print table{border-collapse:collapse}.fiche-compe-print th,.fiche-compe-print td{border:1px solid #333;padding:5px;font-size:9px}.print-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #333}.print-stat-grid div{padding:6px;border-right:1px solid #333;border-bottom:1px solid #333}.print-stat-grid div:nth-child(4n){border-right:0}.print-stat-grid span{display:block;font-size:9px;font-style:italic}.print-notes{min-height:100px;padding:8px;border:1px solid #333;font-size:10px}

/* Analyse Word */
.word-update-source{display:flex;align-items:center;justify-content:space-between;gap:15px}.word-update-source span,.word-update-source small{display:block;color:#73849b;font-size:10px}.word-update-source strong{display:block;margin:4px 0;color:#315473}.word-update-choices{align-items:stretch}.word-update-choices .panel{margin-top:0}.word-diff-form{display:grid;gap:13px}.diff-section{margin-top:0}.diff-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.diff-head h3{margin:0;color:#304e70}.diff-head p{margin:5px 0;color:#6f839a;font-size:11px}.diff-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.diff-columns article{min-width:0;border:1px solid #d9e4ef;border-radius:11px;overflow:hidden}.diff-columns article>span{display:block;padding:7px 9px;background:#eef4fa;color:#5c728e;font-size:9px;font-weight:900;text-transform:uppercase}.diff-columns pre,.scenario-diff-card pre{max-height:380px;margin:0;padding:10px;overflow:auto;white-space:pre-wrap;font:11px/1.45 "Segoe UI",Arial;color:#344c69;background:#fff}.scenario-diff-list{display:grid;gap:9px}.scenario-diff-card{padding:11px;border:1px solid #d7e2ed;border-left:5px solid #8b99ad;border-radius:12px;background:#fbfdff}.scenario-diff-card.action-create{border-left-color:#36a779}.scenario-diff-card.action-update{border-left-color:#e7a13f}.scenario-diff-card.action-missing{border-left-color:#d95670}.scenario-diff-card header{position:static;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:0;box-shadow:none}.scenario-diff-card header>div{display:flex;align-items:center;gap:7px}.scenario-diff-card p{color:#657a94}.word-apply-bar{margin:0;padding:12px 15px;border:1px solid #cbd9e9;border-radius:13px;box-shadow:0 -8px 25px rgba(54,76,110,.1)}.word-apply-bar div{flex:1}.word-apply-bar strong,.word-apply-bar span{display:block}.word-apply-bar span{font-size:10px;color:#6d819b}

/* OneDrive picker */
.integration-card{display:grid;grid-template-columns:1fr 1fr;gap:12px}.integration-card>div{padding:12px;border:1px solid #d8e3ee;border-radius:13px;background:#f8fbff}.integration-card span{display:block;font-size:9px;text-transform:uppercase;color:#71839a;font-weight:900}.integration-card strong{display:block;margin:5px 0;color:#305476}.onedrive-picker{padding:14px}.onedrive-breadcrumb{margin:10px 0;padding:9px 11px;border:1px solid #d7e2ef;border-radius:10px;background:#f5f9ff;color:#59718f}.onedrive-grid{display:grid;gap:7px;max-height:65vh;overflow:auto}.onedrive-item{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:9px 11px;border:1px solid #dae4ee;border-radius:11px;background:#fff}.onedrive-item.folder{background:#f8fbff}.onedrive-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#e9f2ff;font-size:21px}.onedrive-item strong{display:block;color:#315370}.onedrive-item span,.onedrive-item small{display:block;color:#74869b;font-size:10px}.onedrive-item-actions form{margin:0}

@media(max-width:1100px){.topbar{grid-template-columns:1fr 1fr}.userbox{grid-column:1/-1}.relationship-strip{grid-template-columns:repeat(3,1fr)}.rules-reference-grid{grid-template-columns:1fr 1fr}.distribution-filter{grid-template-columns:1fr 1fr}.integration-card{grid-template-columns:1fr}}
@media(max-width:760px){.app{width:100%;margin:0;border-radius:0}.topbar{grid-template-columns:1fr}.main-nav{top:135px}.content{padding:12px}.relationship-strip,.rules-reference-grid,.faction-grid,.custom-gifts-grid,.diff-columns{grid-template-columns:1fr}.distribution-filter{grid-template-columns:1fr}.dual-left-scroll{display:none}.dual-body{grid-template-columns:1fr}.source-links{grid-template-columns:1fr}.scenario-inline-grid{grid-template-columns:1fr 1fr}.scenario-inline-grid .wide{grid-column:1/-1}.word-update-source{align-items:flex-start;flex-direction:column}}



/* Synchronisation des inscriptions */
.sync-intro .panel-head,.sync-rules .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.sync-source-form small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.info-grid article{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.info-grid strong,.info-grid span{display:block}.info-grid strong{color:#315474}.info-grid span{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.45}.table-scroll{overflow:auto}.sync-preview-table{min-width:1250px}.sync-preview-table small{display:block;margin-top:4px;color:var(--muted)}.sync-preview-table code{font-size:10px}.compact-list{margin:0;padding-left:17px}.compact-list li{margin:0 0 5px;line-height:1.38}.conflict-list{color:#8f2f23}.sync-action-create{background:#fbfffc}.sync-action-update{background:#fafdff}.sync-record-state{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0 0;padding:9px 10px;border:1px solid #d9e5ef;border-radius:10px;background:#f7fbff}.sync-record-state form{margin:0}.split-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.split-actions form{margin:0}

/* Timeline V3 horizontale */
.timeline-v3-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:13px 16px}.timeline-v3-controls>div:first-child{display:grid;grid-template-columns:auto minmax(190px,280px) auto;align-items:center;gap:9px}.timeline-v3-controls label{margin:0}.timeline-v3-controls input[type=range]{min-height:auto;padding:0}.timeline-v3-controls output{color:var(--muted);font-size:11px;font-weight:800}.timeline-v3-legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px}.timeline-v3-legend span{display:flex;align-items:center;gap:5px}.timeline-v3-legend i{width:16px;height:9px;border-radius:3px;background:#dce8f4}.timeline-v3-legend .legend-move{border-left:4px solid var(--primary)}.timeline-v3-legend .legend-resize{border-left:2px solid #1f739f;border-right:2px solid #1f739f}.timeline-v3-legend .legend-lock{background:#e6e9ef;box-shadow:inset 0 0 0 1px #8b96a8}
.timeline-v3-shell{--lane-label-width:190px;--timeline-width:2160px;--minute-px:.75px;position:relative;margin-top:15px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(37,61,91,.08)}.timeline-v3-shell:fullscreen{width:100vw;height:100vh;margin:0;border:0;border-radius:0;background:#fff}.timeline-v3-topbar{position:sticky;top:0;z-index:60;display:grid;grid-template-columns:var(--lane-label-width) minmax(0,1fr);height:28px;border-bottom:1px solid #cddae7;background:#edf4fb}.timeline-v3-corner{display:flex;align-items:center;padding:0 10px;border-right:1px solid #cddae7;color:#516983;font-size:10px;font-weight:850}.timeline-v3-top-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:auto}.timeline-v3-top-scroll>div{height:1px}.timeline-v3-viewport{max-height:68vh;overflow:auto;overscroll-behavior:contain;background:#f8fbff}.timeline-v3-shell:fullscreen .timeline-v3-viewport{max-height:calc(100vh - 28px);height:calc(100vh - 28px)}.timeline-v3-content{position:relative;display:grid;grid-template-columns:var(--lane-label-width) var(--timeline-width);min-width:calc(var(--lane-label-width) + var(--timeline-width));align-items:stretch}.timeline-v3-axis-label{position:sticky;left:0;top:0;z-index:48;display:flex;align-items:center;padding:0 11px;height:52px;border-right:1px solid #cbd8e6;border-bottom:1px solid #cbd8e6;background:#eef5fb;color:#355672;font-size:11px;font-weight:900}.timeline-v3-axis{position:sticky;top:0;z-index:45;height:52px;border-bottom:1px solid #cbd8e6;background:linear-gradient(#f8fbfe,#edf4fa);overflow:hidden}.timeline-v3-tick{position:absolute;left:calc(var(--tick-minute) * var(--minute-px));top:0;bottom:0;border-left:1px solid #d9e3ed}.timeline-v3-tick.major{border-left-color:#bfcddd}.timeline-v3-tick.day-start{border-left:2px solid #6f88a3}.timeline-v3-tick span{position:absolute;top:8px;left:5px;white-space:nowrap;color:#637790;font-size:9px;font-weight:750}.timeline-v3-tick.day-start span{color:#365b7f;font-weight:900}.timeline-v3-lane-label{position:sticky;left:0;z-index:35;display:flex;flex-direction:column;justify-content:center;padding:0 12px;border-right:1px solid #cbd8e6;border-bottom:1px solid #dce5ee;background:linear-gradient(90deg,#f8fbff,#eff5fb)}.timeline-v3-lane-label strong{color:#315372;font-size:12px}.timeline-v3-lane-label span{margin-top:3px;color:#77889b;font-size:9px}.timeline-v3-lane{position:relative;border-bottom:1px solid #dce5ee;background-color:#fff;background-image:repeating-linear-gradient(to right,rgba(89,112,137,.12) 0,rgba(89,112,137,.12) 1px,transparent 1px,transparent calc(60 * var(--minute-px))),repeating-linear-gradient(to right,transparent 0,transparent calc(30 * var(--minute-px) - 1px),rgba(111,132,154,.05) calc(30 * var(--minute-px) - 1px),rgba(111,132,154,.05) calc(30 * var(--minute-px)))}.timeline-v3-lane.timeline-drop-target{background-color:#edf8ff;box-shadow:inset 0 0 0 2px rgba(21,94,170,.28)}
.timeline-v3-event{position:absolute;z-index:10;left:calc(var(--event-left) * var(--minute-px));top:calc(8px + var(--event-track) * 60px);width:max(64px,calc(var(--event-duration) * var(--minute-px)));height:50px;display:grid;grid-template-columns:7px minmax(0,1fr) 7px;border:1px solid color-mix(in srgb,var(--event-color),#fff 55%);border-left:4px solid var(--event-color);border-radius:9px;background:linear-gradient(135deg,color-mix(in srgb,var(--event-color),#fff 88%),#fff);box-shadow:0 5px 13px rgba(38,61,89,.14);overflow:hidden;touch-action:none;user-select:none}.timeline-v3-event:hover{z-index:25;box-shadow:0 9px 22px rgba(38,61,89,.22)}.timeline-v3-event.locked{grid-template-columns:minmax(0,1fr) 22px;background:#f2f4f7;border-color:#cdd5df;border-left-color:#8d98a7}.timeline-v3-event.timeline-interacting{z-index:80;opacity:.86;box-shadow:0 14px 30px rgba(31,77,118,.3)}.timeline-v3-event-body{min-width:0;width:100%;padding:5px 6px;border:0;background:transparent;color:#294866;text-align:left;cursor:grab}.timeline-v3-event-body:active{cursor:grabbing}.timeline-v3-event-body strong,.timeline-v3-event-body span,.timeline-v3-event-body small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-v3-event-body strong{font-size:10px}.timeline-v3-event-body span{margin-top:2px;color:#5e7289;font-size:8px;font-weight:750}.timeline-v3-event-body small{margin-top:1px;color:#76889b;font-size:8px}.timeline-resize-handle{width:100%;height:100%;padding:0;border:0;background:rgba(44,105,153,.08);cursor:ew-resize}.timeline-resize-handle:hover{background:rgba(44,105,153,.25)}.timeline-lock-mark{display:grid;place-items:center;font-size:10px}.timeline-v3-help{display:flex;gap:10px;align-items:center;padding:11px 14px;color:var(--muted);font-size:11px}.timeline-v3-help strong{color:#365775}.timeline-edit-dialog{width:min(980px,96vw);padding:18px}.timeline-edit-dialog .dialog-head{display:flex;justify-content:space-between;gap:16px;margin:-18px -18px 15px;padding:14px 18px;border-bottom:1px solid var(--line);background:#f4f8fc}.timeline-edit-dialog .dialog-head h2{font-size:19px}.timeline-edit-dialog .dialog-head p{margin:4px 0 0;color:var(--muted);font-size:11px}

@media(max-width:900px){.info-grid{grid-template-columns:1fr}.timeline-v3-shell{--lane-label-width:145px}.timeline-v3-controls{align-items:flex-start}.timeline-v3-controls>div:first-child{grid-template-columns:auto minmax(130px,1fr) auto}.timeline-v3-legend{display:none}}


/* V0.8.6 — diagnostic, liaisons Word et ancrage timeline */
.runtime-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.runtime-grid span{padding:.45rem .7rem;border:1px solid var(--line,#d9e2ec);border-radius:999px;background:#f7fafc;font-size:.82rem;font-weight:700;color:#43566d}
.link-suggestion-list{display:grid;gap:.85rem}
.link-suggestion{border:1px solid #d8e2ed;border-radius:14px;padding:1rem;background:#fff}
.link-suggestion.status-accepted{border-color:#9fd6bd;background:#f4fbf7}
.link-suggestion.status-ignored{opacity:.72;background:#f5f7f9}
.link-suggestion>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.link-suggestion>header>div{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.link-accept-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:.8rem;align-items:end}
.link-suggestion-actions{display:flex;justify-content:flex-end;margin-top:.65rem}
.link-timeline-form{padding:.8rem;border-radius:12px;background:#f7f9fc}
.timeline-v3-event:target{outline:4px solid rgba(240,151,38,.55);outline-offset:3px;z-index:20;animation:timeline-target-pulse 1.4s ease-out 1}
@keyframes timeline-target-pulse{0%{filter:brightness(1.3);transform:translateY(-2px)}100%{filter:none;transform:none}}
@media(max-width:720px){.link-accept-form{grid-template-columns:1fr}.link-suggestion>header{flex-direction:column}}


/* V0.8.6 alpha2 — Fiche Compé dynamique et référentiel des factions */
.field-help{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35}
.faction-grid article{display:flex;flex-direction:column;gap:7px}
.faction-power-list{display:grid;gap:6px;max-height:430px;overflow:auto;padding:7px;border:1px solid var(--line);border-radius:11px;background:#f7faff}
.faction-power-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px;border:1px solid #d8e2ec;border-radius:9px;background:#fff;opacity:.62}
.faction-power-row>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e9eef5;color:#536981;font-size:10px;font-weight:900}
.faction-power-row strong,.faction-power-row small{display:block}.faction-power-row strong{color:#355574;font-size:11px}.faction-power-row small{margin-top:3px;color:#6e8198;font-size:9px;line-height:1.38}.faction-power-row em{color:#8795a6;font-size:9px;font-style:normal;font-weight:850;white-space:nowrap}
.faction-power-row.acquired{border-color:#a8d8c1;background:#f1fbf6;opacity:1}.faction-power-row.acquired>span{background:#d8f3e5;color:#25724e}.faction-power-row.acquired em{color:#24734f}


/* ================================================================
   V0.8.6 Alpha 6 — Timeline Deus, inscriptions denses et auto-save
   ================================================================ */

/* Timeline inspirée du classeur Deus 4 */
.timeline-v3-shell.timeline-v3-deus{
  --lane-label-width:230px;
  --timeline-width:11520px;
  --minute-px:4px;
  min-height:760px;
  margin-top:14px;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 48px rgba(31,55,86,.15);
}
.timeline-v3-shell.timeline-v3-deus:fullscreen{
  width:100vw;height:100vh;min-height:100vh;margin:0;border:0;border-radius:0;background:#f6f9fd;
}
.timeline-v3-fullscreen-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:56px;padding:10px 14px;border-bottom:1px solid #cedbea;
  background:linear-gradient(135deg,#eef5ff,#f8fbff);
}
.timeline-v3-fullscreen-toolbar>div:first-child{display:flex;flex-direction:column;gap:2px}
.timeline-v3-fullscreen-toolbar strong{font-size:12px;color:#315a86}
.timeline-v3-fullscreen-toolbar span{font-size:10px;color:#69809a}
.timeline-v3-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}
.timeline-v3-controls-inside{
  position:relative;z-index:80;margin:0;border:0;border-radius:0;
  border-bottom:1px solid #cedbea;background:#fff;
}
.timeline-v3-deus .timeline-v3-controls>div:first-child{grid-template-columns:auto minmax(260px,420px) 80px}
.timeline-v3-deus .timeline-v3-topbar{
  position:relative;top:auto;z-index:75;height:52px;
  grid-template-columns:var(--lane-label-width) minmax(0,1fr);
}
.timeline-v3-top-navigation{
  display:grid;grid-template-columns:36px minmax(0,1fr) 36px;
  grid-template-rows:30px 12px;align-items:center;gap:4px;padding:4px 8px;
}
.timeline-v3-top-navigation .timeline-v3-top-scroll{grid-column:1/-1;height:10px}
.timeline-scroll-arrow{
  height:28px;padding:0;border:1px solid #b9cae0;border-radius:7px;background:#fff;
  color:#496989;font-size:20px;font-weight:900;line-height:1;cursor:pointer;
}
.timeline-scroll-arrow:hover{background:#eaf2ff}
#timelineHorizontalRange{width:100%;min-height:auto;padding:0;accent-color:#5f75dc}
#timelineHorizontalRange::-webkit-slider-runnable-track{height:13px;border-radius:999px;background:linear-gradient(90deg,#d8e4f3,#b9cbea)}
#timelineHorizontalRange::-webkit-slider-thumb{-webkit-appearance:none;width:70px;height:25px;margin-top:-6px;border-radius:999px;background:linear-gradient(135deg,#4f82df,#7659d4);box-shadow:0 3px 9px rgba(52,76,128,.3)}
.timeline-v3-stage{display:grid;grid-template-columns:34px minmax(0,1fr);min-height:650px}
.timeline-v3-vertical-navigation{
  position:relative;z-index:70;display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:8px 4px;border-right:1px solid #cad8e7;background:linear-gradient(#edf4fb,#f8fbff)
}
.timeline-v3-vertical-navigation span{
  writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px;font-weight:900;color:#58718c;letter-spacing:.08em
}
#timelineVerticalRange{
  flex:1;width:18px;min-height:470px;padding:0;writing-mode:vertical-lr;direction:rtl;accent-color:#6b67d9
}
.timeline-v3-deus .timeline-v3-viewport{
  max-height:72vh;min-height:650px;overflow:auto;background:#f9fbfe;overscroll-behavior:contain;
}
.timeline-v3-deus:fullscreen .timeline-v3-viewport{height:calc(100vh - 164px);max-height:none;min-height:0}
.timeline-v3-deus .timeline-v3-content{
  grid-template-columns:var(--lane-label-width) var(--timeline-width);
  min-width:calc(var(--lane-label-width) + var(--timeline-width));
}
.timeline-v3-period-label,.timeline-v3-axis-label{
  position:sticky;left:0;z-index:58;display:flex;align-items:center;padding:0 12px;
  border-right:1px solid #aebfd1;border-bottom:1px solid #bfcddd;
  background:#edf4fb;color:#385b78;font-size:10px;font-weight:950;letter-spacing:.03em
}
.timeline-v3-period-label{top:0;height:42px}
.timeline-v3-periods{
  position:sticky;top:0;z-index:54;height:42px;border-bottom:1px solid #aebfd1;
  background:#fff;overflow:hidden
}
.timeline-v3-period{
  position:absolute;left:calc(var(--period-left) * var(--minute-px));
  width:calc(var(--period-duration) * var(--minute-px));height:42px;
  display:flex;align-items:center;justify-content:center;
  border-right:2px solid #6e7d91;background:linear-gradient(180deg,#fbfdff,#edf3f9);
  color:#1f2d40;font-size:14px;font-weight:950;letter-spacing:.035em
}
.timeline-v3-deus .timeline-v3-axis-label{top:42px;height:58px}
.timeline-v3-deus .timeline-v3-axis{top:42px;height:58px;background:linear-gradient(#fff,#f0f5fa)}
.timeline-v3-deus .timeline-v3-tick span{top:10px;font-size:10px}
.timeline-v3-deus .timeline-v3-tick.major{border-left-color:#aebdcb}
.timeline-v3-deus .timeline-v3-tick.day-start{border-left:3px solid #52677d}
.timeline-v3-deus .timeline-v3-lane-label{
  padding:0 13px;border-color:#9eafc0;background:#eef4ed;
}
.timeline-v3-deus .timeline-v3-lane-label strong{font-size:16px;color:#1e3046}
.timeline-v3-deus .timeline-v3-lane-label span{font-size:10px}
.timeline-v3-deus .timeline-v3-lane-label.lane-kind-principal{background:#eaf2db}
.timeline-v3-deus .timeline-v3-lane-label.lane-kind-attack{background:#e7efdc}
.timeline-v3-deus .timeline-v3-lane-label.lane-kind-priority1{background:#d99b9f}
.timeline-v3-deus .timeline-v3-lane-label.lane-kind-priority2{background:#f4bd8d}
.timeline-v3-deus .timeline-v3-lane-label.lane-kind-custom{background:#e5eaf1}
.timeline-v3-deus .timeline-v3-lane{
  border-bottom:1px solid #aeb9c6;
  background-color:#fff;
  background-image:
    repeating-linear-gradient(to right,rgba(50,67,86,.17) 0,rgba(50,67,86,.17) 1px,transparent 1px,transparent calc(30 * var(--minute-px))),
    repeating-linear-gradient(to right,transparent 0,transparent calc(150 * var(--minute-px) - 2px),rgba(34,48,64,.34) calc(150 * var(--minute-px) - 2px),rgba(34,48,64,.34) calc(150 * var(--minute-px)));
}
.timeline-v3-deus .timeline-v3-event{
  top:calc(14px + var(--event-track) * 172px);
  width:max(165px,calc(var(--event-duration) * var(--minute-px)));
  height:150px;grid-template-columns:22px minmax(0,1fr) 32px;
  border-radius:14px;border-width:1px;border-left-width:7px;overflow:hidden;
  box-shadow:0 5px 14px rgba(32,52,78,.17)
}
.timeline-v3-deus .timeline-v3-event:hover{z-index:50;box-shadow:0 11px 26px rgba(32,52,78,.26)}
.timeline-drag-handle{
  display:grid;place-items:center;width:100%;height:100%;padding:0;border:0;border-right:1px solid rgba(65,91,117,.15);
  background:rgba(62,104,153,.08);color:#5b7390;font-weight:900;cursor:grab;touch-action:none
}
.timeline-drag-handle:active{cursor:grabbing}
.timeline-v3-deus .timeline-v3-event-body{
  display:block;min-width:0;width:100%;height:100%;padding:9px 8px;border:0;background:transparent;
  color:#223d5a;text-align:left;text-decoration:none;overflow:hidden;cursor:pointer
}
.timeline-v3-deus .timeline-v3-event-body strong{
  display:block;white-space:normal;overflow:visible;font-size:15px;line-height:1.25
}
.timeline-v3-deus .timeline-v3-event-body span{display:block;margin-top:5px;font-size:11px;color:#59718a;font-weight:850}
.timeline-v3-deus .timeline-v3-event-body small{
  display:block;margin-top:6px;white-space:normal;overflow:hidden;font-size:11px;line-height:1.3;color:#5c7086
}
.timeline-v3-event-actions{
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;padding:5px 4px;
  border-left:1px solid rgba(70,93,117,.14);background:rgba(247,250,253,.72)
}
.timeline-v3-event-actions form{margin:0}
.timeline-card-action{
  width:22px;height:22px;padding:0;border:1px solid #bdccdb;border-radius:6px;background:#fff;color:#4c6782;font-size:13px;cursor:pointer
}
.timeline-card-action.danger{color:#b53d4a;border-color:#e2b3b8}
.timeline-card-action:hover{filter:brightness(.96)}
.timeline-v3-deus .timeline-resize-handle{
  position:absolute;top:0;bottom:0;width:6px;height:auto;z-index:12;background:rgba(29,101,158,.16)
}
.timeline-v3-deus .timeline-resize-handle.start{left:0}.timeline-v3-deus .timeline-resize-handle.end{right:0}
.timeline-v3-deus .timeline-lock-mark{position:absolute;right:4px;bottom:4px}
.timeline-v3-deus .timeline-v3-help{font-size:12px}
.timeline-v3-event:target{outline:5px solid rgba(236,150,40,.65);outline-offset:3px;z-index:80}

/* Inscriptions : liste très dense */
.compact-stats{margin-bottom:8px}.compact-stats .stat-card{min-height:64px;padding:9px 12px}.compact-stats .stat-card strong{font-size:20px}
.compact-panel{padding:9px 12px;margin-bottom:8px}
.compact-filter{align-items:end}.compact-filter label{font-size:9px}.compact-filter input,.compact-filter select{min-height:32px;padding:5px 8px}
.registration-table-panel{padding:0;overflow:hidden}
.registration-table-toolbar{display:flex;justify-content:space-between;gap:12px;padding:8px 11px;border-bottom:1px solid var(--line);background:#f5f8fc}
.registration-table-toolbar strong{font-size:11px;color:#355675}.registration-table-toolbar span{font-size:9px;color:var(--muted)}
.registration-dense-wrap{max-height:68vh;overflow:auto}
.registration-dense-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed}
.registration-dense-table th{
  position:sticky;top:0;z-index:5;padding:6px 7px;border-bottom:1px solid #c9d7e5;background:#eaf1f8;
  color:#425e7a;font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.035em
}
.registration-dense-table td{height:38px;padding:3px 5px;border-bottom:1px solid #e2e9f0;vertical-align:middle}
.registration-dense-table tr:hover td{background:#f7fbff}
.registration-dense-table tr.registration-paid-row td{background:#eef9f1}
.registration-dense-table tr.registration-paid-row:hover td{background:#e4f5e9}
.registration-dense-table tr.registration-paid-row td:first-child{box-shadow:inset 4px 0 #3c9860}
.registration-dense-table select.payment-paye{border-color:#5aa976;background:#e6f6eb;color:#236b42;font-weight:850}
.registration-filter-grid{grid-template-columns:minmax(180px,1.3fr) repeat(3,minmax(150px,.75fr)) auto}
.registration-dense-table th:nth-child(1){width:190px}.registration-dense-table th:nth-child(2){width:125px}.registration-dense-table th:nth-child(3){width:125px}.registration-dense-table th:nth-child(4){width:145px}.registration-dense-table th:nth-child(5){width:120px}.registration-dense-table th:nth-child(6){width:260px}.registration-dense-table th:nth-child(7){width:140px}
.registration-dense-table input,.registration-dense-table select{
  width:100%;min-height:29px;height:29px;padding:3px 6px;border-radius:6px;font-size:10px
}
.registration-name{white-space:nowrap}.registration-name strong{font-size:10px;color:#2d4d6c}
.inline-lock-dot{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:5px;padding:0 4px;border-radius:999px;background:#fff0d7;color:#9b6118;font-size:8px;font-weight:900}
.registration-actions{display:flex;align-items:center;gap:6px}
.inline-save-state{display:inline-block;max-width:120px;color:#7b8da2;font-size:8px;line-height:1.15}
.inline-save-state.saving{color:#815eb2}.inline-save-state.saved{color:#258057}.inline-save-state.error{color:#b23d4a}
.registration-detail-dialog{width:min(1050px,96vw)}
.dialog-danger-zone{display:flex;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.dialog-danger-zone form{margin:0}

/* Scénarios : auto-save, pas de texte intégral */
.scenario-inline-autosave{grid-template-columns:minmax(190px,1.5fr) 120px 100px 90px 105px 130px}
.scenario-auto-state{display:flex;align-items:end;padding-bottom:7px}
.scenario-action-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.scenario-focused{outline:4px solid rgba(238,154,44,.52);outline-offset:2px;animation:scenario-focus-pulse 1.5s ease-out}
@keyframes scenario-focus-pulse{0%{background:#fff4d9}100%{background:transparent}}
.word-existing-link{margin-top:10px;padding:10px;border:1px solid #cbdbea;border-radius:10px;background:#f5f9fd}
.word-existing-link label,.word-existing-link small{display:block}.word-existing-link small{margin-top:5px;color:var(--muted);font-size:9px}
.link-choice-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,.8fr);gap:10px;margin-top:9px}
.raw-accept-form{padding:10px;border:1px dashed #c4d2df;border-radius:10px;background:#fafcff}
.raw-accept-form p{margin:0 0 8px;color:var(--muted);font-size:10px}

@media(max-width:900px){
  .timeline-v3-shell.timeline-v3-deus{--lane-label-width:165px}
  .timeline-v3-fullscreen-toolbar{align-items:flex-start;flex-direction:column}
  .timeline-v3-deus .timeline-v3-controls{align-items:flex-start}
  .timeline-v3-deus .timeline-v3-controls>div:first-child{grid-template-columns:auto minmax(130px,1fr) auto}
  .timeline-v3-stage{grid-template-columns:1fr}.timeline-v3-vertical-navigation{display:none}
  .scenario-inline-autosave{grid-template-columns:1fr 1fr}
  .link-choice-grid{grid-template-columns:1fr}
}




.registration-name{position:relative}
.registration-name-edit{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.registration-name-edit input{min-width:0;font-weight:750;color:#2d4d6c}
.registration-name .inline-lock-dot{position:absolute;right:2px;top:2px}


.timeline-v3-deus .timeline-v3-event.lane-kind-principal{
  background:linear-gradient(135deg,#e3f5e8,#f9fffb);border-color:#a9d6b5;border-left-color:#4ea36a
}
.timeline-v3-deus .timeline-v3-event.lane-kind-attack{
  background:linear-gradient(135deg,#ffe5e9,#fffafb);border-color:#efb6bf;border-left-color:#df5a6d
}
.timeline-v3-deus .timeline-v3-event.lane-kind-priority1{
  background:linear-gradient(135deg,#ffebd6,#fffaf4);border-color:#f2c89f;border-left-color:#ef9954
}
.timeline-v3-deus .timeline-v3-event.lane-kind-priority2{
  background:linear-gradient(135deg,#fff4d9,#fffdf7);border-color:#ead39a;border-left-color:#d8a943
}
.timeline-v3-deus .timeline-v3-event.lane-kind-custom{
  background:linear-gradient(135deg,color-mix(in srgb,var(--event-color),#fff 88%),#fff);
  border-left-color:var(--event-color)
}

/* ================================================================
   V0.8.6 Alpha 7 — déplacements prévisualisés, distribution compacte
   ================================================================ */

/* Timeline : cartes réduites d'un tiers et déplacement en ombre. */
.timeline-v3-deus .timeline-v3-event{
  top:calc(8px + var(--event-track) * 112px);
  height:100px;
  grid-template-columns:18px minmax(0,1fr) 29px;
  border-radius:12px;
}
.timeline-v3-deus .timeline-v3-event-body{padding:7px 7px}
.timeline-v3-deus .timeline-v3-event-body strong{font-size:13px;line-height:1.17;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.timeline-v3-deus .timeline-v3-event-body span{margin-top:3px;font-size:9px}
.timeline-v3-deus .timeline-v3-event-body small{margin-top:3px;font-size:9px;line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.timeline-v3-event-actions{gap:2px;padding:3px}
.timeline-card-action{width:20px;height:20px;font-size:12px}
.timeline-drag-handle{font-size:12px}
.timeline-v3-event.timeline-drag-source{
  opacity:.24;
  filter:saturate(.35);
  box-shadow:inset 0 0 0 2px rgba(53,88,122,.25);
}
.timeline-drag-ghost{
  position:fixed!important;
  z-index:9999!important;
  margin:0!important;
  opacity:.76!important;
  pointer-events:none!important;
  transform:rotate(.5deg) scale(.99);
  box-shadow:0 18px 42px rgba(20,43,70,.34)!important;
  transition:none!important;
}
.timeline-drag-ghost .timeline-resize-handle,
.timeline-drag-ghost .timeline-v3-event-actions,
.timeline-drag-ghost .timeline-drag-handle{display:none!important}
.timeline-drop-preview{
  position:absolute;
  z-index:70;
  left:calc(var(--preview-left,0) * var(--minute-px));
  width:max(165px,calc(var(--preview-duration,60) * var(--minute-px)));
  height:100px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  padding:10px 12px;
  border:3px dashed #3a78b4;
  border-radius:12px;
  background:rgba(219,239,255,.76);
  color:#234f78;
  box-shadow:0 0 0 4px rgba(58,120,180,.12),0 10px 24px rgba(34,73,108,.18);
  pointer-events:none;
}
.timeline-drop-preview strong{font-size:12px}
.timeline-drop-preview span{font-size:9px;line-height:1.25;font-weight:750}
.timeline-v3-lane.timeline-drop-target{background-color:#edf8ff;box-shadow:inset 0 0 0 3px rgba(21,94,170,.34)}

/* Distribution : scénarios plus courts, suivi directement sous le Word. */
.distribution-table .scenario-col,
.scenario-cell{min-width:360px!important;width:360px!important;max-width:360px!important}
.distribution-table th:nth-child(3){min-width:430px;width:430px}
.distribution-table th:nth-last-child(1){min-width:190px}
.word-and-tracking{display:grid;gap:9px;min-width:410px}
.word-tracking-panel{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:9px;border:1px solid #d5e2ef;border-radius:12px;background:#f7fbff}
.word-tracking-panel>strong{grid-column:1/-1;color:#31597f;font-size:11px}
.word-tracking-panel label{margin:0;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#6c8098}
.word-tracking-panel select{min-height:32px;padding:5px 7px;font-size:10px}
.word-tracking-panel .tracking-wide{grid-column:1/-1}
.word-tracking-panel details{grid-column:1/-1;border-top:1px dashed #cddbea;padding-top:6px}
.word-tracking-panel details summary{cursor:pointer;color:#31597f;font-size:10px;font-weight:850}
.word-tracking-panel textarea{min-height:90px;margin-top:7px;font-size:10px}
.interpreter-identity-block [data-interpreter-summary-name]{display:block;margin-top:9px;color:#2d4e72;font-size:17px;font-weight:850}
.interpreter-identity-block [data-interpreter-summary-category]{display:block;margin-top:3px;color:#6f839b;font-size:11px}
.scenario-inline-static{margin-bottom:7px;border:1px solid #d5e1ef;border-radius:11px;background:#fbfdff;overflow:hidden}
.scenario-inline-static .scenario-static-head{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:7px;align-items:end;padding:8px;background:linear-gradient(90deg,#f2f7ff,#f8fbff)}
.scenario-inline-static .scenario-static-head label{font-size:8px;text-transform:uppercase;letter-spacing:.05em}
.scenario-inline-static .scenario-static-head input,
.scenario-inline-static .scenario-static-head select{min-height:31px;padding:4px 6px;font-size:10px}
.scenario-inline-static .scenario-static-meta{display:grid;gap:4px;padding:8px;color:#516980;font-size:9px;line-height:1.3}
.scenario-inline-static .scenario-static-meta span{display:block}
.scenario-inline-static .scenario-static-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:0 8px 8px}
.scenario-inline-static .inline-save-state{margin-left:auto}
.scenario-duplicate-warning{padding:7px;border:1px solid #f1cf91;border-radius:8px;background:#fff7e6;color:#825d18;font-size:9px}

/* TODO : une vraie liste fermée, détails à la demande. */
.todo-compact-list{display:grid;gap:7px;margin-top:14px}
.todo-compact-item{border:1px solid var(--line);border-left:4px solid #60a5fa;border-radius:12px;background:#fff;overflow:hidden}
.todo-compact-item.todo-overdue{border-left-color:#ef4444;background:linear-gradient(90deg,#fff7f7,#fff 28%)}
.todo-compact-item>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 11px;cursor:pointer;list-style:none}
.todo-compact-item>summary::-webkit-details-marker{display:none}
.todo-compact-item>summary h3{font-size:13px;margin:0;color:#2e4f6d}
.todo-compact-item>summary .badges{margin:0;justify-content:flex-end}
.todo-compact-item>summary .todo-detail-label{font-size:9px;font-weight:850;color:#155eaa;white-space:nowrap}
.todo-compact-item[open]>summary{border-bottom:1px solid var(--line);background:#f5f9fd}
.todo-compact-content{padding:11px}
.todo-compact-content .progress-track{margin:8px 0}
.todo-source-link{display:inline-flex;margin-top:8px}

@media(max-width:900px){
  .distribution-table .scenario-col,.scenario-cell{min-width:320px!important;width:320px!important;max-width:320px!important}
  .word-tracking-panel{grid-template-columns:1fr}
  .word-tracking-panel>strong,.word-tracking-panel .tracking-wide,.word-tracking-panel details{grid-column:1}
  .todo-compact-item>summary{grid-template-columns:1fr}
}


/* Alpha 7 — compléments finaux */
.word-existing-link.word-duplicate-warning{
  border-color:#e7bd70;
  background:#fffaf0;
  box-shadow:0 0 0 3px rgba(231,189,112,.12);
}
.word-existing-link .alert{margin:7px 0;font-size:10px}
.todo-compact-item>summary{
  grid-template-columns:minmax(220px,1fr) auto 58px 58px;
  min-height:42px;
}
.todo-compact-title{min-width:0;color:#2e4f6d;font-size:13px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.todo-compact-badges{display:flex;gap:5px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.todo-compact-progress{color:#365d82;font-size:10px;font-weight:900;text-align:right;white-space:nowrap}
.todo-compact-details{padding:11px}
.todo-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:7px;margin-bottom:8px}
.todo-detail-grid>div{padding:7px 8px;border:1px solid #dbe5ef;border-radius:9px;background:#f7fafc}
.todo-detail-grid span{display:block;color:#7a8da2;font-size:8px;text-transform:uppercase;letter-spacing:.05em;font-weight:850}
.todo-detail-grid strong{display:block;margin-top:3px;color:#34516d;font-size:10px}
@media(max-width:900px){
  .todo-compact-item>summary{grid-template-columns:1fr auto}
  .todo-compact-badges{grid-column:1/-1;justify-content:flex-start}
  .todo-detail-grid{grid-template-columns:1fr 1fr}
}

/* ================================================================
   V0.8.6 Alpha 8 — distribution panoramique et personnes libres
   ================================================================ */
.distribution-table{min-width:3420px}
.distribution-table .scenario-col,
.distribution-table .scenario-cell{min-width:1080px!important;width:1080px!important;max-width:1080px!important}
.distribution-table th:nth-child(3){min-width:455px;width:455px}
.distribution-table th:nth-last-child(1),
.distribution-table .actions-cell{min-width:96px!important;width:96px!important;max-width:96px!important}
.distribution-table .actions-cell{padding:6px!important}
.distribution-table .actions-cell .word-card{padding:6px;gap:5px;border-radius:9px}
.distribution-table .actions-cell .word-card strong{font-size:9px;line-height:1.15;overflow-wrap:anywhere}
.distribution-table .actions-cell .word-card small{display:none}
.distribution-table .actions-cell .word-actions{display:grid;gap:4px}
.distribution-table .actions-cell .button{width:100%;padding:5px 4px;font-size:8px;line-height:1.1;white-space:normal}
.interpreter-identity-block input[data-manual-interpreter],
.word-tracking-panel input[data-manual-writer]{margin-top:5px;min-height:31px;padding:5px 7px;font-size:10px}
.non-registered-hint{display:block;margin-top:3px;color:#a45a18;font-size:9px;font-weight:850;text-transform:none;letter-spacing:0}
.non-registered-hint.is-hidden{display:none}
.word-and-tracking{align-content:start}
.word-tracking-panel{order:1}
.word-and-tracking>.word-card{order:2}
.scenario-cell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-content:start}
.scenario-cell>.empty-mini{grid-column:1/-1}
.scenario-inline-static{margin:0;min-height:0}
.scenario-inline-static .scenario-static-head{grid-template-columns:minmax(0,1fr) 88px;padding:5px 6px;gap:5px}
.scenario-inline-static .scenario-static-head input,
.scenario-inline-static .scenario-static-head select{min-height:26px;padding:3px 5px;font-size:9px}
.scenario-inline-static .scenario-static-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px 7px;padding:5px 6px;font-size:8px;line-height:1.2}
.scenario-inline-static .scenario-static-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scenario-inline-static .scenario-static-actions{gap:4px;padding:0 6px 5px}
.scenario-inline-static .scenario-static-actions .button{padding:4px 6px;font-size:8px}
.scenario-inline-static .scenario-static-actions .badge{font-size:8px}
.scenario-inline-static .inline-save-state{font-size:8px}
.scenario-relation-editor{border-top:1px dashed #d4e0ec;background:#f8fbfe}
.scenario-relation-editor>summary{cursor:pointer;padding:5px 6px;color:#355d83;font-size:8.5px;font-weight:850}
.scenario-relation-list{display:grid;gap:4px;padding:0 6px 6px}
.scenario-relation-list>div{display:flex;align-items:center;gap:4px}
.scenario-relation-list form{margin-left:auto}
.relation-remove{width:20px;height:20px;border:0;border-radius:999px;background:#fee2e2;color:#991b1b;font-weight:900;cursor:pointer}
.scenario-relation-form{display:grid;grid-template-columns:120px minmax(0,1fr) 42px;gap:4px;padding:0 6px 6px}
.scenario-relation-form select{min-height:27px;padding:3px 5px;font-size:8.5px}
.scenario-relation-form .button{padding:4px;font-size:8px}
@media(max-width:1300px){
 .scenario-cell{grid-template-columns:1fr}
 .distribution-table .scenario-col,.distribution-table .scenario-cell{min-width:760px!important;width:760px!important;max-width:760px!important}
}

/* Alpha 8 — chaînes de scénarios dans la Timeline. */
.timeline-chain-overlay{
  position:absolute;inset:0;z-index:8;overflow:visible;pointer-events:none
}
.timeline-chain-path{
  fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.82;
  vector-effect:non-scaling-stroke
}
.timeline-v3-event.has-chain{
  border-color:color-mix(in srgb,var(--chain-color),#fff 35%)!important;
  border-left:7px solid var(--chain-color)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--chain-color),transparent 80%),0 7px 17px rgba(38,61,89,.16)
}
.timeline-v3-event.has-chain::after{
  content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--chain-color);opacity:.88;pointer-events:none
}
.timeline-v3-lane,.timeline-v3-lane-label,.timeline-v3-axis,.timeline-v3-axis-label,.timeline-v3-periods,.timeline-v3-period-label{z-index:12}
.timeline-v3-event{z-index:30}
.timeline-chain-overlay{z-index:24}
.timeline-v3-lane{z-index:auto}
.timeline-v3-lane-label{z-index:35}
.timeline-v3-axis,.timeline-v3-axis-label,.timeline-v3-periods,.timeline-v3-period-label{z-index:45}

/* Alpha 8 — connexion stable à la feuille Google Forms. */
.google-sheet-source{border-left:5px solid #2f8a70;background:linear-gradient(135deg,#fff,#f3fbf8)}
.google-sheet-source .panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}
.google-sheet-source .panel-head span{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}
.source-status-strip{display:flex;gap:8px;flex-wrap:wrap;margin:11px 0;padding:9px;border:1px solid #d7e6df;border-radius:10px;background:#f8fcfa}
.source-status-strip span{padding:5px 8px;border-radius:8px;background:#fff;color:#50677b;font-size:9px}
.scenario-inline-static.has-scenario-chain{border-left:6px solid var(--scenario-chain-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--scenario-chain-color),transparent 84%)}
.scenario-chain-badge{color:#fff;background:var(--scenario-chain-color)}

/* ================================================================
   V0.8.6 Alpha 10 — distribution des rôles et fiches horizontales
   ================================================================ */
.role-assignment-board{display:grid;gap:7px;margin-top:14px}
.role-board-header,.role-board-row{display:grid;grid-template-columns:minmax(420px,1.35fr) minmax(280px,.65fr);gap:10px;align-items:stretch}
.role-board-header>div{padding:8px 12px;border-radius:10px;background:#eaf2fb;color:#315879;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.role-board-row{min-height:70px}
.role-board-role-cell,.role-board-pnj-cell{border:1px solid #d5e1ed;border-radius:12px;background:#fff;padding:8px}
.role-board-role-cell{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:70px;transition:.15s ease}
.role-board-role-cell.is-over{border:2px dashed #3975b7;background:#edf6ff;box-shadow:0 0 0 4px rgba(57,117,183,.10)}
.role-board-pnj-cell{display:flex;flex-direction:column;justify-content:center;gap:3px;background:#f8fbfe}
.role-board-pnj-cell strong{color:#2b4e6e;font-size:13px}.role-board-pnj-cell span,.role-board-pnj-cell small{font-size:10px;color:#6d8195}
.role-drag-card{display:grid;grid-template-columns:18px minmax(160px,1fr) auto;align-items:center;gap:7px;min-width:270px;max-width:430px;padding:7px 8px;border:1px solid #c9d8e7;border-left:5px solid #4779b7;border-radius:10px;background:#fff;box-shadow:0 4px 12px rgba(33,66,99,.09);cursor:grab}
.role-drag-card:active{cursor:grabbing}.role-drag-card.is-dragging{opacity:.32;transform:scale(.98)}
.role-drag-handle{color:#7690aa;font-size:18px;letter-spacing:-4px}.role-drag-card strong{display:block;color:#274d70;font-size:12px}.role-drag-card small{display:block;margin-top:2px;color:#73879a;font-size:9px}
.role-drop-placeholder{color:#91a1b1;font-size:10px;font-style:italic}
.role-drop-preview{flex:1 1 250px;min-height:48px;display:flex;align-items:center;justify-content:center;padding:8px;border:2px dashed #3975b7;border-radius:10px;background:rgba(255,255,255,.72);color:#315e8b;font-size:10px;font-weight:850}
.role-board-section-label{padding:8px 11px;border-radius:10px;background:#fff3df;color:#8d5d1b;font-size:10px;font-weight:900}
.manual-person-row .role-board-pnj-cell{background:#fff9ef}
.role-assignment-board.columns-reversed .role-board-header>div:first-child,.role-assignment-board.columns-reversed .role-board-row>.role-board-role-cell{order:2}.role-assignment-board.columns-reversed .role-board-header>div:last-child,.role-assignment-board.columns-reversed .role-board-row>.role-board-pnj-cell{order:1}
.role-board-toast{position:fixed;right:18px;bottom:18px;z-index:9999;max-width:360px;padding:11px 14px;border-radius:11px;background:#1f5f45;color:#fff;box-shadow:0 12px 35px rgba(18,45,69,.24);opacity:0;transform:translateY(10px);pointer-events:none;transition:.18s ease}.role-board-toast.is-visible{opacity:1;transform:translateY(0)}.role-board-toast.is-error{background:#a73333}
.role-create-inline{display:flex;align-items:end;gap:10px}.role-create-inline>div{flex:1}.compact-panel{padding:10px 12px}.role-assignment-help{padding:9px 12px;font-size:10px}
.distribution-filter-grid{grid-template-columns:minmax(230px,420px) auto;justify-content:start}
/* Bandeaux de groupe du tableau de distribution (09/09/2026). Un bandeau par
   type d'interprete, dans l'ordre PNJ Role, Organisation, PNJ Combat,
   Intendance. Les non inscrits n'ont plus de bandeau a eux : ils rejoignent le
   groupe de leur type et gardent leur fond beige ligne par ligne, regle
   .role-board-row.is-unregistered-person juste dessous. */
.role-board-section-label.group-pnj-role{background:#e7f0fa;color:#2d5c86}
.role-board-section-label.group-orga{background:#e9f6ee;color:#2f7350}
.role-board-section-label.group-pnj-combat{background:#f1eaf8;color:#5b3f80}
.role-board-section-label.group-intendance{background:#fff1dc;color:#965e18}
.role-board-section-label.unassigned-role-label{background:#dceaf8;color:#1f4b73}
.role-board-row.is-unregistered-person .role-board-pnj-cell{background:#fffaf1;border-color:#ead5b8}

.role-document-list{display:grid;gap:12px;margin-top:14px}
.role-document-card{border:1px solid #cfdcea;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(34,65,96,.08);overflow:hidden;scroll-margin-top:100px}
.role-document-header{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(260px,.9fr) auto;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid #d8e4ef;background:linear-gradient(90deg,#f2f7fd,#fbfdff)}
.role-document-title-line{display:flex;gap:8px;align-items:end}.role-document-title-line label:first-child{flex:1}.role-document-title-line label:last-child{flex:.8}.role-document-header label{font-size:8px}.role-document-header input,.role-document-header textarea,.role-document-header select{min-height:29px;padding:4px 6px;font-size:10px}.role-document-header textarea{height:29px;resize:vertical}
.role-document-interpreter{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-items:end}.role-document-interpreter label{grid-column:1/-1}.role-document-header-status{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.role-document-header-status strong{font-size:10px;color:#46627c}
.role-document-grid{display:grid;grid-template-columns:minmax(270px,25%) minmax(620px,65%) minmax(92px,10%);gap:10px;padding:10px}
.role-document-word{display:grid;gap:8px;align-content:start}.role-subpanel{border:1px solid #d8e4ef;border-radius:11px;background:#fbfdff;padding:8px}.role-subpanel h3,.scenario-section-head h3{margin:0 0 7px;font-size:11px;color:#315878}.tracking-panel{display:grid;gap:6px}.tracking-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.tracking-panel label,.onedrive-panel{font-size:9px}.tracking-panel input,.tracking-panel select,.tracking-panel textarea{min-height:28px;padding:4px 5px;font-size:9px}.tracking-panel textarea{min-height:90px}.onedrive-panel{display:grid;gap:5px}.onedrive-panel strong{font-size:10px;overflow-wrap:anywhere}.word-actions{display:flex;gap:4px;flex-wrap:wrap}
.role-document-scenarios{min-width:0}.scenario-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.scenario-section-head span{font-size:9px;color:#73879a}.scenario-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:start}.scenario-compact-card{min-width:0;border:1px solid #d5e1ed;border-left:5px solid #7394b8;border-radius:10px;background:#fff;overflow:hidden}.scenario-compact-card.has-scenario-chain{border-left-color:var(--scenario-chain-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--scenario-chain-color),transparent 84%)}.scenario-compact-head{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:5px;padding:6px;background:#f4f8fc}.scenario-compact-head label,.scenario-location-field{font-size:8px}.scenario-compact-head input,.scenario-compact-head select,.scenario-location-field input{min-height:26px;padding:3px 5px;font-size:9px}.scenario-location-field{display:block;padding:0 6px 5px;background:#f4f8fc}.scenario-compact-meta{display:grid;gap:3px;padding:6px;color:#566e84;font-size:8px;line-height:1.25}.scenario-compact-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scenario-compact-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:0 6px 6px}.scenario-compact-actions .button{padding:4px 5px;font-size:8px}.scenario-compact-actions .inline-save-state{margin-left:auto;font-size:8px}
.role-document-actions{display:grid;align-content:start;gap:7px}.competency-mini{display:grid;gap:6px;padding:6px}.competency-mini h3{font-size:9px}.competency-mini strong{font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competency-mini .button,.role-document-actions>.button,.role-document-actions>form .button{width:100%;padding:5px 3px;font-size:8px;white-space:normal}
.scenario-relation-editor{border-top:1px dashed #d5e0eb;background:#f8fbfe}.scenario-relation-editor>summary{padding:5px 6px;cursor:pointer;color:#365d82;font-size:8px;font-weight:850}.scenario-relation-list{display:grid;gap:3px;padding:0 6px 5px}.scenario-relation-list>div{display:flex;align-items:center;gap:3px}.scenario-relation-form{display:grid;grid-template-columns:92px minmax(0,1fr) 34px;gap:3px;padding:0 6px 6px}.scenario-relation-form select{min-height:25px;padding:2px 3px;font-size:8px}.scenario-relation-form .button{padding:3px;font-size:7.5px}

@media(max-width:1300px){.role-document-grid{grid-template-columns:minmax(250px,30%) minmax(520px,60%) minmax(90px,10%)}.scenario-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.role-board-header,.role-board-row{grid-template-columns:1fr}.role-assignment-board.columns-reversed .role-board-header>div,.role-assignment-board.columns-reversed .role-board-row>*{order:initial}.role-document-header,.role-document-grid{grid-template-columns:1fr}.scenario-card-grid{grid-template-columns:1fr}.role-document-interpreter{grid-template-columns:1fr}.role-document-interpreter label{grid-column:1}.role-create-inline{align-items:stretch;flex-direction:column}}
.role-document-title,.role-document-title-line{display:flex;gap:8px;align-items:end}.role-document-title label:first-child,.role-document-title-line label:first-child{flex:1}.role-document-title label:last-child,.role-document-title-line label:last-child{flex:.8}
.onedrive-root-actions{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 12px}.onedrive-root-actions form{margin:0}.onedrive-start-folder{border-left:5px solid #4d7fba}
.sensitive-field{border:1px solid #d8e4ef;border-radius:11px;padding:9px;background:#fbfdff}.sensitive-field small{display:block;margin-top:4px;color:#6f8295;font-size:9px}.dietary-field{border-left:5px solid #d59a35;background:#fffbf2}.medical-field{border-left:5px solid #b34b5b;background:#fff7f8}
.simple-list-table{width:100%;border-collapse:collapse}.simple-list-table th,.simple-list-table td{padding:8px 10px;border-bottom:1px solid #dce5ee;text-align:left;vertical-align:top}.simple-list-table th{background:#edf4fa;color:#365a7a;font-size:10px;text-transform:uppercase}.simple-list-table td{font-size:11px}.insurance-list-panel{overflow:auto}



/* ================================================================
   V0.8.6 Alpha 10.3 — personnes pressenties entre opus
   ================================================================ */
.prospect-source{display:block;margin-top:3px;color:#a45a18;font-size:9px;font-weight:850;line-height:1.25;text-transform:none;letter-spacing:0}
.role-board-pnj-cell .prospect-source{color:#a45a18}
.role-document-interpreter>[data-interpreter-hint]{grid-column:1/-1;margin-top:0}
.registration-name .prospect-source{padding-left:2px}

@media(max-width:1100px){.registration-filter-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.distribution-filter-grid{grid-template-columns:1fr}}

/* ================================================================
   V0.8.6 Alpha 10.6 — séparation visuelle des fiches et co-scénariste
   ================================================================ */
.scenario-document-list{gap:26px}
.role-document-card{border:2px solid #9eb6cd;border-top:0;border-radius:18px;box-shadow:0 14px 34px rgba(34,65,96,.15)}
.role-document-card:nth-of-type(even){border-color:#b2a6c9}
.role-document-boundary{display:flex;align-items:center;gap:10px;padding:7px 12px;background:#315878;color:#fff;letter-spacing:.02em}
.role-document-card:nth-of-type(even) .role-document-boundary{background:#5d4d7d}
.role-document-boundary span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;opacity:.82}
.role-document-boundary strong{font-size:12px;line-height:1.15}
.role-document-boundary small{margin-left:auto;font-size:9px;font-weight:750;opacity:.9}
.role-document-boundary-end{justify-content:flex-end;border-top:2px solid rgba(255,255,255,.18);padding-top:5px;padding-bottom:5px}
.role-document-boundary-end span{margin-right:auto}
.role-document-header{border-bottom:2px solid #c4d4e3;background:linear-gradient(90deg,#e9f2fb,#fbfdff)}
.role-document-card:nth-of-type(even) .role-document-header{background:linear-gradient(90deg,#f0ecf7,#fbfdff)}
.writer-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.writer-assignment{display:grid;gap:4px;padding:6px;border:1px solid #d6e2ed;border-radius:9px;background:#fff}
.writer-assignment label{font-weight:850;color:#355b7b}
.writer-assignment input{background:#fbfdff}
@media(max-width:1100px){.writer-pair-grid{grid-template-columns:1fr}}
@media(max-width:700px){.role-document-boundary{align-items:flex-start;flex-direction:column;gap:2px}.role-document-boundary small{margin-left:0}}

/* ================================================================
   V0.8.6 Alpha 10.8 — contrôle détaillé des recettes d'inscription
   ================================================================ */
.budget-registration-details{margin-top:5px}
.budget-registration-details>summary{cursor:pointer;color:#37658e;font-size:9px;font-weight:850}
.budget-registration-details ul{display:grid;gap:3px;margin:6px 0 0;padding:0;list-style:none}
.budget-registration-details li{display:flex;justify-content:space-between;gap:10px;padding:4px 6px;border-radius:7px;background:#f4f8fc;font-size:9px}
.budget-registration-details li small{color:#6a7f93;white-space:nowrap}

/* ================================================================
   V0.8.6 Alpha 10.9 — impression, listes compactes et OneDrive
   ================================================================ */
.tracking-row{grid-template-columns:repeat(2,minmax(0,1fr))}

.compact-entity-card{padding:8px 10px;border-left-width:4px}
.compact-entity-row{display:grid;grid-template-columns:minmax(240px,1fr) auto auto minmax(120px,180px) 70px auto;gap:9px;align-items:center}
.compact-entity-title{min-width:0}.compact-entity-title h3{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-entity-title small{display:block;margin-top:2px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-entity-person{color:#4e667f;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-edit-box{margin:0;padding:0;border:0}.compact-edit-box>summary{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px;white-space:nowrap}.compact-edit-box[open]{grid-column:1/-1;margin-top:8px;padding-top:10px;border-top:1px dashed #dbe4ee}

.work-onedrive-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border:1px solid #cfe0ef;border-left:5px solid #3979b7;border-radius:11px;background:#f5faff}.work-onedrive-link small{display:block;color:var(--muted);font-size:9px;font-weight:800}.work-onedrive-link strong{display:block;margin-top:2px;font-size:12px;overflow-wrap:anywhere}.onedrive-form-picker{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#f8fbfe}.onedrive-form-picker span{min-width:0;color:#48627c;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:1050px){.compact-entity-row{grid-template-columns:minmax(220px,1fr) auto auto 70px auto}.compact-entity-person{display:none}}
@media(max-width:720px){.compact-entity-row{grid-template-columns:1fr auto}.compact-entity-row>.badge,.compact-entity-row>.progress-badge{justify-self:start}.compact-edit-box{grid-column:1/-1}.work-onedrive-link{align-items:flex-start;flex-direction:column}}





/* ================================================================
   V0.8.6 Alpha 10.10 — listes d'inscriptions réellement imprimables
   L'ancien style Fiche Compé masque tous les .panel à l'impression.
   Ces sélecteurs plus spécifiques réaffichent uniquement la liste utile.
   ================================================================ */
.print-list-heading{display:none}



/* Alpha 10.19 — identité globale : adaptations d’interface sans modifier la charte générale. */
.global-person-link,.identity-source-note{display:block;margin-top:5px;color:var(--primary-dark);font-size:11px;font-weight:750}
.global-person-link a,.identity-source-note a{text-decoration:underline;text-underline-offset:2px}
.identity-source-note{padding:10px 12px;border:1px solid #bbf7d0;border-radius:10px;background:#f0fdf4;color:#166534}
.registration-dense-table input[readonly]{background:#f8fafc;color:#475569;cursor:not-allowed}

/* Alpha 10.22 — état partagé des rôles et TODO sans pourcentage */
.todo-inline-header,
.todo-inline-row{display:grid;grid-template-columns:minmax(280px,1.9fr) minmax(125px,.85fr) minmax(105px,.7fr) minmax(135px,.85fr) minmax(160px,1fr) auto;gap:8px;align-items:center}
.todo-inline-header{padding:0 11px;color:#64748b;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.todo-inline-card{overflow:visible}
.todo-inline-row{padding:9px 11px}
.todo-inline-row select,.todo-inline-row input{min-height:34px;padding:6px 8px;border-radius:8px;font-size:12px}
.todo-inline-title-cell{min-width:0;display:flex;flex-direction:column;gap:5px}
.todo-inline-title-cell>strong{min-width:0;color:#2e4f6d;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.todo-inline-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.todo-inline-details{border-top:1px solid var(--line)}
.todo-inline-details>summary{padding:7px 11px;color:#155eaa;font-size:10px;font-weight:850;cursor:pointer;list-style:none;background:#f8fbfe}
.todo-inline-details>summary::-webkit-details-marker{display:none}
.todo-inline-details[open]>summary{border-bottom:1px solid var(--line)}
.todo-inline-readonly>span{font-size:12px}
.source-truth-issue-list{display:flex;flex-direction:column;gap:2px;margin-top:5px;color:#92400e;font-size:11px}
@media(max-width:1200px){.todo-inline-header{display:none}.todo-inline-row{grid-template-columns:repeat(3,minmax(145px,1fr))}.todo-inline-title-cell{grid-column:1/-1}.todo-inline-row .button{justify-self:start}}
@media(max-width:720px){.todo-inline-row{grid-template-columns:1fr 1fr}.todo-inline-title-cell{grid-column:1/-1}.todo-inline-row .button{grid-column:1/-1;width:100%}}



/* Alpha 10.25 — liens croisés et rôles multiples */
.relation-checkbox-grid{max-height:230px;overflow:auto;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.relation-checkbox-grid .check-row{margin:0;padding:7px 8px;border-radius:8px}.relation-checkbox-grid .check-row:hover{background:#eef6ff}.role-drop-add-hint{display:block;width:100%;padding:5px 8px;border:1px dashed #9bb7d5;border-radius:8px;color:#55708c;font-size:11px;text-align:center}.cross-link-form{display:grid;gap:14px}.cross-link-panel{margin:0}.cross-link-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.cross-link-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-height:360px}.cross-link-rule{border-left:4px solid var(--primary)}.inherited-links .badges{margin-top:10px}.sticky-form-actions{position:sticky;bottom:12px;z-index:4;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(35,67,97,.13)}

/* Alpha 10.26 — rôles multiples alignés horizontalement dans Distribution */
.role-board-header,
.role-board-row{grid-template-columns:minmax(620px,1.8fr) minmax(260px,.7fr)}
.role-board-role-cell{
  flex-wrap:nowrap;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
  scrollbar-color:#9bb0c5 #edf3f8;
}
.role-board-role-cell::-webkit-scrollbar{height:8px}
.role-board-role-cell::-webkit-scrollbar-track{background:#edf3f8;border-radius:8px}
.role-board-role-cell::-webkit-scrollbar-thumb{background:#9bb0c5;border-radius:8px}
.role-board-role-cell .role-drag-card{
  flex:0 0 clamp(245px,31%,315px);
  min-width:245px;
  max-width:315px;
  align-self:stretch;
}
.role-board-role-cell .role-drop-placeholder{flex:0 0 auto;align-self:center}
.role-board-role-cell .role-drop-add-hint{
  display:flex;
  flex:0 0 155px;
  width:auto;
  min-height:48px;
  align-items:center;
  justify-content:center;
  align-self:stretch;
  padding:6px 9px;
}
.role-board-role-cell .role-drop-preview{flex:0 0 245px;min-width:245px;align-self:stretch}
@media(max-width:1100px){
  .role-board-header,.role-board-row{grid-template-columns:minmax(500px,1.55fr) minmax(250px,.75fr)}
  .role-board-role-cell .role-drag-card{flex-basis:270px}
}
@media(max-width:900px){
  .role-board-header,.role-board-row{grid-template-columns:1fr}
  .role-board-role-cell{max-width:100%;overflow-x:auto}
}

/* ================================================================
   V0.8.6 Alpha 10.26.1 — proportions et cartes de Distribution
   ================================================================ */
/* Ordre normal : Rôles larges à gauche, PNJ compact à droite. */
.role-board-header,
.role-board-row{
  grid-template-columns:minmax(720px,2fr) minmax(300px,.72fr);
}
/* Ordre inversé mémorisé par le navigateur : PNJ compact à gauche, Rôles larges à droite. */
.role-assignment-board.columns-reversed .role-board-header,
.role-assignment-board.columns-reversed .role-board-row{
  grid-template-columns:minmax(300px,.72fr) minmax(720px,2fr);
}
.role-board-role-cell .role-drag-card{
  flex:0 0 clamp(295px,30%,350px);
  min-width:295px;
  max-width:350px;
  grid-template-columns:14px minmax(0,1fr) auto;
  overflow:hidden;
}
.role-drag-card>div{min-width:0}
.role-drag-card strong,
.role-drag-card small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.role-drag-card .button-mini{
  justify-self:end;
  align-self:center;
  min-width:62px;
  padding:6px 8px;
  white-space:nowrap;
}
@media(max-width:1200px){
  .role-board-header,
  .role-board-row{grid-template-columns:minmax(600px,1.65fr) minmax(280px,.75fr)}
  .role-assignment-board.columns-reversed .role-board-header,
  .role-assignment-board.columns-reversed .role-board-row{grid-template-columns:minmax(280px,.75fr) minmax(600px,1.65fr)}
  .role-board-role-cell .role-drag-card{flex-basis:290px;min-width:290px;max-width:330px}
}
@media(max-width:900px){
  .role-board-header,
  .role-board-row,
  .role-assignment-board.columns-reversed .role-board-header,
  .role-assignment-board.columns-reversed .role-board-row{grid-template-columns:1fr}
}

/* ================================================================
   MACHINA 2.4.13 — Distribution : des lignes deux fois moins hautes
   ================================================================
   Demande d'Armand du 01/09/2026 : « on a assez de largeur pour tout faire
   en la moitié de hauteur, ce qui permettra d'afficher plus de rôles sur
   un écran ».

   L'essentiel du gain ne vient pas des marges mais du SOUS-TITRE DE LA
   CARTE, qui passe À CÔTÉ du nom au lieu de dessous : une ligne de texte
   au lieu de deux. Le reste n'est que resserrement.

   Les noms longs restent protégés : strong et small tronquent déjà en
   ellipse, et min-width:0 leur permet de rétrécir dans un conteneur flex —
   sans lui, un mot long refuse de se comprimer et déborde la carte. */
.role-board-role-cell{min-height:0}
.role-board-role-cell,
.role-board-pnj-cell{padding:5px 7px}
.role-assignment-board{gap:5px}

/* Le nom garde la priorité : c'est lui qu'on cherche du regard, le
   sous-titre s'efface le premier quand la place manque. */
.role-drag-card>div{display:flex;align-items:baseline;gap:8px;min-width:0}
.role-drag-card strong{flex:0 1 auto;min-width:0}
.role-drag-card small{flex:1 1 auto;min-width:0;margin-top:0}

.role-board-role-cell .role-drag-card{padding:4px 7px}
.role-board-role-cell .role-drop-add-hint{min-height:32px;padding:4px 9px}

/* Alpha 10.28.3 — le lieu est choisi et créé directement dans le scénario. */
.scenario-location-field{display:grid;gap:4px;padding:0 6px 6px;background:#f4f8fc}
.scenario-location-field label{display:grid;gap:2px;font-size:8px}
.scenario-location-field select,.scenario-new-location input{min-height:28px;padding:3px 5px;font-size:9px;min-width:0}
.scenario-new-location{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px;align-items:center}
.scenario-new-location[hidden]{display:none!important}
.scenario-new-location .button{white-space:nowrap}
@media(max-width:900px){.scenario-new-location{grid-template-columns:1fr auto}.scenario-new-location [data-scenario-cancel-location]{grid-column:1/-1;justify-self:start}}
.word-location-choice{margin:8px 0;padding:8px;border:1px solid #d8e4ef;border-radius:8px;background:#f7fafc}
.word-location-choice label{display:grid;gap:4px;font-weight:700}
.word-location-choice small{display:block;margin-top:4px;color:#667b8e}

/* Alpha 10.29 — relations normalisées et choix du lieu principal. */
.cross-link-primary-choice {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line, #d9dee8);
  display: grid;
  grid-template-columns: minmax(220px, 420px) 1fr;
  gap: 12px;
  align-items: end;
}
.cross-link-primary-choice label { margin: 0; }
.cross-link-primary-choice small { align-self: center; }
@media (max-width: 800px) {
  .cross-link-primary-choice { grid-template-columns: 1fr; }
}

/* Alpha 10.30.1 — liaison explicite des lieux détectés */
.scenario-location-to-link{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 6px;border:1px dashed #b88b2f;border-radius:7px;background:#fff8e7;color:#6f531b;font-size:8px}
.scenario-location-to-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scenario-location-to-link .button{flex:0 0 auto}
.word-location-choice-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.word-location-choice-head small{color:#60768a;text-align:right}
@media (max-width:900px){.word-location-choice-head{align-items:flex-start;flex-direction:column}.word-location-choice-head small{text-align:left}.scenario-location-to-link{align-items:flex-start;flex-direction:column}.scenario-location-to-link span{white-space:normal}}

/* ================================================================
   V0.8.6 Alpha 10.31 — lisibilité, vues personnelles et accessibilité
   ================================================================ */
:root{
  --bg:#eef3f8;
  --panel:#fff;
  --ink:#172238;
  --muted:#5b6d82;
  --line:#cfd9e4;
  --primary:#155eaa;
  --primary-dark:#0d4783;
  --accent:#0f8f83;
  --danger:#b4232f;
  --shadow:0 8px 24px rgba(27,58,94,.09);
  --ui-zoom:1;
}
html{font-size:14px}
body{font-size:14px;background:var(--bg)}
.app{box-shadow:var(--shadow);zoom:var(--ui-zoom)}
.topbar{background:#f4f8fc}
.brand-mark{background:var(--primary)}
.main-nav{justify-content:space-between;overflow:visible;background:#fbfcfe}
.main-nav-links{display:flex;align-items:center;gap:5px;min-width:0;overflow-x:auto;padding-bottom:1px}
.button-primary{background:var(--primary)}
.button-primary:hover{background:var(--primary-dark)}
.stat-card,.module-card,.budget-kpi{background:#fff}
.module-link:hover{transform:none;border-color:#a9bfd5;box-shadow:0 4px 12px rgba(21,94,170,.08)}
.entity-card,.role-document-card{box-shadow:0 3px 12px rgba(30,64,100,.06)}
.panel{border-radius:14px}
input,select,textarea{font-size:13px}
label{font-size:12px}
.subtitle,.muted,.app-footer,.userbox,.nav-link,.module-card p,.page-heading p,.panel h3+p{font-size:13px}
.button{min-height:40px;font-size:13px}
.button-mini,.button-small{min-height:34px;padding:6px 9px;font-size:12px;line-height:1.2}
.badge{min-height:26px;padding:4px 9px;font-size:12px}
small,.detail-grid dt,.stat-card span,.budget-kpi span,.money-summary span{font-size:12px}
th,td{font-size:13px}

/* Densité mémorisée. Le mode compact réduit l'espace, pas la lisibilité. */
body.density-compact .content{padding:18px}
body.density-compact .panel{margin-top:12px;padding:14px}
body.density-compact input,body.density-compact select,body.density-compact textarea{min-height:36px;padding:7px 9px}
body.density-compact .button{min-height:35px;padding:7px 10px}
body.density-compact th,body.density-compact td{padding:7px 8px}
body.density-compact .entity-card{padding:12px}
body.density-compact .stat-card{padding:11px}

/* Préférences d'affichage globales. */
.view-menu{position:relative;flex:0 0 auto;margin-left:8px}
.view-menu>summary{min-height:36px;display:flex;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--primary-dark);font-size:12px;font-weight:800;cursor:pointer;list-style:none;white-space:nowrap}
.view-menu>summary::-webkit-details-marker{display:none}
.view-menu[open]>summary{border-color:#9ab6d1;background:#edf5fc}
.view-menu-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:250;width:245px;display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(28,53,81,.18)}
.view-menu-panel label{margin:0}
.view-menu-panel select{min-height:36px;padding:7px 9px}

/* Accessibilité : repère clavier visible et cibles plus généreuses. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #ffb02e!important;outline-offset:2px!important;box-shadow:none!important}
button:disabled,.button[disabled]{cursor:not-allowed;opacity:.58}
.relation-remove,.timeline-card-action{min-width:34px;min-height:34px}
.alert{position:relative;padding-left:42px}
.alert::before{position:absolute;left:15px;top:12px;font-size:18px;font-weight:900}
.alert-success::before{content:"✓"}.alert-warning::before{content:"!"}.alert-error::before{content:"×"}

/* Barres d'actions harmonisées. */
.entity-action-bar,.sticky-save,.sticky-form-actions{
  position:sticky;bottom:10px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-top:14px;padding:10px 12px;border:1px solid #b9c8d8;border-radius:11px;background:rgba(255,255,255,.97);box-shadow:0 6px 18px rgba(35,67,97,.12)
}
.entity-action-bar-primary,.entity-action-bar-secondary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.entity-action-bar .button{min-width:112px}
.form-actions:last-child{align-self:end}

/* Outils de colonnes pour les grands tableaux. */

/* Scénarios et documents en vue maître / détail. */
.scenario-master-detail{display:grid;grid-template-columns:minmax(245px,285px) minmax(0,1fr);gap:14px;align-items:start;margin-top:14px}
.role-master-panel{position:sticky;top:12px;max-height:calc(100vh - 30px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}
.role-master-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid var(--line);background:#f4f8fc}
.role-master-head h3{font-size:15px}.role-master-head span{font-size:12px;color:var(--muted)}
.role-master-search{margin:0;padding:10px;border-bottom:1px solid var(--line);background:#fff}
.role-master-search input{min-height:36px;padding:7px 9px}
.role-master-list{display:grid;gap:5px;padding:8px;overflow:auto}
.role-master-item{width:100%;display:grid;gap:4px;padding:9px 10px;border:1px solid transparent;border-radius:9px;background:#f8fafc;color:var(--ink);text-align:left;cursor:pointer}
.role-master-item:hover{border-color:#b9c9d9;background:#f1f6fb}
.role-master-item[aria-selected="true"]{border-color:#7fa8cf;background:#eaf3fb;box-shadow:inset 4px 0 0 var(--primary)}
.role-master-item strong{font-size:13px;line-height:1.2}.role-master-item small{color:var(--muted);font-size:12px}
.role-master-item-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.role-master-item-meta .badge{min-height:22px;padding:2px 6px;font-size:11px}
.role-detail-pane{min-width:0}
.role-detail-nav{position:sticky;top:0;z-index:35;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:9px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.97);box-shadow:0 4px 12px rgba(31,57,84,.08)}
.role-detail-nav-center{min-width:0;text-align:center}.role-detail-nav-center strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.role-detail-nav-center span{font-size:12px;color:var(--muted)}
.role-detail-stack{min-width:0}.role-detail-stack>.role-document-card[hidden]{display:none!important}
.role-document-card{border:1px solid var(--line);border-radius:14px;overflow:visible}
.role-document-card:nth-of-type(even){border-color:var(--line)}
.role-document-boundary{display:none}
.role-document-header{grid-template-columns:minmax(250px,1.15fr) minmax(260px,.9fr) auto;padding:12px;border-bottom:1px solid var(--line);background:#f5f8fb}
.role-document-card:nth-of-type(even) .role-document-header{background:#f5f8fb}
.role-document-header label,.tracking-panel label,.scenario-compact-head label,.scenario-location-field label{font-size:12px}
.role-document-header input,.role-document-header textarea,.role-document-header select,.tracking-panel input,.tracking-panel select,.tracking-panel textarea,.scenario-compact-head input,.scenario-compact-head select,.scenario-location-field input,.scenario-location-field select{font-size:13px}
.role-document-header input,.role-document-header textarea,.role-document-header select{min-height:36px;padding:7px 8px}
.role-document-grid{grid-template-columns:minmax(300px,31%) minmax(480px,1fr) minmax(125px,145px);gap:12px;padding:12px}
.role-subpanel{padding:10px;background:#fbfcfe}.role-subpanel h3,.scenario-section-head h3{font-size:14px}
.tracking-panel input,.tracking-panel select{min-height:35px;padding:6px 8px}.tracking-panel textarea{font-size:13px}
.onedrive-panel,.onedrive-panel strong,.scenario-section-head span,.competency-mini strong{font-size:12px}
.scenario-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.scenario-compact-card{border-left-width:4px;border-radius:9px;box-shadow:none}
.scenario-compact-head{grid-template-columns:minmax(0,1fr) 105px;padding:8px;background:#f4f7fa}
.scenario-compact-head input,.scenario-compact-head select,.scenario-location-field input,.scenario-location-field select{min-height:34px;padding:6px 7px}
.scenario-location-field{padding:0 8px 8px;background:#f4f7fa}
.scenario-compact-meta{gap:5px;padding:8px;color:#4e6276;font-size:12px;line-height:1.35}
.scenario-compact-meta span{white-space:normal}
.scenario-compact-actions{gap:6px;padding:0 8px 8px}.scenario-compact-actions .button,.scenario-compact-actions .inline-save-state{font-size:12px}
.scenario-relation-editor>summary,.scenario-relation-form select,.scenario-relation-form .button{font-size:12px}
.scenario-relation-editor>summary{padding:8px}.scenario-relation-form{grid-template-columns:145px minmax(0,1fr) auto;padding:0 8px 8px}
.scenario-location-to-link{font-size:12px;padding:7px 8px}
.competency-mini h3,.competency-mini strong,.competency-mini .button,.role-document-actions>.button,.role-document-actions>form .button{font-size:12px}
.role-document-actions .button{width:100%}

/* Libellés secondaires auparavant trop petits. */
.todo-inline-header,.todo-inline-details>summary,.todo-detail-grid span,.todo-detail-grid strong,.role-board-header>div,.role-board-pnj-cell span,.role-board-pnj-cell small,.role-board-section-label,.budget-registration-details>summary,.budget-registration-details li,.work-onedrive-link small,.work-onedrive-link strong,.onedrive-form-picker span,.global-person-link,.identity-source-note,.prospect-source,.source-status-strip span,.word-existing-link small,.raw-accept-form p,.word-tracking-panel label,.word-tracking-panel details summary,.non-registered-hint,.scenario-inline-static .scenario-static-head label,.scenario-inline-static .scenario-static-meta,.scenario-inline-static .scenario-static-actions .button,.scenario-inline-static .inline-save-state{font-size:12px}
.todo-inline-title-cell>strong,.todo-inline-readonly>span,.role-board-pnj-cell strong,.word-tracking-panel>strong{font-size:13px}
.role-drag-card strong,.role-drag-card small{font-size:12px}

@media(max-width:1200px){
  .scenario-master-detail{grid-template-columns:225px minmax(0,1fr)}
  .role-document-grid{grid-template-columns:1fr}
  .role-document-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .main-nav{align-items:flex-start}.view-menu{margin-left:0}.view-menu-panel{position:fixed;right:12px;top:110px}
  .scenario-master-detail{grid-template-columns:1fr}.role-master-panel{position:static;max-height:340px}.role-detail-nav{top:5px}
  .role-document-header{grid-template-columns:1fr}.scenario-card-grid{grid-template-columns:1fr}
}
.module-form>.form-actions:last-child,.edit-box form>.form-actions:last-child,.app-dialog form>.form-actions:last-child{grid-column:1/-1;justify-content:flex-end;margin-top:4px;padding-top:10px;border-top:1px solid #e1e7ee}

/* Alpha 10.32 — Scénarios et documents : lignes compactes et scénarios dépliables */
.scenario-role-list-shell{display:grid;gap:12px;margin-top:14px}
.scenario-role-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}
.scenario-role-toolbar>div:first-child{display:grid;gap:2px}.scenario-role-toolbar span{color:var(--muted);font-size:12px}.scenario-role-toolbar>div:last-child{display:flex;gap:7px;flex-wrap:wrap}
.scenario-role-list{display:grid;gap:11px}
.scenario-role-row{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(30,64,100,.055);scroll-margin-top:90px}
.scenario-role-row.is-expanded{border-color:#9eb6d8}
.scenario-role-summary{display:grid;grid-template-columns:minmax(230px,1fr) minmax(280px,1.08fr) minmax(390px,1.45fr) minmax(270px,1.05fr);align-items:stretch}
.scenario-role-section{min-width:0;padding:10px 11px;border-right:1px solid var(--line);display:grid;align-content:start;gap:7px}
.scenario-role-section:last-child{border-right:0}
.scenario-role-section label{display:grid;gap:4px;margin:0}.scenario-role-section label>span,.scenario-role-writer-title,.scenario-role-file-title{color:#526984;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.scenario-role-section input,.scenario-role-section select{width:100%;min-width:0;min-height:36px;padding:7px 9px;border:1px solid #adc1db;border-radius:9px;background:#fff;color:#17385f;font-size:13px}
.scenario-role-identity input[name="character_name"]{font-weight:900;font-size:14px}
.scenario-role-interpreter{position:relative}.scenario-role-interpreter .non-registered-hint{font-size:11px;color:#8b5a00}
.scenario-role-writers{display:grid;grid-template-columns:1fr 1fr;gap:7px}.scenario-role-writers .writer-assignment{min-width:0}
.scenario-person-creator{display:grid;gap:7px;padding:8px;border:1px dashed #9ab5d3;border-radius:10px;background:#f7fbff}.scenario-person-creator>div:not(.form-actions){display:grid;grid-template-columns:1fr 1fr;gap:7px}.scenario-person-creator label{font-size:11px}.scenario-person-creator .form-actions{margin:0;justify-content:flex-start}
.scenario-role-files{gap:6px}.scenario-role-file{display:grid;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#f7faff}
.scenario-role-word-file{grid-template-columns:minmax(0,1fr) 174px}.scenario-role-pdf-file{grid-template-columns:minmax(0,1fr) auto}
.scenario-role-file-info{min-width:0;display:flex;align-items:center;gap:8px}.scenario-role-file-info>div{min-width:0}.scenario-role-file-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.scenario-role-file-info small{display:block;margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scenario-file-icon{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#e7edff;color:#3658c7;font-size:11px;font-weight:950}.scenario-file-icon.pdf{background:#ffe8e8;color:#ad3030}
.scenario-role-word-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}.scenario-role-word-actions .button,.scenario-role-pdf-actions .button{min-height:29px;padding:5px 7px;font-size:11px}.scenario-role-pdf-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.scenario-role-followup{gap:8px}.scenario-role-status-grid,.scenario-role-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.scenario-role-action-grid .button{width:100%}.scenario-role-footer-actions{display:grid;grid-template-columns:minmax(88px,.75fr) minmax(190px,1.55fr);gap:7px}.scenario-role-footer-actions>form,.scenario-role-footer-actions>form .button{width:100%}
.scenario-role-expand{display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 10px;border:1px solid #829dc7;border-radius:9px;color:#244f86;background:linear-gradient(180deg,#f1f5ff,#e8efff);font-weight:950;cursor:pointer}
.scenario-role-expand:hover{border-color:#687fb1;background:linear-gradient(180deg,#e5ecff,#dce6ff)}.scenario-role-expand-arrow{display:inline-block;transition:transform .18s ease}.scenario-role-row.is-expanded .scenario-role-expand{color:#fff;border-color:#5d68ef;background:linear-gradient(135deg,#5d68ef,#7179f4)}.scenario-role-row.is-expanded .scenario-role-expand-arrow{transform:rotate(180deg)}
.scenario-role-details{padding:13px 11px 12px;border-top:1px dashed #adc1db;background:linear-gradient(180deg,#f3f8fd,#f8fbff)}.scenario-role-details[hidden]{display:none!important}.scenario-role-details-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.scenario-role-details-head>div{display:grid;gap:2px}.scenario-role-details-head span{color:var(--muted);font-size:12px}
.scenario-role-details .scenario-card-grid{grid-template-columns:repeat(4,minmax(270px,1fr));gap:9px;align-items:start;overflow-x:auto;padding-bottom:3px}
.scenario-role-details .scenario-compact-card{position:relative;border:1px solid #d5e1ed;border-left:5px solid var(--scenario-accent,#7394b8);border-top:4px solid var(--scenario-accent,#7394b8);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 2px 9px rgba(30,64,100,.055)}
.scenario-role-details .scenario-compact-card.has-scenario-chain{border-left-color:var(--scenario-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--scenario-accent),transparent 85%)}
.scenario-role-details .scenario-compact-head,.scenario-role-details .scenario-location-field{background:color-mix(in srgb,var(--scenario-accent,#7394b8),white 94%)}
.scenario-role-details .scenario-compact-meta{background:#fff}
.scenario-role-background{margin-top:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.scenario-role-background summary{cursor:pointer;color:#31597f;font-weight:850}.scenario-role-background textarea{width:100%;min-height:130px;margin-top:8px;font-size:13px}
@media(max-width:1450px){.scenario-role-summary{grid-template-columns:1fr 1fr}.scenario-role-section:nth-child(2){border-right:0}.scenario-role-section:nth-child(-n+2){border-bottom:1px solid var(--line)}.scenario-role-details .scenario-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.scenario-role-summary{grid-template-columns:1fr}.scenario-role-section{border-right:0;border-bottom:1px solid var(--line)}.scenario-role-section:last-child{border-bottom:0}.scenario-role-writers,.scenario-person-creator>div:not(.form-actions),.scenario-role-status-grid,.scenario-role-action-grid,.scenario-role-footer-actions,.scenario-role-word-file,.scenario-role-pdf-file{grid-template-columns:1fr}.scenario-role-details .scenario-card-grid{grid-template-columns:1fr}.scenario-role-pdf-actions{justify-content:flex-start}.scenario-role-toolbar{align-items:flex-start;flex-direction:column}}
.scenario-person-creator[hidden]{display:none!important}


/* Alpha 10.32.1 — filtres Scénarios et documents sur une seule ligne */
.scenario-document-filters{overflow-x:auto}
.scenario-document-filters .scenario-document-filter-row{
  min-width:1030px;
  display:grid;
  grid-template-columns:minmax(170px,1.05fr) minmax(130px,.78fr) minmax(205px,1.25fr) minmax(145px,.82fr) minmax(125px,.72fr) auto;
  gap:8px;
  align-items:end;
}
.scenario-document-filters .scenario-document-filter-row>div{min-width:0}
.scenario-document-filters .scenario-document-filter-row label{margin-bottom:4px;white-space:nowrap}
.scenario-document-filters .scenario-document-filter-row select{min-height:36px;padding:7px 9px}
.scenario-document-filters .scenario-document-filter-row .form-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.scenario-document-filters .scenario-document-filter-row .button{min-height:36px;padding:7px 11px;white-space:nowrap}


/* ================================================================
   V0.9.0 — actions des blocs de timeline
   ================================================================ */
.timeline-v3-deus .timeline-v3-event{
  grid-template-columns:18px minmax(0,1fr);
  overflow:visible;
}
.timeline-v3-deus .timeline-v3-event-body{
  padding-right:70px;
  border-radius:0 11px 11px 0;
}
.timeline-v3-event-actions{
  position:absolute;
  top:5px;
  right:9px;
  z-index:18;
  display:grid;
  grid-template-columns:repeat(2,26px);
  gap:4px;
  padding:4px;
  border:1px solid rgba(113,137,162,.32);
  border-radius:9px;
  background:rgba(255,255,255,.94);
  box-shadow:0 3px 9px rgba(28,55,85,.13);
  backdrop-filter:blur(4px);
}
.timeline-v3-event-actions form{display:block;margin:0}
.timeline-card-action{
  width:26px;
  height:26px;
  min-width:26px;
  min-height:26px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:7px;
  font-size:14px;
  line-height:1;
}
.timeline-card-action.danger{background:#fff6f6}
.timeline-card-action:focus-visible{outline:3px solid rgba(21,94,170,.25);outline-offset:1px}
.timeline-v3-deus .timeline-resize-handle.end{z-index:21}
.timeline-v3-deus .timeline-lock-mark{right:7px;bottom:6px}
@media(max-width:760px){
  .timeline-v3-event-actions{right:8px}
  .timeline-v3-deus .timeline-v3-event-body{padding-right:68px}
}

/* MACHINA 1.0 — Référentiel éditable, fiches PJ et clôture historique */
.subnav-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 14px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#f8fbfe}
.subnav-tabs a,.subnav-tabs span{padding:7px 10px;border-radius:8px;font-size:12px;font-weight:850;text-decoration:none}
.subnav-tabs a:hover,.subnav-tabs a.active{color:#fff;background:var(--primary)}
.reference-edit-card{display:grid;gap:14px}
.reference-edit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.reference-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.reference-option{display:grid;gap:7px;padding:11px;border:1px solid #d8e3ed;border-radius:11px;background:#f8fbfe}
.reference-option label{margin:0}.reference-option textarea{min-height:75px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
.reference-option-new{border-style:dashed;background:#f2f9ff}
.compact-list{display:grid;gap:8px;margin-top:12px}.compact-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.compact-list-row span{display:grid;gap:2px}.compact-list-row small{color:var(--muted)}
.event-admin-actions{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
.event-admin-actions form{margin:0}.reopen-event-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:8px;flex:1}.reopen-event-form label{margin:0}.reopen-event-form input{min-height:39px}
.pj-floating-alert{position:fixed;right:18px;bottom:18px;z-index:1000;max-width:min(440px,calc(100vw - 36px));padding:12px 15px;border:1px solid #fda4af;border-radius:11px;color:#991b1b;background:#fff1f2;box-shadow:0 12px 30px rgba(85,30,45,.18);font-weight:800}
@media(max-width:760px){.reopen-event-form{grid-template-columns:1fr}.compact-list-row{align-items:flex-start;flex-direction:column}.reference-edit-head{align-items:flex-start;flex-direction:column}}

/* MACHINA 1.0.9 — préparation, participation et cycle de vie PJ */
.pj-preparation-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.pj-preparation-actions form{margin:0;flex:0 0 auto}.pj-participation-inline{display:flex;align-items:center;gap:6px;margin-top:7px;min-width:250px}.pj-participation-inline select{min-width:145px;min-height:31px;padding:5px 8px;font-size:12px}.pj-participation-inline .button{flex:0 0 auto}.compact-list-row>.split-actions{margin:0;padding:0;border:0}.compact-list-row>.split-actions form{margin:0}
@media(max-width:820px){.pj-preparation-actions{align-items:flex-start;flex-direction:column}.pj-participation-inline{align-items:stretch;flex-direction:column;min-width:0}.pj-participation-inline select{min-width:0}}

/* MACHINA 1.0.19 — création et reprise des rôles */
.role-create-tools{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.15fr);gap:18px;align-items:end}.role-import-inline{display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:10px;align-items:end}.role-import-note{margin:10px 0 0}.scenario-role-file-info small{max-width:520px}@media(max-width:900px){.role-create-tools{grid-template-columns:1fr}.role-import-inline{grid-template-columns:1fr}}
.npc-interpreter-card{min-width:260px}.npc-interpreter-form{display:grid;grid-template-columns:minmax(170px,1fr) auto;gap:7px;align-items:center;margin-top:5px}.npc-interpreter-form select{min-height:34px;padding:6px 8px;font-size:12px}.npc-interpreter-form .button{min-height:34px}@media(max-width:800px){.npc-interpreter-form{grid-template-columns:1fr}}
.brand-mark-image{overflow:hidden;background:#fff!important;padding:3px}
.brand-mark-image img{display:block;width:100%;height:100%;object-fit:contain}

/* Glossaire — recherche globale dans le bandeau */
.topbar{grid-template-columns:minmax(280px,1fr) minmax(220px,360px) minmax(220px,320px) auto}
.glossary-search{position:relative;min-width:200px}
.glossary-search input[type=search]{min-height:38px;border-radius:999px;background:#fff}
.glossary-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:200;max-height:70vh;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(15,74,130,.18)}
.glossary-search-item{padding:10px 11px;border-radius:10px;cursor:default}
.glossary-search-item:hover,.glossary-search-item:focus{background:#eff7ff;outline:none}
.glossary-search-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.glossary-search-tag{padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;color:#075985;background:#e0f2fe}
.glossary-search-inactive{padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;color:#9a3412;background:#ffedd5}
.glossary-search-alias{margin-top:3px;color:var(--muted);font-size:11px;font-style:italic}
.glossary-search-def{margin-top:5px;color:#334155;font-size:12.5px;line-height:1.4}
.glossary-search-link{display:inline-block;margin-top:6px;color:var(--primary-dark);font-size:12px;font-weight:800;text-decoration:none}
.glossary-search-empty{padding:14px;color:var(--muted);font-size:13px;text-align:center}
@media(max-width:1200px){.topbar{grid-template-columns:1fr 1fr}.glossary-search{grid-column:1/-1}}

/* MACHINA_NAV_HIERARCHIQUE_V1_BEGIN
   Navigation principale regroupée et contextualisée. */
.main-nav.main-nav-hierarchical{
  position:relative;
  z-index:180;
  display:block;
  padding:0;
  overflow:visible;
  background:#fbfcfe;
}
.main-nav-row{
  min-height:52px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 18px;
}
.nav-home-link{flex:0 0 auto}
.main-nav-groups{
  min-width:0;
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.nav-group{
  position:relative;
  flex:0 0 auto;
}
.nav-group>summary{
  min-height:36px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 11px;
  border:1px solid transparent;
  border-radius:9px;
  color:#31506f;
  background:transparent;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  list-style:none;
  white-space:nowrap;
}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::after{
  content:"⌄";
  color:#71849a;
  font-size:11px;
  line-height:1;
  transform:translateY(-1px);
}
.nav-group:hover>summary,
.nav-group[open]>summary,
.nav-group.active>summary{
  color:var(--primary-dark);
  border-color:#c4d6e8;
  background:#eaf4ff;
}
.nav-group[open]>summary::after{
  transform:rotate(180deg) translateY(1px);
}
.nav-group-menu{
  position:absolute;
  top:calc(100% + 7px);
  left:0;
  z-index:300;
  width:max-content;
  min-width:235px;
  max-width:min(340px,calc(100vw - 32px));
  display:grid;
  gap:3px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 36px rgba(28,53,81,.2);
}
.nav-group:nth-last-child(-n+2) .nav-group-menu{
  right:0;
  left:auto;
}
.nav-group-link{
  display:flex;
  align-items:center;
  min-height:38px;
  padding:8px 10px;
  border-radius:8px;
  color:#31506f;
  font-size:13px;
  font-weight:750;
  text-decoration:none;
}
.nav-group-link:hover,
.nav-group-link.active{
  color:var(--primary-dark);
  background:#eaf4ff;
}
.nav-group-link.active{
  box-shadow:inset 4px 0 0 var(--primary);
}
.main-nav-hierarchical .view-menu{
  margin-left:auto;
}
.nav-context{
  min-height:29px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:5px 20px 6px;
  border-top:1px solid #e5ebf2;
  color:#60748a;
  background:#f7f9fc;
  font-size:12px;
}
.nav-context strong{
  color:#294d70;
  font-size:12px;
}
.nav-context-separator{
  color:#92a2b3;
  font-weight:900;
}
@media(max-width:1050px){
  .main-nav-row{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .main-nav-groups{
    order:3;
    width:100%;
  }
  .main-nav-hierarchical .view-menu{
    margin-left:auto;
  }
}
@media(max-width:700px){
  .main-nav-row{padding:8px 10px}
  .main-nav-groups{gap:3px}
  .nav-group>summary,
  .nav-home-link{
    font-size:12px;
    padding:7px 8px;
  }
  .nav-group-menu{min-width:210px}
  .nav-context{
    padding-left:12px;
    padding-right:12px;
  }
  .main-nav-hierarchical .view-menu-panel{
    position:fixed;
    right:10px;
    top:96px;
  }
}
/* MACHINA_NAV_HIERARCHIQUE_V1_END */

/* MACHINA_DASHBOARD_SIMPLE_MENU_V1_BEGIN */
/* Bandeau dynamique V3. Il était volontairement non collant (« ne jamais recouvrir le
   titre de l'Opus ») ; Armand a demandé le contraire le 07/09/2026 : le menu reste
   visible en défilant, collé sous la barre du haut, à la hauteur mesurée de celle-ci
   (--dem-topbar-h, posée par app.js). C'est cette règle, et ses !important, qui
   neutralisaient toute tentative de le figer ailleurs. */
.main-nav.main-nav-dynamic{
  position:sticky;
  top:var(--dem-topbar-h,69px);
  z-index:180;
  display:block;
  padding:0;
  overflow:visible;
  border-bottom:1px solid #173c5e;
  background:linear-gradient(100deg,#173f68 0%,#1e5f8c 55%,#267aa0 100%);
  box-shadow:0 8px 20px rgba(22,61,94,.15);
}
.main-nav-row{
  min-height:66px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 18px;
}
.main-nav-groups{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  flex:1 1 auto;
}
.nav-main-button{
  min-width:160px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 18px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:11px;
  color:#fff;
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  font-size:13px;
  font-weight:850;
  line-height:1.15;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  transition:background .14s ease,border-color .14s ease,transform .14s ease,box-shadow .14s ease;
}
.nav-main-button:hover,
.nav-main-button:focus-visible,
.nav-dropdown.open>.nav-main-button{
  color:#fff;
  border-color:rgba(255,255,255,.58);
  background:rgba(255,255,255,.19);
  box-shadow:0 6px 16px rgba(8,35,58,.16),inset 0 1px 0 rgba(255,255,255,.16);
  transform:translateY(-1px);
}
.nav-home-button.active,
.nav-direct-button.active,
.nav-dropdown.active>.nav-main-button{
  color:#173f68;
  border-color:#fff;
  background:#fff;
  box-shadow:0 6px 18px rgba(6,33,56,.18);
}
.nav-dropdown{position:relative;flex:1 1 170px;max-width:230px}
.nav-dropdown>.nav-main-button{width:100%}
.nav-direct-button{flex:1 1 170px;max-width:230px}
.nav-chevron{font-size:12px;transition:transform .14s ease}
.nav-dropdown.open .nav-chevron{transform:rotate(180deg)}
.nav-dropdown-panel{
  position:absolute;
  top:calc(100% + 9px);
  left:0;
  z-index:500;
  width:max-content;
  min-width:100%;
  max-width:min(360px,calc(100vw - 32px));
  display:none;
  gap:4px;
  padding:9px;
  border:1px solid #b8cada;
  border-radius:13px;
  background:#fff;
  box-shadow:0 18px 42px rgba(18,48,75,.25);
}
.nav-dropdown:nth-last-child(-n+2) .nav-dropdown-panel{right:0;left:auto}
.nav-dropdown.open .nav-dropdown-panel{display:grid;animation:machinaNavOpen .12s ease-out}
@keyframes machinaNavOpen{
  from{opacity:0;transform:translateY(-5px)}
  to{opacity:1;transform:translateY(0)}
}
.nav-dropdown-link{
  min-height:42px;
  display:flex;
  align-items:center;
  padding:9px 12px;
  border:1px solid transparent;
  border-radius:9px;
  color:#294d70;
  background:#fff;
  font-size:13px;
  font-weight:780;
  text-decoration:none;
  white-space:nowrap;
}
.nav-dropdown-link:hover,
.nav-dropdown-link:focus-visible{
  color:#0d4783;
  border-color:#c5d9eb;
  background:#edf6ff;
}
.nav-dropdown-link.active{
  color:#0d4783;
  border-color:#b8d2e9;
  background:#e6f2fc;
  box-shadow:inset 4px 0 0 var(--primary);
}
.main-nav-dynamic .nav-view-menu{
  flex:0 0 auto;
  margin-left:auto;
}
.main-nav-dynamic .nav-view-menu>summary{
  min-width:120px;
  min-height:44px;
  justify-content:center;
  border-color:rgba(255,255,255,.42);
  color:#fff;
  background:rgba(255,255,255,.1);
  font-size:13px;
}
.main-nav-dynamic .nav-view-menu[open]>summary,
.main-nav-dynamic .nav-view-menu>summary:hover{
  color:#173f68;
  border-color:#fff;
  background:#fff;
}
.main-nav-dynamic .view-menu-panel{top:calc(100% + 9px);z-index:520}
/* Garantit que le titre et le bouton Pondérations restent complètement visibles. */
body[data-page="dashboard"] .content{padding-top:25px!important}
body[data-page="dashboard"] .page-heading{
  position:relative;
  z-index:1;
  min-height:82px;
  margin-top:0!important;
  overflow:visible!important;
}
body[data-page="dashboard"] .page-heading h2{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:#273c5c!important;
  line-height:1.2!important;
}
body[data-page="dashboard"] .page-heading .page-actions{
  position:relative;
  z-index:2;
}
.dashboard-simple-note{
  margin-bottom:16px;padding:11px 13px;border:1px solid #f0c76e;border-radius:11px;color:#6d4a0d;background:#fff7e6;
}
.dashboard-simple-general{
  margin-bottom:18px;padding:18px;border:1px solid #bfd2e5;border-radius:16px;background:linear-gradient(180deg,#f8fbff,#eef6ff);
}
.dashboard-simple-general-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.dashboard-simple-general-title{font-size:18px;font-weight:900}
.dashboard-simple-general-subtitle{margin-top:4px;color:var(--muted);font-size:12px}
.dashboard-simple-general-value{color:var(--primary-dark);font-size:34px;line-height:1;font-weight:950}
.dashboard-simple-track{width:100%;height:22px;overflow:hidden;border:1px solid #c9d7e5;border-radius:999px;background:#e5ebf1}
.dashboard-simple-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#1767b7,#3b89d4)}
.dashboard-simple-list{display:grid;gap:11px}
.dashboard-simple-row{
  display:grid;grid-template-columns:minmax(240px,340px) minmax(280px,1fr) 82px 128px;gap:14px;align-items:center;
  padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff;text-decoration:none;color:inherit;
}
.dashboard-simple-row:hover{box-shadow:0 10px 22px rgba(21,94,170,.08);transform:translateY(-1px)}
.dashboard-simple-name strong{display:block;font-size:15px}
.dashboard-simple-name span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.dashboard-simple-progress{width:100%;height:17px;overflow:hidden;border-radius:999px;background:#e6ecf2}
.dashboard-simple-progress>span{display:block;height:100%;border-radius:999px;background:var(--primary)}
.dashboard-simple-value{text-align:right;color:var(--primary-dark);font-size:20px;font-weight:950}
.dashboard-simple-weight{text-align:right;color:var(--muted);font-size:12px}
.dashboard-simple-weight strong{display:block;color:var(--ink);font-size:14px}
.dashboard-simple-form{max-width:760px}
.dashboard-simple-weight-line{display:grid;grid-template-columns:1fr 120px;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#f7f9fc}
.dashboard-simple-weight-line+.dashboard-simple-weight-line{margin-top:10px}
.dashboard-simple-weight-line label{margin:0;font-weight:800}
.dashboard-simple-weight-input{display:flex;align-items:center;gap:6px}
.dashboard-simple-weight-input input{width:82px;min-height:38px;padding:7px 9px;text-align:right;font-weight:900}
.dashboard-simple-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:#f7f9fc}
.dashboard-simple-total strong{font-size:22px}
.dashboard-simple-total.valid{border-color:#a8d5b6;background:#ecf8f0;color:#1d6d3b}
.dashboard-simple-total.warning{border-color:#efca7a;background:#fff6df;color:#7e560d}
.dashboard-simple-total.danger{border-color:#e2aab0;background:#fff0f1;color:#8d2e38}
.dashboard-simple-alert{margin-top:10px;padding:11px 12px;border-radius:10px;font-weight:750}
.dashboard-simple-alert.valid{color:#1d6d3b;background:#ecf8f0;border:1px solid #a8d5b6}
.dashboard-simple-alert.warning{color:#7e560d;background:#fff6df;border:1px solid #efca7a}
.dashboard-simple-alert.danger{color:#8d2e38;background:#fff0f1;border:1px solid #e2aab0}
@media(max-width:1180px){
  .main-nav-row{align-items:flex-start;flex-wrap:wrap}
  .main-nav-groups{order:3;width:100%;flex-wrap:wrap}
  .nav-dropdown{flex:1 1 200px;max-width:none}
  .main-nav-dynamic .nav-view-menu{margin-left:auto}
  .dashboard-simple-row{grid-template-columns:1fr 82px 128px}
  .dashboard-simple-progress{grid-column:1/-1;grid-row:2}
}
@media(max-width:700px){
  .main-nav-row{padding:10px}
  .nav-home-button{width:100%;min-width:0}
  .main-nav-groups{gap:8px}
  .nav-dropdown{flex:1 1 100%;max-width:none}
  .nav-direct-button{width:100%;min-width:0;max-width:none}
  .nav-dropdown-panel{position:static;width:100%;max-width:none;margin-top:7px;box-shadow:0 8px 20px rgba(18,48,75,.16)}
  .main-nav-dynamic .nav-view-menu{width:100%;margin-left:0}
  .main-nav-dynamic .nav-view-menu>summary{width:100%}
  body[data-page="dashboard"] .content{padding-top:14px!important}
  .dashboard-simple-row{grid-template-columns:1fr 72px}
  .dashboard-simple-progress{grid-column:1/-1}
  .dashboard-simple-weight{grid-column:1/-1;text-align:left}
  .dashboard-simple-weight-line{grid-template-columns:1fr 100px}
}
/* MACHINA_DASHBOARD_SIMPLE_MENU_V1_END */

/* MACHINA_DYNAMIC_NAV_V5_FIX */

/* Secours CSS : le survol ouvre le menu même si JavaScript tarde à se charger. */
@media (hover:hover) and (pointer:fine) {
  .main-nav-dynamic .nav-dropdown:hover > .nav-dropdown-panel {
    display:grid;
    animation:machinaNavOpen .12s ease-out;
  }
  .main-nav-dynamic .nav-dropdown:hover .nav-chevron {
    transform:rotate(180deg);
  }
}
.main-nav-dynamic .nav-category-button {
  position:relative;
  z-index:1;
  pointer-events:auto!important;
  user-select:none;
  -webkit-user-select:none;
}
.main-nav-dynamic .nav-dropdown-panel {
  pointer-events:auto;
}
/* MACHINA_PARTICIPANTS_STEP1C_V1_START */
.participant-overview-toolbar{display:grid;gap:12px;margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}
.participant-kpis{display:flex;align-items:stretch;gap:0;overflow-x:auto;border-bottom:1px solid var(--line)}
.participant-kpi{display:flex;align-items:baseline;gap:7px;min-width:max-content;padding:2px 18px 11px 0}
.participant-kpi+.participant-kpi{padding-left:18px;border-left:1px solid var(--line)}
.participant-kpi strong{color:var(--ink);font-size:22px;line-height:1}
.participant-kpi span{color:var(--muted);font-size:12px;white-space:nowrap}
.participant-toolbar-row{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:end;gap:12px}
.participant-search-form{min-width:0}
.participant-search-form label{margin-bottom:4px}
.participant-search-control{display:flex;gap:7px}
.participant-search-control input{min-width:0}
.participant-search-control .button{flex:0 0 auto}
.participant-quick-filters{display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff}
.participant-quick-filter{padding:9px 12px;color:var(--muted);font-size:12px;font-weight:850;text-decoration:none;white-space:nowrap}
.participant-quick-filter+.participant-quick-filter{border-left:1px solid var(--line)}
.participant-quick-filter:hover,.participant-quick-filter.active{color:#fff;background:var(--primary)}
.participant-operations{position:relative;z-index:35}
.participant-operations>summary,.participant-advanced-filters>summary{display:flex;align-items:center;justify-content:center;min-height:39px;padding:8px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#31506f;font-size:12px;font-weight:850;cursor:pointer;list-style:none}
.participant-operations>summary::-webkit-details-marker,.participant-advanced-filters>summary::-webkit-details-marker{display:none}
.participant-operations>summary::after{content:"▾";margin-left:8px;font-size:10px}
.participant-operations[open]>summary::after{transform:rotate(180deg)}
.participant-operation-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:grid;min-width:285px;padding:6px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:var(--shadow)}
.participant-operation-menu a{padding:8px 10px;border-radius:7px;color:#31506f;font-size:12px;font-weight:750;text-decoration:none}
.participant-operation-menu a:hover{background:#eaf4ff;color:var(--primary-dark)}
.participant-advanced-filters{border-top:1px solid var(--line);padding-top:10px}
.participant-advanced-filters>summary{justify-content:flex-start;width:max-content;min-height:34px;padding:6px 10px;background:transparent}
.participant-advanced-filters .registration-filter-grid{margin-top:10px;padding:0;border:0;background:transparent}
.participant-creation-panel{margin-top:0}
@media(max-width:920px){.participant-toolbar-row{grid-template-columns:1fr auto}.participant-quick-filters{grid-column:1/-1;justify-self:start}.participant-operations{grid-column:2;grid-row:1}}
@media(max-width:620px){.participant-overview-toolbar{padding:11px}.participant-toolbar-row{grid-template-columns:1fr}.participant-search-control{flex-direction:column}.participant-search-control .button{width:100%}.participant-quick-filters{grid-column:auto;width:100%}.participant-quick-filter{flex:1;text-align:center}.participant-operations{grid-column:auto;grid-row:auto}.participant-operations>summary{width:100%}.participant-operation-menu{position:static;min-width:0;margin-top:6px}.participant-kpi{padding-right:12px}.participant-kpi+.participant-kpi{padding-left:12px}}
/* MACHINA_PARTICIPANTS_STEP1C_V1_END */
/* MACHINA_PARTICIPANTS_STEP1D_V1_START */
.registration-dense-table{min-width:980px}
.registration-dense-table th:nth-child(1){width:390px}
.registration-dense-table th:nth-child(2){width:210px}
.registration-dense-table th:nth-child(3){width:155px}
.registration-dense-table th:nth-child(4){width:145px}
.registration-dense-table th:nth-child(5){width:150px}
.registration-participant-cell,.registration-category-cell,.registration-status-cell,.registration-payment-cell{min-width:0}
.registration-participant-layout{display:grid;grid-template-columns:minmax(210px,1.08fr) minmax(180px,.92fr);align-items:end;gap:7px}
.registration-participant-cell .registration-name{min-width:0;white-space:normal}
.registration-participant-cell .registration-name-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.registration-email-field,.registration-field-stack{min-width:0}
.registration-inline-label{display:block;margin:0 0 2px;color:#6f8195;font-size:8px;font-weight:850;letter-spacing:.045em;text-transform:uppercase}
.registration-field-stack{display:grid;grid-template-columns:1fr;gap:2px}
.registration-field-stack .registration-inline-label:not(:first-child){margin-top:3px}
.registration-payment-cell .muted{display:block;margin-top:3px;line-height:1.2}
.registration-actions{align-content:center;justify-content:flex-start;flex-wrap:wrap}
.registration-actions .button{max-width:100%}
@media(max-width:1100px){
 .registration-dense-table{min-width:900px}
 .registration-dense-table th:nth-child(1){width:330px}
 .registration-dense-table th:nth-child(2){width:190px}
 .registration-participant-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
 .registration-dense-table{min-width:820px}
}
/* MACHINA_PARTICIPANTS_STEP1D_V1_END */

/* MACHINA_PARTICIPANTS_UNIFIED_V1_START */
.participant-overview-toolbar{
  background:var(--panel);
}
.participant-toolbar-row-operations{
  display:flex;
  justify-content:flex-end;
  align-items:center;
}
.participant-operation-menu a,
.participant-operation-menu button{
  width:100%;
  padding:8px 10px;
  border:0;
  border-radius:7px;
  color:var(--ink);
  background:transparent;
  font-size:12px;
  font-weight:750;
  text-align:left;
  text-decoration:none;
}
.participant-operation-menu a:hover,
.participant-operation-menu button:hover{
  background:color-mix(in srgb,var(--primary) 9%,var(--panel));
  color:var(--primary-dark);
}
.participant-operation-dialog{
  width:min(980px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
}
.participant-unified-panel{
  overflow:visible;
}
.participant-unified-panel .table-wrap,
.participant-unified-panel .registration-dense-wrap{
  overflow-x:auto;
}
.participant-unified-table th{
  padding:0;
  vertical-align:top;
}
.participant-unified-table th:first-child:has(>input){
  padding:9px 10px;
  vertical-align:middle;
}
.table-column-filter{
  min-width:0;
}
.table-column-filter>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:38px;
  padding:9px 10px;
  list-style:none;
  color:inherit;
  cursor:pointer;
  user-select:none;
}
.table-column-filter>summary::-webkit-details-marker{
  display:none;
}
.table-column-filter>summary:hover,
.table-column-filter[open]>summary{
  background:color-mix(in srgb,var(--primary) 6%,transparent);
}
.table-column-filter.active>summary{
  box-shadow:inset 0 -2px 0 var(--primary);
}
.table-column-filter-arrow{
  flex:0 0 auto;
  color:var(--muted);
  font-size:9px;
  transition:transform .15s ease;
}
.table-column-filter[open] .table-column-filter-arrow{
  transform:rotate(180deg);
}
.table-column-filter-form{
  display:grid;
  gap:7px;
  min-width:190px;
  padding:9px 10px 10px;
  border-top:1px solid var(--line);
  background:var(--panel);
  text-transform:none;
  letter-spacing:normal;
}
.table-column-filter-form label{
  margin:0;
  color:var(--muted);
  font-size:10px;
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.table-column-filter-form input,
.table-column-filter-form select{
  min-height:34px;
  padding:6px 8px;
  border-radius:7px;
  font-size:12px;
}
.table-column-filter-actions{
  display:flex;
  justify-content:flex-end;
  gap:6px;
}
.table-column-filter-actions .button{
  min-height:30px;
  padding:5px 8px;
  font-size:11px;
}
.registration-table-toolbar{
  min-height:42px;
}
.registration-table-toolbar strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:18px;
  font-weight:600;
}
.registration-dense-table{
  min-width:930px;
}
.registration-dense-table th:nth-child(1){
  width:340px;
}
.registration-dense-table th:nth-child(2){
  width:235px;
}
.registration-dense-table th:nth-child(3){
  width:155px;
}
.registration-dense-table th:nth-child(4){
  width:145px;
}
.registration-dense-table th:nth-child(5){
  width:170px;
}
.participant-person-cell{
  position:relative;
  min-width:260px;
}
.participant-person-name{
  display:block;
  margin:0 0 3px;
  color:var(--ink);
  font-weight:850;
}
.participant-person-contact,
.participant-person-meta{
  display:block;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.participant-person-meta{
  margin-top:2px;
}
.registration-category-cell select,
.registration-status-cell select{
  min-height:34px;
  padding:6px 8px;
  border-radius:7px;
}
.registration-payment-cell .muted{
  display:block;
  margin-top:3px;
}
.participant-table .table-column-filter-form{
  min-width:210px;
}
.participant-table th:nth-last-child(2) .table-column-filter-form{
  min-width:235px;
}
@media(max-width:760px){
  .participant-toolbar-row-operations{
    justify-content:stretch;
  }
  .participant-operations{
    width:100%;
  }
  .participant-operation-dialog{
    width:calc(100vw - 16px);
    max-height:calc(100vh - 16px);
  }
}
/* MACHINA_PARTICIPANTS_UNIFIED_V1_END */

/* MACHINA_PNJ_ROLE_WORD_PROGRESSIVE_V1 */
.scenario-role-row .scenario-role-scan{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(320px,1fr) auto;gap:18px;align-items:center;padding:18px 20px;background:#fff;border:1px solid #d9e1ec;border-radius:12px}.scenario-role-row .scenario-role-edit-menu{display:block;margin-top:8px}.scenario-role-row .scenario-role-edit-menu:not([open])>.scenario-role-summary{display:none}.scenario-role-row .scenario-card-grid{display:grid;grid-template-columns:1fr;gap:10px}.scenario-role-row details.scenario-compact-card{display:block;width:100%;padding:0}.scenario-role-row details.scenario-compact-card:not([open])>:not(summary){display:none}.scenario-role-row details.scenario-compact-card>summary{display:grid}.scenario-role-row .scenario-editor-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenario-role-row .scenario-development{grid-column:1/-1}.scenario-role-row .scenario-development textarea{min-height:220px}.word-reconciliation-row{display:grid!important}.pnj-annex-secondary:not([open])>form{display:none}
/* MACHINA_PNJ_ROLE_WORD_PROGRESSIVE_V1_END */
.word-mention-decisions{margin:12px 0;padding:10px 12px;border:1px solid #dbe3ee;border-radius:9px}.word-mention-decisions>summary{cursor:pointer;font-weight:800}.word-mention-preview-list{display:grid;gap:8px;margin-top:10px}.word-mention-preview{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(170px,.7fr) minmax(190px,.8fr);gap:8px;align-items:center;padding:8px;border:1px solid #e3e8ef;border-radius:8px;background:#fff}@media(max-width:900px){.word-mention-preview{grid-template-columns:1fr}}

/* ================================================================
   MACHINA 2.4.14 — Distribution : colonne des interpretes elargie
   ================================================================
   Demande d'Armand du 02/09/2026, apres avoir vu la page compactee.

   ALIGNEMENT. .role-board-pnj-cell portait justify-content:center. Tant que
   la cellule etait en colonne, cette regle centrait verticalement et ne se
   voyait pas. Depuis que la photo est passee a gauche, elle centre
   HORIZONTALEMENT : chaque bloc se decalait selon la longueur du nom, et la
   colonne des avatars n'avait plus de ligne commune.

   LARGEUR. Les interpretes disposaient de .72fr contre 2fr aux roles, alors
   que ce sont leurs noms qui sont longs — « LAENEN-GRAUX, Sylvie » —
   pendant que les cartes de role, elles, ont une largeur fixe et tronquent
   de toute facon. La colonne passe donc a 1fr, les roles a 1.9fr.

   Les deux ordres sont traites : la disposition est reversible et memorisee
   par le navigateur, corriger un seul sens laisserait l'autre en l'etat. */
.role-board-pnj-cell.has-portrait{justify-content:flex-start}

.role-board-header,
.role-board-row{grid-template-columns:minmax(660px,1.9fr) minmax(360px,1fr)}
.role-assignment-board.columns-reversed .role-board-header,
.role-assignment-board.columns-reversed .role-board-row{grid-template-columns:minmax(360px,1fr) minmax(660px,1.9fr)}

@media(max-width:1200px){
  .role-board-header,
  .role-board-row{grid-template-columns:minmax(560px,1.6fr) minmax(330px,1fr)}
  .role-assignment-board.columns-reversed .role-board-header,
  .role-assignment-board.columns-reversed .role-board-row{grid-template-columns:minmax(330px,1fr) minmax(560px,1.6fr)}
}
@media(max-width:900px){
  .role-board-header,
  .role-board-row,
  .role-assignment-board.columns-reversed .role-board-header,
  .role-assignment-board.columns-reversed .role-board-row{grid-template-columns:1fr}
}

/* ================================================================
   MACHINA 2.4.16 — « Roles non attribues » suit le defilement
   ================================================================
   La ligne d'echange a ete RETIREE le 02/09/2026 : constat d'Armand, son
   role faisait doublon avec « Roles non attribues ».

   Les deux zones portaient exactement le meme attribut —
   data-role-dropzone data-registration-id="" — et faisaient donc
   rigoureusement la meme chose : detacher un role de son interprete. Seul le
   texte differait. « Roles non attribues » accepte de surcroit PLUSIEURS
   roles, la ou l'echange se voulait un emplacement unique.

   S'y ajoutait un defaut d'affichage : collee en bas, la ligne d'echange
   recouvrait « En attente » qui la precedait — elle masquait precisement la
   zone qu'on voulait voir.

   C'est donc « Roles non attribues » qui suit desormais le defilement. Elle
   ne fait qu'une ligne de haut, ses cartes defilant horizontalement, et ne
   mange donc pas l'ecran.

   sticky et non fixed : l'element reste DANS LE FLUX, le glisser-deposer
   fonctionne sans toucher au script. Verifie en reel le 02/09. */
/* Constat d'Armand le 09/09/2026 : « on la confond avec le reste ». La ligne
   est COLLANTE, donc elle flotte au-dessus des interpretes et son bandeau de
   section n'est plus visible des qu'on defile : blanche comme toutes les
   autres, plus rien ne disait que c'etait la reserve de roles. Elle devient un
   plateau : cadre bleu, fond teinte, ombre franche.
   La cellule des roles reste blanche a l'interieur, pour que les cartes
   ressortent — et surtout pour ne pas ecraser .role-board-role-cell.is-over,
   qui signale le survol pendant un glisser. */
.unassigned-role-row{
  position:sticky;
  bottom:0;
  z-index:20;
  padding:6px;
  border:2px solid #3975b7;
  border-radius:14px;
  background:#e8f2fc;
  box-shadow:0 -10px 26px rgba(33,66,99,.22);
}
.unassigned-role-row .role-board-role-cell,
.unassigned-role-row .role-board-pnj-cell{padding:4px 7px}
.unassigned-role-row .role-board-pnj-cell{flex-direction:row;align-items:baseline;gap:8px;background:#d5e6f6;border-color:#9dc0e2}
.unassigned-role-row .role-board-pnj-cell strong{color:#1f4b73}
/* Budget : le « ? » d'une colonne est une info-bulle native (title), dans la police de MACHINA, jamais en capitales. */
.budget-help{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;border:1px solid #9bb0c8;border-radius:50%;background:#fff;color:#3c5575;font:600 11px/1 "Segoe UI",Arial,sans-serif;text-transform:none;letter-spacing:0;cursor:help;vertical-align:middle}
.budget-help:focus{outline:2px solid rgba(21,94,170,.35);outline-offset:1px}
.budget-payment-list{margin:4px 0 0;padding-left:18px;font-size:12px;line-height:1.5}
.budget-payment-list li{margin:2px 0}
.budget-row-suspect td{background:#fff7ed}
/* Budget : les cinq indicateurs du bandeau sur une ligne quand la place le permet ; sinon la grille de base reprend la main. */
@media (min-width:1100px){.budget-summary-grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* Le menu principal figé sous la barre du haut, à sa hauteur mesurée (Armand, 07/09/2026). */
.main-nav{position:sticky;top:var(--dem-topbar-h,69px);z-index:80}
/* Timeline : le rôle, l'interprète et sa photo. */
.timeline-pnj-thumb{width:14px;height:14px;border-radius:50%;object-fit:cover;vertical-align:-3px;margin-right:2px}
.timeline-pnj-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 16px}
.timeline-pnj-list li{display:flex;align-items:center;gap:8px}
.timeline-pnj-list img,.timeline-pnj-none{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.timeline-pnj-none{display:grid;place-items:center;background:#e6edf5;color:#5e7289;font-size:12px}
/* Le « ? » du Budget : une bulle en CSS, au survol comme au clic (focus), qui s'efface seule (Armand, 08/09/2026 : l'attribut title n'apparaissait pas au clic). */
.budget-help{position:relative}
.budget-help::after{content:attr(data-tip);position:absolute;top:calc(100% + 7px);right:-4px;width:max-content;max-width:min(340px,70vw);padding:8px 10px;border:1px solid #cbd9e9;border-radius:8px;background:#fff;color:#273c5c;font:400 12px/1.45 "Segoe UI",Arial,sans-serif;text-transform:none;letter-spacing:0;text-align:left;white-space:normal;box-shadow:0 8px 20px rgba(48,71,108,.14);z-index:260;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s}
.budget-help:hover::after,.budget-help:focus::after,.budget-help:focus-visible::after{opacity:1;visibility:visible}

/* Backgrounds PJ — le selecteur de nature tient dans sa cellule */
.inline-form select.bg-pj-kind{width:auto;min-width:150px;min-height:29px;padding:4px 8px;font-size:11px}
.inline-form.bg-pj-form{min-width:0;gap:5px}
.pj-background-panel ul{margin:8px 0 0;padding-left:17px}
.pj-background-panel li{margin:0 0 5px;line-height:1.38}

/* --- Retour, et l'appel à écrire : Armand, 11/09/2026 --- */

/*
 * LE RETOUR EST À GAUCHE, AU-DESSUS DU TITRE. Il était poussé à l'extrême
 * droite par `page-heading`, qui écarte son titre de ses actions : bon pour
 * « Imprimer », mauvais pour un retour, qu'on cherche du côté où commence la
 * lecture. Sur un grand écran, la souris traversait toute la largeur.
 */
.page-retour{margin:0 0 12px}
.page-retour-lien{padding:7px 13px;font-size:13px;border-color:#c6d4e4;color:var(--primary-dark);background:#fff}
.page-retour-lien:hover{background:#eaf4ff;border-color:#a9bfd5}
.page-retour-lien span{margin-right:2px;font-size:15px;line-height:1}

/*
 * « ÉCRIRE À UN PARTICIPANT » ÉTAIT UN TRIANGLE ET DU GRAS, perdu entre deux
 * paragraphes. C'est pourtant le seul geste de cette page qui CRÉE quelque
 * chose ; il doit se voir comme un bouton sans en devenir un — le dépliant
 * natif garde le clavier et se passe de script, ce que la CSP impose ici.
 *
 * LE « + » TOURNE À L'OUVERTURE, ce qui dit que l'état a changé sans ajouter un
 * mot. C'est la seule animation de l'écran, et elle dure un dixième de seconde.
 */
.ecrire-participant{margin:0 0 14px}
.messagerie-ecriture-raccourcis{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin:0 0 14px}.messagerie-ecriture-raccourcis .ecrire-participant{margin:0;min-width:min(100%,680px);flex:1 1 680px}.messagerie-copies{margin:10px 0 14px}.messagerie-copies>summary{cursor:pointer;font-weight:800;color:var(--primary-dark)}.messagerie-copies .form-grid{margin-top:10px}.messagerie-copies select,.messagerie-copies textarea{width:100%;min-width:0}.fil-transfert{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.fil-transfert>summary{cursor:pointer;font-weight:800;color:var(--primary-dark)}
.ecrire-participant>summary{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid #bcd2ea;border-radius:10px;background:linear-gradient(135deg,#f2f8ff,#eaf4ff);color:var(--primary-dark);font-size:13px;font-weight:800;cursor:pointer;list-style:none}
.ecrire-participant>summary::-webkit-details-marker{display:none}
.ecrire-participant>summary::marker{content:""}
.ecrire-participant>summary:hover{border-color:#8fb4dc;background:linear-gradient(135deg,#eaf4ff,#dcecfd)}
.ecrire-participant>summary::before{content:"+";display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--primary);color:#fff;font-size:14px;font-weight:700;line-height:1;transition:transform .1s ease}
.ecrire-participant[open]>summary{border-radius:10px 10px 0 0;border-bottom-color:transparent;background:#eaf4ff}
.ecrire-participant[open]>summary::before{transform:rotate(45deg)}
.ecrire-participant[open]>.ecrire-participant-corps{padding:14px;border:1px solid #bcd2ea;border-radius:0 10px 10px 10px;background:#fbfdff}

/* --- L'état d'un message parti --- */

.livraison-pastille{margin-left:6px;vertical-align:baseline}
