/* =============================================================================
   JPTXAI OFFICIAL BRAND THEME
   Official identity: Jptxai — A JPTUSA Company
   Brand UI: Midnight Black / Deep Navy / JPT Blue / Electric Cyan
   Red is intentionally reserved for danger, rejection and critical conditions.
   ============================================================================= */

:root {
  --jptxai-black: #000000;
  --jptxai-navy: #07152D;
  --jptxai-blue: #1F6CFF;
  --jptxai-cyan: #08BDF7;
  --jptxai-white: #FFFFFF;
  --jptxai-gray: #A8B0BC;
  --jptxai-gradient: linear-gradient(90deg,#355DFF 0%,#1F6CFF 48%,#08BDF7 100%);

  --jptxai-bg: #F4F7FC;
  --jptxai-panel: #FFFFFF;
  --jptxai-border: #DFE6F0;
  --jptxai-text: #07152D;
  --jptxai-muted: #667085;

  --jptxai-danger: #B42318;
  --jptxai-danger-bg: #FFF1F0;
  --jptxai-warning: #A15C00;
  --jptxai-warning-bg: #FFF8E6;
  --jptxai-success: #147A55;
  --jptxai-success-bg: #EAF8F1;

  /* Compatibility with the existing operations stylesheet */
  --ops-burgundy: #1F6CFF;
  --ops-red: #1F6CFF;
}

/* ---------- Typography ---------- */

html,
body,
button,
input,
select,
textarea {
  font-family: Inter, "Segoe UI", Arial, sans-serif !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.ops-title h1,
.hero h1 {
  font-family: Sora, Inter, "Segoe UI", Arial, sans-serif !important;
  color: var(--jptxai-navy);
  letter-spacing: -0.02em;
}

body {
  color: var(--jptxai-text);
  background: var(--jptxai-bg);
}

a {
  color: var(--jptxai-blue);
}

a:hover {
  color: #1554D7;
}

/* ---------- Official logo treatment ---------- */

.brand.jptxai-brand,
.ops-brand.jptxai-ops-brand {
  text-decoration: none !important;
}

.brand.jptxai-brand img {
  display: block;
  width: auto;
  max-width: 255px;
  height: 52px;
  object-fit: contain;
}

.brand-login.jptxai-brand img {
  width: min(310px, 82vw);
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.ops-brand.jptxai-ops-brand {
  display: flex;
  align-items: center;
  min-width: 185px;
}

.ops-brand.jptxai-ops-brand img {
  display: block;
  width: auto;
  max-width: 205px;
  height: 42px;
  object-fit: contain;
}

/* ---------- Public header ---------- */

.utility-bar {
  background: var(--jptxai-navy) !important;
  color: var(--jptxai-white) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
}

.public-top {
  background: rgba(255,255,255,.97) !important;
  border-bottom: 1px solid var(--jptxai-border) !important;
  box-shadow: 0 8px 25px rgba(7,21,45,.07);
}

.public-nav a {
  color: var(--jptxai-navy) !important;
  font-weight: 700;
}

.public-nav a:hover {
  color: var(--jptxai-blue) !important;
}

/* ---------- Brand accents ---------- */

.eyebrow,
.text-link,
.panel-head a,
.ops-panel-head a {
  color: var(--jptxai-blue) !important;
}

.eyebrow {
  letter-spacing: .09em;
  font-weight: 800;
}

.service-icon {
  color: var(--jptxai-blue) !important;
}

/* ---------- Buttons ---------- */

.btn {
  border-color: #CCD5E3 !important;
  color: var(--jptxai-navy);
  background: #FFFFFF;
  border-radius: 9px;
  font-weight: 750;
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    border-color .15s ease,
    background .15s ease;
}

.btn:hover {
  border-color: var(--jptxai-blue) !important;
  color: var(--jptxai-blue) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(31,108,255,.12);
}

.btn.primary,
button.primary {
  color: #FFFFFF !important;
  border-color: transparent !important;
  background: var(--jptxai-gradient) !important;
  box-shadow: 0 8px 20px rgba(31,108,255,.20);
}

.btn.primary:hover,
button.primary:hover {
  color: #FFFFFF !important;
  filter: brightness(.98);
  box-shadow: 0 10px 25px rgba(31,108,255,.28);
}

.btn.dark {
  color: #FFFFFF !important;
  background: var(--jptxai-navy) !important;
  border-color: var(--jptxai-navy) !important;
}

.btn.dark:hover {
  color: #FFFFFF !important;
  background: #0C2143 !important;
}

/* Safety / danger stays red */

.danger-btn,
.btn.danger-btn {
  color: #FFFFFF !important;
  background: var(--jptxai-danger) !important;
  border-color: var(--jptxai-danger) !important;
}

.danger-btn:hover,
.btn.danger-btn:hover {
  color: #FFFFFF !important;
  background: #912018 !important;
}

/* ---------- Forms ---------- */

input,
select,
textarea {
  color: var(--jptxai-navy);
  background: #FFFFFF;
  border-color: #CBD5E1 !important;
  border-radius: 8px;
}

input:focus,
select:focus,
textarea:focus {
  outline: none !important;
  border-color: var(--jptxai-blue) !important;
  box-shadow: 0 0 0 3px rgba(31,108,255,.12) !important;
}

/* ---------- Public / login panels ---------- */

.card,
.panel,
.login-card {
  background: #FFFFFF;
  border-color: var(--jptxai-border) !important;
  box-shadow: 0 12px 35px rgba(7,21,45,.07);
}

.login-wrap {
  background:
    radial-gradient(circle at 20% 20%, rgba(31,108,255,.10), transparent 32%),
    radial-gradient(circle at 85% 80%, rgba(8,189,247,.08), transparent 28%),
    var(--jptxai-bg) !important;
}

.login-card {
  border-top: 3px solid var(--jptxai-blue) !important;
}

/* ---------- Operations shell ---------- */

.ops-top {
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid var(--jptxai-border) !important;
  box-shadow: 0 4px 18px rgba(7,21,45,.06);
}

.ops-search input {
  background: #F7F9FC !important;
  border-color: #DBE3ED !important;
}

.ops-icon-btn,
.profile-chip {
  background: #FFFFFF !important;
  color: var(--jptxai-navy) !important;
  border-color: var(--jptxai-border) !important;
}

.ops-icon-btn:hover,
.profile-chip:hover {
  border-color: var(--jptxai-blue) !important;
  color: var(--jptxai-blue) !important;
}

/*
   Existing builds have used different sidebar class names.
   These selectors intentionally support all current shell variants.
*/
.ops-side,
.ops-sidebar,
.ops-nav,
aside.ops-side,
aside.ops-sidebar {
  background:
    linear-gradient(180deg,#07152D 0%,#091A37 55%,#07152D 100%) !important;
  color: #FFFFFF !important;
}

.ops-side a,
.ops-sidebar a,
.ops-nav a {
  color: rgba(255,255,255,.79) !important;
  border-left-color: transparent !important;
}

.ops-side a:hover,
.ops-sidebar a:hover,
.ops-nav a:hover {
  color: #FFFFFF !important;
  background: rgba(31,108,255,.16) !important;
}

.ops-side a.active,
.ops-sidebar a.active,
.ops-nav a.active {
  color: #FFFFFF !important;
  background: linear-gradient(90deg,rgba(53,93,255,.92),rgba(8,189,247,.72)) !important;
  box-shadow: inset 3px 0 0 #08BDF7;
}

.side-sep {
  border-color: rgba(255,255,255,.14) !important;
}

/* ---------- Operations titles / cards ---------- */

.ops-title h1 {
  color: var(--jptxai-navy) !important;
}

.ops-title p {
  color: var(--jptxai-muted);
}

.ops-panel,
.ops-kpi,
.job-card,
.admin-grid > a,
.pilot-card,
.money-kpis > div {
  border-color: var(--jptxai-border) !important;
  background: #FFFFFF !important;
  box-shadow: 0 7px 22px rgba(7,21,45,.055);
}

.ops-panel-head {
  color: var(--jptxai-navy) !important;
  background: linear-gradient(180deg,#FFFFFF,#FAFCFF) !important;
  border-bottom-color: var(--jptxai-border) !important;
}

.ops-kpi {
  border-top: 3px solid var(--jptxai-blue) !important;
}

.ops-kpi small,
.money-kpis small {
  color: #667085 !important;
}

.ops-kpi b,
.money-kpis b {
  color: var(--jptxai-navy);
}

.admin-grid > a:hover,
.ops-kpi:hover,
.job-card:hover,
.pilot-card:hover {
  border-color: rgba(31,108,255,.48) !important;
  box-shadow: 0 10px 28px rgba(31,108,255,.10);
}

/* ---------- Tables ---------- */

.ops-table thead th {
  color: #475467 !important;
  background: #F7F9FC !important;
  border-color: var(--jptxai-border) !important;
}

.ops-table td {
  border-color: #E7ECF3 !important;
}

.ops-table tbody tr:hover,
.click-row:hover {
  background: #F6F9FF !important;
}

/* ---------- Information status ---------- */

.pill.info,
.badge {
  color: #1456C8 !important;
  background: #EAF1FF !important;
  border-color: #C7D8FF !important;
}

.pill.ok,
.pill.approved {
  color: var(--jptxai-success) !important;
  background: var(--jptxai-success-bg) !important;
  border-color: #BFE8D6 !important;
}

.pill.warn {
  color: var(--jptxai-warning) !important;
  background: var(--jptxai-warning-bg) !important;
  border-color: #F3D59A !important;
}

/* Actual critical/error states stay red */

.pill.danger,
.ops-alert.danger,
.notice.dangerbox,
.dangerbox,
.ops-kpi.danger {
  color: var(--jptxai-danger) !important;
}

.pill.danger {
  background: var(--jptxai-danger-bg) !important;
  border-color: #F4B9B4 !important;
}

.ops-alert.danger,
.notice.dangerbox,
.dangerbox {
  background: var(--jptxai-danger-bg) !important;
  border-color: #F0AAA4 !important;
}

.ops-kpi.danger {
  border-top-color: var(--jptxai-danger) !important;
}

.ops-kpi.warn {
  border-top-color: #D78500 !important;
}

/* ---------- Notifications / notices ---------- */

.notice:not(.dangerbox),
.ops-alert:not(.danger) {
  border-color: #C8D8F4 !important;
  background: #F2F7FF !important;
}

/* ---------- Footer ---------- */

.footer {
  background: var(--jptxai-navy) !important;
  color: rgba(255,255,255,.82) !important;
  border-top-color: rgba(255,255,255,.10) !important;
}

/* ---------- Small visual polish ---------- */

::selection {
  background: rgba(31,108,255,.22);
  color: var(--jptxai-navy);
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-thumb {
  background: #C4CEDD;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: #9DABC0;
}

@media (max-width: 760px) {
  .brand.jptxai-brand img {
    height: 42px;
    max-width: 205px;
  }

  .ops-brand.jptxai-ops-brand img {
    height: 35px;
    max-width: 165px;
  }

  .ops-top {
    backdrop-filter: none;
  }
}

@media print {
  body {
    background: #FFFFFF !important;
    color: #000000 !important;
  }

  .ops-side,
  .ops-sidebar,
  .ops-nav,
  .ops-top {
    box-shadow: none !important;
  }

  .ops-panel,
  .card,
  .panel,
  .login-card,
  .ops-kpi {
    box-shadow: none !important;
  }
}


/* JPTXAI-COMPLETE-V2
   Complete public + operations presentation normalization.
   Danger/error colors intentionally remain semantic red.
*/

/* ========================================================================
   GLOBAL
   ======================================================================== */

html {
  background:#F4F7FC;
}

body {
  background:#F4F7FC !important;
  color:#07152D !important;
}

main {
  overflow:hidden;
}

a {
  transition:
    color .16s ease,
    background .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}


/* ========================================================================
   PUBLIC SITE
   ======================================================================== */

.utility-bar {
  background:#07152D !important;
  color:#FFFFFF !important;
  min-height:30px;
  font-size:12px;
  letter-spacing:.015em;
}

.utility-bar span::before {
  color:#08BDF7 !important;
}

.public-top {
  background:rgba(255,255,255,.985) !important;
  border-bottom:1px solid #E1E7F0 !important;
  box-shadow:0 5px 24px rgba(7,21,45,.07) !important;
}

.public-nav a {
  color:#07152D !important;
}

.public-nav a:hover {
  color:#1F6CFF !important;
}


/* Hero */

.hero {
  position:relative;
  isolation:isolate;
  border-bottom:0 !important;
}

.hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.11) 0%,
      rgba(255,255,255,.04) 42%,
      rgba(31,108,255,.035) 70%,
      rgba(8,189,247,.075) 100%
    );
}

.hero-copy {
  position:relative;
  z-index:1;
}

.hero .eyebrow {
  color:#1F6CFF !important;
}

.hero h1 {
  color:#07152D !important;
}

.hero-copy > p:not(.eyebrow) {
  color:#29384F !important;
}

.quick .btn.dark {
  background:#07152D !important;
  border-color:#07152D !important;
  color:#FFFFFF !important;
}

.quick .btn.dark:hover {
  background:#10284D !important;
  border-color:#10284D !important;
  color:#FFFFFF !important;
}


/* THIS IS THE OLD RED STRIP SEEN IN THE SCREENSHOT */

.trust {
  position:relative;
  background:
    linear-gradient(
      100deg,
      #355DFF 0%,
      #1F6CFF 48%,
      #08BDF7 100%
    ) !important;
  color:#FFFFFF !important;
  border:0 !important;
  box-shadow:
    0 8px 24px rgba(31,108,255,.18),
    inset 0 1px 0 rgba(255,255,255,.18);
}

.trust > div {
  color:#FFFFFF !important;
  border-color:rgba(255,255,255,.25) !important;
  text-shadow:0 1px 2px rgba(7,21,45,.18);
}


/* Sections */

.section {
  background:#F4F7FC;
}

.section .eyebrow {
  color:#1F6CFF !important;
}

.section h2 {
  color:#07152D !important;
}

.services .card,
.card.service {
  position:relative;
  border:1px solid #DDE5F0 !important;
  background:#FFFFFF !important;
  box-shadow:
    0 6px 22px rgba(7,21,45,.055) !important;
  overflow:hidden;
}

.services .card::before,
.card.service::before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  background:linear-gradient(90deg,#355DFF,#1F6CFF,#08BDF7);
  opacity:0;
  transition:opacity .18s ease;
}

.services .card:hover::before,
.card.service:hover::before {
  opacity:1;
}

.services .card:hover,
.card.service:hover {
  transform:translateY(-3px);
  border-color:rgba(31,108,255,.38) !important;
  box-shadow:
    0 12px 30px rgba(31,108,255,.11) !important;
}

.service-icon {
  color:#1F6CFF !important;
}


/* Public footer */

.footer {
  background:#07152D !important;
  border-top:3px solid #1F6CFF !important;
  color:rgba(255,255,255,.78) !important;
}

.footer b {
  color:#FFFFFF !important;
}

.footer span:last-child {
  color:#08BDF7 !important;
}


/* ========================================================================
   LOGIN / TRACKING / REQUEST SERVICE
   ======================================================================== */

.login-wrap {
  background:
    radial-gradient(
      circle at 15% 15%,
      rgba(31,108,255,.11),
      transparent 32%
    ),
    radial-gradient(
      circle at 86% 82%,
      rgba(8,189,247,.09),
      transparent 28%
    ),
    #F4F7FC !important;
}

.login-card {
  background:#FFFFFF !important;
  border:1px solid #DDE5F0 !important;
  border-top:3px solid #1F6CFF !important;
  box-shadow:
    0 20px 55px rgba(7,21,45,.10) !important;
}

.login-card h1,
.login-card h2,
.login-card h3 {
  color:#07152D !important;
}


/* ========================================================================
   FORMS
   ======================================================================== */

input,
select,
textarea {
  background:#FFFFFF !important;
  border-color:#CBD5E1 !important;
  color:#07152D !important;
}

input:hover,
select:hover,
textarea:hover {
  border-color:#AAB8CB !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color:#1F6CFF !important;
  box-shadow:0 0 0 3px rgba(31,108,255,.12) !important;
}


/* ========================================================================
   BUTTON SYSTEM
   ======================================================================== */

.btn.primary,
button.primary {
  background:
    linear-gradient(
      100deg,
      #355DFF 0%,
      #1F6CFF 52%,
      #08BDF7 100%
    ) !important;
  color:#FFFFFF !important;
  border-color:transparent !important;
}

.btn.primary:hover,
button.primary:hover {
  color:#FFFFFF !important;
  box-shadow:
    0 10px 25px rgba(31,108,255,.26) !important;
}

.btn:not(.primary):not(.danger-btn):not(.dark) {
  background:#FFFFFF;
  border-color:#CDD7E5 !important;
  color:#07152D;
}

.btn:not(.primary):not(.danger-btn):not(.dark):hover {
  border-color:#1F6CFF !important;
  color:#1F6CFF !important;
}


/* ========================================================================
   INTERNAL OPERATIONS / ADMIN
   ======================================================================== */

.ops-body {
  background:#F4F7FC !important;
}

.ops-top {
  background:#FFFFFF !important;
  border-bottom:1px solid #DDE5F0 !important;
  box-shadow:0 5px 22px rgba(7,21,45,.06) !important;
}

.ops-main {
  background:#F4F7FC !important;
}

.ops-side {
  background:
    linear-gradient(
      180deg,
      #07152D 0%,
      #091A37 55%,
      #07152D 100%
    ) !important;
}

.ops-side a {
  color:rgba(255,255,255,.76) !important;
}

.ops-side a:hover {
  color:#FFFFFF !important;
  background:rgba(31,108,255,.16) !important;
}

.ops-side a.active {
  color:#FFFFFF !important;
  background:
    linear-gradient(
      90deg,
      rgba(53,93,255,.96),
      rgba(8,189,247,.74)
    ) !important;
  box-shadow:
    inset 3px 0 0 #08BDF7,
    0 6px 20px rgba(0,0,0,.12);
}

.side-sep {
  background:rgba(255,255,255,.13) !important;
}

.ops-title h1 {
  color:#07152D !important;
}

.ops-title .eyebrow {
  color:#1F6CFF !important;
}


/* Admin / operational cards */

.ops-panel,
.ops-kpi,
.admin-grid > a,
.job-card,
.pilot-card,
.money-kpis > div,
.secure-release-card,
.ops-access-card {
  background:#FFFFFF !important;
  border-color:#DDE5F0 !important;
  box-shadow:
    0 7px 22px rgba(7,21,45,.055) !important;
}

.ops-panel-head {
  background:
    linear-gradient(180deg,#FFFFFF,#F9FBFF) !important;
  border-bottom-color:#E2E8F0 !important;
  color:#07152D !important;
}

.admin-grid > a {
  position:relative;
  overflow:hidden;
}

.admin-grid > a::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:
    linear-gradient(180deg,#355DFF,#08BDF7);
  opacity:.75;
}

.admin-grid > a:hover {
  border-color:rgba(31,108,255,.42) !important;
  box-shadow:
    0 12px 28px rgba(31,108,255,.10) !important;
  transform:translateY(-2px);
}


/* KPI */

.ops-kpi:not(.danger):not(.warn) {
  border-top:3px solid #1F6CFF !important;
}


/* Tables */

.ops-table th {
  background:#F7F9FC !important;
  color:#475467 !important;
}

.ops-table td,
.ops-table th {
  border-color:#E5EAF1 !important;
}

.ops-table tbody tr:hover {
  background:#F6F9FF !important;
}


/* ========================================================================
   STATUS COLORS
   Corporate blue ≠ operational status.
   ======================================================================== */

.pill.info,
.badge {
  color:#1456C8 !important;
  background:#EAF1FF !important;
  border-color:#C8D9FF !important;
}

.pill.ok,
.pill.approved {
  color:#147A55 !important;
  background:#EAF8F1 !important;
  border-color:#BDE5D3 !important;
}

.pill.warn {
  color:#965800 !important;
  background:#FFF6E3 !important;
  border-color:#F0D190 !important;
}

/* Real failures / danger remain red */

.pill.danger,
.pill.rejected {
  color:#A7251B !important;
  background:#FFF0EF !important;
  border-color:#F1B5B0 !important;
}

.danger-btn,
.btn.danger-btn {
  background:#B42318 !important;
  border-color:#B42318 !important;
  color:#FFFFFF !important;
}

.ops-alert.danger,
.notice.dangerbox,
.dangerbox {
  background:#FFF1F0 !important;
  border-color:#F1AAA4 !important;
  color:#8E1C14 !important;
}

.ops-kpi.danger {
  border-top-color:#B42318 !important;
}

.ops-kpi.warn {
  border-top-color:#D27B00 !important;
}


/* ========================================================================
   NOTICES
   ======================================================================== */

.notice:not(.dangerbox),
.ops-alert:not(.danger) {
  background:#F2F7FF !important;
  border-color:#C9D9F5 !important;
}


/* ========================================================================
   DRAWERS / MODALS
   ======================================================================== */

.modal-card,
.quick-drawer,
.drawer-card {
  background:#FFFFFF !important;
  border-color:#DDE5F0 !important;
  box-shadow:
    0 20px 55px rgba(7,21,45,.18) !important;
}


/* ========================================================================
   MOBILE
   ======================================================================== */

@media(max-width:820px){

  .trust {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .public-top {
    background:#FFFFFF !important;
  }

  .ops-side {
    background:#07152D !important;
  }

  .services .card:hover,
  .card.service:hover,
  .admin-grid > a:hover {
    transform:none;
  }
}

@media(max-width:520px){

  .trust {
    grid-template-columns:1fr !important;
  }

  .trust > div {
    border-bottom:1px solid rgba(255,255,255,.17);
  }
}


/* ========================================================================
   PRINT
   ======================================================================== */

@media print {

  body,
  .ops-body,
  .ops-main,
  .section {
    background:#FFFFFF !important;
  }

  .ops-panel,
  .ops-kpi,
  .card,
  .panel {
    box-shadow:none !important;
  }
}

/* END-JPTXAI-COMPLETE-V2 */


/* JPTXAI TRACK TEMPLATE REGEN v1 */

.jptxai-track-page {
  min-height:calc(100vh - 1px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 20px;
  background:
    radial-gradient(circle at 15% 15%,rgba(31,108,255,.11),transparent 34%),
    radial-gradient(circle at 88% 82%,rgba(8,189,247,.10),transparent 30%),
    linear-gradient(180deg,#F8FAFD 0%,#F2F6FC 100%) !important;
}

.jptxai-track-card {
  width:min(470px,100%);
  padding:34px 36px 30px !important;
  border:1px solid #DCE4EF !important;
  border-top:4px solid #1F6CFF !important;
  border-radius:18px !important;
  background:#FFFFFF !important;
  box-shadow:0 24px 60px rgba(7,21,45,.13) !important;
}

.jptxai-track-logo {
  display:block;
  width:min(310px,88%);
  margin:0 auto 28px;
}

.jptxai-track-logo img {
  display:block;
  width:100%;
  height:auto;
}

.jptxai-track-kicker {
  margin-bottom:8px;
  color:#1F6CFF;
  font-size:11px;
  font-weight:850;
  letter-spacing:.13em;
  text-align:center;
}

.jptxai-track-card h2 {
  margin:0 0 8px;
  color:#07152D !important;
  font-size:28px;
  text-align:center;
}

.jptxai-track-intro {
  margin:0 auto 26px;
  max-width:360px;
  color:#667085;
  line-height:1.55;
  text-align:center;
}

.jptxai-track-card .field {
  margin-bottom:16px;
}

.jptxai-track-card .field label {
  color:#07152D;
  font-weight:750;
}

.jptxai-track-card input {
  min-height:48px;
}

.jptxai-track-card .btn.primary {
  min-height:50px;
  margin-top:6px;
  font-weight:850;
  letter-spacing:.02em;
}

.jptxai-track-security {
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-top:22px;
  padding:13px 15px;
  border:1px solid #D6E3FB;
  border-radius:10px;
  background:#F4F8FF;
}

.jptxai-track-security b {
  color:#1456C8;
  font-size:12px;
}

.jptxai-track-security span {
  color:#667085;
  font-size:11px;
}

.jptxai-track-brandline {
  margin-top:20px;
  color:#667085;
  font-size:9px;
  font-weight:750;
  letter-spacing:.12em;
  text-align:center;
}

@media(max-width:520px) {
  .jptxai-track-page {
    padding:20px 12px;
  }

  .jptxai-track-card {
    padding:27px 22px 24px !important;
  }

  .jptxai-track-logo {
    width:min(275px,90%);
  }
}

/* END JPTXAI TRACK TEMPLATE REGEN v1 */

/* JPTXAI-ANALYTICS-V2-START */
.analytics-hero{align-items:flex-start;gap:20px}
.analytics-hero h1{letter-spacing:-.025em}
.analytics-hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.analytics-tabs{display:flex;gap:8px;overflow:auto;padding:4px 0 14px;margin:0 0 5px;scrollbar-width:thin}
.analytics-tabs a{flex:0 0 auto;text-decoration:none;padding:9px 13px;border-radius:999px;border:1px solid rgba(31,108,255,.2);background:rgba(7,21,45,.035);font-size:12px;font-weight:800;letter-spacing:.035em;color:var(--jptxai-navy,#07152D);white-space:nowrap}
.analytics-tabs a:hover{border-color:var(--jptxai-blue,#1F6CFF);background:rgba(31,108,255,.06)}
.analytics-tabs a.active{color:#fff;border-color:transparent;background:linear-gradient(90deg,#355DFF 0%,#1F6CFF 52%,#08BDF7 100%);box-shadow:0 8px 22px rgba(31,108,255,.22)}
.analytics-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 16px}
.analytics-kpi{position:relative;overflow:hidden;min-height:112px;padding:16px;border:1px solid rgba(7,21,45,.09);border-radius:17px;background:linear-gradient(145deg,#fff 0%,rgba(31,108,255,.025) 100%);box-shadow:0 8px 26px rgba(7,21,45,.06)}
.analytics-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--jptxai-blue,#1F6CFF)}
.analytics-kpi.ok:before{background:#15a36d}.analytics-kpi.warn:before{background:#e2a319}.analytics-kpi.danger:before{background:#cf3047}
.analytics-kpi small{display:block;color:#627083;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
.analytics-kpi strong{display:block;color:var(--jptxai-navy,#07152D);font-size:25px;line-height:1.1;overflow-wrap:anywhere}
.analytics-kpi span{display:block;color:#778395;font-size:11px;line-height:1.35;margin-top:7px}
.analytics-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.analytics-section-grid>.ops-panel{margin:0;min-width:0}
.analytics-wide-panel{margin-bottom:14px}
.analytics-bars{display:flex;flex-direction:column;gap:11px}
.analytics-bar-row{min-width:0}.analytics-bar-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:5px}.analytics-bar-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#48566a}.analytics-bar-meta b{color:var(--jptxai-navy,#07152D);font-variant-numeric:tabular-nums}
.analytics-bar-track{height:8px;border-radius:999px;background:rgba(7,21,45,.07);overflow:hidden}.analytics-bar-track i{display:block;height:100%;min-width:2px;border-radius:inherit;background:linear-gradient(90deg,#355DFF 0%,#1F6CFF 60%,#08BDF7 100%)}
.analytics-table-wrap{max-height:560px}.analytics-table{font-size:12px}.analytics-table td,.analytics-table th{vertical-align:top}.analytics-table tbody tr.click-row{cursor:pointer}.analytics-table tbody tr.click-row:hover{background:rgba(31,108,255,.045)}
.analytics-filter-panel{margin-bottom:14px}.analytics-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;align-items:end}.analytics-filter-grid label{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#657286}.analytics-filter-grid input,.analytics-filter-grid select{width:100%;margin-top:5px}
.analytics-filter-grid .btn{height:42px}
.analytics-integrity{padding:14px 16px;border:1px solid rgba(31,108,255,.16);border-left:4px solid var(--jptxai-cyan,#08BDF7);border-radius:14px;background:linear-gradient(90deg,rgba(31,108,255,.055),rgba(8,189,247,.025));margin:14px 0;color:#4d5b6f}.analytics-integrity b{color:var(--jptxai-navy,#07152D)}.analytics-integrity p{margin:5px 0 0;line-height:1.5;font-size:12px}
.analytics-warning-panel{border-color:rgba(226,163,25,.3)}.analytics-warning-panel ul{margin:8px 0 0;padding-left:20px}.analytics-warning-panel li{font-size:11px;margin:5px 0;color:#657286;overflow-wrap:anywhere}
.analytics-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px}.analytics-bottom-grid>.ops-panel{margin:0}
@media(max-width:1350px){.analytics-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:980px){.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-section-grid,.analytics-bottom-grid{grid-template-columns:1fr}.analytics-filter-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.analytics-hero-actions{justify-content:flex-start}}
@media(max-width:560px){.analytics-kpis{grid-template-columns:1fr 1fr;gap:8px}.analytics-kpi{padding:13px;min-height:100px}.analytics-kpi strong{font-size:20px}.analytics-filter-grid{grid-template-columns:1fr}.analytics-tabs{margin-left:-2px;margin-right:-2px}.analytics-hero-actions{width:100%}.analytics-hero-actions .btn{flex:1}.analytics-section-grid{gap:10px}}
/* JPTXAI-ANALYTICS-V2-END */
