:root{--bg:#0f1117;--surface:#1a1d27;--border:#2a2d3a;--accent:#e8ff47;--accent2:#ff6b35;--text:#f0f2f8;--muted:#7a7f96;--r:8px;--ok:#5ed97a;--warn:#fbbf24;--ko:#e74c3c;}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:'Barlow',sans-serif;height:100vh;display:flex;flex-direction:column;overflow:hidden;}

/* HEADER */
header{background:var(--surface);border-bottom:2px solid var(--accent);padding:0 20px;display:flex;align-items:center;height:52px;flex-shrink:0;gap:0;}
.hdr-back{display:flex;align-items:center;gap:7px;background:none;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:6px 12px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}
.hdr-back:hover{border-color:var(--accent);color:var(--accent);}
.hdr-divider{width:1px;height:24px;background:var(--border);margin:0 16px;}
.hdr-logo{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.35rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);line-height:1;}
.hdr-sub{font-family:'Barlow Condensed',sans-serif;font-weight:400;font-size:.85rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-left:5px;}
.hdr-spacer{flex:1;}
#hdr-event{font-size:.78rem;color:var(--muted);font-family:'Barlow Condensed',sans-serif;letter-spacing:.06em;}

/* TABS */
.tabs{display:flex;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;}
.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;padding:10px 20px;cursor:pointer;transition:color .15s,border-color .15s;}
.tab-btn:hover{color:var(--text);}
.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);}

/* CONTENT */
.tab-panel{display:none;flex:1;overflow:hidden;}
.tab-panel.active{display:flex;}

/* ── CONFIG TAB ── */
#tab-config{flex-direction:row;overflow:hidden;}
.cfg-sidebar{width:320px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;}
.cfg-main{flex:1;overflow-y:auto;padding:20px;}
.cfg-section{padding:14px 16px;border-bottom:1px solid var(--border);}
.cfg-section:last-child{border-bottom:none;}
.section-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:10px;}

/* Drop zone */
.drop-zone{border:1.5px dashed var(--border);border-radius:var(--r);padding:20px 16px;cursor:pointer;transition:border-color .2s,background .2s;display:flex;align-items:center;gap:12px;}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:rgba(232,255,71,.04);}
.drop-zone-icon{color:var(--muted);font-size:1.4rem;flex-shrink:0;}
.drop-zone-text{font-size:.82rem;color:var(--muted);line-height:1.4;}
.drop-zone-text strong{color:var(--text);display:block;margin-bottom:2px;}
.spot-tooltip{background:#1a1d27 !important;border:1px solid rgba(232,255,71,.25) !important;border-radius:10px !important;padding:10px 14px !important;box-shadow:0 8px 24px rgba(0,0,0,.7) !important;font-family:'Barlow',sans-serif !important;line-height:1.5 !important;min-width:180px !important;}
.spot-tooltip *{font-family:'Barlow',sans-serif !important;}
.spot-tooltip::before{display:none !important;}
.leaflet-tooltip-top.spot-tooltip::before{display:block !important;border-top-color:#1a1d27 !important;}
.gpx-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1a1a1a;border:1px solid var(--border);border-radius:8px;padding:12px 18px;font-size:.82rem;color:var(--text);box-shadow:0 4px 20px rgba(0,0,0,.5);z-index:9999;max-width:420px;line-height:1.5;animation:toast-in .2s ease;}
.gpx-toast.ok{border-color:#22c55e;}
.gpx-toast.warn{border-color:#f59e0b;}
@keyframes toast-in{from{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.drop-zone input{display:none;}

/* Saved events list */
.event-list{display:flex;flex-direction:column;gap:6px;}
.event-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;cursor:pointer;transition:border-color .15s;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.event-item:hover{border-color:rgba(232,255,71,.3);}
.event-item.selected{border-color:var(--accent);background:rgba(232,255,71,.04);}
.event-item-name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.9rem;color:var(--text);}
.event-item-meta{font-size:.72rem;color:var(--muted);}
.event-item-del{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 5px;font-size:.85rem;border-radius:4px;flex-shrink:0;line-height:1;}
.event-item-del:hover{color:var(--ko);}
.empty-list{font-size:.8rem;color:var(--muted);padding:8px 0;text-align:center;}

/* Team form */
.team-form{display:flex;flex-direction:column;gap:12px;}
.form-row{display:flex;align-items:center;gap:10px;}
.form-label{font-size:.82rem;color:var(--text);flex:1;}
.form-range{flex:1;accent-color:var(--accent);height:3px;}
.form-val{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1rem;color:var(--accent);min-width:20px;text-align:right;}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#0f1117;border:none;border-radius:6px;padding:8px 16px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:opacity .15s;}
.btn:hover{opacity:.88;}
.btn-ghost{background:none;border:1px solid var(--border);color:var(--muted);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn:disabled{opacity:.4;cursor:default;}

/* Event info card */
.event-card{background:rgba(232,255,71,.05);border:1px solid rgba(232,255,71,.2);border-radius:var(--r);padding:14px;}
.event-card-name{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.1rem;color:var(--accent);margin-bottom:4px;}
.event-card-meta{font-size:.78rem;color:var(--muted);line-height:1.6;}
.badge-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.badge{padding:3px 8px;border-radius:4px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;}
.badge-obl{background:rgba(232,255,71,.15);color:var(--accent);}
.badge-sou{background:rgba(125,211,252,.12);color:#7dd3fc;}
.badge-bon{background:rgba(122,127,150,.12);color:var(--muted);}
.badge-neu{background:rgba(255,107,53,.12);color:var(--accent2);}

/* ── TIMELINE TAB ── */
#tab-timeline{flex-direction:column;overflow:hidden;}
#tl-search-container{flex-shrink:0;}
.timeline-header{display:flex;align-items:center;gap:0;background:var(--surface);border-bottom:1px solid var(--border);padding:0 20px;height:44px;flex-shrink:0;}
.day-btn{background:none;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:5px 14px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-right:6px;transition:all .15s;}
.day-btn.active{background:rgba(232,255,71,.1);border-color:var(--accent);color:var(--accent);}
.timeline-body{flex:1;overflow:auto;padding:0;}
.timeline-ruler{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);z-index:10;display:flex;height:32px;}
.ruler-label-col{width:180px;flex-shrink:0;border-right:1px solid var(--border);position:sticky;left:0;z-index:6;background:var(--surface);}
.ruler-ticks{flex:1;position:relative;}
.ruler-tick{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;}
.ruler-tick-line{position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--border);}
.ruler-tick-label{font-size:.66rem;color:var(--muted);font-family:'Barlow Condensed',sans-serif;padding-left:3px;white-space:nowrap;}
.shot-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(42,45,58,.6);min-height:36px;}
.shot-row:hover{background:rgba(255,255,255,.02);}
.shot-label{width:180px;flex-shrink:0;padding:7px 12px 7px 10px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;position:sticky;left:0;z-index:5;background:var(--bg);}
.shot-label-name{font-size:.78rem;color:var(--text);line-height:1.3;padding-right:18px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.shot-day-badge{font-size:.56rem;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.04em;padding:1px 4px;border-radius:3px;flex-shrink:0;}
.shot-day-badge.prev{background:rgba(125,211,252,.15);color:#7dd3fc;border:1px solid rgba(125,211,252,.3);}
.shot-day-badge.next{background:rgba(167,139,250,.15);color:#a78bfa;border:1px solid rgba(167,139,250,.3);}
.shot-del-btn{display:none;position:absolute;top:4px;right:4px;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#ef4444;border-radius:3px;width:16px;height:16px;font-size:.75rem;line-height:1;cursor:pointer;padding:0;align-items:center;justify-content:center;}
.shot-row:hover .shot-del-btn{display:flex;}
.shot-map-btn{display:none;position:absolute;bottom:4px;right:4px;background:rgba(232,255,71,.1);border:1px solid rgba(232,255,71,.25);color:var(--accent);border-radius:3px;padding:1px 5px;font-size:.6rem;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;align-items:center;gap:3px;}
.shot-row:hover .shot-map-btn{display:flex;}
.shot-map-btn:hover{background:rgba(232,255,71,.2);border-color:rgba(232,255,71,.5);}
.shot-label-types{display:flex;gap:3px;margin-top:3px;flex-wrap:wrap;}
.type-chip{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;background:var(--border);color:var(--muted);}
.type-chip.sol{background:rgba(232,255,71,.12);color:var(--accent);}
.type-chip.drone{background:rgba(125,211,252,.12);color:#7dd3fc;}
.type-chip.photo{background:rgba(192,132,252,.12);color:#c084fc;}
.type-chip.fpv{background:rgba(255,107,53,.12);color:var(--accent2);}
.shot-bars{flex:1;position:relative;min-height:36px;
  background-image:
    linear-gradient(to right,
      rgba(167,139,250,.08) 0%, rgba(167,139,250,.08) 4.167%,
      transparent 4.167%, transparent 95.833%,
      rgba(167,139,250,.08) 95.833%, rgba(167,139,250,.08) 100%
    );
}
/* Zone minuit dans le ruler */
.midnight-zone-band{position:absolute;top:0;bottom:0;background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.2);border-top:none;border-bottom:none;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px;}
.midnight-zone-band.left{border-left:none;}
.midnight-zone-band.right{border-right:none;}
.mz-label{font-size:.55rem;font-family:'Barlow Condensed',sans-serif;font-weight:700;color:rgba(167,139,250,.7);letter-spacing:.04em;white-space:nowrap;}
.ruler-tick.tick-midnight .ruler-tick-line{background:rgba(167,139,250,.5);}
.ruler-tick.tick-midnight .ruler-tick-label{color:#a78bfa;font-weight:700;}
.shot-bar-window{position:absolute;top:9px;bottom:9px;border-radius:4px;min-width:2px;opacity:.3;border:1px dashed;}
.shot-bar-window.obl{border-color:rgba(232,255,71,.8);}
.shot-bar-window.sou{border-color:rgba(125,211,252,.8);}
.shot-bar-window.bon{border-color:rgba(122,127,150,.8);}
/* Bords tronqués cross-midnight */
.shot-bar-window.from-prev-day{border-left:none;border-radius:0 4px 4px 0;}
.shot-bar-window.to-next-day{border-right:none;border-radius:4px 0 0 4px;}
.shot-bar-window.from-prev-day.to-next-day{border-left:none;border-right:none;border-radius:0;}
.shot-bar.from-prev-day{border-left-width:0;border-radius:0 4px 4px 0;}
.shot-bar.to-next-day{border-right-width:0;border-radius:4px 0 0 4px;}
.shot-bar.from-prev-day.to-next-day{border-left-width:0;border-right-width:0;border-radius:0;}
.shot-crossday-badge{position:absolute;top:50%;transform:translateY(-50%);font-size:.58rem;font-weight:700;opacity:.85;pointer-events:none;padding:1px 3px;border-radius:2px;background:rgba(0,0,0,.35);}
.shot-crossday-badge.to-next{right:3px;}
.shot-crossday-badge.from-prev{left:3px;}
.shot-bar{position:absolute;top:6px;bottom:6px;border-radius:4px;display:flex;align-items:center;padding:0;overflow:hidden;min-width:4px;user-select:none;}
.shot-bar.obl{background:rgba(232,255,71,.3);border:1.5px solid rgba(232,255,71,.8);}
.shot-bar.sou{background:rgba(125,211,252,.22);border:1.5px solid rgba(125,211,252,.7);}
.shot-bar.bon{background:rgba(122,127,150,.18);border:1.5px solid rgba(122,127,150,.55);}
.shot-bar-drag-zone{flex:1;display:flex;align-items:center;cursor:grab;overflow:hidden;padding:0 14px;min-width:0;}
.shot-bar-drag-zone:active,.shot-bar-drag-zone.dragging{cursor:grabbing;}
.shot-bar-label{font-size:.65rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.tl-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:.85rem;}

/* ── Timeline search bar ── */
.tl-search-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:5px 12px;display:flex;align-items:center;gap:8px;flex-shrink:0;}
.tl-search-bar input::placeholder{color:var(--muted);}

/* ── CP MODE ── */
.cp-toggle-btn{background:none;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:5px 14px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-left:8px;transition:all .15s;}
.cp-toggle-btn:hover{border-color:var(--accent2);color:var(--accent2);}
.cp-toggle-btn.active{background:rgba(255,107,53,.12);border-color:var(--accent2);color:var(--accent2);}
.cp-add-btn{background:none;border:1px dashed var(--border);color:var(--muted);border-radius:6px;padding:4px 12px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .15s;}
.cp-add-btn:hover{border-color:var(--accent2);color:var(--accent2);}
.cp-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(42,45,58,.6);min-height:56px;}
.cp-row.cp-row-highlight{background:rgba(255,107,53,.07);}
.cp-row-label{width:160px;flex-shrink:0;padding:8px 12px;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:4px;background:var(--surface);position:sticky;left:0;z-index:5;}
.cp-row-label-name{font-size:.8rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.cp-row-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.75rem;padding:2px 5px;border-radius:3px;}
.cp-row-del:hover{color:var(--ko);}
.cp-row-rb{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.75rem;padding:2px 5px;border-radius:3px;opacity:.6;}
.cp-row-rb:hover{color:var(--accent);opacity:1;}
.cp-warn-osrm{outline:2px dashed var(--warn) !important;}
/* Course picker */
.course-picker-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:7px;cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:7px;}
.course-picker-item:hover{border-color:var(--accent2);background:rgba(255,107,53,.05);}
.cp-bars{flex:1;position:relative;min-height:56px;transition:min-width .2s;
  background-image:
    linear-gradient(to right,
      rgba(167,139,250,.06) 0%, rgba(167,139,250,.06) 4.167%,
      transparent 4.167%, transparent 95.833%,
      rgba(167,139,250,.06) 95.833%, rgba(167,139,250,.06) 100%
    );
}
#timeline-body{overflow-x:auto;}
.cp-block{position:absolute;top:8px;bottom:8px;border-radius:5px;cursor:grab;display:flex;align-items:center;overflow:hidden;touch-action:none;user-select:none;z-index:2;transition:top .1s,bottom .1s,box-shadow .1s;}
.cp-block:hover{top:4px;bottom:4px;box-shadow:0 2px 12px rgba(0,0,0,.4);z-index:5;}
.cp-block:active{cursor:grabbing;z-index:10;box-shadow:0 4px 20px rgba(0,0,0,.5);}
.cp-block-label{font-size:.68rem;color:#fff;padding:0 18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-shadow:0 1px 2px rgba(0,0,0,.6);font-weight:600;}
.cp-block.unassigned .cp-block-label{color:inherit;}
#cp-block-tooltip{position:fixed;z-index:9999;pointer-events:none;display:none;background:#161616;border:1px solid #333;border-radius:8px;padding:9px 12px;min-width:180px;max-width:260px;box-shadow:0 6px 24px rgba(0,0,0,.6);font-size:.78rem;line-height:1.5;}
#cp-block-tooltip .tt-name{font-weight:800;font-size:.85rem;color:var(--text);margin-bottom:4px;white-space:normal;}
#cp-block-tooltip .tt-row{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.75rem;}
#cp-block-tooltip .tt-row b{color:var(--text);}
#cp-block-tooltip .tt-priority{display:inline-block;padding:1px 7px;border-radius:3px;font-size:.68rem;font-weight:700;margin-top:3px;}
#cp-block-tooltip .tt-note{margin-top:6px;padding:5px 8px;background:rgba(255,107,53,.08);border-left:2px solid rgba(255,107,53,.5);border-radius:0 4px 4px 0;font-size:.73rem;color:var(--muted);font-style:italic;white-space:pre-wrap;line-height:1.4;}
.resize-handle{position:absolute;top:0;bottom:0;width:12px;cursor:ew-resize;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;}
.resize-handle::before{content:'';width:3px;height:45%;background:rgba(255,255,255,.7);border-radius:2px;}
.cp-block:hover .resize-handle,.shot-bar:hover .resize-handle{opacity:1;}
#drag-time-tooltip{position:fixed;z-index:9999;pointer-events:none;display:none;background:#1a1d27;border:1px solid var(--accent);border-radius:5px;padding:3px 10px;font-size:.85rem;font-weight:700;font-family:'Barlow Condensed',sans-serif;color:var(--accent);letter-spacing:.05em;white-space:nowrap;box-shadow:0 2px 10px rgba(0,0,0,.55);transform:translateY(-50%);}

/* ── Publication roadbooks ── */
.pub-event-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(232,255,71,.08);border:1px solid rgba(232,255,71,.25);border-radius:6px;padding:5px 10px;font-size:.78rem;color:var(--accent);margin-bottom:8px;width:100%;}
.pub-event-badge svg{flex-shrink:0;}
.pub-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);z-index:2000;align-items:center;justify-content:center;}
.pub-modal-overlay.open{display:flex;}
.pub-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px;max-width:480px;width:calc(100% - 32px);max-height:80vh;overflow-y:auto;}
.pub-modal-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.pub-rb-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.pub-rb-info{flex:1;min-width:0;}
.pub-rb-name{font-weight:700;font-size:.88rem;color:var(--text);}
.pub-rb-day{font-size:.72rem;color:var(--muted);margin-top:1px;}
.pub-rb-actions{display:flex;gap:6px;flex-shrink:0;}
.pub-rb-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;font-size:.75rem;font-family:'Barlow Condensed',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid transparent;cursor:pointer;text-decoration:none;}
.pub-rb-btn-url{background:rgba(232,255,71,.1);border-color:rgba(232,255,71,.3);color:var(--accent);}
.pub-rb-btn-url:hover{background:rgba(232,255,71,.22);}
.pub-rb-btn-wa{background:rgba(37,211,102,.1);border-color:rgba(37,211,102,.3);color:#25d366;}
.pub-rb-btn-wa:hover{background:rgba(37,211,102,.22);}
.resize-handle-left{left:0;}
.resize-handle-right{right:0;}
.cp-conflict{outline:2px solid var(--ko) !important;box-shadow:0 0 8px rgba(231,76,60,.5) !important;}
/* ── Context menu cadreur ── */
#cp-context-menu{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 0;min-width:180px;box-shadow:0 6px 20px rgba(0,0,0,.5);font-family:'Barlow Condensed',sans-serif;}
.cp-ctx-title{padding:5px 12px 6px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--border);}
.cp-ctx-item{padding:7px 14px;cursor:pointer;display:flex;align-items:center;gap:9px;font-size:.82rem;color:var(--text);transition:background .1s;}
.cp-ctx-item:hover{background:rgba(255,255,255,.07);}
.cp-ctx-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.cp-ctx-sep{border:none;border-top:1px solid var(--border);margin:4px 0;}
.cp-ctx-danger{padding:7px 14px;cursor:pointer;font-size:.82rem;color:var(--ko);transition:background .1s;}
.cp-ctx-danger:hover{background:rgba(231,76,60,.1);}
/* Badge "partagé" sur un block CP */
.cp-shared-badge{position:absolute;top:2px;right:14px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.25);border-radius:3px;font-size:.6rem;font-weight:700;padding:1px 4px;color:#fff;pointer-events:none;line-height:1.4;}
/* Toast undo */
#undo-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(12px);background:#1a1d27;border:1px solid var(--accent);border-radius:8px;padding:7px 18px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.88rem;color:var(--accent);letter-spacing:.05em;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;z-index:99999;}
#undo-toast.visible{opacity:1;transform:translateX(-50%) translateY(0);}
/* ── Map search control (topright) ── */
.map-search-ctrl{width:280px;}
.map-search-ctrl input[type=text]{width:100%;padding:9px 14px 9px 34px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.88rem;font-family:'Barlow',sans-serif;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.5);outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none' stroke='%237a7f96' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cpath d='m11 11 3 3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center;}
.map-search-ctrl input[type=text]:focus{border-color:var(--accent);box-shadow:0 2px 12px rgba(0,0,0,.5),0 0 0 1px rgba(232,255,71,.2);}
#map-search-results{display:none;background:var(--surface);border:1px solid var(--border);border-radius:7px;margin-top:5px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.6);max-height:220px;overflow-y:auto;}
.msr-item{padding:8px 14px;font-size:.78rem;color:var(--text);cursor:pointer;border-bottom:1px solid rgba(42,45,58,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.msr-item:last-child{border-bottom:none;}
.msr-item:hover{background:rgba(232,255,71,.06);color:var(--accent);}
.msr-empty{padding:9px 14px;font-size:.78rem;color:var(--muted);}
.cp-validation{padding:10px 20px;background:var(--surface);border-top:1px solid var(--border);font-size:.78rem;display:flex;gap:14px;flex-wrap:wrap;align-items:center;flex-shrink:0;}
.val-item{display:flex;align-items:center;gap:4px;white-space:nowrap;}
.val-ok{color:var(--ok);}
.val-ko{color:var(--ko);}
.val-warn{color:var(--warn);}

/* Conflict markers */
.conflict-stripe{position:absolute;top:0;bottom:0;background:rgba(231,76,60,.08);border-left:2px solid rgba(231,76,60,.4);pointer-events:none;}

/* ── ANALYSE TAB ── */
#tab-analyse{flex-direction:column;overflow-y:auto;padding:20px;gap:16px;}
.analyse-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:900px){.analyse-grid{grid-template-columns:1fr;}}
.analyse-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;}
.analyse-card-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:12px;}
.verdict-big{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r);margin-bottom:16px;}
.verdict-big.ok{background:rgba(94,217,122,.1);border:1px solid rgba(94,217,122,.3);}
.verdict-big.tendu{background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);}
.verdict-big.ko{background:rgba(231,76,60,.1);border:1px solid rgba(231,76,60,.3);}
.verdict-icon{font-size:1.6rem;flex-shrink:0;}
.verdict-text-main{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.3rem;text-transform:uppercase;}
.verdict-text-sub{font-size:.8rem;color:var(--muted);margin-top:2px;}
.verdict-big.ok .verdict-text-main{color:var(--ok);}
.verdict-big.tendu .verdict-text-main{color:var(--warn);}
.verdict-big.ko .verdict-text-main{color:var(--ko);}
.crew-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.crew-table th{text-align:left;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:4px 8px;border-bottom:1px solid var(--border);}
.crew-table td{padding:7px 8px;border-bottom:1px solid rgba(42,45,58,.5);}
.crew-table tr:last-child td{border-bottom:none;}
.num-ok{color:var(--ok);font-weight:600;}
.num-warn{color:var(--warn);font-weight:600;}
.num-ko{color:var(--ko);font-weight:600;}
.simult-item{background:var(--bg);border-radius:6px;padding:10px 12px;margin-bottom:8px;border-left:3px solid var(--border);}
.simult-item.conflict{border-left-color:var(--ko);}
.simult-item.tight{border-left-color:var(--warn);}
.simult-time{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.85rem;color:var(--accent);margin-bottom:4px;}
.simult-shots{font-size:.78rem;color:var(--muted);line-height:1.5;}
.deliverable-item{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid rgba(42,45,58,.5);}
.deliverable-item:last-child{border-bottom:none;}
.del-badge{flex-shrink:0;padding:3px 7px;border-radius:4px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;}
.del-badge.snack{background:rgba(0,211,179,.12);color:#00d3b3;}
.del-badge.capsule_j0{background:rgba(232,255,71,.12);color:var(--accent);}
.del-badge.capsule_j4{background:rgba(125,211,252,.12);color:#7dd3fc;}
.del-badge.ours{background:rgba(192,132,252,.12);color:#c084fc;}
.del-info{flex:1;}
.del-name{font-size:.82rem;color:var(--text);font-weight:500;}
.del-meta{font-size:.72rem;color:var(--muted);margin-top:2px;}

/* ── MAP TAB ── */
#tab-map{flex-direction:column;}
.map-controls{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap;}
.map-legend{display:flex;gap:12px;font-size:.75rem;color:var(--muted);align-items:center;flex-wrap:wrap;}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.legend-line{width:20px;height:3px;border-radius:2px;flex-shrink:0;}
.map-toggle{background:none;border:1px solid var(--border);color:var(--muted);border-radius:5px;padding:3px 9px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .15s;}
.map-toggle:hover,.map-toggle.on{border-color:var(--accent);color:var(--accent);background:rgba(232,255,71,.06);}
.leaflet-layer-picker{background:#1a1d27;border:1px solid rgba(255,255,255,.12);border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.55);overflow:hidden;font-family:'Barlow Condensed',sans-serif;}
.layer-picker-toggle{display:flex;align-items:center;justify-content:center;padding:7px 10px;cursor:pointer;color:#f0f2f8;gap:2px;}
.layer-picker-toggle:hover{background:rgba(255,255,255,.08);}
.layer-picker-menu{display:none;border-top:1px solid rgba(255,255,255,.1);}
.layer-picker-menu.open{display:block;}
.layer-picker-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:rgba(240,242,248,.6);white-space:nowrap;transition:background .12s,color .12s;border-bottom:1px solid rgba(255,255,255,.06);}
.layer-picker-item:last-child{border-bottom:none;}
.layer-picker-item:hover{background:rgba(255,255,255,.07);color:#f0f2f8;}
.layer-picker-item.active{color:#e8ff47;}
.layer-picker-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;opacity:.7;}
.layer-picker-item.active .layer-picker-dot{opacity:1;}
.map-toggle.scout-on{border-color:#a78bfa;color:#a78bfa;background:rgba(167,139,250,.08);}
.map-toggle.scout-on:hover{border-color:#a78bfa;color:#a78bfa;}
.scout-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:5px 16px;display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;}
.scout-cat-btn{padding:2px 8px;border-radius:4px;border:1.5px solid;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.67rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;opacity:.35;transition:opacity .15s,background .15s;}
.scout-cat-btn.active{opacity:1;}
.scout-cat-btn[data-cat=viewpoint]{border-color:#E9FE47;color:#E9FE47;}.scout-cat-btn[data-cat=viewpoint].active{background:rgba(232,255,71,.08);}
.scout-cat-btn[data-cat=historic]{border-color:#ff6b35;color:#ff6b35;}.scout-cat-btn[data-cat=historic].active{background:rgba(255,107,53,.08);}
.scout-cat-btn[data-cat=summit]{border-color:#7dd3fc;color:#7dd3fc;}.scout-cat-btn[data-cat=summit].active{background:rgba(125,211,252,.08);}
.scout-cat-btn[data-cat=natural]{border-color:#00d3b3;color:#00d3b3;}.scout-cat-btn[data-cat=natural].active{background:rgba(0,211,179,.08);}
.scout-cat-btn[data-cat=worship]{border-color:#c084fc;color:#c084fc;}.scout-cat-btn[data-cat=worship].active{background:rgba(192,132,252,.08);}
.scout-status{font-size:.7rem;color:var(--muted);margin-left:4px;}
.scout-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--border);margin-right:4px;vertical-align:middle;}
.scout-status-dot.loading{background:#fbbf24;animation:blink 1s infinite;}
.scout-status-dot.done{background:#5ed97a;}
.scout-status-dot.error{background:#e74c3c;}
/* Scout modal */
.scout-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:8500;display:none;align-items:stretch;justify-content:flex-end;}
.scout-modal-overlay.open{display:flex;}
.scout-modal{width:380px;max-width:95vw;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.scout-modal-header{padding:14px 16px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.scout-modal-title{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1rem;letter-spacing:.04em;text-transform:uppercase;color:#a78bfa;flex:1;}
.scout-poi-list{flex:1;overflow-y:auto;padding:8px;}
.scout-poi-list::-webkit-scrollbar{width:4px;}
.scout-poi-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.scout-poi-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:border-color .15s;overflow:hidden;}
.scout-poi-card:hover{border-color:rgba(167,139,250,.35);}
.scout-poi-card.highlighted{border-color:#a78bfa;}
.scout-poi-photo{width:100%;height:80px;object-fit:cover;display:block;}
.scout-poi-body{padding:8px 10px;}
.scout-poi-name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.scout-poi-meta{font-size:.68rem;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:6px;}
.scout-poi-score{display:flex;gap:2px;margin-left:auto;}
.scout-poi-dot{width:5px;height:5px;border-radius:50%;background:var(--border);}
.scout-poi-dot.on{background:#a78bfa;}
.scout-poi-add{font-size:.67rem;padding:2px 7px;border-radius:4px;border:1px solid rgba(167,139,250,.4);color:#a78bfa;background:none;cursor:pointer;margin-top:5px;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.scout-poi-add:hover{background:rgba(167,139,250,.1);}
#map{flex:1;}
#map.streetview-mode{cursor:crosshair;}
.map-toggle.streetview-on{border-color:#4285f4;color:#4285f4;background:rgba(66,133,244,.1);}
.map-toggle.streetview-on:hover{border-color:#4285f4;color:#4285f4;}

/* CSV import markers */
.csv-marker-pin{width:24px;height:30px;position:relative;display:flex;align-items:center;justify-content:center;}
.csv-marker-pin::before{content:'';position:absolute;inset:0;background:#ff9f1c;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.45);}
.csv-marker-pin span{position:relative;z-index:1;font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:.6rem;color:#fff;transform:translateY(-3px);}
.map-toggle.csv-active{border-color:#ff9f1c;color:#ff9f1c;background:rgba(255,159,28,.1);}
.map-toggle.csv-active:hover{border-color:#ff9f1c;color:#ff9f1c;}

/* Shared */
.tag-obl{color:var(--accent);}
.tag-sou{color:#7dd3fc;}
.tag-bon{color:var(--muted);}
.mt-8{margin-top:8px;}
.mt-12{margin-top:12px;}
.mt-16{margin-top:16px;}
@media print {
  header,nav.tabs,#tab-roadbook>div:first-child{display:none!important;}
  #tab-roadbook{overflow:visible!important;}
  #rb-content{padding:0!important;}
  body>*:not(#tab-roadbook){display:none!important;}
  #tab-roadbook{display:block!important;}
}
