.journal-tabs{gap:10px;overflow-x:auto;scrollbar-width:none}
.journal-tabs::-webkit-scrollbar{display:none}
.journal-tabs button{flex:none;font-size:10px}
.combat-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:18px 15px 12px}
.combat-roster{flex:none;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text);overflow:hidden}
.combat-roster summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;cursor:pointer;list-style:none;font:700 11px 'DM Sans',sans-serif;color:var(--gold2)}
.combat-roster summary::-webkit-details-marker{display:none}
.combat-roster summary:before{content:'▸';color:var(--gold)}
.combat-roster[open] summary:before{content:'▾'}
.combat-roster summary span{flex:1}
.combat-roster summary b{display:grid;place-items:center;min-width:20px;height:20px;border:1px solid var(--line);border-radius:50%;font-size:10px}
.combat-roster-body{max-height:min(43vh,330px);overflow-y:auto;padding:0 10px 10px;border-top:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--gold) var(--panel)}
.combat-log-heading{flex:none;margin-top:14px;padding:0 1px 8px;border-bottom:1px solid var(--line);color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.12em}
.combat-log-list{flex:1;min-height:0;overflow-y:auto;padding:12px 2px 16px;scrollbar-width:thin;scrollbar-color:var(--gold) var(--panel)}
.combat-log-list::-webkit-scrollbar,.combat-roster-body::-webkit-scrollbar{width:8px}
.combat-log-list::-webkit-scrollbar-track,.combat-roster-body::-webkit-scrollbar-track{background:var(--panel)}
.combat-log-list::-webkit-scrollbar-thumb,.combat-roster-body::-webkit-scrollbar-thumb{background:var(--gold);border:2px solid var(--panel);border-radius:8px}
.combat-log-list .log-entry{margin-bottom:14px}
.combat-log-list:empty:after{content:'Les jets et actions de combat apparaîtront ici.';display:block;padding:10px;color:var(--muted);font-size:11px;line-height:1.5}
.combat-resolution{display:grid;gap:7px;margin-top:9px;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--panel2)}
.combat-resolution label{display:grid;gap:4px;color:var(--text);font:700 10px 'DM Sans',sans-serif}
.combat-resolution select{width:100%;min-width:0;padding:7px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--text);font-size:11px}
.combat-resolution-actions{display:flex;flex-wrap:wrap;gap:7px}
.combat-resolution-actions button{margin:0;padding:7px 9px;border-radius:4px;font:700 10px 'DM Sans',sans-serif}
.combat-resolve-button{border:1px solid var(--gold);background:var(--gold);color:var(--bg)}
.combat-resolve-button:hover{filter:brightness(1.12)}
.combat-resolve-button:disabled{opacity:.5}
.combat-awaiting{margin:8px 0 0;color:var(--muted);font-size:10px}
.combat-heading h3{font:22px Cinzel,serif;font-weight:500;margin:8px 0}
.combat-heading p{font-size:11px;line-height:1.5;color:#aab9af;margin:10px 0 17px}
.combat-heading{padding-top:11px}
.chat-form{height:auto;min-height:94px;align-items:flex-start;padding:10px 12px;gap:8px}
.chat-form textarea{flex:1;min-width:0;min-height:72px;max-height:180px;resize:vertical;padding:9px 10px;border:1px solid #53615a;border-radius:4px;background:#263534;color:#eee;font:11px/1.5 'DM Sans',sans-serif;outline:none;scrollbar-width:thin;scrollbar-color:var(--gold) var(--panel)}
.chat-form textarea:focus{border-color:var(--gold)}
.chat-form .chat-visibility,.chat-form .chat-send{flex:none;width:30px;height:34px;margin-top:1px;display:grid;place-items:center}
.chat-form .chat-visibility{padding:5px;border-color:var(--line);background:var(--panel2);color:var(--gold2)}
.chat-form .chat-visibility[aria-pressed="true"]{border-color:var(--gold);background:var(--panel);color:var(--gold)}
.chat-visibility svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.chat-form button:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.journal-panel{position:relative}
.chat-composer{position:relative;flex:none}
.chat-form .chat-visibility{position:relative}
.chat-recipient-count{position:absolute;right:-6px;bottom:-5px;display:grid;place-items:center;min-width:15px;height:15px;padding:0 3px;border:1px solid var(--panel);border-radius:8px;background:var(--gold);color:var(--bg);font:700 9px 'DM Sans',sans-serif}
.chat-recipient-popover{position:absolute;z-index:12;left:11px;right:11px;bottom:calc(100% + 7px);padding:12px;border:1px solid var(--gold);border-radius:8px;background:var(--panel);box-shadow:0 12px 32px #0009;color:var(--text);font-size:11px}
.chat-recipient-head{display:flex;align-items:center;justify-content:space-between;color:var(--gold2)}
.chat-recipient-head strong{font:700 12px 'DM Sans',sans-serif}
.chat-recipient-head button{width:24px;height:24px;padding:0;border:0;background:none;color:var(--text);font-size:20px;line-height:1}
.chat-recipient-popover p{margin:7px 0 10px;color:var(--muted);line-height:1.45}
.chat-recipient-list{display:grid;gap:5px;max-height:160px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--gold) var(--panel2)}
.chat-recipient-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);cursor:pointer}
.chat-recipient-list input{accent-color:var(--gold)}
.chat-recipient-empty{padding:9px;color:var(--muted)}
.chat-recipient-apply{width:100%;margin-top:10px;padding:8px;border:1px solid var(--gold);border-radius:4px;background:var(--gold);color:var(--bg);font-size:11px;font-weight:700}
.journal-list .log-entry.chat{width:max-content;max-width:87%;margin:0 auto 12px 0;padding:10px 11px;border:1px solid var(--line);border-radius:4px 11px 11px 11px;background:var(--panel2);box-shadow:0 2px 8px #0002}
.journal-list .log-entry.chat.chat-own{margin-left:auto;margin-right:0;border-color:var(--gold);border-radius:11px 4px 11px 11px;background:color-mix(in srgb,var(--panel2) 78%,var(--gold) 22%)}
.journal-list .log-entry.chat.private-item{opacity:1;border-color:#a77bc3;background:#35263f;box-shadow:inset 3px 0 #b38ad2,0 2px 8px #0002}
.journal-list .log-entry.chat.private-item.chat-own{box-shadow:inset -3px 0 #b38ad2,0 2px 8px #0002}
.journal-list .log-entry.chat .log-top{gap:10px;align-items:baseline}
.journal-list .log-entry.chat .log-text{white-space:pre-wrap;color:var(--text);font-size:11px;line-height:1.5}
.journal-list .log-entry.chat.private-item .log-top,.journal-list .log-entry.chat.private-item .log-text{color:#ead9f4}
.chat-audience{display:block;margin-top:7px;color:#d9b4f2;font-size:9px;font-weight:700}
.journal-list .log-entry.chat .log-visibility{font-size:9px}
.combat-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:112px;padding:12px;border:1px dashed #7f826b;border-radius:8px;background:#263431;color:#dddfc8;text-align:center;transition:background .15s,border-color .15s}
.combat-dropzone span{font-size:26px;color:var(--gold2)}
.combat-dropzone strong{font:13px Cinzel,serif}
.combat-dropzone small{font-size:10px;color:#9eaea4}
.combat-dropzone.drag-over{background:#3d4836;border-color:#e0c383;box-shadow:inset 0 0 0 1px #e0c383}
.combat-dropzone:not(.combat-dropzone-active){min-height:54px;flex-direction:row;gap:6px;padding:6px}
.combat-dropzone:not(.combat-dropzone-active) span{font-size:18px}
.combat-dropzone:not(.combat-dropzone-active) strong{font-size:10px}
.combat-dropzone:not(.combat-dropzone-active) small{display:none}
.combat-add-all{display:block;width:100%;margin-top:8px;padding:8px 10px;border:1px solid #637667;border-radius:5px;background:#20312d;color:#ddcfaa;font-size:11px;text-align:center}
.combat-add-all:not(:disabled):hover{background:#30433a;border-color:#c5ab73}
.combat-participants{display:grid;gap:7px;margin:15px 0}
.combat-participant{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:9px;border:1px solid #40544d;border-radius:7px;background:#223130;min-width:0}
.combat-avatar{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid #d5bd82;border-radius:50%;color:#172321;font:14px Cinzel,serif}
.combat-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.combat-participant-name{min-width:0;flex:1}
.combat-participant-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px Cinzel,serif;color:#ece6d4}
.combat-participant-name small{font-size:10px;color:#9aafa6}
.combat-bonus{width:40px;height:29px;padding:3px;background:#142422;border:1px solid #586d60;border-radius:4px;color:#eee8d5;text-align:center;font-size:11px}
.combat-die{width:34px;height:34px;border:1px solid #d3ae68;border-radius:6px;background:#b18d4d;color:#172421;font-size:24px;line-height:1}
.combat-die:hover{filter:brightness(1.2)}
.combat-initiative{display:grid;place-items:center;min-width:32px;height:32px;padding:0 4px;border:1px solid #d1b377;border-radius:5px;color:#f4d795;font:18px Cinzel,serif}
.combat-waiting{font-size:10px;color:#aeb9ad}
.combat-remove{border:0;background:transparent;color:#c58e83;font-size:20px;line-height:1}
.combat-remove:hover{color:#efaea1}
.combat-dice-result{flex-basis:100%;padding-left:38px;color:#aab9a9;font-size:10px}
.combat-actions{display:flex;align-items:center;gap:12px;margin:16px 0}
.combat-start{width:48px;height:48px;border:1px solid #dfbe7d;border-radius:50%;background:#9c7744;color:#1b2523;font-size:28px;line-height:1}
.combat-start:hover{filter:brightness(1.16)}
.combat-nuclear{display:none}
body[data-theme="scifi"] .combat-swords{display:none}
body[data-theme="scifi"] .combat-nuclear{display:inline}
.combat-end{border:1px solid #a2766d;border-radius:5px;background:#4d3634;color:#e9c5bd;padding:9px 11px;font-size:11px}
.map-area{position:relative}
.combat-carousel{position:absolute;top:50px;left:0;right:0;z-index:8;min-width:0;padding:5px 12px 0;background:transparent;border:0;pointer-events:none}
.combat-carousel-head{display:flex;justify-content:center;align-items:center;min-height:31px;color:var(--gold2);font:700 20px Cinzel,serif;text-shadow:0 1px 6px #000}
.combat-carousel-body{display:flex;justify-content:center;align-items:flex-start;gap:5px;min-width:0;height:143px}
.combat-scroll{flex:none;width:26px;height:84px;margin-top:5px;border:0;background:transparent;color:var(--gold2);font-size:32px;line-height:1;pointer-events:auto}
.combat-scroll:hover{color:#f2dcac}
.combat-scroll:disabled{color:#7b8275;cursor:default;opacity:.6}
.combat-turn-list{display:flex;align-items:flex-start;justify-content:safe center;overflow-x:auto;overflow-y:hidden;gap:8px;width:max-content;max-width:calc(100% - 72px);height:100%;padding:13px 8px 2px;scrollbar-width:none;pointer-events:auto}
.combat-turn-list::-webkit-scrollbar{display:none}
.combat-carousel-waiting{align-self:flex-start;margin:20px 0 0;color:var(--text);font:11px 'DM Sans',sans-serif;text-shadow:0 1px 6px #000}
.combat-turn{position:relative;flex:0 0 98px;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;color:#cfdbc9;transition:transform .18s ease,filter .18s ease;user-select:none}
.combat-turn.current{transform:translateY(-8px) scale(1.1);z-index:2}
.combat-turn[draggable="true"]{cursor:grab}
.combat-turn.dragging{opacity:.45}
.combat-turn.drop-before{border-left:3px solid #e2bc73}
.combat-turn.drop-after{border-right:3px solid #e2bc73}
.combat-turn-rank{position:absolute;top:1px;left:5px;z-index:1;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--panel2);border:1px solid var(--gold);color:var(--gold2);font-size:10px}
.combat-turn-avatar{width:84px;height:84px;display:grid;place-items:center;border:3px solid #8e9d83;border-radius:50%;background:var(--turn-color);overflow:hidden;color:#192521;font:34px Cinzel,serif;box-shadow:0 4px 12px #000b}
.combat-turn-avatar img{width:100%;height:100%;object-fit:contain;border-radius:50%}
.combat-turn.current .combat-turn-avatar{border-color:#f2cf87;box-shadow:0 0 0 2px #f2cf8750,0 4px 12px #000b}
.combat-turn.dead .combat-turn-avatar{filter:grayscale(1);opacity:.55}
.combat-turn strong{max-width:98px;font:10px Cinzel,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d7dccb;text-shadow:0 1px 5px #000}
.combat-turn b{position:absolute;top:66px;right:5px;display:grid;place-items:center;min-width:19px;height:19px;padding:1px 3px;background:var(--panel2);border:1px solid var(--gold);border-radius:50%;font:11px Cinzel,serif;color:var(--gold2)}
.combat-action-dots{display:flex;justify-content:center;gap:5px;min-height:9px;margin-top:1px}
.combat-action-dot{width:8px;height:8px;padding:0;border:1px solid #d5bf83;border-radius:50%;background:#172726;box-shadow:0 0 0 1px #101c1c;cursor:pointer}
.combat-action-dot.used{background:#f0c965;box-shadow:0 0 7px #e8bf64}
.combat-action-dot:disabled{cursor:default;opacity:.75}
.combat-empty{font-size:11px;color:#9aafa4;text-align:center}
body[data-theme="scifi"] .combat-dropzone{background:#163341;border-color:#4b8291}
body[data-theme="scifi"] .combat-dropzone.drag-over{background:#245061;border-color:#86d1df}
body[data-theme="scifi"] .combat-start{background:#2c7f9d;border-color:#7ad3e9;color:#0c2732}
@media(max-width:800px){.combat-carousel{top:50px;padding-inline:4px}.combat-turn{flex-basis:78px}.combat-turn-avatar{width:68px;height:68px;font-size:28px}.combat-turn b{top:51px}.combat-turn-rank{left:0}.combat-turn strong{max-width:78px}}
