
/* SONOFPOLLUX Signals v2 */
:root{
  --sig-bg:#0a0a0d;
  --sig-panel:#111116;
  --sig-panel-2:#17171d;
  --sig-border:rgba(255,255,255,.10);
  --sig-text:#f4f4f6;
  --sig-muted:#9898a6;
  --sig-accent:#d8b6ff;
  --sig-pink:#ff9ac8;
  --sig-blue:#8bc7ff;
}
html[data-bs-theme=dark] body{background:var(--sig-bg);color:var(--sig-text)}
body.signals-page{background:
 radial-gradient(circle at 15% -10%,rgba(255,154,200,.08),transparent 34rem),
 radial-gradient(circle at 85% 0,rgba(139,199,255,.07),transparent 34rem),
 var(--sig-bg); min-height:100vh}
.signals-nav{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:rgba(10,10,13,.82)!important;border-bottom:1px solid var(--sig-border)}
.signals-brand{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.92rem}
.signals-brand small{display:block;color:var(--sig-muted);font-weight:500;letter-spacing:.14em;font-size:.58rem;margin-top:-2px}
.signals-shell{padding-top:96px;padding-bottom:70px}
.signals-hero{padding:34px 0 24px}
.signals-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--sig-muted);font-size:.72rem;font-weight:700}
.signals-title{font-size:clamp(2.4rem,7vw,5.7rem);line-height:.92;letter-spacing:-.055em;margin:.55rem 0 1rem;font-weight:800}
.signals-lead{color:#b6b6c2;max-width:720px;font-size:1.04rem}
.signals-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.25rem 0}
.signals-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.62rem .9rem;border:1px solid var(--sig-border);border-radius:999px;color:#c9c9d1;text-decoration:none;background:rgba(255,255,255,.025)}
.signals-tab:hover,.signals-tab.active{color:#fff;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.075)}
.signals-search{background:var(--sig-panel);border:1px solid var(--sig-border);border-radius:18px;padding:14px}
.signals-search .form-control,.signals-search .form-select,
.signals-form .form-control,.signals-form .form-select,.signals-form textarea{
  background:#0e0e13;border-color:var(--sig-border);color:#fff
}
.signals-search .form-control:focus,.signals-search .form-select:focus,
.signals-form .form-control:focus,.signals-form .form-select:focus,.signals-form textarea:focus{
  background:#0e0e13;color:#fff;border-color:rgba(216,182,255,.5);box-shadow:0 0 0 .2rem rgba(216,182,255,.08)
}
.signals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media(max-width:991px){.signals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.signals-grid{grid-template-columns:1fr}.signals-shell{padding-top:82px}}
.signal-card{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border:1px solid var(--sig-border);border-radius:20px;overflow:hidden;min-width:0;transition:transform .18s ease,border-color .18s ease}
.signal-card:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.19)}
.signal-thumb{display:block;position:relative;aspect-ratio:16/9;background:#050507;overflow:hidden}
.signal-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.signal-card:hover .signal-thumb img{transform:scale(1.025)}
.signal-thumb::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.68));pointer-events:none}
.signal-badge{position:absolute;left:12px;bottom:10px;z-index:1;background:rgba(0,0,0,.68);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:5px 8px;color:#eee;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.signal-body{padding:15px}
.signal-title{font-weight:700;font-size:1rem;line-height:1.25;color:#fff;margin-bottom:.35rem}
.signal-title a{color:inherit;text-decoration:none}
.signal-creator{display:flex;align-items:center;gap:8px;color:#a8a8b4;font-size:.84rem}
.signal-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--sig-border)}
.signal-meta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.85rem;color:#888894;font-size:.77rem}
.signal-actions{display:flex;gap:.45rem;margin-top:12px;flex-wrap:wrap}
.signal-action{border:1px solid var(--sig-border);background:rgba(255,255,255,.025);color:#c8c8d0;border-radius:999px;padding:.42rem .7rem;font-size:.78rem}
.signal-action:hover,.signal-action.is-active{background:rgba(216,182,255,.11);border-color:rgba(216,182,255,.35);color:#fff}
.signal-action[disabled]{opacity:.55;cursor:not-allowed}
.signal-empty{border:1px dashed rgba(255,255,255,.15);border-radius:20px;padding:48px 24px;text-align:center;color:var(--sig-muted)}
.signals-panel{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border:1px solid var(--sig-border);border-radius:22px;padding:20px}
.signals-stat{background:var(--sig-panel);border:1px solid var(--sig-border);border-radius:18px;padding:18px}
.signals-stat strong{display:block;font-size:1.7rem;color:#fff;letter-spacing:-.03em}
.signals-stat span{color:var(--sig-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.signal-player{position:relative;aspect-ratio:16/9;background:#000;border:1px solid var(--sig-border);border-radius:22px;overflow:hidden}
.signal-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.creator-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}
.creator-avatar{width:92px;height:92px;border-radius:24px;object-fit:cover;border:1px solid var(--sig-border);background:#111}
@media(max-width:650px){.creator-hero{grid-template-columns:auto 1fr}.creator-hero>.creator-actions{grid-column:1/-1}.creator-avatar{width:72px;height:72px;border-radius:18px}}
.signal-tags{display:flex;gap:.45rem;flex-wrap:wrap}
.signal-tag{font-size:.73rem;padding:.35rem .55rem;border:1px solid var(--sig-border);border-radius:999px;color:#a9a9b5}
.signals-table{--bs-table-bg:transparent;--bs-table-color:#d9d9df;--bs-table-border-color:var(--sig-border)}
.signals-flash{border:1px solid rgba(255,255,255,.13);border-radius:14px;padding:12px 14px;margin-bottom:16px}
.signals-flash.success{background:rgba(60,190,130,.08);border-color:rgba(60,190,130,.22)}
.signals-flash.error{background:rgba(230,80,90,.08);border-color:rgba(230,80,90,.22)}
.signals-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999}
.signals-modal{width:min(520px,100%);background:#111116;border:1px solid var(--sig-border);border-radius:20px;padding:20px}
.signals-modal-backdrop[hidden]{display:none!important}
.signals-muted{color:var(--sig-muted)}
.signals-section-title{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:34px 0 16px}
.signals-section-title h2{font-size:1.25rem;margin:0;color:#fff}
.signals-section-title p{margin:0;color:var(--sig-muted);font-size:.86rem}


/* Signals v2.6 — Portal integration rail */
.signalsPortalRail{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
  margin:22px 0 18px;
}
.signalsPortalRail a{
  min-height:94px;padding:13px 14px;display:flex;flex-direction:column;justify-content:space-between;
  border:1px solid rgba(255,255,255,.08);border-radius:16px;
  background:rgba(255,255,255,.025);color:inherit;text-decoration:none;
}
.signalsPortalRail a:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15)}
.signalsPortalRail small{font-size:8px;letter-spacing:.13em;color:rgba(255,255,255,.35)}
.signalsPortalRail b{font-size:15px}
.signalsPortalRail span{font-size:9px;color:rgba(255,255,255,.44)}
@media(max-width:680px){.signalsPortalRail{grid-template-columns:1fr}.signalsPortalRail a{min-height:82px}}
