/* Halcyra master product visual system — Build 59+
   Presentation only. This file does not change data, API, routing, workflows or permissions. */
:root{
  /* Halcyra visual system — single source of truth for product surfaces. */
  --hc-paper:#F8F6FC;
  --hc-surface:rgba(255,255,255,.76);
  --hc-surface-solid:#FFFFFF;
  --hc-surface-soft:rgba(240,234,254,.58);
  --hc-ink:#25234A;
  --hc-slate:#555473;
  --hc-muted:#77758B;
  --hc-lilac:#B9A6E0;
  --hc-lilac-deep:#6B4FD3;
  --hc-lilac-soft:#EEE9FC;
  --hc-lilac-line:#DDD4F2;
  --hc-line:rgba(107,79,211,.14);
  --hc-green:#4C7A5E;
  --hc-red:#C1553B;
  --hc-shadow:0 10px 30px rgba(64,47,116,.055);
  --hc-shadow-hover:0 14px 36px rgba(64,47,116,.09);
  --hc-radius:16px;
  --hc-font-sans:'IBM Plex Sans',sans-serif;
  --hc-font-display:'Fraunces',serif;
  --hc-font-mono:'IBM Plex Mono',monospace;

  /* Shared type scale — pages may vary hierarchy, but not the base register. */
  --hc-text-xs:10px;
  --hc-text-sm:11.5px;
  --hc-text-body-sm:12px;
  --hc-text-body:13px;
  --hc-text-body-lg:14px;
  --hc-text-card-title:17px;
  --hc-text-page-title:28px;
}
html{background:var(--hc-paper)!important;}
body{background:var(--hc-paper)!important;color:var(--hc-ink)!important;position:relative;}
body::before{
  content:"";position:fixed;inset:-180px -220px auto auto;width:760px;height:760px;border-radius:50%;
  background:radial-gradient(circle at 42% 42%,rgba(185,166,224,.44) 0%,rgba(185,166,224,.22) 30%,rgba(185,166,224,0) 70%);
  pointer-events:none;z-index:0;
}
body::after{
  content:"";position:fixed;right:-145px;top:95px;width:680px;height:820px;
  background:url("/halcyra-logo-watermark.png") center/contain no-repeat;
  opacity:.28;pointer-events:none;z-index:0;
  transform:rotate(-2deg);
}
/* Owners: intentionally suppress the shared application watermark without changing Admin or Dashboard. */
body.owners-app::after{display:none!important;}

#root{position:relative;z-index:1;}
.owner-shell,.admin-shell,.dash-shell{position:relative;z-index:1;}

/* Typography */
.owner-shell h1,.owner-shell h2,.owner-shell h3,
.admin-shell h1,.admin-shell h2,.admin-shell h3,
.dash-shell h1,.dash-shell h2,.dash-shell h3{font-family:'Fraunces',serif!important;color:var(--hc-ink)!important;letter-spacing:-.015em;}
.owner-shell,.admin-shell,.dash-shell{font-family:'IBM Plex Sans',sans-serif!important;color:var(--hc-ink)!important;}

/* Shared chrome */
.owner-sidebar,.admin-sidebar,.dash-sidebar{background:rgba(255,255,255,.94)!important;border-color:var(--hc-line)!important;box-shadow:6px 0 28px rgba(64,47,116,.035)!important;}
.owner-brand-mark{width:32px;height:32px;flex:0 0 32px;display:block;}
.owner-brand-mark img{display:block;width:32px;height:32px;}
.owner-sidebar button,.admin-sidebar button,.dash-sidebar button{color:var(--hc-slate)!important;}
.owner-sidebar a,.admin-sidebar a,.dash-sidebar a{color:var(--hc-slate)!important;}
.owner-sidebar button:hover,.admin-sidebar button:hover,.dash-sidebar button:hover{background:var(--hc-lilac-soft)!important;color:var(--hc-lilac-deep)!important;}
.owner-topbar{background:rgba(255,255,255,.94)!important;border-color:var(--hc-line)!important;}
.owner-global-search{background:#fff!important;border-color:var(--hc-lilac-line)!important;color:var(--hc-slate)!important;border-radius:999px!important;}
.owner-bell{color:var(--hc-ink)!important;}

/* Buttons / controls */
.owner-btn-primary,.admin-shell button[style*="#1767C4"],.admin-shell button[style*="#245FC0"],.admin-shell button[style*="#2D78E8"],.dash-shell button[style*="#1767C4"],.dash-shell button[style*="#245FC0"]{
  background:var(--hc-lilac-deep)!important;border-color:var(--hc-lilac-deep)!important;color:#fff!important;box-shadow:0 5px 16px rgba(107,79,211,.18)!important;
}
.owner-btn-secondary,.owner-row-action{background:#fff!important;border-color:var(--hc-lilac-line)!important;color:var(--hc-ink)!important;}
.owner-btn-primary:hover,.admin-shell button[style*="#1767C4"]:hover,.admin-shell button[style*="#245FC0"]:hover,.admin-shell button[style*="#2D78E8"]:hover{background:#5D43C1!important;}
.owner-linkish,.owner-tabs button.active,.owner-detail-tabs button.active{color:var(--hc-lilac-deep)!important;}
.owner-tabs button.active,.owner-detail-tabs button.active{border-bottom-color:var(--hc-lilac-deep)!important;}

/* Cards and operational surfaces */
.owner-stage-card,.owner-onboarding-table-card,.owner-flow-card,.owner-detail-card,
.admin-shell table,.admin-shell .programme-card,.admin-shell [class*="card"],
.dash-shell [class*="card"],.dash-shell table{
  background:rgba(255,255,255,.94)!important;border-color:var(--hc-line)!important;box-shadow:var(--hc-shadow)!important;
}
.owner-stage-card:hover,.owner-flow-card:hover{box-shadow:var(--hc-shadow-hover)!important;}
.owner-stage-card.selected{border-color:var(--hc-lilac)!important;box-shadow:0 0 0 2px rgba(185,166,224,.22),var(--hc-shadow)!important;}
.owner-stage-card i,.owner-avatar{background:var(--hc-lilac-soft)!important;color:var(--hc-lilac-deep)!important;}
.owner-source.crm{background:var(--hc-lilac-soft)!important;color:#5D43A7!important;}
.owner-source.manual{background:#F1F0F6!important;color:var(--hc-slate)!important;}
.owner-stage-pill.new{background:var(--hc-lilac-soft)!important;color:#5D43A7!important;}
.owner-stage-pill.setup{background:#FBF2DE!important;color:#916400!important;}
.owner-stage-pill.ready{background:#E7F5EC!important;color:#397653!important;}
.owner-flow-card>h3{background:var(--hc-lilac-soft)!important;border-color:var(--hc-line)!important;color:var(--hc-ink)!important;}
.owner-callout{background:var(--hc-lilac-soft)!important;color:#51447B!important;}

/* Form controls */
.owner-shell input,.owner-shell select,.owner-shell textarea,
.admin-shell input,.admin-shell select,.admin-shell textarea,
.dash-shell input,.dash-shell select,.dash-shell textarea{background:#fff!important;border-color:var(--hc-line)!important;color:var(--hc-ink)!important;border-radius:10px!important;}
.owner-shell input:focus,.owner-shell select:focus,.owner-shell textarea:focus,
.admin-shell input:focus,.admin-shell select:focus,.admin-shell textarea:focus,
.dash-shell input:focus,.dash-shell select:focus,.dash-shell textarea:focus{border-color:var(--hc-lilac)!important;box-shadow:0 0 0 3px rgba(107,79,211,.13)!important;outline:none!important;}

/* Data surfaces: remove the old grey-green cast without altering status semantics. */
.owner-onboarding-data:hover,.owner-onboarding-data.selected{background:var(--hc-surface-soft)!important;}
.owner-onboarding-header,.owner-table-toolbar{background:#FCFBFE!important;border-color:var(--hc-line)!important;}
.owner-onboarding-row,.owner-detail-tabs{border-color:var(--hc-line)!important;}

/* Product dashboard shell */
.admin-shell>div:last-child,.dash-shell>div:last-child{background:transparent!important;}
#section-dashboard>div:first-child{background:rgba(255,255,255,.88)!important;border-color:var(--hc-lilac-line)!important;box-shadow:var(--hc-shadow)!important;}

/* Keep meaningful status colours intact. */
[class*="status"].confirmed,[class*="status"].active,[class*="pill"].confirmed{color:#fff!important;}

/* Mobile */
@media(max-width:760px){
  body::after{right:-230px;top:210px;width:520px;height:650px;opacity:.20;}
  .owner-sidebar,.admin-sidebar,.dash-sidebar{box-shadow:none!important;}
}


/* Continuous Halcyra canvas — retained as the canonical values above. */
body{
  background:
    radial-gradient(circle at 80% 8%,rgba(185,166,224,.24) 0%,rgba(185,166,224,.08) 30%,transparent 56%),
    radial-gradient(circle at 10% 76%,rgba(216,203,241,.16) 0%,transparent 38%),
    var(--hc-paper)!important;
}
body::before{
  top:-170px;right:-190px;width:820px;height:820px;
  background:radial-gradient(circle at 42% 42%,rgba(185,166,224,.50) 0%,rgba(185,166,224,.27) 30%,rgba(185,166,224,0) 72%);
}
body::after{
  right:-175px;top:70px;width:790px;height:900px;opacity:.42;
}
.owner-shell,.admin-shell,.dash-shell{background:transparent!important;}
.owner-sidebar,.admin-sidebar,.dash-sidebar,.owner-topbar{
  background:rgba(255,255,255,.78)!important;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.owner-stage-card,.owner-onboarding-table-card,.owner-flow-card,.owner-detail-card,
.admin-shell table,.admin-shell .programme-card,.admin-shell [class*="card"],
.dash-shell [class*="card"],.dash-shell table{
  background:rgba(255,255,255,.76)!important;
  border-color:rgba(107,79,211,.14)!important;
  box-shadow:var(--hc-shadow)!important;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.owner-stage-card:hover,.owner-flow-card:hover{background:rgba(255,255,255,.84)!important;}
#section-dashboard>div:first-child{background:rgba(255,255,255,.70)!important;}
@media(max-width:760px){body::after{right:-260px;top:170px;width:620px;height:760px;opacity:.32;}}

/* Admin brand treatment: approved extension of the Halcyra watermark into the operational app. */
body.admin-app::after{
  content:"";
  position:fixed;
  right:34px;
  bottom:28px;
  top:auto;
  width:320px;
  height:320px;
  background:url("/halcyra-watermark.svg") center/contain no-repeat;
  opacity:.14;
  pointer-events:none;
  z-index:0;
  transform:none;
}
.admin-brand-mark{width:32px;height:32px;flex:0 0 32px;display:block;}
.admin-brand-mark img{display:block;width:32px;height:32px;}
/* Dashboard: suppress the shared application watermark without changing Owners or Admin. */
body.dashboard-app::after{display:none!important;}
.dashboard-brand-mark{width:32px;height:32px;flex:0 0 32px;display:block;}
.dashboard-brand-mark img{display:block;width:32px;height:32px;}
.dashboard-gate-mark{width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.dashboard-gate-mark img{display:block;width:32px;height:32px;}


/* Halcyra brand watermark — shared across every business surface. */
body::after{content:"";position:fixed;right:34px;bottom:28px;top:auto;width:320px;height:320px;background:url("/halcyra-watermark.svg") center/contain no-repeat;opacity:.14;pointer-events:none;z-index:0;transform:none;}
body.owners-app::after,body.dashboard-app::after,body.admin-app::after{display:block!important;}
@media(max-width:980px){body::after{right:30px;bottom:24px;width:200px;height:200px;}}
@media(max-width:760px){body::after{right:20px;bottom:20px;width:170px;height:170px;}}
