/* Transferencias SA ↔ Mini: UI compacta, touch-first y theme-aware. */
.mini-p2p-overlay {
  position: fixed; inset: 0; z-index: 10050;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  background: color-mix(in srgb, var(--bg-color) 82%, transparent);
}
.mini-p2p-shell {
  width: min(680px, 100%); max-height: min(92dvh, 820px);
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--card-bg); color: var(--text-color);
  border: 1px solid var(--border-color); border-radius: 20px;
  box-shadow: 0 24px 60px -24px color-mix(in srgb, var(--bg-color) 80%, transparent);
}
.mini-p2p-topbar {
  flex: none; display: flex; align-items: center; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid var(--border-color);
}
.mini-p2p-topbar-icon, .mini-p2p-peer-avatar, .mini-p2p-result-icon {
  flex: none; display: grid; place-items: center;
  color: var(--accent-color); background: var(--input-bg);
  border: 1px solid var(--border-color); border-radius: 10px;
}
.mini-p2p-topbar-icon { width: 36px; height: 36px; }
.mini-p2p-title-wrap { flex: 1; min-width: 0; }
.mini-p2p-title { display: block; font-size: 16px; line-height: 1.2; }
.mini-p2p-subtitle { margin-top: 2px; font-size: 11px; color: var(--text-muted); }
.mini-p2p-body { min-height: 0; overflow: auto; display: grid; gap: 18px; padding: 18px; }
.mini-p2p-icon-btn {
  width: 44px; height: 44px; min-width: 44px; min-height: 44px;
  display: inline-grid; place-items: center; padding: 0;
  border: 1px solid var(--border-color); border-radius: 10px;
  background: transparent; color: var(--text-muted); cursor: pointer;
}
.mini-p2p-icon-btn:hover { background: var(--input-bg); color: var(--text-color); }
.mini-p2p-icon-btn.is-danger { color: var(--danger-color); }
.mini-p2p-icon { display: inline-flex; align-items: center; justify-content: center; }
.mini-p2p-icon svg, .mini-p2p-icon-btn svg { width: 18px; height: 18px; }
.mini-p2p-capabilities-wrap { display: grid; gap: 8px; }
.mini-p2p-section-label {
  margin: 0; font-size: 11px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted);
}
.mini-p2p-capabilities { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.mini-p2p-capability {
  min-width: 0; min-height: 62px; display: flex; align-items: center; gap: 8px;
  padding: 9px; border: 1px solid var(--border-color); border-radius: 12px;
  background: var(--input-bg); color: var(--text-color);
}
.mini-p2p-capability.is-disabled { opacity: .55; }
.mini-p2p-capability.is-ready { border-color: color-mix(in srgb, var(--success-color) 60%, var(--border-color)); }
.mini-p2p-capability-icon {
  width: 30px; height: 30px; flex: none; display: grid; place-items: center;
  border-radius: 9px; color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color) 15%, var(--input-bg));
}
.mini-p2p-capability-copy { min-width: 0; display: grid; gap: 2px; }
.mini-p2p-capability-copy strong { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-p2p-capability-copy small { font-size: 10px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-p2p-devices { display: grid; gap: 10px; }
.mini-p2p-devices-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.mini-p2p-devices-head h3 { margin: 0; font-size: 15px; }
.mini-p2p-self { min-width: 0; display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text-muted); }
.mini-p2p-self strong { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-color); }
.mini-p2p-peer-list { display: grid; gap: 8px; }
.mini-p2p-peer-row {
  display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; align-items: center;
  padding: 10px 11px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--input-bg);
}
.mini-p2p-peer-avatar { width: 36px; height: 36px; }
.mini-p2p-peer-copy { min-width: 0; }
.mini-p2p-peer-copy strong { display: block; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-p2p-peer-meta { margin-top: 3px; font-size: 10.5px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-p2p-device-actions { display: flex; align-items: center; gap: 6px; }
.mini-p2p-button {
  min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 0 14px; border: 1px solid transparent; border-radius: 10px;
  font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer;
}
.mini-p2p-button-primary { background: var(--accent-color); color: var(--bg-color); }
.mini-p2p-button-secondary { background: transparent; border-color: var(--border-color); color: var(--text-color); }
.mini-p2p-button-danger { background: var(--danger-color); color: var(--text-color); }
.mini-p2p-button:disabled { opacity: .4; cursor: not-allowed; }
.mini-p2p-link-cta { width: 100%; }
.mini-p2p-empty { padding: 16px; border: 1px dashed var(--border-color); border-radius: 12px; color: var(--text-muted); font-size: 12px; text-align: center; }
.mini-p2p-footnote { margin: 0 2px; color: var(--text-muted); font-size: 11px; line-height: 1.45; }
.mini-p2p-step { display: grid; gap: 14px; }
.mini-p2p-step h3 { margin: 0; font-size: 18px; }
.mini-p2p-step p { margin: 0; color: var(--text-muted); font-size: 13px; line-height: 1.5; }
.mini-p2p-back { width: max-content; min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: transparent; color: var(--text-muted); font: inherit; font-weight: 600; cursor: pointer; }
.mini-p2p-field { display: grid; gap: 6px; }
.mini-p2p-field label { font-size: 12px; color: var(--text-muted); font-weight: 600; }
.mini-p2p-field input { min-height: 44px; width: 100%; padding: 0 12px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--input-bg); color: var(--text-color); font: inherit; }
.mini-p2p-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.mini-p2p-actions .mini-p2p-button { flex: 1 1 150px; }
.mini-p2p-status { padding: 12px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--input-bg); color: var(--text-muted); font-size: 12.5px; line-height: 1.45; }
.mini-p2p-status.is-error { border-color: var(--danger-color); }
.mini-p2p-status.is-success { border-color: var(--success-color); color: var(--text-color); }
.mini-p2p-status.is-warning { border-color: var(--warning-color); }
.mini-p2p-mode-chip { width: max-content; display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; background: var(--accent-color); color: var(--bg-color); font-size: 11px; font-weight: 700; }
.mini-p2p-pair-grid { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: 18px; align-items: center; }
.mini-p2p-scanner { position: relative; max-height: 56dvh; aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid var(--border-color); border-radius: 14px; background: var(--input-bg); }
.mini-p2p-scanner video { width: 100%; height: 100%; display: block; object-fit: cover; }
.mini-p2p-scanner-frame { position: absolute; inset: 14%; border: 2px solid var(--accent-color); border-radius: 18px; pointer-events: none; }
.mini-p2p-sas { font-size: 28px; font-weight: 800; letter-spacing: 4px; color: var(--accent-color); }
.mini-p2p-result { display: flex; align-items: flex-start; gap: 12px; }
.mini-p2p-result-icon { width: 40px; height: 40px; color: var(--success-color); }
.mini-p2p-result-copy { min-width: 0; }
.mini-p2p-result-copy h3 { margin: 0; }
.mini-p2p-result-copy p { margin-top: 4px; }
.mini-p2p-code { font-size: 18px; letter-spacing: 3px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-transform: uppercase; }
@media (max-width: 640px) {
  .mini-p2p-overlay { padding: 8px; align-items: flex-end; }
  .mini-p2p-shell { max-height: 94dvh; border-radius: 18px 18px 10px 10px; }
  .mini-p2p-topbar, .mini-p2p-body { padding-left: 14px; padding-right: 14px; }
  .mini-p2p-capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mini-p2p-peer-row { grid-template-columns: 36px minmax(0, 1fr); }
  .mini-p2p-device-actions { grid-column: 1 / -1; justify-content: stretch; }
  .mini-p2p-device-actions .mini-p2p-button { flex: 1 1 0; }
  .mini-p2p-devices-head { align-items: flex-start; flex-direction: column; }
  .mini-p2p-pair-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .mini-p2p-shell * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
.mini-p2p-inline-status { display: inline-flex; align-items: flex-start; gap: 8px; color: var(--text-color); }
.mini-p2p-inline-status > span:last-child { display: grid; gap: 2px; }
.mini-p2p-inline-status small { display: block; font-size: 11px; font-weight: 400; color: var(--text-muted); }
.mini-p2p-status.is-success .mini-p2p-icon { color: var(--success-color); }
.mini-p2p-status.is-error .mini-p2p-icon { color: var(--danger-color); }

/* Revisión de roster SA: resumen ejecutivo + resolución dentro del mismo shell. */
.mini-roster-review { gap: 16px; }
.mini-roster-flow-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mini-roster-step-count { font-size:11px; font-weight:700; color:var(--text-muted); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.mini-roster-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.mini-roster-metric { min-width:0; min-height:76px; display:grid; grid-template-columns:28px 1fr; grid-template-rows:auto auto; column-gap:8px; align-items:center; padding:10px; border:1px solid var(--border-color); border-radius:12px; background:var(--input-bg); }
.mini-roster-metric-icon { grid-row:1 / 3; width:28px; height:28px; display:grid; place-items:center; border-radius:9px; background:var(--card-bg); color:var(--text-muted); }
.mini-roster-metric strong { font-size:20px; line-height:1; color:var(--text-color); }
.mini-roster-metric > span:last-child { font-size:10px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.04em; overflow:hidden; text-overflow:ellipsis; }
.mini-roster-metric.is-info .mini-roster-metric-icon { color:var(--accent-color); }
.mini-roster-metric.is-success .mini-roster-metric-icon { color:var(--success-color); }
.mini-roster-metric.is-warning .mini-roster-metric-icon { color:var(--warning-color); }
.mini-roster-metric.is-danger .mini-roster-metric-icon { color:var(--danger-color); }
.mini-roster-notice { display:flex; align-items:flex-start; gap:10px; padding:12px; border:1px solid var(--warning-color); border-radius:12px; background:var(--input-bg); color:var(--warning-color); }
.mini-roster-notice > div { display:grid; gap:3px; color:var(--text-color); }
.mini-roster-notice strong { font-size:13px; }
.mini-roster-notice span { font-size:11.5px; line-height:1.45; color:var(--text-muted); }
.mini-roster-version { display:flex; align-items:flex-start; gap:10px; padding:12px; border:1px solid var(--border-color); border-radius:12px; background:var(--input-bg); }
.mini-roster-version > div { display:grid; gap:3px; min-width:0; color:var(--text-color); }
.mini-roster-version strong { font-size:13px; color:var(--text-color); }
.mini-roster-version span { font-size:11.5px; line-height:1.45; color:var(--text-muted); }
.mini-roster-version .mini-p2p-icon { flex-shrink:0; width:28px; height:28px; display:grid; place-items:center; border-radius:9px; background:var(--card-bg); color:var(--text-muted); }
.mini-roster-version.is-first { border-color:var(--accent-color); }
.mini-roster-version.is-first .mini-p2p-icon { color:var(--accent-color); }
.mini-roster-version.is-newer { border-color:var(--success-color); }
.mini-roster-version.is-newer .mini-p2p-icon { color:var(--success-color); }
.mini-roster-version.is-equal { border-color:var(--border-color); }
.mini-roster-version.is-equal .mini-p2p-icon { color:var(--text-muted); }
.mini-roster-version.is-older { border-color:var(--warning-color); }
.mini-roster-version.is-older .mini-p2p-icon { color:var(--warning-color); }
.mini-roster-version.is-ambiguous { border-color:var(--danger-color); }
.mini-roster-version.is-ambiguous .mini-p2p-icon { color:var(--danger-color); }
.mini-roster-details { border:1px solid var(--border-color); border-radius:12px; background:var(--input-bg); overflow:hidden; }
.mini-roster-details summary { min-height:44px; display:flex; align-items:center; gap:8px; padding:0 12px; cursor:pointer; color:var(--text-color); font-size:12.5px; font-weight:700; list-style:none; }
.mini-roster-details summary::-webkit-details-marker { display:none; }
.mini-roster-details summary > .mini-p2p-icon:last-child { margin-left:auto; transition:transform .18s ease; }
.mini-roster-details[open] summary > .mini-p2p-icon:last-child { transform:rotate(90deg); }
.mini-roster-details ul { display:grid; gap:0; margin:0; padding:0 12px 8px; list-style:none; }
.mini-roster-details li { display:grid; gap:2px; padding:9px 0; border-top:1px solid var(--border-color); }
.mini-roster-details li strong { font-size:12.5px; color:var(--text-color); }
.mini-roster-details li span { font-size:11px; line-height:1.4; color:var(--text-muted); }
.mini-roster-conflicts { display:grid; gap:10px; }
.mini-roster-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mini-roster-section-head h4 { margin:0; font-size:14px; }
.mini-roster-section-head span { font-size:11px; font-weight:700; color:var(--text-muted); }
.mini-roster-conflict-card { display:grid; gap:10px; padding:12px; border:1px solid var(--warning-color); border-radius:14px; background:var(--input-bg); }
.mini-roster-conflict-head { display:flex; align-items:center; gap:9px; }
.mini-roster-conflict-head > div { display:grid; gap:2px; min-width:0; }
.mini-roster-conflict-head strong { font-size:13px; }
.mini-roster-conflict-head small { font-size:10.5px; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mini-roster-state { display:inline-flex; align-items:center; min-height:26px; padding:4px 9px; border-radius:999px; font-size:10.5px; font-weight:800; }
.mini-roster-state.is-warning { background:var(--warning-color); color:var(--text-color); }
.mini-roster-conflict-card p { font-size:11.5px; }
.mini-roster-choice-grid { display:grid; gap:8px; }
.mini-roster-choice { width:100%; min-height:52px; display:grid; grid-template-columns:28px minmax(0,1fr); gap:9px; align-items:center; text-align:left; padding:8px 10px; border:1px solid var(--border-color); border-radius:12px; background:var(--card-bg); color:var(--text-color); cursor:pointer; }
.mini-roster-choice:hover { border-color:var(--accent-color); background:var(--input-bg); }
.mini-roster-choice.is-selected { border-color:var(--accent-color); background:var(--input-bg); }
.mini-roster-choice > .mini-p2p-icon { width:28px; height:28px; display:grid; place-items:center; border-radius:9px; background:var(--input-bg); color:var(--text-muted); }
.mini-roster-choice.is-selected > .mini-p2p-icon { background:var(--accent-color); color:var(--bg-color); }
.mini-roster-choice > span:last-child { display:grid; gap:2px; min-width:0; }
.mini-roster-choice strong { font-size:12px; }
.mini-roster-choice small { font-size:10.5px; color:var(--text-muted); }
.mini-roster-footer { position:sticky; bottom:-18px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; margin:2px -18px -18px; padding:12px 18px 18px; border-top:1px solid var(--border-color); background:var(--card-bg); }
.mini-roster-hint { font-size:11px; line-height:1.4; color:var(--text-muted); }
.mini-roster-footer .mini-p2p-button { min-width:180px; }
.mini-roster-result { gap:18px; }
@media (max-width:640px) {
  .mini-roster-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mini-roster-footer { bottom:-18px; grid-template-columns:1fr; margin-left:-14px; margin-right:-14px; padding-left:14px; padding-right:14px; }
  .mini-roster-footer .mini-p2p-button { width:100%; min-width:0; }
}

/* Block B: Mini alias setup reuses the transfer shell; header shows the linked SA project. */
.header-p2p-link-label {
  max-width: 168px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mini-p2p-field input[data-mini-alias] { min-height: 44px; }
.mini-p2p-status[hidden] { display: none; }

/* Meta 3: terminal success feedback is progressive enhancement over the same shell. */
.mini-p2p-shell.mini-p2p-success-done { border-color: var(--success-color); }
.mini-p2p-shell.mini-p2p-success-pulse { animation: mini-p2p-success-pulse 480ms cubic-bezier(.2,.8,.2,1); }
.mini-p2p-result-icon.mini-p2p-success-pulse-icon { animation: mini-p2p-success-pulse-icon 480ms cubic-bezier(.2,.8,.2,1); }
@keyframes mini-p2p-success-pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--success-color) 55%, transparent); }
  100% { box-shadow: 0 0 0 14px color-mix(in srgb, var(--success-color) 0%, transparent); }
}
@keyframes mini-p2p-success-pulse-icon {
  0% { transform: scale(0.86); }
  55% { transform: scale(1.06); }
  100% { transform: scale(1); }
}

/* Canonical numeric count badge: solid compact circle/pill, centered number. */
.mini-count-badge {
  min-width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--accent-color);
  color: var(--bg-color);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.mini-roster-details summary .mini-count-badge { margin-left: 6px; }
.mini-roster-section-head .mini-count-badge { margin-left: 8px; margin-right: auto; }
@media (prefers-reduced-motion: reduce) {
  .mini-p2p-shell.mini-p2p-success-pulse,
  .mini-p2p-result-icon.mini-p2p-success-pulse-icon { animation: none; }
}

/* Actividad P2P pasiva: lidera la portada de Transferencias, badge oculto en cero. */
.mini-p2p-activity { display: grid; gap: 10px; }
.mini-p2p-activity-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.mini-p2p-activity-head h3 { margin: 0; font-size: 15px; color: var(--text-color); }
.mini-p2p-activity-head .mini-count-badge { margin-top: 2px; }
.mini-p2p-activity-list { display: grid; gap: 8px; }
.mini-p2p-activity-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 11px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--input-bg); }
.mini-p2p-activity-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--accent-color); background: var(--card-bg); }
.mini-p2p-activity-copy { min-width: 0; display: grid; gap: 2px; }
.mini-p2p-activity-copy strong { font-size: 12.5px; color: var(--text-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-p2p-activity-copy span { font-size: 11px; line-height: 1.45; color: var(--text-muted); }
.mini-p2p-activity-copy small { font-size: 10.5px; color: var(--text-muted); }
.mini-p2p-staged-card { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--success-color); border-radius: 14px; background: var(--input-bg); }
.mini-p2p-staged-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: var(--success-color); background: var(--card-bg); border: 1px solid var(--border-color); }
.mini-p2p-staged-copy { min-width: 0; display: grid; gap: 3px; }
.mini-p2p-staged-copy strong { font-size: 13px; color: var(--text-color); }
.mini-p2p-staged-copy span { font-size: 11px; line-height: 1.45; color: var(--text-muted); }
.mini-p2p-staged-actions { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; }
.mini-p2p-staged-actions .mini-p2p-button { flex: 1 1 150px; }

/* App-to-app circular P2P indicator: Mini always shows the SA app icon. */
.header-p2p-link {
  position: relative; width: 48px !important; height: 48px; min-width: 48px; min-height: 48px !important;
  padding: 3px !important; border: 0 !important; border-radius: 50% !important; background: transparent !important;
  display: inline-grid !important; place-items: center; overflow: visible; color: var(--text-muted);
}
.header-p2p-ring {
  position: relative; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center;
  border: 2px solid var(--text-muted); transition: border-color .2s ease, box-shadow .2s ease, filter .2s ease;
}
.header-p2p-app-icon { width: 35px; height: 35px; display: block; border-radius: 50%; object-fit: cover; clip-path: circle(50%); filter: grayscale(1) saturate(.25) opacity(.72); }
.header-p2p-state-dot { position: absolute; right: -1px; bottom: 2px; width: 10px; height: 10px; border-radius: 50%; background: var(--text-muted); border: 2px solid var(--bg-color); box-sizing: border-box; }
.header-p2p-notification-badge { position: absolute; right: -7px; top: -7px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--danger-color); color: var(--text-color); border: 2px solid var(--bg-color); font-size: 10px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; box-sizing: border-box; z-index: 2; }
.header-p2p-notification-badge[hidden] { display: none; }
[data-theme="light"] .header-p2p-notification-badge { color: var(--card-bg); }
.header-p2p-online-badge { position: absolute; left: -7px; bottom: -4px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--success-color); color: var(--card-bg); border: 2px solid var(--bg-color); font-size: 10px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; box-sizing: border-box; z-index: 2; }
.header-p2p-online-badge[hidden] { display: none; }
[data-theme="light"] .header-p2p-online-badge { color: var(--card-bg); }
.header-p2p-link[data-p2p-state="unlinked"] .header-p2p-ring { border-style: dashed; border-color: var(--text-muted); }
.header-p2p-link[data-p2p-state="unlinked"] .header-p2p-state-dot { background: transparent; border-color: var(--text-muted); }
.header-p2p-link[data-p2p-state="disconnected"] .header-p2p-ring { border-style: solid; border-color: var(--text-muted); }
.header-p2p-link[data-p2p-state="connected"] .header-p2p-ring { border-color: var(--success-color); box-shadow: 0 0 0 2px color-mix(in srgb,var(--success-color) 18%,transparent), 0 0 14px color-mix(in srgb,var(--success-color) 28%,transparent); }
.header-p2p-link[data-p2p-state="connected"] .header-p2p-app-icon { filter: none; opacity: 1; }
.header-p2p-link[data-p2p-state="connected"] .header-p2p-state-dot { background: var(--success-color); border-color: var(--bg-color); }
.header-p2p-link[data-p2p-state="transferring"] .header-p2p-ring { border-color: var(--success-color); box-shadow: 0 0 0 2px color-mix(in srgb,var(--success-color) 25%,transparent), 0 0 14px color-mix(in srgb,var(--success-color) 35%,transparent); animation: mini-p2p-transfer-pulse 1.8s ease-in-out infinite; }
.header-p2p-link[data-p2p-state="transferring"] .header-p2p-app-icon { filter: none; opacity: 1; }
.header-p2p-link[data-p2p-state="transferring"] .header-p2p-state-dot { background: var(--success-color); border-color: var(--bg-color); }
@keyframes mini-p2p-transfer-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.04); } }
.header-p2p-link:hover .header-p2p-ring { border-color: var(--accent-color); }
.header-p2p-link:focus-visible { outline: 2px solid var(--accent-color); outline-offset: 2px; }
.header-p2p-link-label { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.mini-p2p-peer-avatar.is-online { border-color: var(--success-color); color: var(--success-color); }
.mini-p2p-peer-avatar.is-transferring { border-color: var(--accent-color); color: var(--accent-color); }
.mini-p2p-peer-title-line { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; }
.mini-p2p-peer-pill { display: inline-flex; align-items: center; gap: 4px; padding: 1px 6px; border-radius: 999px; font-size: 10px; font-weight: 700; line-height: 1.3; }
.mini-p2p-peer-pill.is-online { background: color-mix(in srgb, var(--success-color) 16%, transparent); color: var(--success-color); }
.mini-p2p-peer-pill.is-transferring { background: color-mix(in srgb, var(--accent-color) 16%, transparent); color: var(--accent-color); }
.mini-p2p-peer-pill.is-offline { background: color-mix(in srgb, var(--text-muted) 16%, transparent); color: var(--text-muted); }
@media (prefers-reduced-motion: reduce) { .header-p2p-ring { transition: none; } .header-p2p-link[data-p2p-state="transferring"] .header-p2p-ring { animation: none; transform: none; } }
