/*
 * ScalePlot "Aurora Systems" theme for the client portal.
 *
 * Mirrors scaleplot.com: a near black canvas lit by brand blue glows, glass
 * surfaces with hairline borders, Poppins display type over Manrope body
 * copy, pill buttons and a mint "live" accent. Loaded after portal.css and
 * signal.css, so the tokens below are the single source of every color.
 *
 * Fonts are self hosted because the gateway CSP only allows font-src 'self'.
 * Poppins and Manrope are licensed under the SIL Open Font License 1.1.
 */

@font-face { font-family: "Poppins"; src: url("fonts/poppins-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("fonts/poppins-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("fonts/poppins-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("fonts/poppins-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("fonts/manrope-latin-wght-normal.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }

/* ---------- brand tokens ---------- */
:root {
  color-scheme: dark;
  --au-bg: #06070E;
  --au-bg-2: #090B16;
  --au-surface: #0C0F1B;
  --au-surface-2: #111526;
  --au-surface-3: #161B2F;
  --au-text: #EDF0F8;
  --au-text-2: #C4CADD;
  --au-muted: #9AA3BF;
  --au-dim: #7E88A8;
  --au-line: #1E2338;
  --au-line-strong: #2A3150;
  --au-line-soft: #151A2B;
  --au-glass: rgba(255, 255, 255, 0.045);
  --au-glass-hi: rgba(255, 255, 255, 0.075);
  --au-primary: #0076BA;
  --au-primary-hover: #0086D2;
  --au-primary-text: #3FAEF5;
  --au-mint: #63F5C4;
  --au-up: #3DDC97;
  --au-down: #FF7A70;
  --au-warn: #F5B94A;
  --au-r: 18px;
  --au-r-lg: 24px;
  --au-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --font-display: "Poppins", "Century Gothic", system-ui, sans-serif;
  --font-body: "Manrope", "Poppins", system-ui, sans-serif;

  /* portal.css vocabulary */
  --font: var(--font-body);
  --canvas: var(--au-bg);
  --surface: var(--au-surface);
  --surface-2: var(--au-surface-2);
  --surface-3: var(--au-surface-3);
  --line: var(--au-line);
  --line-strong: var(--au-line-strong);
  --ink: var(--au-text);
  --ink-2: var(--au-text-2);
  --ink-3: var(--au-muted);
  --panel-ink: var(--au-bg);
  --accent: var(--au-primary-text);
  --accent-ink: var(--au-primary-text);
  --accent-wash: rgba(0, 146, 230, 0.14);
  --positive: var(--au-up);
  --positive-wash: rgba(61, 220, 151, 0.12);
  --negative: var(--au-down);
  --negative-wash: rgba(255, 122, 112, 0.13);
  --warning: var(--au-warn);
  --warning-wash: rgba(245, 185, 74, 0.12);
  --warning-line: rgba(245, 185, 74, 0.4);
  --facebook: #4B9BFF;
  --instagram: #FF6F91;
  --organic: var(--au-primary-text);
  --paid: var(--au-mint);
  --source-google: #6EA8FF;
  --source-search: #4ADE80;
  --grid: var(--au-line-soft);
  --radius: var(--au-r);
  --radius-small: 12px;
  --shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 24px 60px -30px rgba(0, 0, 0, 0.8);
  --shadow-lift: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 30px 70px -28px rgba(0, 0, 0, 0.9);
}

body.sig-page {
  --sig-canvas: var(--au-bg);
  --sig-surface: var(--au-surface);
  --sig-soft: var(--au-surface-2);
  --sig-ink: var(--au-text);
  --sig-ink-2: var(--au-text-2);
  --sig-muted: var(--au-muted);
  --sig-line: var(--au-line);
  --sig-line-soft: var(--au-line-soft);
  --sig-primary: var(--au-primary);
  --sig-link: var(--au-primary-text);
  --sig-on-primary: #FFFFFF;
  --sig-accent: var(--au-mint);
  --sig-up: var(--au-up);
  --sig-down: var(--au-down);
  --sig-warn: var(--au-warn);
  --sig-warn-text: var(--au-warn);
  --sig-idle: #262C45;
  --sig-primary-wash: rgba(0, 146, 230, 0.14);
  --sig-primary-line: rgba(0, 146, 230, 0.42);
  --sig-up-wash: rgba(61, 220, 151, 0.12);
  --sig-down-wash: rgba(255, 122, 112, 0.13);
  --sig-warn-wash: rgba(245, 185, 74, 0.12);
  --sig-warn-line: rgba(245, 185, 74, 0.42);
  --sig-brand-fb: #4B9BFF;
  --sig-brand-fb-wash: rgba(24, 119, 242, 0.16);
  --sig-brand-ig: #FF6F91;
  --sig-brand-ig-wash: rgba(228, 64, 95, 0.16);
  --sig-brand-li: #4DA3E8;
  --sig-brand-li-wash: rgba(10, 102, 194, 0.18);
  --sig-scrim: rgba(2, 3, 8, 0.74);
  --sig-shadow-color: rgba(0, 0, 0, 0.55);
  --sig-hover: rgba(255, 255, 255, 0.05);
  --sig-sans: var(--font-body);
  --sig-display: var(--font-display);
  --sig-mono: var(--font-body);
  --sig-chart-organic: #1A9BEA;
  --sig-chart-paid: var(--au-mint);
  --sig-chart-axis: var(--au-dim);
  --sig-chart-grid: #171C2E;
  --sig-chart-baseline: #2A3150;
  --sig-chart-mask: var(--au-surface);
  --sig-chart-band-text: var(--au-mint);
}

/* ---------- canvas ---------- */
html { background: var(--au-bg); scrollbar-color: var(--au-line-strong) var(--au-bg); }
body, body.sig-page { position: relative; z-index: 0; min-height: 100dvh; background: transparent; color: var(--au-text); font-family: var(--font-body); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.sig-page { font-size: 14px; }
::selection { background: rgba(0, 118, 186, 0.36); color: #FFFFFF; }
h1, h2, h3, .display { font-family: var(--font-display); line-height: 1.12; letter-spacing: -0.03em; text-wrap: balance; }
p { text-wrap: pretty; }
.grad-text { color: var(--au-primary); }
:focus-visible, .sig-page :focus-visible { outline: 2px solid var(--au-primary-text); outline-offset: 3px; border-radius: 8px; }

/* One authored background: brand glows, a fine grid and grain, fixed behind content. */
.aurora-field { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: var(--au-bg); }
.aurora-field i { position: absolute; display: block; border-radius: 50%; filter: blur(90px); will-change: transform; }
.au-glow-1 { width: 64vw; height: 64vw; left: -18vw; top: -30vw; background: radial-gradient(circle, #0076BA 0%, rgba(0, 118, 186, 0) 66%); opacity: 0.42; }
.au-glow-2 { width: 52vw; height: 52vw; right: -16vw; top: -12vw; background: radial-gradient(circle, #0076BA 0%, rgba(0, 118, 186, 0) 66%); opacity: 0.24; }
.au-glow-3 { width: 46vw; height: 46vw; left: 34vw; top: 58vh; background: radial-gradient(circle, #0076BA 0%, rgba(0, 118, 186, 0) 68%); opacity: 0.1; }
.aurora-field u { position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px); background-size: 88px 88px; mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, #000 0%, transparent 78%); -webkit-mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, #000 0%, transparent 78%); }
.aurora-field b { position: absolute; inset: 0; opacity: 0.45; background-image: radial-gradient(rgba(255, 255, 255, 0.1) 0.6px, transparent 0.6px); background-size: 3px 3px; mask-image: radial-gradient(ellipse 80% 50% at 50% 10%, #000 0%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 80% 50% at 50% 10%, #000 0%, transparent 75%); }
.cursor-light { position: fixed; top: -260px; left: -260px; z-index: -1; width: 520px; height: 520px; border-radius: 50%; pointer-events: none; opacity: 0; background: radial-gradient(circle, rgba(0, 118, 186, 0.17) 0, rgba(0, 118, 186, 0.05) 36%, transparent 70%); transition: opacity 0.4s ease; }
.has-pointer-light .cursor-light { opacity: 1; }

/* Development banner */
.environment-banner { position: relative; z-index: 45; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 8px clamp(16px, 5vw, 72px); border-bottom: 1px solid rgba(245, 185, 74, 0.28); background: rgba(38, 28, 8, 0.92); color: var(--au-warn); font-size: 12.5px; font-weight: 600; letter-spacing: 0.01em; text-align: center; }
.environment-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--au-warn); box-shadow: 0 0 0 4px rgba(245, 185, 74, 0.16); }

/* ---------- shared chrome ---------- */
.skip-link { background: #FFFFFF; color: var(--au-bg); }
.site-header { position: sticky; top: 0; z-index: 40; min-height: 74px; border-bottom: 1px solid var(--au-line-soft); background: rgba(6, 7, 14, 0.66); backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%); }
.brand, .sig-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-logo, .sig-brand-logo { display: block; width: 132px; height: auto; }
.brand-product, .sig-brand-product, body.sig-page .sig-brand span.sig-brand-product { padding: 4px 10px; border: 1px solid var(--au-line); border-radius: 999px; background: var(--au-glass); color: var(--au-text-2); font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.page-shell { width: min(1240px, 100%); padding: clamp(40px, 6vw, 72px) clamp(20px, 5vw, 72px); }

.eyebrow, .tag { display: inline-flex; align-items: center; gap: 9px; color: var(--au-dim); font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.tag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--au-primary); box-shadow: 0 0 0 4px rgba(0, 118, 186, 0.18); }
.muted { color: var(--au-muted); }

/* Buttons: brand pill, ghost glass */
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 0 22px; border: 1px solid transparent; border-radius: 999px; font-family: var(--font-body); font-size: 15px; font-weight: 700; letter-spacing: -0.01em; cursor: pointer; transition: transform 0.2s var(--au-ease), box-shadow 0.25s, background 0.25s, color 0.2s; }
.button svg { transition: transform 0.25s var(--au-ease); }
.button:hover svg { transform: translateX(4px); }
.button-primary { margin-top: 26px; background: var(--au-primary); color: #FFFFFF; box-shadow: 0 10px 30px rgba(0, 118, 186, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.35); }
.button-primary:hover { background: var(--au-primary-hover); transform: translateY(-2px); box-shadow: 0 16px 44px rgba(0, 118, 186, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.45); }
.button-primary:active { transform: scale(0.98); transition-duration: 0.1s; }
.button-primary.is-loading { opacity: 0.8; cursor: progress; }
.button-primary.is-loading svg { animation: au-nudge 0.9s var(--au-ease) infinite; }
.button-secondary { border-color: var(--au-line); background: var(--au-glass); color: var(--au-text); }
.button-secondary:hover { background: var(--au-glass-hi); transform: translateY(-1px); }
@keyframes au-nudge { 50% { transform: translateX(5px); } }

/* Form controls */
input, select, textarea { font-family: var(--font-body); }
input { min-height: 50px; padding: 0 16px; border: 1px solid var(--au-line); border-radius: 14px; background: rgba(255, 255, 255, 0.035); color: var(--au-text); font-size: 15px; transition: border-color 0.2s, background 0.2s, box-shadow 0.2s; }
input::placeholder { color: var(--au-dim); }
input:hover { border-color: var(--au-line-strong); }
input:focus { border-color: var(--au-primary-text); outline: none; background: rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 4px rgba(0, 146, 230, 0.18); }
input:-webkit-autofill { -webkit-text-fill-color: var(--au-text); -webkit-box-shadow: 0 0 0 1000px #0E1222 inset; caret-color: var(--au-text); }
input[aria-invalid="true"] { border-color: var(--au-down); }
.errorlist { color: var(--au-down); }
.field label { color: var(--au-text-2); font-size: 13px; font-weight: 600; }
.optional-label { border: 1px solid var(--au-line); background: var(--au-glass); color: var(--au-muted); font-size: 9.5px; font-weight: 700; }
.password-field { position: relative; }
.password-field input { padding-right: 78px; }
.password-toggle { position: absolute; top: 50%; right: 8px; min-width: 60px; height: 36px; padding: 0 12px; transform: translateY(-50%); border: 1px solid var(--au-line); border-radius: 999px; background: var(--au-glass); color: var(--au-text-2); font-size: 12px; font-weight: 700; cursor: pointer; transition: background 0.2s, color 0.2s; }
.password-toggle:hover { background: var(--au-glass-hi); color: var(--au-text); }
.message { border-color: rgba(61, 220, 151, 0.35); background: rgba(61, 220, 151, 0.1); color: var(--au-up); }

/* ---------- authentication ----------
   The sign in and password pages fill exactly one screen. Every vertical
   size scales with the viewport height, so the page fits without scrolling
   from phones to large desktops; secondary content steps away on short
   screens instead of pushing the form below the fold. */
body.auth-page { display: flex; flex-direction: column; min-height: 100dvh; }
.auth-page .site-header { display: none; }
.auth-page .page-shell { display: flex; flex: 1 1 auto; width: 100%; max-width: none; min-height: 0; padding: 0; }
.auth-page .page-shell > div[aria-live] { display: none; }
.auth-layout { position: relative; display: grid; flex: 1 1 auto; min-height: 0; grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(16px, 3.4vh, 48px) clamp(20px, 5vw, 72px); }
.auth-brand-panel { display: flex; min-height: 0; flex-direction: column; gap: clamp(14px, 3.2vh, 40px); justify-content: center; padding: 0; background: none; color: var(--au-text); }
.auth-lockup { display: inline-flex; width: fit-content; }
.auth-lockup img { display: block; width: clamp(120px, 17vh, 168px); height: auto; }
.auth-brand-copy { max-width: 640px; }
.auth-badge { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 clamp(10px, 2.6vh, 26px); padding: 5px 14px 5px 5px; border: 1px solid var(--au-line); border-radius: 999px; background: var(--au-glass); color: var(--au-muted); font-size: 12.5px; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.auth-badge b { padding: 3px 10px; border-radius: 999px; background: var(--au-primary); color: #FFFFFF; font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.auth-brand-copy h1 { margin: 0; font-size: clamp(2rem, min(5.2vw, 7.6vh), 4.6rem); font-weight: 600; line-height: 1.02; letter-spacing: -0.045em; }
.auth-lede { max-width: 54ch; margin-top: clamp(10px, 2.4vh, 24px); color: var(--au-muted); font-size: clamp(14px, min(1.2vw, 2.1vh), 17.5px); line-height: 1.7; }
.auth-assurance { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: clamp(12px, 2.8vh, 28px) 0 0; padding: clamp(10px, 2.2vh, 22px) 0 0; border-top: 1px solid var(--au-line-soft); list-style: none; color: var(--au-dim); font-size: 13px; }
.auth-assurance li { display: inline-flex; align-items: center; gap: 8px; }
.auth-assurance svg { flex: none; color: var(--au-mint); }
.auth-visual { position: relative; width: min(640px, 100%, 62vh); margin: 0; overflow: hidden; border: 1px solid var(--au-line); border-radius: var(--au-r-lg); background: var(--au-surface); box-shadow: 0 40px 90px rgba(2, 4, 14, 0.7); aspect-ratio: 16 / 6.4; }
.auth-visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; transform: scale(1.22); transform-origin: 44% 52%; opacity: 0.82; filter: saturate(0.9) contrast(1.05); }
.auth-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 7, 14, 0.35) 0%, rgba(6, 7, 14, 0) 30%, rgba(6, 7, 14, 0) 50%, rgba(6, 7, 14, 0.92) 100%); pointer-events: none; }
.auth-visual-note { position: absolute; left: 18px; right: 18px; bottom: 14px; z-index: 1; display: flex; align-items: center; gap: 10px; color: var(--au-text-2); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; }
.auth-live { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--au-mint); box-shadow: 0 0 0 4px rgba(99, 245, 196, 0.16); }
.auth-card { position: relative; width: min(470px, 100%); margin: 0 auto; padding: clamp(20px, 3.8vh, 42px) clamp(22px, 3vw, 42px); border: 1px solid var(--au-line); border-radius: var(--au-r-lg); background: rgba(12, 15, 27, 0.78); box-shadow: 0 40px 90px rgba(2, 4, 14, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.06); backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); }
.auth-card::before { content: ""; position: absolute; inset: 0 24% auto; height: 1px; background: linear-gradient(90deg, transparent, rgba(63, 174, 245, 0.8), transparent); }
.auth-card-head { margin-bottom: clamp(12px, 2.6vh, 26px); }
.auth-card-head .eyebrow { color: var(--au-primary-text); }
.auth-card h2 { margin-top: clamp(6px, 1vh, 10px); font-size: clamp(24px, min(2.6vw, 4vh), 34px); font-weight: 600; line-height: 1.1; letter-spacing: -0.04em; }
.auth-card-head .muted { margin-top: clamp(4px, 0.9vh, 8px); color: var(--au-muted); font-size: 14px; }
.auth-alert { margin: 0 0 clamp(10px, 2vh, 18px); border-color: var(--warning-line); background: var(--warning-wash); color: var(--au-warn); font-size: 13px; }
.auth-page .field { margin-top: clamp(10px, 1.9vh, 19px); }
.auth-page .field label { margin-bottom: clamp(4px, 0.8vh, 7px); }
.auth-page input { min-height: clamp(42px, 5.6vh, 50px); }
.auth-page .password-toggle { height: clamp(32px, 4.2vh, 36px); }
.auth-card .button-wide { width: 100%; min-height: clamp(44px, 5.6vh, 48px); margin-top: clamp(14px, 2.8vh, 26px); }
.fine-print { margin-top: clamp(10px, 2.2vh, 22px); color: var(--au-dim); font-size: 12px; line-height: 1.55; }
.help-text { margin-top: 6px; color: var(--au-dim); font-size: 12px; line-height: 1.45; }
.help-text ul { margin: 0; }
.help-details summary { width: fit-content; color: var(--au-primary-text); font-weight: 600; cursor: pointer; list-style: none; }
.help-details summary::-webkit-details-marker { display: none; }
.help-details summary::after { content: " +"; }
.help-details[open] summary::after { content: " \2212"; }
.help-details ul { margin-top: 6px; }

/* Desktop screens too short for everything: the photo goes first, then the
   assurance row, so the headline and the form always fit. */
@media (min-width: 901px) and (max-height: 860px) { .auth-visual { display: none; } }
@media (min-width: 901px) and (max-height: 620px) { .auth-assurance, .auth-badge { display: none; } }

/* Tablets and phones: one column, brand block above the form. */
@media (max-width: 900px) {
  .auth-layout { grid-template-columns: 1fr; align-content: center; gap: clamp(16px, 3.2vh, 40px); padding-block: clamp(14px, 3vh, 40px); }
  .auth-brand-panel { gap: clamp(10px, 2.2vh, 24px); }
  .auth-visual, .auth-assurance { display: none; }
  .auth-card { margin: 0 auto; }
  .auth-brand-copy, .auth-brand-panel { width: min(470px, 100%); margin-inline: auto; }
}
@media (max-width: 900px) and (max-height: 900px) { .auth-lede { display: none; } }
@media (max-width: 640px) {
  .auth-badge, .auth-lede { display: none; }
  .auth-brand-copy h1 { font-size: clamp(1.6rem, min(8.2vw, 4.6vh), 2.6rem); }
  .auth-card { padding: clamp(18px, 3vh, 28px) 20px; border-radius: 20px; }
  .auth-card-head .muted { font-size: 13px; }
  .auth-card h2 { font-size: clamp(22px, 3.4vh, 28px); }
}
/* The password form has three fields plus rules, so on phones it keeps only the logo above it. */
@media (max-width: 640px) { .auth-layout:has(.help-details) .auth-brand-copy { display: none; } }
@media (max-width: 640px) and (max-height: 700px) {
  .auth-layout:has(.help-details) .field > .help-text:not(.help-details) { display: none; }
  .auth-card-head .eyebrow, .fine-print { display: none; }
  .auth-page .environment-banner { font-size: 11px; padding-block: 6px; }
}

/* ---------- organization list ---------- */
.dashboard-heading { align-items: end; margin-bottom: clamp(40px, 5vw, 64px); }
.dashboard-heading h1 { margin-top: 14px; font-size: clamp(2.6rem, 6vw, 4.6rem); font-weight: 600; letter-spacing: -0.045em; }
.dashboard-heading .muted { max-width: 56ch; margin-top: 16px; font-size: 16px; line-height: 1.7; }
.user-summary { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 14px 18px 14px 14px; border: 1px solid var(--au-line); border-radius: 999px; background: var(--au-glass); box-shadow: none; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.user-summary > div { display: grid; }
.user-summary strong { font-size: 14px; }
.user-summary span { color: var(--au-dim); font-size: 12px; }
.user-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--au-primary); color: #FFFFFF !important; font-family: var(--font-display); font-size: 15px !important; font-weight: 600; }
.section-title { margin-bottom: 20px; font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 600; }
.organization-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.organization-card { position: relative; display: flex; min-height: 220px; flex-direction: column; overflow: hidden; padding: 26px 24px; border: 1px solid var(--au-line); border-radius: var(--au-r-lg); background: rgba(255, 255, 255, 0.035); box-shadow: none; }
.organization-card::before { content: ""; position: absolute; inset: 0; opacity: 0; pointer-events: none; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(0, 118, 186, 0.16), transparent 60%); transition: opacity 0.3s; }
.organization-card > * { position: relative; }
.organization-card-link { color: var(--au-text); transition: transform 0.3s var(--au-ease), border-color 0.3s; }
.organization-card-link:hover { transform: translateY(-5px); border-color: rgba(0, 118, 186, 0.5); box-shadow: 0 30px 60px -30px rgba(0, 118, 186, 0.45); }
.organization-card-link:hover::before { opacity: 1; }
.organization-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.organization-mark { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--au-line); border-radius: 13px; background: rgba(255, 255, 255, 0.05); color: var(--au-primary-text); font-family: var(--font-display); font-size: 14px; font-weight: 600; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; color: var(--au-mint); font-size: 10.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.status-dot { width: 6px; height: 6px; background: var(--au-mint); box-shadow: 0 0 0 3px rgba(99, 245, 196, 0.16); }
.organization-card h3 { margin: 22px 0 6px; font-size: 21px; font-weight: 600; letter-spacing: -0.02em; }
.organization-card p { color: var(--au-muted); font-size: 14px; }
.card-action { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 22px; color: var(--au-text); font-size: 13px; font-weight: 700; }
.card-action svg { color: var(--au-primary-text); transition: transform 0.25s var(--au-ease); }
.organization-card-link:hover .card-action svg { transform: translate(4px, -4px); }
.empty-state { border-color: var(--au-line-strong); color: var(--au-muted); }

/* ---------- Signal dashboard ---------- */
body.sig-page a { color: var(--sig-link); }
body.sig-page a:hover { color: var(--au-text); }
body.sig-page h1, body.sig-page h2, body.sig-page h3 { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.025em; }

.sig-header { position: sticky; top: 0; z-index: 40; min-height: 74px; padding: 12px clamp(20px, 3.4vw, 48px); border-bottom: 1px solid var(--au-line-soft); background: rgba(6, 7, 14, 0.7); backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%); }
.sig-divider { background: var(--au-line); }
.sig-account-switch { height: 44px; border-color: var(--au-line); border-radius: 999px; background: var(--au-glass); transition: border-color 0.2s, background 0.2s; }
.sig-account-switch:hover { border-color: var(--au-line-strong); background: var(--au-glass-hi); }
.sig-account-switch select { height: 42px; border-radius: 999px; color: var(--au-text); font-family: var(--font-body); font-weight: 700; }
.sig-account-switch select option { background: var(--au-surface); color: var(--au-text); }
.sig-account-mark { border-radius: 50%; background: var(--au-primary); font-family: var(--font-display); }
.sig-caret { color: var(--au-muted); }
.sig-refresh-status { color: var(--au-muted); }
.sig-dot-ok { box-shadow: 0 0 0 3px rgba(61, 220, 151, 0.16); }
.sig-button { height: 42px; padding: 0 20px; border-radius: 999px; background: var(--au-primary); font-family: var(--font-body); font-weight: 700; box-shadow: 0 8px 24px rgba(0, 118, 186, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.3); transition: transform 0.2s var(--au-ease), background 0.2s, box-shadow 0.25s; }
.sig-button:hover:not(:disabled) { background: var(--au-primary-hover); transform: translateY(-1px); box-shadow: 0 12px 32px rgba(0, 118, 186, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.4); }
.sig-lang { padding: 3px; border: 1px solid var(--au-line); border-radius: 999px; background: var(--au-glass); }
body.sig-page .sig-lang a { height: 36px; min-width: 46px; border-radius: 999px; color: var(--au-muted); transition: color 0.2s, background 0.2s; }
body.sig-page .sig-lang a:hover { color: var(--au-text); }
body.sig-page .sig-lang a[aria-current] { background: var(--au-primary); color: #FFFFFF; }
.sig-account-menu summary { border-color: var(--au-line); background: var(--au-glass); color: var(--au-text); font-family: var(--font-display); transition: border-color 0.2s, background 0.2s; }
.sig-account-menu summary:hover, .sig-account-menu[open] summary { border-color: var(--au-primary-text); background: var(--au-glass-hi); }
.sig-menu-panel { border-color: var(--au-line); border-radius: 18px; background: rgba(12, 15, 27, 0.97); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.sig-menu-panel > a { padding: 8px 10px; border-radius: 10px; font-weight: 600; text-decoration: none; }
.sig-menu-panel > a:hover { background: var(--au-glass-hi); }
.sig-menu-panel button, .sig-timeout-controls select { border-color: var(--au-line); border-radius: 999px; background: var(--au-glass); color: var(--au-text); }
.sig-menu-panel button:hover { background: var(--au-glass-hi); }
.sig-timeout-controls select option { background: var(--au-surface); }

.sig-body { gap: clamp(36px, 4vw, 56px); padding: 28px clamp(20px, 3.4vw, 48px) 64px; }
.sig-section-head h2 { font-size: clamp(24px, 2.4vw, 32px); }
.sig-section-head p { color: var(--au-muted); }
.sig-section-head > div::before { content: ""; width: 26px; height: 2px; margin-bottom: 10px; border-radius: 2px; background: var(--au-primary); }

/* Glass cards with a pointer tracked sheen */
.sig-card { border-color: var(--au-line); border-radius: var(--au-r); background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012)), rgba(12, 15, 27, 0.8); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); transition: border-color 0.3s; }
.sig-card:hover { border-color: #283052; background: radial-gradient(640px circle at var(--mx, 50%) var(--my, 0%), rgba(0, 118, 186, 0.07), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012)), rgba(12, 15, 27, 0.8); }
.sig-eyebrow { color: var(--au-dim); font-weight: 700; letter-spacing: 0.14em; }
.sig-ghost-button { height: 36px; padding: 0 14px; border-color: var(--au-line); border-radius: 999px; background: var(--au-glass); color: var(--au-text-2); font-weight: 700; transition: background 0.2s, border-color 0.2s, color 0.2s; }
body.sig-page .sig-ghost-button { color: var(--au-text-2); }
.sig-ghost-button:hover:not(:disabled), body.sig-page .sig-ghost-button:hover { border-color: var(--au-line-strong); background: var(--au-glass-hi); color: var(--au-text); }

/* Period slicer */
.sig-chip { height: 36px; border-color: var(--au-line); background: var(--au-glass); color: var(--au-text-2); font-weight: 600; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.sig-chip:hover { border-color: var(--au-line-strong); color: var(--au-text); }
.sig-chip[aria-pressed="true"] { box-shadow: 0 8px 22px rgba(0, 118, 186, 0.3); }
.sig-month { background: rgba(255, 255, 255, 0.04); color: var(--au-muted); }
.sig-month.is-on { background: var(--sig-primary-wash); color: var(--au-primary-text); }
.sig-day.is-on span { background: var(--au-primary-text); }
.sig-selection { background: var(--au-primary-text); opacity: 0.12; }
.sig-range-fill { background: linear-gradient(90deg, var(--au-primary), var(--au-primary-text)); }
.sig-range-input::-webkit-slider-thumb { border-color: var(--au-text); box-shadow: 0 0 0 4px rgba(0, 146, 230, 0.2), 0 4px 12px rgba(0, 0, 0, 0.5); }
.sig-range-input::-moz-range-thumb { border-color: var(--au-text); }
.sig-window-label { font-family: var(--font-display); }

/* KPIs */
.sig-kpi { border-left-color: var(--au-line-soft); transition: background 0.25s; }
.sig-kpi:hover { background: rgba(255, 255, 255, 0.02); }
.sig-kpi-label { color: var(--au-dim); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.sig-kpi-value { font-family: var(--font-display); font-size: clamp(26px, 2.2vw, 32px); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.sig-kpi.is-partial { background: rgba(255, 255, 255, 0.02); }
.sig-kpi.is-pending, .sig-pending, .sig-channel.is-pending { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0 12px, rgba(255, 255, 255, 0.045) 12px 24px); }
.sig-inquiry-kpi > span, .sig-content-stat span, .sig-web-stat span:first-child { color: var(--au-dim); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.sig-inquiry-kpi > span { font-size: 11px; }
.sig-inquiry-kpi > strong, .sig-content-stat strong, .sig-web-stat strong, .sig-channel-value strong { font-family: var(--font-display); letter-spacing: -0.02em; }
.sig-content-stat, .sig-web-stat, .sig-inquiry-fact { border: 1px solid var(--au-line-soft); }

/* Statuses and pills keep their color and gain a hairline */
.sig-content-status, .sig-week-owner, .sig-action-priority { border: 1px solid transparent; }
.sig-content-status.is-published, .sig-action-priority.is-low { border-color: rgba(61, 220, 151, 0.3); }
.sig-content-status.is-approved, .sig-content-status.is-planned, .sig-content-status.is-in_progress, .sig-week-owner { border-color: rgba(0, 146, 230, 0.3); }
.sig-content-status.is-attention { border-color: rgba(245, 185, 74, 0.3); }
.sig-action-priority.is-critical, .sig-action-priority.is-high { border-color: rgba(255, 122, 112, 0.3); }
.sig-content-links a, .sig-content-links > span { border-color: var(--au-line); background: var(--au-glass); color: var(--au-text-2); }
.sig-content-links .is-linked { box-shadow: 0 4px 12px rgba(0, 118, 186, 0.35); }
.sig-content-upcoming input { accent-color: var(--au-primary); }

/* Channels, tables and bars */
.sig-series-toggle { border-radius: 999px; color: var(--au-text-2); }
.sig-series-toggle:hover { background: var(--au-glass-hi); }
.sig-channel { border: 1px solid var(--au-line); background: rgba(255, 255, 255, 0.03); transition: border-color 0.25s, transform 0.25s var(--au-ease); }
.sig-channel:hover { border-color: var(--au-line-strong); transform: translateY(-2px); }
.sig-row-head, .sig-list > .sig-list-head { color: var(--au-dim); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.sig-row:not(.sig-row-head) { transition: background 0.2s; }
.sig-rows .sig-row:hover { background: rgba(255, 255, 255, 0.025); }
.sig-bar { height: 6px; background: rgba(255, 255, 255, 0.06); }
.sig-bar i { height: 6px; background: linear-gradient(90deg, var(--au-primary), var(--au-primary-text)); box-shadow: 0 0 12px rgba(0, 146, 230, 0.45); }
.sig-swatch-organic { background: var(--sig-chart-organic); }
.sig-swatch-paid { background: var(--sig-chart-paid); }
.sig-table-scroll { scrollbar-color: var(--au-line-strong) transparent; }
.sig-rows { scrollbar-color: var(--au-line-strong) transparent; }

/* Dialog */
.sig-inquiry-dialog { border-color: var(--au-line); border-radius: var(--au-r-lg); background: var(--au-surface); color: var(--au-text); box-shadow: 0 40px 100px rgba(0, 0, 0, 0.7); }
.sig-inquiry-dialog::backdrop { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.sig-inquiry-dialog-head { background: rgba(12, 15, 27, 0.96); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.sig-inquiry-dialog-close { border-color: var(--au-line); border-radius: 999px; background: var(--au-glass); color: var(--au-text); }
.sig-inquiry-dialog-close:hover { background: var(--au-glass-hi); }
.sig-inquiry-avatar { background: var(--sig-primary-wash); }

/* Data source footer */
.sig-health-item { border-color: var(--au-line); border-radius: 14px; background: rgba(255, 255, 255, 0.03); transition: border-color 0.25s; }
.sig-health-item:hover { border-color: var(--au-line-strong); }
.sig-health-item.is-ok .sig-dot { box-shadow: 0 0 0 3px rgba(61, 220, 151, 0.16); }
.sig-health-item.is-pending { background: rgba(255, 255, 255, 0.015); }

/* Infrastructure */
.infra-tile strong { font-family: var(--font-display); }
.infra-tile svg { color: var(--au-primary-text); }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
}
@media (max-width: 820px) {
  .brand-logo, .sig-brand-logo { width: 112px; }
  .sig-header { position: static; }
  .dashboard-heading { flex-direction: column; align-items: flex-start; }
}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .cursor-light { display: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header, .sig-header, .auth-card, .sig-card, .sig-menu-panel { background: var(--au-surface); backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* Small screens: the week labels of the period slicer never widen the page. */
body { overflow-x: clip; }
.sig-week-row, .sig-month-row { overflow: hidden; }
