:root{
  --public-prism-light-base:#f4f9fc;
  --public-prism-light-deep:#edf5fa;
  --public-prism-dark-base:#06101a;
  --public-prism-dark-deep:#0c1d2c;
  --public-star-cyan:#8ef1ff;
  --public-star-teal:#01dbf1;
  --public-star-deep:#006e87;
}

/* overflow-x:hidden on body breaks position:fixed — put it on html instead */
html:has(body.public-prism){
  overflow-x:hidden;
}

body.public-prism{
  min-height:100vh;
  background:var(--public-prism-dark-base) !important;
  color:#e8f6fb;
  /* Override landing.css CSS vars for dark theme */
  --text:#e8f6fb;
  --muted:#b8dcea;
  --muted-strong:#d4eef6;
  --bg:var(--public-prism-dark-base);
  --surface:rgba(10,24,38,.78);
  --surface-soft:rgba(7,17,27,.62);
  --border:rgba(142,241,255,.14);
  --border-strong:rgba(142,241,255,.24);
  --shadow:0 18px 46px rgba(0,0,0,.38);
  --shadow-soft:0 10px 24px rgba(0,0,0,.26);
}

body.public-prism.messaging-page{
  background:linear-gradient(180deg, var(--public-prism-dark-base) 0%, var(--public-prism-dark-deep) 100%) !important;
}

/* Messaging page topbar dark override */
body.public-prism .messaging-topbar{
  background:linear-gradient(180deg, rgba(6,16,26,.94), rgba(9,20,32,.88)) !important;
  border-bottom-color:rgba(142,241,255,.12) !important;
  backdrop-filter:saturate(130%) blur(14px);
  -webkit-backdrop-filter:saturate(130%) blur(14px);
}

body.public-prism .messaging-brand{
  color:#daeef5 !important;
}

body.public-prism .messaging-brand span,
body.public-prism .messaging-brand strong{
  color:#e8f8fc !important;
}

body.public-prism.public-auth-dark{
  background:linear-gradient(180deg, #050d16 0%, #08172a 100%);
  color:#ecf8fb;
}

body.public-prism > *{
  position:relative;
  z-index:1;
}

body.public-prism > .public-prism-stage{
  position:fixed;
  z-index:0;
  pointer-events:none;
}

/* cookie panel must escape the stacking context */
body.public-prism > .cookie{
  position:fixed !important;
  bottom:18px !important;
  left:18px !important;
  right:auto !important;
  top:auto !important;
  z-index:100 !important;
  transform:none !important;
}

/* scroll-to-top must also escape the stacking context */
body.public-prism > .public-scroll-top{
  position:fixed !important;
  bottom:22px !important;
  right:22px !important;
  left:auto !important;
  top:auto !important;
  z-index:100 !important;
}

/* cardnav backdrop must also escape the stacking context */
body.public-prism > .cardnav-backdrop{
  position:fixed !important;
  inset:0 !important;
  z-index:18 !important;
}

/* topbar/header must also escape the stacking context */
body.public-prism > header,
body.public-prism > .topbar,
body.public-prism > .messaging-topbar{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  z-index:20 !important;
  overflow:visible !important;
}

body.public-prism main,
body.public-prism .hero,
body.public-prism .section,
body.public-prism .product-hero,
body.public-prism .product-section,
body.public-prism .messaging-main,
body.public-prism .messaging-hero,
body.public-prism .footer{
  background:transparent !important;
}

body.public-prism .showcase-panel,
body.public-prism .featured-panel-shell,
body.public-prism .contact-cta,
body.public-prism .mini-product-card,
body.public-prism .info-card,
body.public-prism .principle-card,
body.public-prism .showcase-stat,
body.public-prism .featured-panel-note,
body.public-prism .pill,
body.public-prism .platform-badge,
body.public-prism .product-showcase,
body.public-prism .product-side-note,
body.public-prism .product-contact-card,
body.public-prism .product-experience-card,
body.public-prism .product-summary-card,
body.public-prism .product-status-card,
body.public-prism .messaging-hero-copy,
body.public-prism .messaging-panel,
body.public-prism .messaging-banner,
body.public-prism .messaging-summary-card,
body.public-prism .legal-container,
body.public-prism .demo-container,
body.public-prism .login-box,
body.public-prism .platform-demo-card{
  /* No backdrop-filter — it creates compositing layer boundaries visible as horizontal lines */
}

body.public-prism .showcase-panel,
body.public-prism .featured-panel-shell,
body.public-prism .contact-cta,
body.public-prism .product-showcase,
body.public-prism .product-side-note,
body.public-prism .product-contact-card,
body.public-prism .product-experience-card,
body.public-prism .product-summary-card,
body.public-prism .messaging-hero-copy,
body.public-prism .messaging-panel,
body.public-prism .messaging-banner,
body.public-prism .legal-container,
body.public-prism .demo-container,
body.public-prism .login-box,
body.public-prism .platform-demo-card{
  background:
    radial-gradient(circle at top right, rgba(1,219,241,.08), transparent 30%),
    linear-gradient(180deg, rgba(10,24,38,.72) 0%, rgba(7,17,28,.76) 100%) !important;
  color:#daeef5;
}

body.public-prism .mini-product-card,
body.public-prism .info-card,
body.public-prism .principle-card,
body.public-prism .showcase-stat,
body.public-prism .featured-panel-note,
body.public-prism .product-status-card,
body.public-prism .messaging-summary-card,
body.public-prism .pill,
body.public-prism .platform-badge{
  background:linear-gradient(180deg, rgba(12,28,44,.64) 0%, rgba(8,20,32,.68) 100%) !important;
  color:#c6e8f2;
}

body.public-prism .cookie{
  background:linear-gradient(180deg, rgba(7,18,29,.88) 0%, rgba(10,22,35,.90) 100%) !important;
  color:#c8eaf3 !important;
  backdrop-filter:blur(10px) saturate(130%);
  -webkit-backdrop-filter:blur(10px) saturate(130%);
}

.public-prism-stage{
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}

.public-prism-canvas{
  display:block;
  width:100%;
  height:100%;
  opacity:.6;
  filter:blur(18px) saturate(1.04);
  transform:scale(1.12);
  transform-origin:center center;
}

body.public-prism.public-auth-dark .public-prism-canvas{
  opacity:.56;
}

/* ── StarBorder: container (matches React Bits StarBorder pattern) ── */
.public-star-btn{
  --public-btn-fill:linear-gradient(180deg, rgba(10,22,34,.86), rgba(6,14,22,.90));
  --public-btn-border:rgba(142,241,255,.22);
  --public-btn-glow:rgba(1,219,241,.22);
  --public-btn-text:#c8eef5;
  --public-star-color:var(--public-star-cyan);
  --public-star-speed:6s;
  display:inline-flex;
  align-items:stretch;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-radius:18px;
  /* container has no visible border/bg — the inner .psb-inner does */
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  color:inherit;
  padding:2px 0 !important;  /* thickness of the orb strip */
  min-height:auto !important;
  text-decoration:none;
  cursor:pointer;
  font:inherit;
  font-weight:800;
  transition:transform .24s ease, filter .24s ease;
}

.public-star-btn::before{
  content:"";
  position:absolute;
  top:-14px;
  left:-250%;
  width:300%;
  height:50%;
  border-radius:50%;
  opacity:.88;
  background:radial-gradient(circle, var(--public-star-color), transparent 10%);
  animation:public-star-movement-top linear infinite alternate;
  animation-duration:var(--public-star-speed);
  z-index:0;
  pointer-events:none;
}

.public-star-btn::after{
  content:"";
  position:absolute;
  right:-250%;
  bottom:-14px;
  width:300%;
  height:50%;
  border-radius:50%;
  opacity:.82;
  background:radial-gradient(circle, var(--public-star-color), transparent 10%);
  animation:public-star-movement-bottom linear infinite alternate;
  animation-duration:var(--public-star-speed);
  z-index:0;
  pointer-events:none;
}

/* ── Inner content — carries the visible border, bg, padding ── */
.public-star-btn .psb-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  flex:1;
  min-height:44px;
  padding:.82rem 1.14rem;
  border:1px solid var(--public-btn-border);
  border-radius:16px;
  background:var(--public-btn-fill);
  color:var(--public-btn-text);
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 10px 28px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.08);
  transition:box-shadow .24s ease, border-color .24s ease;
}

.public-star-btn:hover{
  transform:translateY(-2px);
  filter:saturate(1.05);
}

.public-star-btn:hover .psb-inner{
  box-shadow:0 18px 36px var(--public-btn-glow), inset 0 1px 0 rgba(255,255,255,.10);
}

.public-star-btn:active{
  transform:translateY(0);
}

.public-star-btn:focus-visible{
  outline:none;
}

.public-star-btn:focus-visible .psb-inner{
  box-shadow:0 0 0 4px rgba(1,219,241,.22), 0 18px 36px rgba(0,0,0,.28);
}

.cta.public-star-btn,
.btn.primary.public-star-btn{
  --public-btn-fill:linear-gradient(135deg, #00c8de 0%, #6de6f7 100%);
  --public-btn-border:rgba(0,200,220,.36);
  --public-btn-glow:rgba(0,200,220,.30);
  --public-btn-text:#002e3d;
  --public-star-color:#ffffff;
}

.btn.demo.public-star-btn,
.messaging-submit.public-star-btn,
.demo-button.public-star-btn,
.platform-demo-button.public-star-btn{
  --public-btn-fill:linear-gradient(135deg, rgba(15,40,58,.92) 0%, rgba(6,18,28,.95) 100%);
  --public-btn-border:rgba(142,241,255,.28);
  --public-btn-glow:rgba(1,219,241,.20);
  --public-btn-text:#c8eef5;
  --public-star-color:var(--public-star-cyan);
}

.btn.light.public-star-btn,
.messaging-backlink.public-star-btn,
.back-link.public-star-btn,
.login-home-btn.public-star-btn,
.platform-auth-btn.secondary.public-star-btn{
  --public-btn-fill:linear-gradient(180deg, rgba(12,26,40,.84), rgba(7,16,26,.88));
  --public-btn-border:rgba(142,241,255,.20);
  --public-btn-glow:rgba(1,219,241,.18);
  --public-btn-text:#c8eef5;
  --public-star-color:var(--public-star-teal);
}

.messaging-backlink.public-star-btn .psb-inner,
.back-link.public-star-btn .psb-inner,
.platform-auth-btn.secondary.public-star-btn .psb-inner{
  min-height:40px;
  padding:.72rem 1rem;
}

.login-home-btn.public-star-btn{
  align-items:center;
  justify-content:center;
}

.login-home-btn.public-star-btn .psb-inner{
  min-height:40px;
  padding:.6rem .9rem;
}

@keyframes public-star-movement-bottom{
  0%{
    transform:translate(0);
    opacity:1;
  }
  100%{
    transform:translate(-100%);
    opacity:0;
  }
}

@keyframes public-star-movement-top{
  0%{
    transform:translate(0);
    opacity:1;
  }
  100%{
    transform:translate(100%);
    opacity:0;
  }
}

@media (prefers-reduced-motion:reduce){
  .public-star-btn,
  .public-star-btn::before,
  .public-star-btn::after,
  .public-star-btn .psb-inner{
    animation:none !important;
    transition:none !important;
  }

  .public-prism-canvas{
    opacity:.86;
  }
}

/* ── Scroll-to-top button ── */
.public-scroll-top{
  position:fixed;
  bottom:22px;
  right:22px;
  z-index:100;
  width:44px;
  height:44px;
  border-radius:12px;
  border:1px solid rgba(142,241,255,.22);
  background:linear-gradient(180deg, rgba(10,24,38,.88), rgba(7,17,28,.92));
  color:#8ef1ff;
  font-size:1.15rem;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .22s ease, transform .22s ease, box-shadow .22s ease;
  box-shadow:0 8px 24px rgba(0,0,0,.32);
}

.public-scroll-top.visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}

.public-scroll-top:hover{
  box-shadow:0 12px 28px rgba(1,219,241,.18), 0 8px 24px rgba(0,0,0,.32);
  border-color:rgba(142,241,255,.40);
}

/* ── Messaging form fields dark theme ── */
body.public-prism .messaging-field input,
body.public-prism .messaging-field select,
body.public-prism .messaging-field textarea{
  background:linear-gradient(180deg, rgba(8,20,32,.82) 0%, rgba(6,16,26,.88) 100%) !important;
  border-color:rgba(142,241,255,.18) !important;
  color:#daeef5 !important;
}

body.public-prism .messaging-field input::placeholder,
body.public-prism .messaging-field textarea::placeholder{
  color:#5a8fa0 !important;
}

body.public-prism .messaging-field input:focus,
body.public-prism .messaging-field select:focus,
body.public-prism .messaging-field textarea:focus{
  border-color:rgba(1,219,241,.45) !important;
  box-shadow:0 0 0 4px rgba(1,219,241,.10) !important;
}

body.public-prism .messaging-field select option{
  background:#0a1826;
  color:#daeef5;
}

body.public-prism .messaging-field label{
  color:#b8dcea !important;
}

/* ── messaging-brand uses shared brand logo styles ── */
body.public-prism .messaging-brand .logo-wrap{
  background:rgba(10,24,38,.72);
  border-color:rgba(142,241,255,.18);
}

body.public-prism .messaging-brand .brand-title{
  color:#e8f8fc;
}

body.public-prism .messaging-brand .brand-subtitle{
  color:#7abecc;
}

/* ── demo-login dark overrides ── */
body.public-prism .demo-header h1{
  color:#daeef5;
}

body.public-prism .demo-header p{
  color:#7abecc;
}

body.public-prism .demo-info{
  background:linear-gradient(180deg, rgba(1,60,80,.28) 0%, rgba(1,40,55,.32) 100%) !important;
  border-left-color:rgba(1,219,241,.55);
  color:#c6e8f2;
}

body.public-prism .demo-info strong{
  color:#5be8f7;
}

body.public-prism .feature-card{
  background:linear-gradient(180deg, rgba(12,28,44,.64) 0%, rgba(8,20,32,.68) 100%) !important;
  border-color:rgba(142,241,255,.18) !important;
  color:#c6e8f2;
}

body.public-prism .feature-text{
  color:#8dcad9 !important;
}

body.public-prism .demo-confirmation{
  background:rgba(10,26,40,.5) !important;
  border-color:rgba(142,241,255,.2) !important;
  color:#c6e8f2 !important;
}

body.public-prism .demo-confirmation a{
  color:#5be8f7;
}

body.public-prism .alert-warning{
  background:rgba(80,50,0,.45) !important;
  border-color:rgba(255,193,7,.4) !important;
  color:#ffe08a !important;
}

body.public-prism .alert-info{
  background:rgba(0,50,70,.45) !important;
  border-color:rgba(1,219,241,.3) !important;
  color:#8de6f5 !important;
}

body.public-prism .back-to-login{
  border-top-color:rgba(142,241,255,.15) !important;
}

body.public-prism .back-to-login p{
  color:#7abecc;
}

body.public-prism .back-to-login a{
  color:#5be8f7;
}

body.public-prism .countdown-timer{
  color:#5be8f7 !important;
}

body.public-prism .timer-bar{
  background:rgba(1,219,241,.12) !important;
}

/* ── Shared badge / bubble contrast ── */
body.public-prism .eyebrow,
body.public-prism .section-kicker,
body.public-prism .mini-product-tag,
body.public-prism .info-card-kicker,
body.public-prism .messaging-eyebrow,
body.public-prism .messaging-card-label,
body.public-prism .demo-badge,
body.public-prism .pill,
body.public-prism .platform-badge{
  background:linear-gradient(180deg, rgba(20,103,124,.86) 0%, rgba(8,63,81,.92) 100%) !important;
  border-color:rgba(142,241,255,.26) !important;
  color:#f4fdff !important;
  text-shadow:0 1px 0 rgba(0,0,0,.18);
  box-shadow:0 10px 24px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.08);
}

/* ── Shiftpilot product hybrid surface overrides ── */
body.public-prism.product-page .product-showcase,
body.public-prism.product-page .product-side-note,
body.public-prism.product-page .product-contact-card,
body.public-prism.product-page .product-experience-card,
body.public-prism.product-page .product-summary-card,
body.public-prism.product-page .contact-cta{
  background:
    radial-gradient(circle at top right, rgba(1,219,241,.07), transparent 36%),
    linear-gradient(180deg, rgba(227,236,241,.92) 0%, rgba(216,227,234,.96) 100%) !important;
  border-color:rgba(176,197,208,.9) !important;
  color:#163746 !important;
  box-shadow:0 22px 48px rgba(6,41,61,.14), 0 8px 20px rgba(6,41,61,.07) !important;
}

body.public-prism.product-page .principle-card,
body.public-prism.product-page .product-status-card{
  background:linear-gradient(180deg, rgba(230,238,243,.94) 0%, rgba(220,230,236,.97) 100%) !important;
  border-color:rgba(176,197,208,.9) !important;
  color:#163746 !important;
  box-shadow:0 16px 34px rgba(6,41,61,.11), 0 6px 16px rgba(6,41,61,.06) !important;
}

body.public-prism.product-page .product-status-card span,
body.public-prism.product-page .product-side-note span,
body.public-prism.product-page .product-summary-card span,
body.public-prism.product-page .product-experience-card span,
body.public-prism.product-page .product-contact-card span{
  color:#52707d !important;
}

body.public-prism.product-page .product-status-card strong,
body.public-prism.product-page .product-side-note strong,
body.public-prism.product-page .product-summary-card h3,
body.public-prism.product-page .product-experience-card h3,
body.public-prism.product-page .product-contact-card h3,
body.public-prism.product-page .principle-card h3,
body.public-prism.product-page .contact-cta h2{
  color:#143544 !important;
}

body.public-prism.product-page .product-side-note ul,
body.public-prism.product-page .product-contact-card ul,
body.public-prism.product-page .product-side-note p,
body.public-prism.product-page .product-summary-card p,
body.public-prism.product-page .product-experience-card p,
body.public-prism.product-page .product-contact-card p,
body.public-prism.product-page .principle-card p,
body.public-prism.product-page .contact-cta p{
  color:#46616f !important;
}

body.public-prism.product-page .product-link-row a{
  color:#0a6279 !important;
}

/* ── Landing page light-panel overrides ── */
body.public-prism.landing-page .showcase-panel,
body.public-prism.landing-page .featured-panel-shell,
body.public-prism.landing-page .contact-cta,
body.public-prism.landing-page .privacy-inline-card{
  background:
    radial-gradient(circle at top right, rgba(1,219,241,.07), transparent 34%),
    linear-gradient(180deg, rgba(228,236,241,.9) 0%, rgba(217,227,234,.95) 100%) !important;
  border-color:rgba(176,197,208,.9) !important;
  color:#153744 !important;
  box-shadow:0 22px 48px rgba(6,41,61,.14), 0 8px 20px rgba(6,41,61,.07) !important;
}

body.public-prism.landing-page .mini-product-card,
body.public-prism.landing-page .info-card,
body.public-prism.landing-page .principle-card,
body.public-prism.landing-page .showcase-stat,
body.public-prism.landing-page .featured-panel-note{
  background:linear-gradient(180deg, rgba(231,239,244,.92) 0%, rgba(221,231,237,.96) 100%) !important;
  border-color:rgba(176,197,208,.9) !important;
  color:#153744 !important;
  box-shadow:0 16px 34px rgba(6,41,61,.11), 0 6px 16px rgba(6,41,61,.06) !important;
}

body.public-prism.landing-page .showcase-panel-head,
body.public-prism.landing-page .featured-panel-top span,
body.public-prism.landing-page .showcase-stat span,
body.public-prism.landing-page .featured-panel-note p,
body.public-prism.landing-page .privacy-inline-card p,
body.public-prism.landing-page .contact-cta p,
body.public-prism.landing-page .principle-card p,
body.public-prism.landing-page .info-card p,
body.public-prism.landing-page .mini-product-card p{
  color:#496370 !important;
}

body.public-prism.landing-page .showcase-panel-head strong,
body.public-prism.landing-page .featured-panel-top strong,
body.public-prism.landing-page .mini-product-card h2,
body.public-prism.landing-page .info-card h3,
body.public-prism.landing-page .principle-card h3,
body.public-prism.landing-page .featured-panel-note strong,
body.public-prism.landing-page .showcase-stat strong,
body.public-prism.landing-page .contact-cta h2,
body.public-prism.landing-page .privacy-inline-card strong{
  color:#143544 !important;
}

body.public-prism.landing-page .mini-product-tag,
body.public-prism.landing-page .info-card-kicker,
body.public-prism.landing-page .eyebrow,
body.public-prism.landing-page .section-kicker{
  background:linear-gradient(180deg, rgba(20,103,124,.88) 0%, rgba(8,63,81,.94) 100%) !important;
  border-color:rgba(142,241,255,.28) !important;
  color:#f4fdff !important;
  text-shadow:0 1px 0 rgba(0,0,0,.18);
}

body.public-prism.landing-page .mini-product-links a,
body.public-prism.landing-page .privacy-inline-links a{
  color:#0a6279 !important;
}
