/* =====================================================================
   Victoria · Incidencias (botón flotante, formulario, editor de capturas y panel de administración)
   ===================================================================== */
.inc-fab { position: fixed; right: 20px; bottom: 20px; z-index: 12080; display: inline-flex; align-items: center; gap: 10px; height: 50px; padding: 0 18px 0 16px;
  border: 0; border-radius: 999px; background: linear-gradient(135deg, #b4000c, #8f0009); color: #fff; font: 700 .86rem Inter, system-ui, sans-serif; cursor: pointer;
  box-shadow: 0 10px 28px -8px rgba(180, 0, 12, .55); transition: transform .15s, box-shadow .15s, padding .2s; }
.inc-fab i { font-size: 1.05rem; }
.inc-fab:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -8px rgba(180, 0, 12, .6); }
.inc-fab.inc-busy { pointer-events: none; opacity: .85; }
.inc-fab.inc-busy i { animation: incGira .8s linear infinite; }
.inc-fab.inc-busy i::before { content: "\f110"; }
@media (max-width: 760px) { .inc-fab { right: 14px; bottom: 76px; padding: 0; width: 50px; justify-content: center; } .inc-fab span { display: none; } }
@media print { .inc-fab { display: none !important; } }
@keyframes incGira { to { transform: rotate(360deg); } }

/* Botón de nota de voz mientras graba (portado de KLINGER) */
.inc-btn.inc-rec { background: #e11d48 !important; color: #fff !important; border-color: #e11d48 !important; animation: incRecPulse 1s infinite; }
@keyframes incRecPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(225,29,72,.5); } 50% { box-shadow: 0 0 0 6px rgba(225,29,72,0); } }
.inc-bg { position: fixed; inset: 0; z-index: 12200; background: rgba(15, 23, 42, .5); backdrop-filter: blur(3px); display: grid; place-items: center; padding: 16px;
  font-family: Inter, system-ui, sans-serif; color: #0f172a; }
.inc-bg-top { z-index: 12300; }
.inc-modal { width: min(1080px, 100%); max-height: 92vh; display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: 0 30px 80px -20px rgba(15, 23, 42, .5); }
.inc-modal-xl { width: min(1240px, 100%); }
.inc-modal > * { flex-shrink: 0; }
.inc-modal > .inc-body { flex-shrink: 1; min-height: 0; overflow: auto; }
.inc-head { display: flex; align-items: center; gap: 16px; padding: 16px 20px; background: linear-gradient(135deg, #17365d, #1f497d); color: #fff; }
.inc-head > div:first-child { flex: 1; min-width: 0; }
.inc-head b { font-size: 1.08rem; display: block; color: #fff; }
.inc-kicker { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .8; color: #fff; }
.inc-sub { font-size: .78rem; margin-top: 4px; opacity: .92; color: #fff; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.inc-x { width: 34px; height: 34px; border-radius: 9px; border: 0; background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer; }
.inc-tabs { display: flex; gap: 4px; background: rgba(255, 255, 255, .12); padding: 4px; border-radius: 10px; }
.inc-tabs button { border: 0; background: none; color: #fff; padding: 7px 12px; border-radius: 7px; font: 600 .8rem Inter, sans-serif; cursor: pointer; opacity: .8; }
.inc-tabs button.on { background: #fff; color: #17365d; opacity: 1; }
.inc-body { padding: 18px 20px; }
.inc-foot { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border-top: 1px solid #eef2f6; background: #fafbfc; flex-wrap: wrap; }
.inc-foot .inc-muted { flex: 1; font-size: .76rem; }
.inc-foot select { height: 36px; border-radius: 9px; border: 1px solid #e2e8f0; padding: 0 10px; font: inherit; font-size: .82rem; }
.inc-cols { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px; }
@media (max-width: 860px) { .inc-cols { grid-template-columns: 1fr; } }
.inc-form { display: flex; flex-direction: column; gap: 12px; }
.inc-form label, .inc-row label { display: flex; flex-direction: column; gap: 5px; font-size: .74rem; font-weight: 700; letter-spacing: .03em; color: #475569; text-transform: uppercase; }
.inc-root input, .inc-root textarea, .inc-root select, .inc-root-panel input, .inc-root-panel select { font: 400 .88rem Inter, system-ui, sans-serif; color: #0f172a; text-transform: none; letter-spacing: 0;
  border: 1px solid #e2e8f0; border-radius: 10px; padding: 9px 11px; background: #fff; }
.inc-root textarea { resize: vertical; min-height: 44px; }
.inc-root input:focus, .inc-root textarea:focus, .inc-root select:focus { outline: 0; border-color: #b4000c; box-shadow: 0 0 0 3px rgba(180, 0, 12, .1); }
.inc-bad { border-color: #dc2626 !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, .12) !important; }
.inc-req { color: #b4000c; }
.inc-row { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.inc-lbl { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .03em; color: #475569; text-transform: uppercase; margin-bottom: 6px; }
.inc-muted { color: #64748b; }
.inc-seg { display: inline-flex; border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; background: #fff; }
.inc-seg button { border: 0; background: none; padding: 8px 12px; font: 600 .8rem Inter, sans-serif; color: #475569; cursor: pointer; }
.inc-seg button + button { border-left: 1px solid #e2e8f0; }
.inc-seg button.on { background: #b4000c; color: #fff; }
.inc-btn { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 10px; border: 1px solid #e2e8f0; background: #fff; color: #0f172a;
  font: 600 .82rem Inter, sans-serif; cursor: pointer; white-space: nowrap; }
.inc-btn:hover { border-color: #b4000c; color: #b4000c; }
.inc-pri { background: #b4000c; border-color: #b4000c; color: #fff; }
.inc-pri:hover { background: #8f0009; color: #fff; }
.inc-danger { color: #b91c1c; }
.inc-ok-btn { background: #16a34a; border-color: #16a34a; color: #fff; }
.inc-ok-btn:hover { background: #15803d; color: #fff; border-color: #15803d; }
.inc-btn:disabled { opacity: .7; pointer-events: none; }
.inc-spin { width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%; display: inline-block; animation: incGira .7s linear infinite; }
.inc-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; min-height: 90px; border: 1px dashed #cbd5e1; border-radius: 12px; padding: 10px; background: #f8fafc; }
.inc-thumb { position: relative; border-radius: 10px; overflow: hidden; border: 1px solid #e2e8f0; background: #fff; cursor: zoom-in; }
.inc-thumb img { display: block; width: 100%; height: 110px; object-fit: cover; object-position: top left; }
.inc-thumb-bar { display: flex; align-items: center; gap: 6px; padding: 5px 8px; font-size: .7rem; color: #475569; }
.inc-thumb-bar span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inc-thumb-bar button { border: 0; background: none; color: #b91c1c; cursor: pointer; }
.inc-file { height: 110px; display: grid; place-items: center; text-align: center; font-size: .74rem; color: #475569; padding: 8px; word-break: break-all; }
.inc-file i { font-size: 1.6rem; display: block; margin-bottom: 4px; }
.inc-adj-acts { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; align-items: center; }
.inc-tec { margin-top: 12px; font-size: .78rem; }
.inc-tec summary { cursor: pointer; color: #475569; font-weight: 600; }
.inc-tec pre { max-height: 260px; overflow: auto; background: #0f172a; color: #e2e8f0; padding: 12px; border-radius: 10px; font-size: .72rem; white-space: pre-wrap; word-break: break-word; }
.inc-chip { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; color: #fff; background: var(--c); white-space: nowrap; }
.inc-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.inc-table th { text-align: left; font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; color: #64748b; padding: 9px 10px; border-bottom: 1px solid #e2e8f0; background: #f8fafc; position: sticky; top: 0; }
.inc-table td { padding: 9px 10px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.inc-table tbody tr[data-ver] { cursor: pointer; }
.inc-table tbody tr[data-ver]:hover { background: #fdf2f2; }
.inc-mini td { font-size: .74rem; padding: 5px 8px; word-break: break-all; }
.inc-bad-row td { background: #fef2f2; }
.inc-kv { width: 100%; border-collapse: collapse; font-size: .82rem; }
.inc-kv th { text-align: left; width: 230px; color: #64748b; font-weight: 600; padding: 5px 10px 5px 0; vertical-align: top; }
.inc-kv td { padding: 5px 0; word-break: break-word; }
.inc-sec { margin-bottom: 18px; }
.inc-sec h4 { margin: 0 0 6px; font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #b4000c; display: block; }
.inc-sec p { margin: 0; line-height: 1.5; font-size: .9rem; }
.inc-sec.inc-ok { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 12px 14px; }
.inc-sec.inc-ok h4 { color: #15803d; }
.inc-log { padding: 7px 0; border-bottom: 1px solid #f1f5f9; font-size: .8rem; }
.inc-log pre { margin: 6px 0 0; font-size: .7rem; background: #f8fafc; padding: 8px; border-radius: 8px; white-space: pre-wrap; }
.inc-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.inc-gal img { width: 100%; border-radius: 10px; border: 1px solid #e2e8f0; cursor: zoom-in; background: #f8fafc; min-height: 80px; }
.inc-gal-full { grid-template-columns: 1fr; }
.inc-gal-full figure { margin: 0 0 16px; }
.inc-gal-full figcaption { font-size: .76rem; color: #64748b; margin-top: 4px; }
.inc-visor { cursor: zoom-out; }
.inc-visor img { max-width: 96vw; max-height: 94vh; border-radius: 8px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.inc-editor { width: min(1400px, 100%); height: 94vh; display: flex; flex-direction: column; background: #0f172a; border-radius: 16px; overflow: hidden; }
.inc-ed-bar { display: flex; align-items: center; gap: 14px; padding: 10px 14px; background: #fff; flex-wrap: wrap; }
.inc-ed-bar > b { flex: 1; }
.inc-tools { display: flex; gap: 4px; align-items: center; }
.inc-tools button { width: 34px; height: 34px; border-radius: 8px; border: 1px solid #e2e8f0; background: #fff; cursor: pointer; color: #334155; }
.inc-tools button.on { background: #0f172a; color: #fff; border-color: #0f172a; }
.inc-color { background: var(--c) !important; }
.inc-color.on { outline: 3px solid #0f172a; outline-offset: 1px; }
.inc-sep { width: 1px; height: 24px; background: #e2e8f0; margin: 0 4px; }
.inc-ed-lienzo { flex: 1; min-height: 0; overflow: auto; display: grid; place-items: center; padding: 14px; }
.inc-ed-lienzo canvas { max-width: 100%; max-height: 100%; cursor: crosshair; background: #fff; touch-action: none; }
.inc-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 12500; background: #0f172a; color: #fff; padding: 12px 18px; border-radius: 12px;
  font: 600 .86rem Inter, sans-serif; box-shadow: 0 16px 40px rgba(15, 23, 42, .35); max-width: 90vw; }
.inc-toast.inc-err { background: #b91c1c; }
/* Panel de administración */
.inc-panel { padding: 4px 0; font-family: Inter, system-ui, sans-serif; }
.inc-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.inc-kpi { background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 14px 16px; border-left: 4px solid var(--c); }
.inc-kpi b { display: block; font-size: 1.6rem; color: var(--c); line-height: 1.1; }
.inc-kpi span { font-size: .78rem; color: #64748b; font-weight: 600; }
.inc-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.inc-toolbar input[type=search] { flex: 1; min-width: 220px; }
.inc-toolbar input, .inc-toolbar select { height: 38px; padding: 0 10px; }
.inc-tablewrap { background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; overflow: auto; max-height: 68vh; }
@media (max-width: 760px) { .inc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.inc-root [hidden], .inc-root-panel [hidden], .inc-fab[hidden] { display: none !important; }
/* Campana: marcar todas como leídas */
.bell-todas { margin-left: auto; border: 0; background: none; color: #b4000c; font: 600 .74rem Inter, sans-serif; cursor: pointer; }
#bell-dropdown .topbar-dd-head { display: flex; align-items: center; gap: 8px; }
