/* features.css - separated from style.css */

.toast-item.success{border-color:rgba(74,222,128,0.3);color:var(--green)}

.toast-item.error{border-color:rgba(248,113,113,0.3);color:var(--red)}

.sync-dot.syncing{background:var(--amber);box-shadow:0 0 6px var(--amber);animation:sp .8s ease-in-out infinite}

.sync-dot.error{background:var(--red);box-shadow:0 0 6px var(--red)}

.layout{display:flex;flex:1;overflow:hidden;height:calc(100vh - 56px);position:relative;z-index:1}

.sidebar{width:220px;background:rgba(5,9,20,0.7);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;backdrop-filter:blur(20px);-webkit-overflow-scrolling:touch}

.agent-card{margin:14px 12px 8px;background:linear-gradient(135deg,rgba(29,78,216,0.2),rgba(37,99,235,0.1));border:1px solid rgba(99,160,255,0.2);border-radius:14px;padding:14px}

.nav-item.active,.nav-item[aria-current="page"]{background:linear-gradient(90deg,rgba(59,130,246,0.12),transparent);color:var(--blue3);border-left:2px solid var(--blue)}

.nav-icon{width:15px;height:15px;opacity:.6;flex-shrink:0}

.nav-item.active .nav-icon{opacity:1}

.page.active{display:block}

.tile-icon.blue{background:linear-gradient(135deg,rgba(29,78,216,0.4),rgba(59,130,246,0.2));border:1px solid rgba(99,160,255,0.2)}

.tile-icon.orange{background:linear-gradient(135deg,rgba(194,65,12,0.4),rgba(249,115,22,0.2));border:1px solid rgba(249,115,22,0.2)}

.tile-icon.red{background:linear-gradient(135deg,rgba(185,28,28,0.4),rgba(239,68,68,0.2));border:1px solid rgba(239,68,68,0.2)}

.tile-icon.green{background:linear-gradient(135deg,rgba(21,128,61,0.4),rgba(34,197,94,0.2));border:1px solid rgba(34,197,94,0.2)}

.tile-icon.purple{background:linear-gradient(135deg,rgba(109,40,217,0.4),rgba(139,92,246,0.2));border:1px solid rgba(139,92,246,0.2)}

.tile-icon.cyan{background:linear-gradient(135deg,rgba(14,116,144,0.4),rgba(6,182,212,0.2));border:1px solid rgba(6,182,212,0.2)}

table{width:100%;border-collapse:collapse;font-size:12px}

th{text-align:left;padding:8px 12px;font-size:10px;color:var(--text3);letter-spacing:.8px;text-transform:uppercase;border-bottom:1px solid var(--border);font-weight:600}

td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,0.03);color:var(--text2);vertical-align:middle}

tr:hover td{background:var(--glass);color:var(--text);cursor:pointer}

.badge.wanted{background:rgba(248,113,113,0.12);color:var(--red);border:1px solid rgba(248,113,113,0.25)}

.badge.clean{background:rgba(74,222,128,0.1);color:var(--green);border:1px solid rgba(74,222,128,0.2)}

.badge.watch{background:rgba(251,191,36,0.1);color:var(--amber);border:1px solid rgba(251,191,36,0.2)}

.badge.deceased{background:rgba(120,120,120,0.15);color:#9ca3af;border:1px solid rgba(156,163,175,0.3)}

.badge.open{background:rgba(96,165,250,0.1);color:var(--blue3);border:1px solid rgba(96,165,250,0.2)}

.badge.ongoing{background:rgba(251,191,36,0.1);color:var(--amber);border:1px solid rgba(251,191,36,0.2)}

.badge.closed{background:rgba(74,222,128,0.1);color:var(--green);border:1px solid rgba(74,222,128,0.2)}

.badge.dismissed{background:rgba(74,85,104,0.2);color:var(--text3);border:1px solid var(--border)}

.badge.active{background:rgba(251,191,36,0.1);color:var(--amber);border:1px solid rgba(251,191,36,0.2)}

.badge.suspect{background:rgba(167,139,250,0.12);color:var(--purple);border:1px solid rgba(167,139,250,0.25)}

.badge.solved{background:rgba(74,222,128,0.12);color:var(--green);border:1px solid rgba(74,222,128,0.25)}

.badge.Criminel{background:rgba(34,211,238,0.12);color:var(--cyan);border:1px solid rgba(34,211,238,0.25)}

.badge.dismantled{background:rgba(74,85,104,0.25);color:var(--text3);border:1px solid var(--border);text-decoration:line-through}

.grp-emblem{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0;text-transform:uppercase;letter-spacing:.5px;border:1px solid rgba(255,255,255,0.12)}

.org-wrap{background:radial-gradient(ellipse at top,rgba(96,165,250,0.05),transparent 60%),linear-gradient(180deg,rgba(15,22,40,0.65),rgba(5,9,20,0.45));border:1px solid var(--border);border-radius:16px;padding:28px 24px;margin-bottom:14px;overflow-x:auto}

.org-tier{margin-bottom:36px;position:relative;padding:6px 0}

.org-tier:last-child{margin-bottom:0}

.org-tier-header{display:flex;align-items:center;gap:10px;margin-bottom:18px}

.org-tier-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:700;padding:5px 13px;border-radius:20px;white-space:nowrap;backdrop-filter:blur(8px)}

.org-tier-label.chef{background:rgba(248,113,113,0.18);color:#fca5a5;border:1px solid rgba(248,113,113,0.4);box-shadow:0 0 16px rgba(248,113,113,0.15)}

.org-tier-label.second{background:rgba(251,146,60,0.18);color:#fdba74;border:1px solid rgba(251,146,60,0.4)}

.org-tier-label.membre{background:rgba(96,165,250,0.18);color:#93c5fd;border:1px solid rgba(96,165,250,0.4)}

.org-tier-label.Habitant{background:rgba(148,163,184,0.12);color:var(--text2);border:1px solid var(--border)}

.org-tier-line{flex:1;height:1px;background:linear-gradient(90deg,currentColor,transparent);opacity:.5}

.org-tier-count{font-size:11px;color:var(--text2);font-weight:600;padding:3px 10px;background:rgba(255,255,255,0.06);border-radius:12px;border:1px solid var(--border)}

.org-members{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;position:relative}

.org-card{background:linear-gradient(135deg,rgba(20,30,55,0.85),rgba(15,22,40,0.75));border:1px solid var(--border);border-radius:13px;padding:11px 14px 11px 16px;min-width:170px;max-width:230px;display:flex;align-items:center;gap:11px;cursor:pointer;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s,border-color .18s;position:relative;overflow:hidden}

.org-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border);transition:background .18s}

.org-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,0.5)}

.org-card.chef{border-color:rgba(248,113,113,0.45);background:linear-gradient(135deg,rgba(248,113,113,0.12),rgba(15,22,40,0.85));min-width:210px;max-width:280px;padding:14px 18px;box-shadow:0 4px 20px rgba(248,113,113,0.12)}

.org-card.chef::before{background:linear-gradient(180deg,#f87171,#dc2626)}

.org-card.chef:hover{box-shadow:0 12px 32px rgba(248,113,113,0.28),0 0 0 1px rgba(248,113,113,0.4)}

.org-card.second{border-color:rgba(251,146,60,0.45);background:linear-gradient(135deg,rgba(251,146,60,0.08),rgba(15,22,40,0.85))}

.org-card.second::before{background:linear-gradient(180deg,#fb923c,#ea580c)}

.org-card.second:hover{box-shadow:0 10px 28px rgba(251,146,60,0.22),0 0 0 1px rgba(251,146,60,0.35)}

.org-card.membre{border-color:rgba(96,165,250,0.3)}

.org-card.membre::before{background:linear-gradient(180deg,#60a5fa,#2563eb)}

.org-card.membre:hover{box-shadow:0 10px 28px rgba(96,165,250,0.18),0 0 0 1px rgba(96,165,250,0.3)}

.org-card.Habitant{border-color:var(--border);opacity:.78;min-width:150px}

.org-card.Habitant::before{background:linear-gradient(180deg,#64748b,#475569)}

.org-card.Habitant:hover{opacity:1}

.org-card.unknown{border-style:dashed;opacity:.85}

.org-avatar{width:38px;height:38px;border-radius:50%;background:var(--bg-tile);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text);flex-shrink:0;border:1.5px solid var(--border);transition:transform .18s}

.org-card:hover .org-avatar{transform:scale(1.06)}

.org-card.chef .org-avatar{width:48px;height:48px;font-size:15px;background:linear-gradient(135deg,#f87171,#b91c1c);color:#fff;border-color:rgba(248,113,113,0.6);box-shadow:0 0 18px rgba(248,113,113,0.35)}

.org-card.second .org-avatar{background:linear-gradient(135deg,#fb923c,#c2410c);color:#fff;border-color:rgba(251,146,60,0.55)}

.org-card.membre .org-avatar{background:linear-gradient(135deg,#60a5fa,#1d4ed8);color:#fff;border-color:rgba(96,165,250,0.5)}

.org-card.Habitant .org-avatar{width:32px;height:32px;font-size:11px;background:linear-gradient(135deg,#64748b,#334155);color:#cbd5e1}

.org-body{flex:1;min-width:0}

.org-name{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.1px}

.org-card.chef .org-name{font-size:13.5px;color:#fef2f2}

.org-alias{font-size:10px;color:var(--blue3);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}

.org-note{font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}

.org-link-icon{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-panel);box-shadow:0 2px 6px rgba(37,99,235,0.4)}

.org-dead-icon{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#94a3b8,#475569);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-panel);box-shadow:0 2px 6px rgba(0,0,0,0.5)}
.org-card.dead{filter:grayscale(.7);opacity:.6}
.org-card.dead:hover{opacity:.85}
.org-card.dead .org-avatar{background:linear-gradient(135deg,#64748b,#334155)!important;color:#cbd5e1!important;box-shadow:none!important}
.org-card.dead .org-name{text-decoration:line-through;text-decoration-color:rgba(148,163,184,0.7)}
.org-card.dead::before{background:linear-gradient(180deg,#94a3b8,#475569)!important}

.org-empty{font-size:11px;color:var(--text3);font-style:italic;text-align:center;padding:10px;width:100%}

.org-tier{z-index:1}

.org-card{z-index:2}

.badge.stolen{background:rgba(248,113,113,0.12);color:var(--red);border:1px solid rgba(248,113,113,0.25)}

.badge.seized{background:rgba(251,191,36,0.1);color:var(--amber);border:1px solid rgba(251,191,36,0.2)}

.badge.clear{background:rgba(74,222,128,0.1);color:var(--green);border:1px solid rgba(74,222,128,0.2)}

.badge.crime{background:rgba(248,113,113,0.12);color:var(--red);border:1px solid rgba(248,113,113,0.25)}

.badge.delit{background:rgba(251,191,36,0.1);color:var(--amber);border:1px solid rgba(251,191,36,0.2)}

.badge.contravent{background:rgba(96,165,250,0.1);color:var(--blue3);border:1px solid rgba(96,165,250,0.2)}

.form-group.full{grid-column:1/-1}

.profile-header{display:flex;gap:18px;align-items:flex-start;margin-bottom:18px}

.big-avatar{width:68px;height:68px;background:linear-gradient(135deg,#1d4ed8,#3b82f6);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;flex-shrink:0}

.linked-section{background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px}

.linked-title{font-size:10px;color:var(--text2);letter-spacing:.8px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;font-weight:600}

.linked-item{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}

.linked-item:last-child{border-bottom:none}

.linked-empty{font-size:11px;color:var(--text3);padding:4px 0}

.incident-row{background:rgba(15,22,40,0.6);border:1px solid var(--border);border-radius:12px;padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .15s}

.incident-row:hover{background:rgba(30,45,80,0.6);border-color:rgba(99,160,255,0.2);transform:translateX(2px)}

.infraction-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}

.infraction-line{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px;align-items:center}

.infraction-line:last-child{border-bottom:none}

.casier-record{background:rgba(15,22,40,0.6);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden}

.casier-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}

.casier-header:hover{background:var(--glass)}

.casier-body{padding:14px 16px;border-top:1px solid var(--border)}

.officer-dot.on{background:var(--green);box-shadow:0 0 6px var(--green)}

.officer-dot.away{background:var(--amber);box-shadow:0 0 6px var(--amber)}

.success-msg{background:rgba(74,222,128,0.08);border:1px solid rgba(74,222,128,0.2);border-radius:10px;padding:10px 14px;font-size:12px;color:var(--green);margin-top:10px;display:none}

.back-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--glass);border:1px solid var(--border);border-radius:8px;color:var(--text2);font-size:12px;font-weight:500;cursor:pointer;margin-bottom:16px;transition:all .15s;font-family:'Inter',sans-serif}

.back-btn:hover{background:var(--glass2);color:var(--text)}

.inter-chat{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;max-height:400px;overflow-y:auto;padding:4px 2px}

.inter-input-area{background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:14px;padding:14px}

.speaker-btns{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}

.speaker-btn{padding:6px 14px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s;font-family:'Inter',sans-serif}

.speaker-btn.officier{background:rgba(59,130,246,0.1);color:var(--blue3);border-color:rgba(59,130,246,0.2)}

.speaker-btn.officier.active{background:rgba(59,130,246,0.25);border-color:var(--blue3)}

.speaker-btn.suspect{background:rgba(248,113,113,0.1);color:var(--red);border-color:rgba(248,113,113,0.2)}

.speaker-btn.suspect.active{background:rgba(248,113,113,0.25);border-color:var(--red)}

.speaker-btn.avocat{background:rgba(251,191,36,0.08);color:var(--amber);border-color:rgba(251,191,36,0.18)}

.speaker-btn.avocat.active{background:rgba(251,191,36,0.2);border-color:var(--amber)}

.speaker-btn.procureur{background:rgba(34,211,238,0.08);color:var(--cyan);border-color:rgba(34,211,238,0.18)}

.speaker-btn.procureur.active{background:rgba(34,211,238,0.2);border-color:var(--cyan)}

.speaker-btn.juge{background:rgba(167,139,250,0.08);color:var(--purple);border-color:rgba(167,139,250,0.18)}

.speaker-btn.juge.active{background:rgba(167,139,250,0.2);border-color:var(--purple)}

.speaker-btn.note{background:rgba(255,255,255,0.03);color:var(--text3);border-color:var(--border)}

.speaker-btn.note.active{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.2)}

.inter-text-row{display:flex;gap:10px;align-items:center}

.inter-send-btn{padding:10px 16px;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border:none;border-radius:10px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}

.inter-send-btn:hover{transform:translateY(-1px)}

.public-toggle{display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(135deg,rgba(34,211,238,0.06),rgba(59,130,246,0.06));border:1px solid rgba(34,211,238,0.2);border-radius:10px;margin:14px 0;font-size:13px;color:var(--text2);cursor:pointer;transition:all .15s}

.public-toggle:hover{background:linear-gradient(135deg,rgba(34,211,238,0.1),rgba(59,130,246,0.1));border-color:rgba(34,211,238,0.35)}

.public-toggle input[type="checkbox"]{width:16px;height:16px;cursor:pointer;accent-color:var(--cyan)}

.public-toggle span{flex:1;line-height:1.4}

.public-toggle.privacy{background:linear-gradient(135deg,rgba(251,191,36,0.05),rgba(248,113,113,0.05));border-color:rgba(251,191,36,0.18)}

.public-toggle.privacy:hover{background:linear-gradient(135deg,rgba(251,191,36,0.1),rgba(248,113,113,0.1));border-color:rgba(251,191,36,0.35)}

.public-toggle.privacy input[type="checkbox"]{accent-color:var(--amber)}

.public-toggle.privacy:has(input:checked){background:linear-gradient(135deg,rgba(248,113,113,0.12),rgba(251,191,36,0.08));border-color:rgba(248,113,113,0.4)}

.inter-doc{display:flex;flex-direction:column;gap:14px;margin:16px 0;padding:18px 22px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:10px;max-height:520px;overflow-y:auto;font-family:'Inter',sans-serif}

.inter-doc:empty::before{content:"Les répliques apparaîtront ici.";color:var(--text3);font-size:12px;text-align:center;display:block;padding:8px}

.doc-line{position:relative;font-size:13px;line-height:1.65;color:var(--text);padding:2px 28px 2px 0;word-break:break-word}

.doc-speaker{font-weight:700;color:var(--blue3)}

.doc-text{color:var(--text2)}

.doc-del{position:absolute;top:0;right:0;background:none;border:none;color:rgba(255,255,255,0.18);cursor:pointer;font-size:13px;line-height:1;padding:2px 6px;transition:color .15s;font-family:'Inter',sans-serif;opacity:0}

.doc-line:hover .doc-del{opacity:1}

.doc-del:hover{color:var(--red)}

.inter-doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:14px 0 18px;padding:14px 18px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:8px}

.inter-doc-meta-row{display:flex;gap:8px;font-size:12px;align-items:baseline}

.inter-doc-meta-lbl{color:var(--text3);font-weight:600;letter-spacing:.5px;white-space:nowrap}

.inter-doc-meta-val{color:var(--text);font-weight:500}

.inter-doc-time{font-weight:700;font-size:13px;color:var(--blue3);margin:14px 0 10px;letter-spacing:.5px;text-decoration:underline;text-underline-offset:4px}

@media (max-width:720px){.inter-doc-meta{grid-template-columns:1fr}}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}

.bar{width:100%;border-radius:6px 6px 0 0;transition:height .5s ease;min-height:4px}

.enq-item{background:rgba(15,22,40,0.6);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:all .15s;display:flex;align-items:flex-start;gap:14px}

.enq-item:hover{background:rgba(30,45,80,0.6);border-color:rgba(99,160,255,0.2);transform:translateX(2px)}

.enq-num{font-size:11px;color:var(--blue3);font-weight:700;min-width:72px;padding-top:2px}

.enq-main{flex:1;min-width:0}

.enq-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:3px}

.enq-meta{font-size:11px;color:var(--text3);display:flex;gap:10px;flex-wrap:wrap}

.enq-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;background:rgba(255,255,255,0.04);color:var(--text2);border:1px solid var(--border)}

.enq-section{background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px}

.enq-section-title{font-size:10px;color:var(--text2);letter-spacing:.8px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;font-weight:600}

.timeline-item{position:relative;padding:10px 14px;margin-bottom:8px;background:rgba(15,22,40,0.5);border:1px solid var(--border);border-left:3px solid var(--blue3);border-radius:8px;display:flex;gap:12px;align-items:flex-start}

.timeline-date{font-size:11px;color:var(--blue3);font-weight:600;min-width:90px;flex-shrink:0}

.timeline-event{font-size:12px;color:var(--text2);line-height:1.5;flex:1}

.evidence-card{background:rgba(15,22,40,0.5);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:8px;display:flex;gap:12px;align-items:flex-start}

.evidence-type{font-size:10px;color:var(--cyan);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;background:rgba(34,211,238,0.08);border:1px solid rgba(34,211,238,0.2);border-radius:20px;flex-shrink:0}

.witness-card{background:rgba(15,22,40,0.5);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:8px}

.witness-name{font-size:12px;color:var(--amber);font-weight:600;margin-bottom:3px}

.witness-stmt{font-size:12px;color:var(--text2);line-height:1.6;font-style:italic}

.suspect-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:rgba(167,139,250,0.08);border:1px solid rgba(167,139,250,0.2);border-radius:20px;font-size:12px;color:var(--purple);margin:2px;font-weight:500;cursor:pointer;transition:all .15s}

.suspect-chip:hover{background:rgba(167,139,250,0.15)}

.chip-picker.focused{border-color:var(--blue);background:rgba(59,130,246,0.06);box-shadow:0 0 0 3px rgba(59,130,246,0.08);z-index:1000}

.chip-picker-option.selected{background:rgba(74,222,128,0.07);color:var(--green)}

.chip-picker-option.selected:hover{background:rgba(74,222,128,0.12)}

.chip-picker-counter.has-items{display:inline-block}

.linked-panel{background:linear-gradient(135deg,rgba(15,22,40,0.6),rgba(20,30,55,0.5));border:1px solid var(--border);border-radius:16px;padding:18px;margin-bottom:14px;backdrop-filter:blur(10px)}

.linked-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px}

.linked-panel-title{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:1px;font-weight:700;display:flex;align-items:center;gap:8px}

.linked-panel-title::before{content:'';width:3px;height:14px;background:linear-gradient(180deg,var(--cyan),var(--blue));border-radius:2px}

.linked-panel-total{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text3);font-weight:500}

.linked-panel-total strong{color:var(--blue3);font-size:13px;font-weight:700}

.linked-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}

@media (max-width:900px){.linked-grid{grid-template-columns:1fr}}

.linked-field{background:rgba(255,255,255,0.015);border:1px solid var(--border);border-radius:12px;padding:12px}

.linked-field-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}

.linked-field-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}

.linked-field-icon.cyan{background:rgba(34,211,238,0.1);color:var(--cyan);border:1px solid rgba(34,211,238,0.2)}

.linked-field-icon.orange{background:rgba(251,146,60,0.1);color:#fb923c;border:1px solid rgba(251,146,60,0.2)}

.linked-field-icon.red{background:rgba(248,113,113,0.1);color:var(--red);border:1px solid rgba(248,113,113,0.2)}

.linked-field-icon.amber{background:rgba(251,191,36,0.1);color:var(--amber);border:1px solid rgba(251,191,36,0.2)}

.linked-field-icon.purple{background:rgba(167,139,250,0.1);color:var(--purple);border:1px solid rgba(167,139,250,0.2)}

.linked-field-label{font-size:11px;color:var(--text);font-weight:600;flex:1}

.linked-field-count{font-size:10px;color:var(--text3);font-weight:600;padding:2px 8px;background:rgba(255,255,255,0.04);border-radius:10px;letter-spacing:.4px}

.linked-field-count.has{background:rgba(99,160,255,0.12);color:var(--blue3)}

.inter-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}

@media (max-width:700px){.inter-stats{grid-template-columns:repeat(2,1fr)}}

.inter-stat{background:rgba(15,22,40,0.55);border:1px solid var(--border);border-radius:12px;padding:12px 14px;position:relative;overflow:hidden;transition:all .2s}

.inter-stat:hover{border-color:rgba(99,160,255,0.2);transform:translateY(-1px)}

.inter-stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;font-weight:600;margin-bottom:6px}

.inter-stat-val{font-size:22px;font-weight:700;line-height:1}

.inter-stat-sub{font-size:10px;color:var(--text3);margin-top:3px}

.inter-stat::after{content:'';position:absolute;top:0;right:0;width:60px;height:60px;border-radius:50%;filter:blur(20px);opacity:.35;pointer-events:none}

.inter-stat.blue::after{background:var(--blue3)}

.inter-stat.green::after{background:var(--green)}

.inter-stat.amber::after{background:var(--amber)}

.inter-stat.purple::after{background:var(--purple)}

.inter-item{background:rgba(15,22,40,0.6);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:all .18s;display:flex;align-items:flex-start;gap:14px}

.inter-item:hover{background:rgba(30,45,80,0.6);border-color:rgba(99,160,255,0.25);transform:translateX(2px)}

.inter-item-num{font-size:11px;color:var(--purple);font-weight:700;min-width:70px;padding-top:2px;letter-spacing:.3px}

.inter-item-main{flex:1;min-width:0}

.inter-item-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.inter-item-meta{font-size:11px;color:var(--text3);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}

.inter-item-meta span{display:inline-flex;align-items:center;gap:4px}

.inter-item-preview{font-size:12px;color:var(--text2);font-style:italic;line-height:1.5;margin-top:6px;padding:8px 12px;background:rgba(255,255,255,0.025);border-left:2px solid rgba(167,139,250,0.3);border-radius:0 8px 8px 0;max-height:48px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

.inter-item-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}

.inter-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;background:rgba(255,255,255,0.04);color:var(--text2);border:1px solid var(--border)}

.inter-tag.officier{background:rgba(59,130,246,0.08);color:var(--blue3);border-color:rgba(99,160,255,0.22)}

.inter-tag.avocat{background:rgba(251,191,36,0.08);color:var(--amber);border-color:rgba(251,191,36,0.22)}

.inter-tag.procureur{background:rgba(34,211,238,0.08);color:var(--cyan);border-color:rgba(34,211,238,0.22)}

.inter-tag.juge{background:rgba(167,139,250,0.08);color:var(--purple);border-color:rgba(167,139,250,0.22)}

.inter-tag.rapport{background:rgba(251,146,60,0.08);color:#fb923c;border-color:rgba(251,146,60,0.22)}

.inter-tag.enquete{background:rgba(74,222,128,0.08);color:var(--green);border-color:rgba(74,222,128,0.22)}

.inter-item-side{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex-shrink:0}

.inter-item-count{font-size:10px;color:var(--text3);letter-spacing:.4px;font-weight:600;text-transform:uppercase}

.inter-item-count strong{color:var(--purple);font-size:14px;font-weight:700;display:block;line-height:1}

.inter-item-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}

.inter-empty-state{text-align:center;padding:50px 20px;color:var(--text3)}

.inter-empty-state-icon{font-size:42px;margin-bottom:12px;opacity:.4}

.inter-empty-state-title{font-size:14px;color:var(--text2);font-weight:600;margin-bottom:6px}

.inter-empty-state-sub{font-size:12px;color:var(--text3);margin-bottom:16px}

#cmd-palette.open{display:flex;animation:cmdfade .15s ease}

.fav-star{background:none;border:none;cursor:pointer;color:var(--text3);font-size:16px;padding:4px 6px;transition:all .15s;line-height:1}

.fav-star:hover{transform:scale(1.15)}

.fav-star.active{color:var(--amber);text-shadow:0 0 8px rgba(251,191,36,0.5)}

.filter-chip.active{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(37,99,235,.3)}

.filter-chip.active.red{background:linear-gradient(135deg,#b91c1c,#f87171)}

.filter-chip.active.green{background:linear-gradient(135deg,#15803d,#4ade80)}

.filter-chip.active.amber{background:linear-gradient(135deg,#b45309,#fbbf24)}

.filter-chip.active.purple{background:linear-gradient(135deg,#7c3aed,#a78bfa)}

.filter-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;font-weight:700;margin-right:4px}

.mini-widget-trend.up{background:rgba(74,222,128,0.1);color:var(--green)}

.mini-widget-trend.down{background:rgba(248,113,113,0.1);color:var(--red)}

.mini-widget-trend.flat{background:var(--glass);color:var(--text3)}

.notif-bell{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--glass);border:1px solid var(--border);cursor:pointer;transition:all .15s;color:var(--text2)}

.notif-bell:hover{background:var(--glass2);color:var(--text)}

.notif-badge{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 0 2px var(--bg);animation:bellpulse 2s ease infinite}

.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:rgba(10,18,35,0.98);border:1px solid var(--border2);border-radius:12px;z-index:200;max-height:440px;overflow:hidden;display:none;backdrop-filter:blur(20px);box-shadow:0 16px 48px rgba(0,0,0,.5);flex-direction:column}

body[data-theme="light"] .notif-dropdown{background:rgba(255,255,255,0.98)}

.notif-dropdown.open{display:flex}

.notif-header{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}

.notif-header-title{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--text2)}

.notif-clear{font-size:10px;color:var(--blue3);background:none;border:none;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;font-weight:600;font-family:'Inter',sans-serif}

.notif-list{flex:1;overflow-y:auto;max-height:380px}

.notif-item{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;display:flex;gap:10px;align-items:flex-start}

.notif-item:hover{background:var(--glass)}

.notif-item.unread{background:rgba(59,130,246,0.05);border-left:2px solid var(--blue)}

.notif-item-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;background:var(--glass);flex-shrink:0;font-size:13px}

.notif-item-main{flex:1;min-width:0}

.notif-item-text{font-size:12px;color:var(--text);line-height:1.45}

.notif-item-time{font-size:10px;color:var(--text3);margin-top:2px}

.notif-empty{padding:36px 20px;text-align:center;color:var(--text3);font-size:12px}

.map-layer.active{background:rgba(59,130,246,0.15);color:var(--blue3);border-color:rgba(99,160,255,0.35)}

#draw-zone-btn.active { background: rgba(52,211,153,0.2); color: #34d399; border-color: #34d399; }

.map-marker-modal.open{display:flex}

.anim-in{animation:slidein .3s ease}

.count-up{display:inline-block;transition:all .3s}

.threat-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:3px 8px;border-radius:8px;letter-spacing:.3px}

.act-chip{display:inline-flex;font-size:10px;font-weight:600;padding:3px 8px;border-radius:6px;letter-spacing:.2px;margin:2px 3px 2px 0}

.threat-gauge{display:flex;align-items:center;gap:10px}

.tg-bar{display:flex;gap:3px}

.tg-seg{width:18px;height:8px;border-radius:2px;transition:background .2s}

.tg-text{display:flex;align-items:baseline;gap:6px}

.tg-num{font-size:20px;font-weight:700;line-height:1}

.tg-label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}

.chips-toggle{display:flex;flex-wrap:wrap;gap:6px}

.chips-toggle .ct-chip{cursor:pointer;user-select:none;font-size:11px;font-weight:600;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);color:var(--text2);transition:all .15s}

.chips-toggle .ct-chip.active{transform:translateY(-1px)}

#group-list-view.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}

.gcard{position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:16px 16px 16px 22px;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;flex-direction:column;gap:10px}

.gcard-bandeau{position:absolute;top:0;left:0;bottom:0;width:5px;background:var(--accent);border-radius:14px 0 0 14px}

.gcard:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 24px rgba(0,0,0,.25)}

.gcard-head{display:flex;gap:12px;align-items:flex-start}

.gcard-emblem{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:16px;flex-shrink:0}

.gcard-name{font-size:15px;font-weight:700;color:var(--text);line-height:1.2}

.gcard-zone{font-size:11px;color:var(--text3);margin-top:3px}

.gcard-threat{position:absolute;top:12px;right:12px}

.gcard-stats{display:flex;gap:14px;font-size:11px;color:var(--text2)}

.gcard-tags{display:flex;flex-wrap:wrap;gap:4px;min-height:22px}

.gcard-tag-more{font-size:10px;color:var(--text3);align-self:center}

.gcard-foot{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid var(--border)}

.gcard-actions{display:flex;gap:6px}

.group-toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}

.fb-chip{cursor:pointer;user-select:none;font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text2);transition:all .15s}

.fb-chip:hover{color:var(--text)}

.fb-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}

.group-tabs{display:flex;border-bottom:1px solid var(--border);margin:0 0 14px 0;gap:4px}

.group-tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;text-transform:uppercase;letter-spacing:.5px}

.group-tab:hover{color:var(--text)}

.group-tab.active{color:var(--accent);border-bottom-color:var(--accent)}

.group-tab-content{min-height:200px}

.group-tab-content .stat-mini.clickable{cursor:pointer;transition:border-color .15s}

.group-tab-content .stat-mini.clickable:hover{border-color:var(--accent)}

.sm-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}

.sm-val{font-size:22px;font-weight:700;color:var(--text)}

.sm-bar{height:4px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}

.sm-bar-fill{height:100%;background:var(--accent);transition:width .3s}

.rival-list{display:flex;flex-direction:column;gap:8px}

.rival-card{display:flex;gap:12px;align-items:center;padding:10px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:border-color .15s}

.rival-card:hover{border-color:var(--red)}

.member-banner{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;margin-bottom:10px;cursor:pointer;transition:transform .15s}

.member-banner:hover{transform:translateX(2px)}

.r-sig-badge{display:inline-flex;align-items:center;font-size:13px;color:#22c55e;margin-left:4px}

.r-sig-banner-ok{display:flex;gap:8px;align-items:center;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.4);color:#22c55e;padding:8px 12px;border-radius:8px;font-size:12px;margin-bottom:8px}

.r-sig-banner-warn{display:flex;gap:8px;align-items:center;background:rgba(251,146,60,.12);border:1px solid rgba(251,146,60,.4);color:#fb923c;padding:8px 12px;border-radius:8px;font-size:12px;margin-bottom:8px}

.r-witness-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:6px}

.r-meta-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:11px;color:var(--text3)}

.r-meta-chips span{display:inline-flex;gap:3px;align-items:center}

.sugg-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}

.sugg-filters{display:flex;gap:8px;flex-wrap:wrap}

.sugg-chip{background:var(--card);border:1px solid var(--border);color:var(--text2);padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px}

.sugg-chip:hover{border-color:var(--border-strong);color:var(--text)}

.sugg-chip.active{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.4);color:var(--blue2)}

.sugg-chip span{background:rgba(255,255,255,.08);padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700}

.sugg-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:10px;transition:border-color .15s}

.sugg-card:hover{border-color:var(--border-strong)}

.sugg-card.sugg-new{border-left:3px solid var(--blue3,#3b82f6)}

.sugg-card.sugg-read{opacity:.85}

.sugg-card.sugg-archived{opacity:.55}

.sugg-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px}

.sugg-status{font-size:10px;font-weight:700;padding:3px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.4px}

.sugg-status-new{background:rgba(96,165,250,.14);color:#60a5fa}

.sugg-status-read{background:rgba(148,163,184,.14);color:#94a3b8}

.sugg-status-archived{background:rgba(100,116,139,.14);color:#64748b}

.sugg-date{font-size:11px;color:var(--text3)}

.sugg-text{font-size:13px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word;margin-bottom:10px}

.sugg-actions{display:flex;gap:6px;flex-wrap:wrap}

.sugg-del:hover{background:rgba(248,113,113,.12);color:var(--red,#f87171)}

.grp-member-card{position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;transition:border-color .15s,box-shadow .15s}

.grp-member-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.18)}

.grp-member-card .mc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}

.grp-member-card .mc-role-chip{display:inline-block;font-size:9px;font-weight:700;letter-spacing:1.2px;padding:3px 9px;border-radius:6px;color:#fff;text-transform:uppercase}

.grp-member-card .mc-row1{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:8px}

.grp-member-card .mc-row2{margin-top:8px}

.grp-member-card .mc-remove{background:transparent;border:1px solid var(--border);color:var(--text3);border-radius:6px;padding:3px 9px;cursor:pointer;font-size:12px}

.grp-member-card .mc-remove:hover{color:var(--red);border-color:var(--red)}

@media(max-width:720px){.grp-member-card .mc-row1{grid-template-columns:1fr}}

.group-preview-wrap{margin-bottom:14px}

.group-preview-wrap .preview-label{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--text3);margin-bottom:6px;font-weight:600}

#group-add-member-btn{display:flex;align-items:center;justify-content:center;gap:6px;font-weight:600}

.mgl-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.03)}

.mgl-head-collapsed{cursor:pointer;justify-content:center;border-bottom:none;font-weight:600}

.mgl-head-collapsed:hover{background:rgba(99,160,255,0.08)}

.mgl-title{flex:1;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text2)}

.mgl-btn{background:none;border:none;color:var(--text2);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:4px;line-height:1}

.mgl-btn:hover{background:rgba(99,160,255,0.12);color:var(--text)}

.mgl-body{overflow-y:auto;max-height:300px;padding:4px}

.mgl-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .12s}

.mgl-row:hover{background:rgba(99,160,255,0.1)}

.mgl-row.mgl-hidden{opacity:.45}

.mgl-row.mgl-hidden .mgl-name{text-decoration:line-through}

.mgl-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;box-shadow:0 0 0 1px rgba(255,255,255,0.15)}

.mgl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}

.mgl-threat{font-size:10px;padding:1px 6px;border-radius:8px;font-weight:700}

.mgl-eye{font-size:11px;opacity:.7;flex-shrink:0}

#group-add-member-btn{box-sizing:border-box;max-width:100%}

.card:has(.chip-picker.focused){position:relative;z-index:500}

.linked-section:has(.chip-picker.focused){position:relative;z-index:500}

.public-link-header:hover{color:var(--blue2,#60a5fa) !important}

:focus{outline:none}

button:focus-visible,
.btn:focus-visible,
.filter-chip:focus-visible,
.tile:focus-visible,
.tab:focus-visible,
.officer-row:focus-visible,
.speaker-btn:focus-visible,
.modal-close:focus-visible,
.logout-btn:focus-visible{outline:2px solid var(--blue3);outline-offset:2px;border-radius:8px}

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.linput:focus-visible,
.finput:focus-visible{outline:2px solid var(--blue3);outline-offset:0}

a:focus-visible{outline:2px solid var(--blue3);outline-offset:2px;border-radius:4px}

.field-error{border-color:var(--red) !important;box-shadow:0 0 0 3px rgba(248,113,113,0.12) !important}

.field-error-msg{font-size:11px;color:var(--red);margin-top:6px;display:flex;align-items:center;gap:6px;line-height:1.4;animation:fe-slide .18s ease-out}

.field-error-msg::before{content:'';font-size:12px;flex-shrink:0}

@media (max-width:1024px){
  .sb-toggle{display:inline-flex}
  .sidebar{position:fixed;top:56px;left:0;bottom:0;z-index:200;width:260px;max-width:85vw;transform:translateX(-100%);transition:transform .25s ease;box-shadow:8px 0 32px rgba(0,0,0,.5)}
  .sidebar.open{transform:translateX(0)}
  .sb-backdrop{display:block;position:fixed;inset:56px 0 0 0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:150;opacity:0;pointer-events:none;transition:opacity .2s}
  .sb-backdrop:not([hidden]){opacity:1;pointer-events:auto}
  .main{padding:16px}
  .tiles-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
  .topbar{padding:0 12px}
  .tb-sub{display:none}
  .tb-clock{display:none}
  .gs-wrap{max-width:200px}
  body{overflow:auto}
  body.sb-locked{overflow:hidden}
}

@media (max-width:720px){
  .main{padding:12px}
  .tiles-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
  .tile{padding:14px}
  .tile-count{font-size:22px}
  .tile-label{font-size:11px}
  /* Dashboard double-grille → simple colonne */
  .main > div[style*="grid-template-columns:1fr 1fr"],
  .main div[style*="grid-template-columns:repeat(2,1fr)"]{grid-template-columns:1fr !important}
  .page-header .page-title{font-size:18px}
  .gs-wrap{display:none}
  .tb-tag:has(#tb-agent-name){display:none}
  .tb-tag:has(#sync-label) #sync-label{display:none}
  .modal-box{padding:18px;border-radius:14px}
  .filter-chip{padding:6px 10px}
}

@media (max-width:480px){
  .tb-name{font-size:13px}
  .topbar{padding:0 8px;gap:6px}
  .notif-dropdown{right:-40px;width:280px}
}
