/* Shared visual primitives for every K2TP surface. Page-specific styles own
   layout; this file owns the terminal language they all speak. */
:root{
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px; --radius-sm:6px; --radius:10px;
}

html{background:#000b13;}
button,input,select,textarea{font-family:inherit;}
button, .btn, .chip, .tab-btn, .preset-btn, .pill, .badge, .tag, .k-badge, .w-badge, .dr-badge, a.btn, a.chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  vertical-align: middle;
  line-height: 1;
  box-sizing: border-box;
}

::selection{background:rgba(52, 108, 232, .22);color:var(--text,#fafcfd);}
:focus-visible{outline:2px solid var(--accent,#346ce8);outline-offset:2px;}

button,input,select,textarea{transition:border-color .14s ease,background-color .14s ease,color .14s ease;}
input::placeholder,textarea::placeholder{color:var(--text-dim,#7f8b92);opacity:.85;}
input:focus,select:focus,textarea:focus{border-color:var(--accent,#346ce8)!important;outline:none;}

/* Shared panel language. Individual page grids decide their own sizing. */
.panel,.card,.gex-panel,.kpi,.tw,.rep,.feat,.coffee,.is-chart-card,.is-snap-card,.is-adv-card,.ib-panel,.rot-chart-card,.dr-card,.ue-card,.d2-pulse-card,.wheel-card-cycle,.wheel-card-add,.wheel-card-active,.wheel-card-ideas,.wheel-card-cc,.sc-card,.sx-card{
  border-color:var(--line, var(--k-border, #0e3752));
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.panel:hover,.card:hover,.gex-panel:hover,.kpi:hover,.tw:hover,.rep:hover,.feat:hover,.coffee:hover,.is-chart-card:hover,.is-snap-card:hover,.is-adv-card:hover,.ib-panel:hover,.rot-chart-card:hover,.dr-card:hover,.ue-card:hover,.d2-pulse-card:hover,.wheel-card-cycle:hover,.wheel-card-add:hover,.wheel-card-active:hover,.wheel-card-ideas:hover,.wheel-card-cc:hover,.sc-card:hover,.sx-card:hover{
  transform: translateY(-2px);
  border-color: var(--accent, #346ce8) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45), 0 0 12px rgba(52, 108, 232, 0.22);
}

/* Keep data tables dense, quiet and readable. */
table{font-variant-numeric:tabular-nums;}
thead th{color:var(--text-dim,#7f8b92);letter-spacing:.055em;}
tbody tr{border-color:var(--line-soft, var(--k-border-soft, #07253a));}
tbody tr:hover{background:var(--k-hover, var(--surface-hover, #09273c));}

/* Market Status: only market figures/regimes use these semantic colors. */
.up,.positive,.success{color:var(--k-up,#11a68e);}
.down,.negative,.danger{color:var(--k-down,#ed2939);}

/* The ONE "back to Home" control every non-Dashboard page shows — same
   markup, same class, same label everywhere (base.html's minimal header,
   admin.html, explorer.html, library.html/library-en.html) so the control
   renders pixel-identically no matter which template produced the page. */
.home-return-btn{display:inline-flex;align-items:center;justify-content:center;min-height:28px;
  padding:5px 9px;border:1px solid var(--link-border, rgba(52, 108, 232, .35));border-radius:6px;
  background:var(--link-bg, rgba(52, 108, 232, .10));color:var(--blue,#346ce8);font-size:var(--fs-sm,13px);
  font-weight:700;text-decoration:none;white-space:nowrap;letter-spacing:.02em;
  /* Fixed, not inherited — body line-height differs per page (e.g.
     library.html's own body{line-height:1.75} vs 1.6 elsewhere), which
     silently rendered this control 1-2px taller on Library than
     everywhere else despite every other property matching exactly. */
  line-height:1;box-sizing:border-box;}
.home-return-btn:hover{background:rgba(52, 108, 232, .22);color:var(--text,#fafcfd);}
