/* ==========================================================
   Tool Hub Retheme 3
   Research basis: shadcn/ui component discipline + Magic UI-style
   bento cards / restrained animated borders, mapped back to the
   Alta Internal Tools template tokens. Sandbox only.
   ========================================================== */

:root:not([data-theme="light"]),
:root[data-theme="dark"] {
  color-scheme: dark;
  --r3-bg: #0A0F1F;
  --r3-surface: #121A33;
  --r3-elevated: #1A233A;
  --r3-inset: #070C18;
  --r3-text: #E0E0E0;
  --r3-muted: #8F9BB3;
  --r3-primary: #2962FF;
  --r3-glow: #00FFFF;
  --r3-readable: #00FFFF;
  --r3-border: #2A3141;
  --r3-border-strong: #3B455F;
  --r3-success: #18C964;
  --r3-warning: #F5A524;
  --r3-danger: #FF4D4F;
  --r3-info: #00B8FF;
  --r3-card: color-mix(in srgb, var(--r3-surface) 94%, #000 6%);
  --r3-card-2: color-mix(in srgb, var(--r3-elevated) 88%, #000 12%);
  --r3-shadow: 0 18px 50px rgba(0, 0, 0, .32);
  --r3-soft-ring: 0 0 0 1px rgba(0, 255, 255, .14), 0 0 24px rgba(0, 255, 255, .12);
  --r3-page-gradient:
    radial-gradient(circle at 78% -10%, rgba(41, 98, 255, .26), transparent 32rem),
    radial-gradient(circle at 18% 4%, rgba(0, 255, 255, .12), transparent 27rem),
    linear-gradient(135deg, #070C18 0%, #0A0F1F 44%, #0C1430 100%);
}

:root[data-theme="light"] {
  color-scheme: light;
  --r3-bg: #F4F5F7;
  --r3-surface: #FFFFFF;
  --r3-elevated: #FAFAFA;
  --r3-inset: #F0F3F8;
  --r3-text: #333333;
  --r3-muted: #6B7280;
  --r3-primary: #2962FF;
  --r3-glow: #00FFCC;
  --r3-readable: #2962FF;
  --r3-border: #E5E7EB;
  --r3-border-strong: #CBD5E1;
  --r3-success: #128D4C;
  --r3-warning: #A66A00;
  --r3-danger: #CC3336;
  --r3-info: #0077B6;
  --r3-card: rgba(255, 255, 255, .94);
  --r3-card-2: rgba(250, 250, 250, .96);
  --r3-shadow: 0 16px 40px rgba(17, 24, 39, .10);
  --r3-soft-ring: 0 0 0 1px rgba(41, 98, 255, .16), 0 14px 32px rgba(41, 98, 255, .10);
  --r3-page-gradient:
    radial-gradient(circle at 78% -10%, rgba(41, 98, 255, .14), transparent 32rem),
    radial-gradient(circle at 18% 4%, rgba(0, 255, 204, .16), transparent 27rem),
    linear-gradient(135deg, #F4F5F7 0%, #FFFFFF 48%, #EEF3FF 100%);
}

html,
body {
  background: var(--r3-bg) !important;
  color: var(--r3-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  background: var(--r3-page-gradient);
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  opacity: .22;
  background-image:
    linear-gradient(color-mix(in srgb, var(--r3-glow) 20%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--r3-primary) 16%, transparent) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(circle at 60% 10%, black, transparent 68%);
}

[data-theme="light"] body::after { opacity: .34; }

.ambient-bg {
  background: transparent !important;
  opacity: .34;
  mix-blend-mode: screen;
}
[data-theme="light"] .ambient-bg {
  opacity: .13;
  mix-blend-mode: multiply;
}

/* Shell */
.topbar {
  top: 14px;
  width: min(1480px, calc(100% - 28px));
  margin: 0 auto;
  height: 72px;
  border: 1px solid color-mix(in srgb, var(--r3-border) 82%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--r3-card) 88%, transparent);
  box-shadow: var(--r3-shadow);
  backdrop-filter: blur(18px) saturate(150%);
}

.brand {
  min-width: 224px;
  padding-right: 12px;
}
.brand-logo {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--r3-primary), var(--r3-glow));
  box-shadow: var(--r3-soft-ring);
}
.brand-logo i { display: none; }
.brand-title {
  color: var(--r3-text);
  font-size: 13px;
  letter-spacing: .14em;
  font-weight: 800;
}
.brand-sub {
  color: var(--r3-muted);
  font-size: 11px;
  letter-spacing: .12em;
}

.search {
  flex: 1 1 460px;
  max-width: 620px;
}
.search::before {
  color: var(--r3-readable);
  opacity: .95;
}
.search input {
  min-height: 43px;
  border-radius: 12px;
  border: 1px solid var(--r3-border);
  background: var(--r3-inset);
  color: var(--r3-text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.search input::placeholder { color: color-mix(in srgb, var(--r3-muted) 72%, transparent); }
.search input:focus {
  border-color: color-mix(in srgb, var(--r3-glow) 64%, var(--r3-border));
  box-shadow: var(--r3-soft-ring);
}

.theme-toggle,
.operator-button,
.status {
  min-height: 42px;
  border-radius: 999px;
  border-color: var(--r3-border);
  background: color-mix(in srgb, var(--r3-elevated) 84%, transparent);
  color: var(--r3-text);
}
.theme-toggle:hover,
.operator-button:hover {
  border-color: color-mix(in srgb, var(--r3-glow) 55%, var(--r3-border));
  box-shadow: var(--r3-soft-ring);
}
.operator-button {
  color: var(--r3-readable);
  font-weight: 800;
}
.status.ok { color: var(--r3-success); }
.status.issue, .status.checking { color: var(--r3-warning); }
.status.down { color: var(--r3-danger); }
.status-dot { box-shadow: 0 0 14px currentColor; }

main {
  width: min(1480px, calc(100% - 28px));
  margin: 24px auto 0;
  padding-top: 78px;
}
.layout-grid {
  gap: 18px;
}

/* Hero, aligned to Alta template hierarchy */
.greeting-section {
  min-height: 260px;
  display: grid;
  align-items: stretch;
}
.greeting {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  border: 1px solid var(--r3-border);
  border-radius: 22px;
  background:
    linear-gradient(120deg, color-mix(in srgb, var(--r3-glow) 9%, transparent), transparent 38%),
    linear-gradient(135deg, color-mix(in srgb, var(--r3-card) 96%, transparent), color-mix(in srgb, var(--r3-elevated) 84%, transparent));
  box-shadow: var(--r3-shadow);
}
.greeting::before {
  content: "ALTA VIDEO · INTERNAL TOOLS ONLY";
  position: absolute;
  top: 26px;
  left: 28px;
  color: var(--r3-readable);
  font: 800 12px/1 IBM Plex Mono, ui-monospace, monospace;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.greeting > div:first-child {
  max-width: 860px;
  padding-top: 26px;
}
.greeting .date {
  margin-top: 30px;
  color: var(--r3-muted);
  letter-spacing: .13em;
}
.greeting h1 {
  max-width: 860px;
  margin-top: 8px;
  color: var(--r3-text);
  font-size: clamp(38px, 5vw, 68px);
  line-height: .96;
  letter-spacing: -.06em;
}
.greeting p {
  max-width: 720px;
  color: var(--r3-muted);
  font-size: 14px;
}
.clock {
  min-width: 292px;
  align-self: end;
  padding: 18px 22px;
  margin-left: auto;
  border: 1px solid color-mix(in srgb, var(--r3-glow) 35%, var(--r3-border));
  background: color-mix(in srgb, var(--r3-inset) 76%, transparent);
  box-shadow: var(--r3-soft-ring);
}
.clock-time {
  color: var(--r3-text);
  letter-spacing: -.03em;
  font-size: clamp(30px, 3.3vw, 42px);
  line-height: 1;
}
.clock-tz {
  color: var(--r3-readable);
  padding-top: 8px;
}

/* Section headers */
.section-heading {
  margin: 0 0 12px;
}
.section-heading .label {
  color: var(--r3-text);
  font-weight: 800;
  letter-spacing: .08em;
}
.section-heading .rule {
  background: linear-gradient(90deg, color-mix(in srgb, var(--r3-glow) 56%, transparent), transparent);
}
.section-heading .count {
  border: 1px solid var(--r3-border);
  border-radius: 999px;
  padding: 5px 9px;
  color: var(--r3-readable);
  background: color-mix(in srgb, var(--r3-inset) 72%, transparent);
}

/* Magic UI-inspired bento cards, without making normal content neon. */
.app-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px;
  align-items: stretch;
}
.app-card {
  position: relative;
  isolation: isolate;
  grid-column: auto !important;
  min-height: 232px;
  overflow: hidden;
  border: 1px solid var(--r3-border);
  border-radius: 18px;
  padding: 18px;
  background:
    radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--r3-glow) 12%, transparent), transparent 42%),
    linear-gradient(180deg, color-mix(in srgb, var(--r3-card) 96%, transparent), color-mix(in srgb, var(--r3-elevated) 88%, transparent));
  box-shadow: var(--r3-shadow), inset 0 -18px 70px -36px rgba(255,255,255,.18);
  transform: translateZ(0);
}
.app-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image:
    linear-gradient(color-mix(in srgb, var(--r3-glow) 15%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--r3-primary) 13%, transparent) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: radial-gradient(circle at 18% 12%, black, transparent 62%);
  opacity: .42;
}
.app-card::after,
.cta::after,
.panel::after,
.operator-card::after {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--r3-angle, 0deg), transparent 0 70%, color-mix(in srgb, var(--r3-glow) 80%, transparent), color-mix(in srgb, var(--r3-primary) 80%, transparent), transparent 86% 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  opacity: .28;
  animation: r3-border-spin 14s linear infinite;
}
.app-card:hover {
  border-color: color-mix(in srgb, var(--r3-glow) 55%, var(--r3-border));
  box-shadow: var(--r3-shadow), var(--r3-soft-ring), inset 0 -18px 70px -36px rgba(255,255,255,.24);
  transform: translateY(-2px);
}
.app-top { margin-bottom: 24px; }
.app-code,
.kind,
.news-date,
.tag,
.eyebrow,
.operator-eyebrow {
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--r3-readable) 38%, var(--r3-border));
  background: color-mix(in srgb, var(--r3-primary) 13%, var(--r3-inset));
  color: var(--r3-readable);
  letter-spacing: .08em;
  font-weight: 800;
}
.operator-eyebrow {
  display: inline-flex;
  width: max-content;
  max-width: calc(100% - 44px);
}
.app-card h3 {
  margin: 0 0 8px;
  color: var(--r3-text);
  font-size: clamp(20px, 2.3vw, 28px);
  line-height: 1.06;
  letter-spacing: -.035em;
}
.app-card p {
  color: var(--r3-muted);
  font-size: 13px;
  line-height: 1.55;
}
.app-health {
  align-self: flex-start;
  border-radius: 999px;
  border: 1px solid currentColor;
  background: color-mix(in srgb, currentColor 12%, transparent);
  font-weight: 800;
}
.app-health.ok { color: var(--r3-success); }
.app-health.down { color: var(--r3-warning); }
.app-health.checking { color: var(--r3-info); }
.app-health.linked { color: var(--r3-readable); }

/* Work panels */
.cta,
.panel,
.docs-panel,
.operator-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid var(--r3-border);
  border-radius: 20px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--r3-card) 96%, transparent), color-mix(in srgb, var(--r3-elevated) 86%, transparent));
  box-shadow: var(--r3-shadow);
}
.cta {
  min-height: 230px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr);
  align-items: stretch;
  gap: 18px;
  padding: 20px;
}
.cta-copy {
  align-self: center;
}
.cta h2 {
  max-width: 780px;
  color: var(--r3-text);
  font-size: clamp(30px, 4vw, 54px);
  line-height: .98;
  letter-spacing: -.055em;
}
.cta p {
  max-width: 760px;
  color: var(--r3-muted);
}
.cta-side {
  border: 1px solid var(--r3-border);
  border-radius: 18px;
  background: var(--r3-inset);
  padding: 16px;
}
.metrics { gap: 10px; }
.metric {
  border: 1px solid var(--r3-border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--r3-elevated) 82%, transparent);
}
.metric strong { color: var(--r3-text); }
.metric div { color: var(--r3-muted); }
.launch,
.operator-submit {
  border: 1px solid color-mix(in srgb, var(--r3-primary) 85%, var(--r3-border));
  border-radius: 12px;
  background: linear-gradient(135deg, var(--r3-primary), #154FE8);
  color: #fff;
  box-shadow: 0 14px 34px rgba(41, 98, 255, .26);
}
.launch:hover,
.operator-submit:hover {
  box-shadow: 0 18px 42px rgba(41, 98, 255, .34), var(--r3-soft-ring);
}

.panel,
.docs-panel {
  padding: 16px;
}
.doc-row,
.news-item {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--r3-border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--r3-inset) 70%, transparent);
}
.doc-row:hover,
.news-item:hover {
  border-color: color-mix(in srgb, var(--r3-glow) 48%, var(--r3-border));
  box-shadow: var(--r3-soft-ring);
  transform: translateY(-1px);
}
.doc-title,
.news-title { color: var(--r3-text); }
.doc-host,
.news-meta { color: var(--r3-muted); }

.footer {
  grid-column: 1 / -1;
  color: var(--r3-muted);
}

/* Operator modal */
.operator-modal {
  background: color-mix(in srgb, var(--r3-bg) 72%, rgba(0,0,0,.45));
  backdrop-filter: blur(10px);
}
.operator-card {
  color: var(--r3-text);
  max-height: min(680px, calc(100vh - 80px));
}
.operator-card h2 { color: var(--r3-text); }
.operator-card p,
.operator-card label { color: var(--r3-muted); }
.operator-form input {
  border: 1px solid var(--r3-border);
  background: var(--r3-inset);
  color: var(--r3-text);
}
.operator-form input:focus {
  border-color: color-mix(in srgb, var(--r3-glow) 62%, var(--r3-border));
  box-shadow: var(--r3-soft-ring);
}
.operator-close { color: var(--r3-muted); }
.operator-close:hover { color: var(--r3-text); }

/* Proxy/detail pages share the same Alta component language. */
.tool-page,
.tool-hero,
.instruction-panel,
.setup-list li,
.note-list li,
.tool-facts div {
  border-color: var(--r3-border) !important;
  background-color: color-mix(in srgb, var(--r3-card) 92%, transparent) !important;
  color: var(--r3-text) !important;
}
.tool-hero,
.instruction-panel {
  box-shadow: var(--r3-shadow) !important;
  border-radius: 20px !important;
}
.tool-hero h1,
.instruction-panel h2 { color: var(--r3-text) !important; }
.tool-hero p,
.setup-list p,
.note-list p,
.tool-facts span { color: var(--r3-muted) !important; }
.tool-facts code,
code {
  color: var(--r3-readable) !important;
  overflow-wrap: anywhere;
}

/* Light-mode polish */
[data-theme="light"] .ambient-bg canvas { opacity: .4; }
[data-theme="light"] .topbar,
[data-theme="light"] .greeting,
[data-theme="light"] .app-card,
[data-theme="light"] .cta,
[data-theme="light"] .panel,
[data-theme="light"] .docs-panel,
[data-theme="light"] .operator-card {
  box-shadow: var(--r3-shadow);
}
[data-theme="light"] .app-card::before { opacity: .26; }
[data-theme="light"] .app-card::after,
[data-theme="light"] .cta::after,
[data-theme="light"] .panel::after,
[data-theme="light"] .operator-card::after { opacity: .18; }
[data-theme="light"] .app-card,
[data-theme="light"] .cta,
[data-theme="light"] .panel,
[data-theme="light"] .docs-panel,
[data-theme="light"] .operator-card {
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,250,.94));
}
[data-theme="light"] .search input,
[data-theme="light"] .cta-side,
[data-theme="light"] .operator-form input,
[data-theme="light"] .doc-row,
[data-theme="light"] .news-item {
  background: #F8FAFC;
}
[data-theme="light"] .brand-logo { box-shadow: 0 12px 28px rgba(41, 98, 255, .18); }
[data-theme="light"] .status.issue,
[data-theme="light"] .status.checking,
[data-theme="light"] .app-health.down { color: var(--r3-warning); }

@keyframes r3-border-spin {
  to { --r3-angle: 360deg; }
}

@property --r3-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

.cta > *,
.cta-side,
.metrics,
.metric {
  min-width: 0;
}
.cta {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}
.cta-side {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  justify-content: space-between;
  gap: 14px;
}
.cta .metrics {
  width: 100%;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cta .metric {
  display: block;
  padding: 14px;
  text-align: left;
}
.cta .metric strong,
.cta .metric div {
  display: block;
  width: auto !important;
  min-width: 0;
}
.cta .metric div {
  white-space: normal;
}
.cta .launch {
  width: 100%;
  justify-content: center;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .cta { grid-template-columns: 1fr; }
  .cta-side { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; }
}

@media (max-width: 820px) {
  .topbar {
    top: 8px;
    width: calc(100% - 16px);
    height: auto;
    padding: 10px;
    gap: 8px;
  }
  main {
    width: calc(100% - 16px);
    padding-top: 116px;
  }
  .brand { min-width: 0; }
  .search { order: 5; flex-basis: 100%; max-width: none; }
  .status { display: none; }
  .greeting,
  .greeting-section { min-height: 0; }
  .greeting {
    padding: 22px;
    flex-direction: column;
  }
  .greeting::before { position: static; display: block; margin-bottom: 16px; }
  .greeting .date { margin-top: 0; }
  .greeting h1 { font-size: clamp(34px, 11vw, 52px); }
  .clock { min-width: 0; width: 100%; }
  .app-grid { grid-template-columns: 1fr !important; }
  .app-card { min-height: 210px; }
  .cta-side { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .app-card::after,
  .cta::after,
  .panel::after,
  .operator-card::after {
    animation: none;
  }
  .app-card:hover,
  .doc-row:hover,
  .news-item:hover {
    transform: none;
  }
}
