:root{
  --ac-bg:#050505;
  --ac-bg-soft:#0d0d0d;
  --ac-surface:#121212;
  --ac-surface-2:#181818;
  --ac-surface-3:#efefef;
  --ac-surface-4:#ffffff;
  --ac-line:rgba(255,255,255,.10);
  --ac-line-soft:rgba(255,255,255,.06);
  --ac-line-dark:rgba(0,0,0,.10);

  --ac-text:#ffffff;
  --ac-text-soft:#d8d8d8;
  --ac-text-muted:#a8a8a8;
  --ac-text-dark:#0a0a0a;
  --ac-text-dark-soft:#3b3b3b;

  --ac-btn-primary-bg:#ffffff;
  --ac-btn-primary-text:#0a0a0a;
  --ac-btn-primary-border:rgba(255,255,255,.18);

  --ac-btn-secondary-bg:#ffffff;
  --ac-btn-secondary-text:#0a0a0a;
  --ac-btn-secondary-border:rgba(255,255,255,.18);

  --ac-radius-sm:14px;
  --ac-radius-md:20px;
  --ac-radius-lg:28px;
  --ac-radius-xl:36px;

  --ac-shadow-soft:0 18px 50px rgba(0,0,0,.22);
  --ac-shadow-strong:0 28px 90px rgba(0,0,0,.34);

  --ac-max:1380px;
  --ac-side-pad:clamp(16px, 4vw, 28px);
  --ac-section-gap:18px;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

html,body{
  margin:0;
  padding:0;
  background:linear-gradient(180deg, #030303 0%, #080808 100%);
  color:var(--ac-text);
  font-family:Inter, Arial, sans-serif;
}

body{
  min-height:100vh;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
select,
textarea{
  font:inherit;
}

input,
select,
textarea{
  width:100%;
  border-radius:16px;
  border:1px solid var(--ac-line);
  background:#101010;
  color:#fff;
  padding:14px 16px;
  outline:none;
  box-shadow:none;
}

input::placeholder,
textarea::placeholder{
  color:#8f8f8f;
}

input:focus,
select:focus,
textarea:focus{
  border-color:rgba(255,255,255,.22);
}

.ac-page{
  width:100%;
}

.ac-wrap{
  width:min(var(--ac-max), 100%);
  margin:0 auto;
  padding-left:var(--ac-side-pad);
  padding-right:var(--ac-side-pad);
}

.ac-stack > * + *{
  margin-top:var(--ac-section-gap);
}

/* FULL WIDTH LUXURY SECTIONS */
.ac-band-dark,
.ac-band-light{
  position:relative;
  width:100%;
}

.ac-band-dark{
  background:linear-gradient(180deg, #050505 0%, #0a0a0a 100%);
  color:var(--ac-text);
}

.ac-band-light{
  background:linear-gradient(180deg, #f7f7f7 0%, #ececec 100%);
  color:var(--ac-text-dark);
}

/* FLAGSHIP PANELS */
.ac-panel-dark,
.ac-panel-light{
  border-radius:var(--ac-radius-xl);
  overflow:hidden;
  box-shadow:var(--ac-shadow-strong);
}

.ac-panel-dark{
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)), #101010;
  border:1px solid var(--ac-line);
  color:#fff;
}

.ac-panel-light{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,245,245,.96));
  border:1px solid rgba(0,0,0,.08);
  color:#0a0a0a;
  box-shadow:0 24px 70px rgba(0,0,0,.14);
}

.ac-panel-pad{
  padding:clamp(20px, 4.5vw, 34px);
}

/* HERO */
.ac-hero{
  padding-top:clamp(18px, 5vw, 34px);
  padding-bottom:clamp(18px, 5vw, 34px);
}

.ac-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 14px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:16px;
}

.ac-panel-dark .ac-kicker{
  color:#f3f3f3;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
}

.ac-panel-light .ac-kicker{
  color:#111;
  border:1px solid rgba(0,0,0,.10);
  background:rgba(0,0,0,.04);
}

.ac-title-xl{
  margin:0 0 14px;
  font-size:clamp(38px, 9vw, 72px);
  line-height:.96;
  letter-spacing:-.05em;
  font-weight:900;
}

.ac-title-lg{
  margin:0 0 14px;
  font-size:clamp(28px, 6vw, 46px);
  line-height:1.02;
  letter-spacing:-.04em;
  font-weight:850;
}

.ac-title-md{
  margin:0 0 12px;
  font-size:clamp(22px, 5vw, 32px);
  line-height:1.08;
  letter-spacing:-.03em;
  font-weight:820;
}

.ac-lead{
  margin:0;
  max-width:980px;
  font-size:clamp(15px, 3.8vw, 18px);
  line-height:1.9;
}

.ac-panel-dark .ac-lead{
  color:var(--ac-text-soft);
}

.ac-panel-light .ac-lead{
  color:var(--ac-text-dark-soft);
}

/* STATS */
.ac-stats{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.ac-stat{
  border-radius:30px;
  padding:22px;
  min-height:170px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.ac-stat-dark{
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)), #121212;
  border:1px solid rgba(255,255,255,.09);
  color:#fff;
  box-shadow:var(--ac-shadow-soft);
}

.ac-stat-light{
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,245,245,.98));
  border:1px solid rgba(0,0,0,.08);
  color:#0a0a0a;
  box-shadow:0 18px 46px rgba(0,0,0,.10);
}

.ac-stat-label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
  margin-bottom:14px;
  opacity:.88;
}

.ac-stat-value{
  font-size:clamp(34px, 8vw, 62px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.05em;
}

.ac-stat-note{
  margin-top:14px;
  font-size:14px;
  line-height:1.75;
  opacity:.88;
}

/* CARDS */
.ac-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}

.ac-card-dark,
.ac-card-light{
  border-radius:30px;
  overflow:hidden;
  min-width:0;
}

.ac-card-dark{
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01)), #111111;
  border:1px solid rgba(255,255,255,.08);
  color:#fff;
  box-shadow:var(--ac-shadow-soft);
}

.ac-card-light{
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,244,244,.98));
  border:1px solid rgba(0,0,0,.08);
  color:#0a0a0a;
  box-shadow:0 16px 44px rgba(0,0,0,.10);
}

.ac-card-pad{
  padding:clamp(20px, 4.2vw, 30px);
}

.ac-card p{
  margin:0 0 16px;
  font-size:15px;
  line-height:1.9;
}

/* FIXED HEADING/TEXT COLORS */
.ac-card-dark h1,
.ac-card-dark h2,
.ac-card-dark h3,
.ac-card-dark h4,
.ac-card-dark h5,
.ac-card-dark h6,
.ac-card-dark .ac-title-xl,
.ac-card-dark .ac-title-lg,
.ac-card-dark .ac-title-md{
  color:#ffffff !important;
}

.ac-card-light h1,
.ac-card-light h2,
.ac-card-light h3,
.ac-card-light h4,
.ac-card-light h5,
.ac-card-light h6,
.ac-card-light .ac-title-xl,
.ac-card-light .ac-title-lg,
.ac-card-light .ac-title-md{
  color:#0a0a0a !important;
}

.ac-card-dark p,
.ac-card-dark .ac-lead,
.ac-card-dark .ac-note,
.ac-card-dark .ac-admin-note{
  color:#d8d8d8 !important;
}

.ac-card-light p,
.ac-card-light .ac-lead,
.ac-card-light .ac-note,
.ac-card-light .ac-admin-note{
  color:#3b3b3b !important;
}

/* BUTTONS */
.ac-btn-row{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:18px;
}

.ac-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:54px;
  padding:14px 18px;
  border-radius:18px;
  font-weight:800;
  font-size:15px;
  letter-spacing:-.01em;
  text-decoration:none;
  cursor:pointer;
  transition:transform .15s ease, opacity .15s ease, background .15s ease, border-color .15s ease;
}

.ac-btn:hover{
  transform:translateY(-1px);
}

.ac-btn-primary{
  background:#ffffff !important;
  color:#0a0a0a !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:none !important;
}

.ac-btn-secondary{
  background:#ffffff !important;
  color:#0a0a0a !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:none !important;
}

.ac-btn-ghost-dark{
  background:#ffffff !important;
  color:#0a0a0a !important;
  border:1px solid rgba(255,255,255,.18) !important;
}

.ac-btn-ghost-light{
  background:#ffffff !important;
  color:#0a0a0a !important;
  border:1px solid rgba(0,0,0,.12) !important;
}

.ac-card-dark .ac-btn,
.ac-card-dark .ac-btn-primary,
.ac-card-dark .ac-btn-secondary,
.ac-card-light .ac-btn,
.ac-card-light .ac-btn-primary,
.ac-card-light .ac-btn-secondary{
  background:#ffffff !important;
  color:#0a0a0a !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:none !important;
}

.ac-card-dark .ac-btn:hover,
.ac-card-dark .ac-btn-primary:hover,
.ac-card-dark .ac-btn-secondary:hover,
.ac-card-light .ac-btn:hover,
.ac-card-light .ac-btn-primary:hover,
.ac-card-light .ac-btn-secondary:hover{
  background:#f2f2f2 !important;
  color:#0a0a0a !important;
}

/* META / DETAILS */
.ac-meta{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}

.ac-row{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.ac-panel-light .ac-row{
  border-bottom:1px solid rgba(0,0,0,.08);
}

.ac-row:last-child{
  border-bottom:none;
}

.ac-key{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:800;
}

.ac-panel-dark .ac-key{
  color:#b7b7b7;
}

.ac-panel-light .ac-key{
  color:#595959;
}

.ac-val{
  font-size:14px;
  line-height:1.75;
  word-break:break-word;
}

.ac-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:13px;
}

/* BADGES — monochrome only */
.ac-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  line-height:1;
}

.ac-badge::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  display:block;
  flex:0 0 auto;
}

.ac-badge-dark{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
}

.ac-badge-dark::before{
  background:#f0f0f0;
}

.ac-badge-light{
  background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.10);
  color:#111;
}

.ac-badge-light::before{
  background:#111;
}

/* NOTICE */
.ac-notice{
  border-radius:22px;
  padding:16px 18px;
  font-size:14px;
  line-height:1.8;
  margin-bottom:16px;
}

.ac-notice-dark{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
}

.ac-notice-light{
  background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.10);
  color:#111;
}

/* NAV / SIDEBAR ENHANCEMENTS */
.ac-shell-navlink{
  background:linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.007)), #141414 !important;
  color:#f5f5f5 !important;
  border:1px solid rgba(255,255,255,.09) !important;
}

.ac-shell-navlink.is-active{
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(236,236,236,.96)), #fff !important;
  color:#0b0b0b !important;
  border:1px solid rgba(255,255,255,.18) !important;
}

.ac-shell-userbox{
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)), #101010 !important;
  border:1px solid rgba(255,255,255,.10) !important;
}

/* MOBILE FULL WIDTH FEEL */
@media (max-width: 767px){
  .ac-panel-dark,
  .ac-panel-light,
  .ac-card-dark,
  .ac-card-light,
  .ac-stat-dark,
  .ac-stat-light{
    border-radius:28px;
  }

  .ac-wrap{
    padding-left:16px;
    padding-right:16px;
  }
}

@media (min-width: 760px){
  .ac-stats{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

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

  .ac-btn-row{
    flex-direction:row;
    flex-wrap:wrap;
  }

  .ac-btn{
    width:auto;
    min-width:220px;
  }

  .ac-row{
    grid-template-columns:220px 1fr;
    gap:12px;
    align-items:start;
  }
}

@media (min-width: 1120px){
  .ac-stats{
    grid-template-columns:repeat(4, minmax(0,1fr));
  }

  .ac-grid.grid-3{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}

/* ================================================================
   ASTORRE X PORTAL INTERFACE — visual layer only
   Shared across tenant and platform-owner surfaces. No behavior.
   ================================================================ */
:root{
  --ac-bg:#02070d;
  --ac-bg-soft:#050d16;
  --ac-surface:#07111c;
  --ac-surface-2:#0a1724;
  --ac-surface-3:#0d1c2b;
  --ac-surface-4:#112538;
  --ac-line:rgba(123,220,255,.16);
  --ac-line-soft:rgba(123,220,255,.09);
  --ac-text:#f2f9ff;
  --ac-text-soft:#b8c9d7;
  --ac-text-muted:#7f9aae;
  --ac-text-dark:#f2f9ff;
  --ac-text-dark-soft:#b8c9d7;
  --ac-cyan:#69d9ff;
  --ac-cyan-bright:#b9efff;
  --ac-cyan-dim:rgba(105,217,255,.13);
  --ac-success:#78f0bd;
  --ac-warning:#ffd280;
  --ac-danger:#ff8da1;
  --ac-radius-sm:8px;
  --ac-radius-md:12px;
  --ac-radius-lg:16px;
  --ac-radius-xl:20px;
  --ac-shadow-soft:0 14px 36px rgba(0,0,0,.28);
  --ac-shadow-strong:0 22px 64px rgba(0,0,0,.38);
  --ac-max:1540px;
  --ac-side-pad:clamp(14px,2.3vw,30px);
  --ac-section-gap:14px;
}

html,
body{
  background:#02070d;
  color:var(--ac-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
}

body{
  position:relative;
  isolation:isolate;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(circle at 82% 4%,rgba(42,177,255,.12),transparent 31rem),
    radial-gradient(circle at 4% 92%,rgba(36,114,171,.10),transparent 35rem),
    linear-gradient(180deg,#02070d 0%,#030914 52%,#02070d 100%);
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.32;
  background-image:
    linear-gradient(rgba(105,217,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(105,217,255,.035) 1px,transparent 1px);
  background-size:40px 40px;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.72),transparent 76%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.72),transparent 76%);
}

::selection{
  background:rgba(105,217,255,.28);
  color:#fff;
}

:focus-visible{
  outline:2px solid var(--ac-cyan) !important;
  outline-offset:3px;
}

a,
button,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}

input,
select,
textarea{
  min-height:44px;
  padding:11px 13px;
  border-radius:9px;
  border:1px solid rgba(123,220,255,.18);
  background:rgba(3,11,19,.88);
  color:var(--ac-text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

textarea{
  min-height:96px;
  resize:vertical;
}

input::placeholder,
textarea::placeholder{
  color:#638094;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ac-text) !important;
  caret-color:var(--ac-text) !important;
  -webkit-box-shadow:0 0 0 1000px #06111c inset !important;
  box-shadow:0 0 0 1000px #06111c inset !important;
  border-color:rgba(105,217,255,.28) !important;
  transition:background-color 9999s ease-out 0s !important;
}

input:focus,
select:focus,
textarea:focus{
  border-color:rgba(105,217,255,.68);
  background:#06111c;
  box-shadow:0 0 0 3px rgba(105,217,255,.10),0 0 24px rgba(24,151,210,.08);
}

/* Shared command surfaces */
.ac-panel-dark,
.ac-panel-light,
.ac-card-dark,
.ac-card-light,
.ac-stat-dark,
.ac-stat-light{
  background:
    linear-gradient(135deg,rgba(105,217,255,.035),transparent 40%),
    linear-gradient(180deg,rgba(8,20,32,.97),rgba(5,13,22,.97)) !important;
  color:var(--ac-text) !important;
  border:1px solid var(--ac-line) !important;
  box-shadow:var(--ac-shadow-soft) !important;
}

.ac-panel-dark,
.ac-panel-light{
  border-radius:18px !important;
}

.ac-card-dark,
.ac-card-light,
.ac-stat-dark,
.ac-stat-light{
  border-radius:14px !important;
}

.ac-panel-pad,
.ac-card-pad{
  padding:clamp(16px,2.2vw,24px) !important;
}

.ac-card-dark h1,
.ac-card-dark h2,
.ac-card-dark h3,
.ac-card-light h1,
.ac-card-light h2,
.ac-card-light h3,
.ac-card-dark p,
.ac-card-light p,
.ac-panel-dark p,
.ac-panel-light p{
  color:inherit !important;
}

.ac-title-xl{
  font-size:clamp(30px,4vw,50px) !important;
  line-height:1.02 !important;
  letter-spacing:-.038em !important;
}

.ac-title-lg{
  font-size:clamp(25px,3vw,37px) !important;
  line-height:1.08 !important;
  letter-spacing:-.032em !important;
}

.ac-title-md{
  font-size:clamp(19px,2.2vw,27px) !important;
  line-height:1.15 !important;
  letter-spacing:-.022em !important;
}

.ac-lead{
  color:var(--ac-text-soft) !important;
  font-size:14px !important;
  line-height:1.7 !important;
}

.ac-kicker{
  min-height:27px !important;
  margin-bottom:11px !important;
  padding:6px 10px !important;
  border-radius:6px !important;
  border:1px solid rgba(105,217,255,.24) !important;
  background:rgba(105,217,255,.07) !important;
  color:var(--ac-cyan-bright) !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.18em !important;
}

.ac-stats,
.ac-grid{
  gap:12px !important;
}

.ac-stat{
  min-height:124px !important;
  padding:17px !important;
  position:relative;
  overflow:hidden;
}

.ac-stat::after{
  content:"";
  position:absolute;
  right:15px;
  top:15px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ac-cyan);
  box-shadow:0 0 12px rgba(105,217,255,.85);
}

.ac-stat-label{
  margin-bottom:10px !important;
  color:var(--ac-text-muted) !important;
  font-size:9px !important;
  letter-spacing:.16em !important;
}

.ac-stat-value{
  color:var(--ac-text) !important;
  font-size:clamp(27px,4vw,42px) !important;
  letter-spacing:-.035em !important;
}

.ac-stat-note{
  margin-top:9px !important;
  color:var(--ac-text-muted) !important;
  font-size:12px !important;
  line-height:1.55 !important;
}

.ac-btn,
.btn,
button,
a.btn{
  min-height:44px;
  border-radius:9px !important;
  padding:11px 15px !important;
  font-size:13px !important;
  font-weight:750 !important;
  letter-spacing:-.005em !important;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease !important;
}

.ac-btn-primary,
.ac-card-dark .ac-btn-primary,
.ac-card-light .ac-btn-primary,
button:not(.secondary):not([class*="ghost"]),
.btn:not(.secondary){
  background:linear-gradient(180deg,#b7eeff,#69d9ff) !important;
  color:#02101a !important;
  border:1px solid rgba(190,242,255,.9) !important;
  box-shadow:0 8px 24px rgba(50,181,231,.14),inset 0 1px 0 rgba(255,255,255,.7) !important;
}

.ac-btn-secondary,
.ac-card-dark .ac-btn-secondary,
.ac-card-light .ac-btn-secondary,
.ac-btn-ghost-dark,
.ac-btn-ghost-light,
.btn.secondary,
a.btn.secondary{
  background:rgba(105,217,255,.055) !important;
  color:var(--ac-cyan-bright) !important;
  border:1px solid rgba(105,217,255,.24) !important;
  box-shadow:none !important;
}

.ac-btn:hover,
.btn:hover,
button:hover,
a.btn:hover{
  transform:translateY(-1px) !important;
  border-color:rgba(164,235,255,.65) !important;
  box-shadow:0 10px 30px rgba(45,180,230,.15) !important;
}

.ac-badge,
.badge{
  min-height:28px !important;
  padding:6px 10px !important;
  border-radius:6px !important;
  border:1px solid rgba(105,217,255,.20) !important;
  background:rgba(105,217,255,.075) !important;
  color:var(--ac-cyan-bright) !important;
  font-size:10px !important;
  letter-spacing:.065em !important;
  text-transform:uppercase;
}

.ac-badge::before,
.badge::before{
  background:var(--ac-cyan) !important;
  box-shadow:0 0 9px rgba(105,217,255,.8);
}

.ac-notice,
.notice,
.err,
.error,
.action-error{
  border-radius:9px !important;
  padding:12px 14px !important;
  font-size:13px !important;
  line-height:1.6 !important;
}

.ac-notice,
.notice{
  background:rgba(55,190,150,.08) !important;
  color:#c9ffe8 !important;
  border:1px solid rgba(120,240,189,.26) !important;
}

.err,
.error,
.action-error{
  background:rgba(255,88,118,.08) !important;
  color:#ffd7df !important;
  border:1px solid rgba(255,141,161,.26) !important;
}

/* Tenant and platform-owner command shells */
.ac-portal-shell,
.ac-admin-shell{
  min-height:100vh;
  background:transparent !important;
  color:var(--ac-text);
}

.ac-portal-grid,
.ac-admin-grid{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr;
}

.ac-portal-sidebar,
.ac-admin-sidebar{
  position:relative;
  z-index:30;
  padding:13px 14px !important;
  border:0 !important;
  border-bottom:1px solid var(--ac-line) !important;
  background:rgba(3,10,18,.94) !important;
  box-shadow:0 14px 44px rgba(0,0,0,.25);
  backdrop-filter:blur(18px);
}

.ac-portal-brand,
.ac-admin-brand{
  gap:11px !important;
  margin-bottom:11px !important;
}

.ac-portal-brand-logo,
.ac-admin-brand-logo{
  width:42px !important;
  height:42px !important;
  flex-basis:42px !important;
  border-radius:10px !important;
  border:1px solid rgba(105,217,255,.20) !important;
  background:radial-gradient(circle,rgba(105,217,255,.12),rgba(105,217,255,.02)) !important;
  box-shadow:0 0 28px rgba(42,177,255,.08);
}

.ac-portal-brand-logo img,
.ac-admin-brand-logo img{
  width:86% !important;
  height:86% !important;
  object-fit:contain !important;
}

.ac-portal-brand-title,
.ac-admin-brand-title{
  margin:0 0 5px !important;
  color:#f5fbff !important;
  font-size:15px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.11em !important;
}

.ac-portal-brand-sub,
.ac-admin-brand-sub{
  color:#79a7be !important;
  font-size:8px !important;
  line-height:1.35 !important;
  letter-spacing:.15em !important;
  text-transform:uppercase;
}

.ac-portal-user,
.ac-admin-user,
.ac-shell-userbox{
  margin:0 0 11px !important;
  padding:12px 13px !important;
  border-radius:10px !important;
  border:1px solid rgba(105,217,255,.12) !important;
  background:linear-gradient(135deg,rgba(105,217,255,.05),rgba(5,14,23,.68)) !important;
  box-shadow:none !important;
}

.ac-portal-user .name,
.ac-admin-user .name{
  margin:0 0 4px !important;
  font-size:12px !important;
  line-height:1.3 !important;
  font-weight:750 !important;
  letter-spacing:0 !important;
}

.ac-portal-user .meta,
.ac-admin-user .meta{
  color:#7794a8 !important;
  font-size:10px !important;
  line-height:1.55 !important;
}

.ac-portal-nav,
.ac-admin-nav{
  display:flex !important;
  gap:7px !important;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(105,217,255,.25) transparent;
  padding-bottom:3px;
}

.ac-portal-nav a,
.ac-admin-nav a,
.ac-shell-navlink{
  display:flex !important;
  align-items:center;
  flex:0 0 auto;
  min-height:39px;
  padding:9px 12px !important;
  border-radius:8px !important;
  border:1px solid rgba(105,217,255,.10) !important;
  background:rgba(7,19,31,.76) !important;
  color:#a9bdca !important;
  font-size:11px !important;
  line-height:1.25 !important;
  font-weight:650 !important;
  letter-spacing:.01em !important;
  white-space:nowrap;
  box-shadow:none !important;
}

.ac-portal-nav a:hover,
.ac-admin-nav a:hover,
.ac-shell-navlink:hover{
  transform:none !important;
  color:#e5f8ff !important;
  border-color:rgba(105,217,255,.34) !important;
}

.ac-portal-nav a.is-active,
.ac-admin-nav a.is-active,
.ac-shell-navlink.is-active{
  color:#c6f3ff !important;
  border-color:rgba(105,217,255,.48) !important;
  background:linear-gradient(90deg,rgba(105,217,255,.14),rgba(105,217,255,.045)) !important;
  box-shadow:inset 2px 0 0 var(--ac-cyan),0 0 20px rgba(39,171,220,.06) !important;
}

.ac-portal-main,
.ac-admin-main{
  min-width:0;
  padding:0 !important;
}

.ac-portal-main-inner,
.ac-admin-main-inner{
  width:min(var(--ac-max),100%) !important;
  margin:0 auto !important;
  padding:15px 13px 32px !important;
}

/* Existing portal pages inherit the command system without logic changes. */
.tenant-dash,
.assistant-conv,
.bookings-page,
.calendar-page,
.security-page,
.leads,
.automation,
.analytics{
  color:var(--ac-text) !important;
  font-size:13px !important;
}

.tenant-dash :is(.hero-card,.meta-card,.stat-card),
.assistant-conv :is(.hero-card,.stat-card,.conversation-card,.message-card,.empty-card,.panel),
.bookings-page :is(.hero-card,.booking-card,.empty),
.calendar-page :is(.hero-card,.state-card,.action-card),
.security-page :is(.hero-card,.status-card,.step-card,.recovery-card,.danger-card),
.leads :is(.hero,.lead,.conversion,.history,.filter),
.automation :is(.card,.stat),
.analytics :is(.card,.stat,.step){
  border-radius:14px !important;
  border:1px solid var(--ac-line) !important;
  background:
    linear-gradient(135deg,rgba(105,217,255,.035),transparent 46%),
    rgba(6,16,26,.94) !important;
  color:var(--ac-text) !important;
  box-shadow:0 13px 34px rgba(0,0,0,.22) !important;
}

.tenant-dash :is(.hero-card,.meta-card),
.assistant-conv :is(.hero-card,.conversation-card,.message-card,.empty-card,.panel),
.bookings-page :is(.hero-card,.booking-card,.empty),
.calendar-page :is(.hero-card,.state-card,.action-card),
.security-page :is(.hero-card,.status-card,.step-card,.recovery-card,.danger-card),
.leads :is(.hero,.lead,.conversion,.history,.filter),
.automation .card,
.analytics .card{
  padding:clamp(15px,2vw,21px) !important;
}

.tenant-dash :is(.stats-grid,.ops-grid,.meta-grid),
.assistant-conv :is(.stats-grid,.list),
.calendar-page .grid,
.security-page .grid,
.leads :is(.grid,.two),
.automation :is(.grid,.stats,.two),
.analytics :is(.stats,.funnel){
  gap:11px !important;
}

.tenant-dash :is(.hero-title,.ops-title,.card-title),
.assistant-conv :is(.hero-title,.panel-title),
.bookings-page .hero-title,
.calendar-page :is(.hero-title,.card-title),
.security-page :is(.hero-title,.card-title),
.leads h1,
.leads h2,
.automation h1,
.automation h2,
.analytics h1,
.analytics h2{
  color:#f3f9fc !important;
  letter-spacing:-.025em !important;
}

.tenant-dash .hero-title,
.assistant-conv .hero-title,
.bookings-page .hero-title,
.calendar-page .hero-title,
.security-page .hero-title,
.leads h1,
.automation h1,
.analytics h1{
  font-size:clamp(26px,3.7vw,43px) !important;
  line-height:1.05 !important;
}

.tenant-dash :is(.hero-lead,.ops-lead,.card-text,.meta-note),
.assistant-conv :is(.hero-lead,.conversation-preview,.text,.meta),
.bookings-page :is(.hero-lead,.meta-val),
.calendar-page :is(.hero-lead,.card-text,.note,.meta-val),
.security-page :is(.hero-lead,.card-text,.note,.meta-val),
.leads :is(p,.meta),
.automation p,
.analytics p{
  color:var(--ac-text-soft) !important;
  font-size:12px !important;
  line-height:1.65 !important;
}

.tenant-dash :is(.hero-kicker,.ops-kicker),
.assistant-conv .hero-kicker,
.bookings-page .hero-kicker,
.calendar-page .hero-kicker,
.security-page .hero-kicker{
  color:var(--ac-cyan-bright) !important;
  font-size:9px !important;
  letter-spacing:.17em !important;
}

.tenant-dash :is(.meta-key,.stat-label),
.assistant-conv :is(.stat-label,.preview-label),
.bookings-page .meta-key,
.calendar-page .meta-key,
.security-page .meta-key,
.leads .label{
  color:var(--ac-text-muted) !important;
  font-size:9px !important;
  letter-spacing:.14em !important;
  text-transform:uppercase;
}

.tenant-dash .stat-value,
.assistant-conv .stat-value,
.automation .stat strong,
.analytics .stat strong{
  color:#f4fbff !important;
  font-size:clamp(24px,3vw,36px) !important;
}

.tenant-dash :is(.meta-row,.ops-wrap),
.bookings-page .meta-row,
.calendar-page .meta-row,
.security-page .meta-row,
.assistant-conv :is(.meta-row,.preview-row){
  border-color:rgba(105,217,255,.10) !important;
}

.assistant-conv .message-card.customer,
.assistant-conv .message-card.visitor{
  border-left:2px solid #8ea7b8 !important;
}

.assistant-conv .message-card.assistant{
  border-left:2px solid var(--ac-cyan) !important;
  background:linear-gradient(90deg,rgba(105,217,255,.07),rgba(6,16,26,.94) 34%) !important;
}

.assistant-conv .message-card.staff{
  border-left:2px solid var(--ac-success) !important;
}

.analytics .scroll{
  max-width:100%;
  overflow-x:auto !important;
  border:1px solid rgba(105,217,255,.10);
  border-radius:10px;
}

table{
  width:100%;
  border-collapse:collapse;
  color:var(--ac-text-soft);
  font-size:12px;
}

th{
  color:var(--ac-cyan-bright) !important;
  font-size:9px !important;
  letter-spacing:.12em;
  text-transform:uppercase;
  background:rgba(105,217,255,.055) !important;
}

th,
td{
  padding:11px 12px !important;
  border-color:rgba(105,217,255,.09) !important;
}

/* Auth, 2FA and recovery surfaces */
.ac-auth-page{
  min-height:100vh;
  background:transparent !important;
  color:var(--ac-text);
}

.ac-auth-page :is(.login-shell,.tfa-shell){
  min-height:100vh !important;
  padding:18px 14px !important;
}

.ac-auth-page :is(.login-wrap,.tfa-wrap){
  width:min(980px,100%) !important;
}

.ac-auth-page :is(.login-grid,.tfa-grid){
  gap:12px !important;
}

.ac-auth-page :is(.login-hero,.login-card,.tfa-hero,.tfa-card),
.ac-recovery-page > .card,
.ac-change-password-page .card{
  border-radius:16px !important;
  border:1px solid var(--ac-line) !important;
  background:
    linear-gradient(135deg,rgba(105,217,255,.045),transparent 42%),
    rgba(5,14,24,.96) !important;
  color:var(--ac-text) !important;
  box-shadow:var(--ac-shadow-strong) !important;
}

.ac-auth-page :is(.login-hero,.tfa-hero){
  padding:clamp(22px,4vw,38px) !important;
  position:relative;
}

.ac-auth-page :is(.login-hero,.tfa-hero)::after{
  content:"01000001 01011000";
  position:absolute;
  right:18px;
  bottom:14px;
  color:rgba(105,217,255,.14);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:9px;
  letter-spacing:.15em;
}

.ac-auth-page :is(.login-card,.tfa-card){
  padding:clamp(20px,3vw,30px) !important;
}

.ac-auth-page :is(.login-brand,.tfa-brand){
  gap:11px !important;
  margin-bottom:24px !important;
}

.ac-auth-page :is(.login-brand-logo,.tfa-brand-logo){
  width:48px !important;
  height:48px !important;
  flex-basis:48px !important;
  border-radius:11px !important;
  border:1px solid rgba(105,217,255,.22) !important;
  background:radial-gradient(circle,rgba(105,217,255,.11),rgba(105,217,255,.015)) !important;
}

.ac-auth-page :is(.login-brand-logo,.tfa-brand-logo) img{
  width:86% !important;
  height:86% !important;
}

.ac-auth-page :is(.login-brand-title,.tfa-brand-title){
  color:#f4faff !important;
  font-size:16px !important;
  font-weight:800 !important;
  letter-spacing:.12em !important;
}

.ac-auth-page :is(.login-brand-sub,.tfa-brand-sub){
  color:#7ea3b8 !important;
  font-size:8px !important;
  letter-spacing:.15em !important;
  text-transform:uppercase;
}

.ac-auth-page :is(.login-title,.tfa-title){
  margin-bottom:12px !important;
  color:#f4faff !important;
  font-size:clamp(31px,5.7vw,51px) !important;
  line-height:1.02 !important;
  letter-spacing:-.04em !important;
}

.ac-auth-page :is(.login-lead,.tfa-lead,.login-note,.tfa-note,.login-foot,.tfa-foot,.tfa-link){
  color:var(--ac-text-soft) !important;
  font-size:13px !important;
  line-height:1.65 !important;
}

.ac-auth-page :is(.login-card,.tfa-card) h2{
  color:#f3f9fc !important;
  font-size:22px !important;
  letter-spacing:-.025em !important;
}

.ac-auth-page :is(.form-label,label){
  color:#b8ccda !important;
  font-size:11px !important;
  letter-spacing:.035em !important;
}

.ac-auth-page .forgot-link,
.ac-auth-page .link{
  color:var(--ac-cyan-bright) !important;
  border-color:rgba(105,217,255,.18) !important;
  background:rgba(105,217,255,.045) !important;
}

.ac-recovery-page{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:18px 14px !important;
}

.ac-recovery-page > .card{
  width:min(500px,100%) !important;
  max-width:500px !important;
  padding:clamp(20px,4vw,30px) !important;
}

.auth-brand{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:24px;
}

.auth-brand img{
  width:46px;
  height:46px;
  flex:0 0 46px;
  object-fit:contain;
  padding:4px;
  border-radius:10px;
  border:1px solid rgba(105,217,255,.20);
  background:radial-gradient(circle,rgba(105,217,255,.10),transparent);
}

.auth-brand strong,
.auth-brand span{
  display:block;
}

.auth-brand strong{
  color:#f5fbff;
  font-size:15px;
  letter-spacing:.11em;
}

.auth-brand span{
  margin-top:5px;
  color:#789caf;
  font-size:8px;
  line-height:1.4;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.auth-brand-compact{
  margin-bottom:18px;
}

.ac-recovery-page h1,
.ac-change-password-page h1{
  color:#f4faff !important;
  font-size:clamp(27px,4vw,38px) !important;
  line-height:1.05 !important;
  letter-spacing:-.035em !important;
}

.ac-recovery-page .sub,
.ac-change-password-page :is(.sub,.note){
  color:var(--ac-text-soft) !important;
  font-size:12px !important;
}

.ac-recovery-page :is(.notice,.admin-box),
.ac-change-password-page :is(.notice,.err){
  border-radius:9px !important;
}

.ac-recovery-page .admin-box{
  background:#06111c !important;
  color:var(--ac-text-soft) !important;
  border:1px solid rgba(105,217,255,.18) !important;
}

.ac-recovery-page .admin-link{
  background:#030b13 !important;
  color:var(--ac-cyan-bright) !important;
  border-color:rgba(105,217,255,.16) !important;
}

.ac-change-password-page{
  padding:18px 14px !important;
}

.ac-change-password-page .wrap{
  max-width:900px !important;
}

.ac-change-password-page .topbar{
  gap:14px !important;
  margin-bottom:14px !important;
}

.ac-change-password-page .card{
  padding:clamp(17px,3vw,24px) !important;
}

@media (min-width:760px){
  .ac-btn,
  .btn,
  button,
  a.btn{
    width:auto;
  }
}

@media (min-width:980px){
  .ac-portal-grid,
  .ac-admin-grid{
    grid-template-columns:250px minmax(0,1fr) !important;
  }

  .ac-portal-sidebar,
  .ac-admin-sidebar{
    min-height:100vh !important;
    height:100vh;
    position:sticky !important;
    top:0;
    padding:20px 14px !important;
    border-right:1px solid var(--ac-line) !important;
    border-bottom:0 !important;
    overflow-y:auto;
  }

  .ac-portal-nav,
  .ac-admin-nav{
    display:grid !important;
    overflow:visible;
  }

  .ac-portal-nav a,
  .ac-admin-nav a,
  .ac-shell-navlink{
    white-space:normal;
  }

  .ac-portal-main-inner,
  .ac-admin-main-inner{
    padding:22px clamp(20px,2.5vw,36px) 46px !important;
  }

  .ac-auth-page :is(.login-grid,.tfa-grid){
    grid-template-columns:minmax(0,1.02fr) minmax(350px,.82fr) !important;
  }
}

@media (max-width:979px){
  .ac-portal-sidebar,
  .ac-admin-sidebar{
    position:sticky !important;
    top:0;
  }

  .ac-portal-user,
  .ac-admin-user{
    display:none;
  }
}

@media (max-width:479px){
  .ac-portal-brand-logo,
  .ac-admin-brand-logo{
    width:38px !important;
    height:38px !important;
    flex-basis:38px !important;
  }

  .ac-portal-brand-title,
  .ac-admin-brand-title{
    font-size:13px !important;
  }

  .ac-portal-brand-sub,
  .ac-admin-brand-sub{
    max-width:230px;
    font-size:7px !important;
  }

  .ac-portal-main-inner,
  .ac-admin-main-inner{
    padding:12px 10px 28px !important;
  }

  .tenant-dash :is(.hero-card,.meta-card),
  .assistant-conv :is(.hero-card,.conversation-card,.message-card,.empty-card,.panel),
  .bookings-page :is(.hero-card,.booking-card,.empty),
  .calendar-page :is(.hero-card,.state-card,.action-card),
  .security-page :is(.hero-card,.status-card,.step-card,.recovery-card,.danger-card),
  .leads :is(.hero,.lead,.conversion,.history,.filter),
  .automation .card,
  .analytics .card{
    padding:14px !important;
  }

  .ac-btn-row,
  .btn-row,
  .actions{
    gap:8px !important;
  }

  .ac-btn,
  .btn,
  button,
  a.btn{
    width:100%;
    min-width:0 !important;
  }
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ================================================================
   ASTORRE X COMMAND CENTER REFINEMENT — visual layer only
   Compact enterprise scale, connected telemetry and restrained motion.
   ================================================================ */
@keyframes ac-command-signal{
  0%{transform:translate3d(-130%,0,0);opacity:0;}
  14%,72%{opacity:.78;}
  100%{transform:translate3d(560%,0,0);opacity:0;}
}

@keyframes ac-data-drift{
  0%{transform:translate3d(0,-50%,0);opacity:.16;}
  50%{opacity:.30;}
  100%{transform:translate3d(34px,-50%,0);opacity:.16;}
}

@keyframes ac-node-travel{
  0%{transform:translate3d(0,-140%,0);opacity:0;}
  18%,72%{opacity:.85;}
  100%{transform:translate3d(0,900%,0);opacity:0;}
}

/* Shared operational density and typography. */
body:is(.ac-admin-body,.ac-portal-body){
  --ac-command-line:rgba(105,217,255,.18);
  --ac-command-line-hot:rgba(185,239,255,.78);
  --ac-command-panel:rgba(5,14,24,.96);
  --ac-command-panel-2:rgba(7,19,31,.97);
  font-size:14px;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-main-inner,.ac-portal-main-inner){
  position:relative;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-main-inner,.ac-portal-main-inner)::before{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  inset:0;
  background:
    linear-gradient(116deg,transparent 0 62%,rgba(105,217,255,.028) 62.05%,transparent 62.28%),
    radial-gradient(circle at 76% 4%,rgba(35,169,223,.075),transparent 31rem);
}

body.ac-admin-body .ac-admin-main h1,
body.ac-portal-body .ac-portal-main h1{
  max-width:100%;
  overflow-wrap:anywhere;
  font-size:clamp(38px,3.15vw,44px) !important;
  line-height:1.02 !important;
  letter-spacing:-.04em !important;
}

body.ac-admin-body .ac-admin-main h2,
body.ac-portal-body .ac-portal-main h2{
  font-size:clamp(24px,2vw,29px) !important;
  line-height:1.1 !important;
  letter-spacing:-.027em !important;
}

body.ac-admin-body .ac-admin-main h3,
body.ac-portal-body .ac-portal-main h3{
  font-size:15px !important;
  line-height:1.28 !important;
  letter-spacing:-.012em !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-lead,.ops-lead,.card-text,.op-text,.note,.muted,p){
  font-size:14px !important;
  line-height:1.62 !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-kicker,.ops-kicker,.stat-label,.meta-key,.mini-key,.label,th){
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace !important;
  font-size:10px !important;
  line-height:1.3 !important;
  letter-spacing:.15em !important;
  text-transform:uppercase;
}

/* Compact cinematic command headers. */
body:is(.ac-admin-body,.ac-portal-body) :is(.hero-block){
  position:relative;
  margin-bottom:14px !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-card){
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:0 !important;
  padding:20px 22px !important;
  border:1px solid rgba(105,217,255,.22) !important;
  border-radius:16px !important;
  background:
    linear-gradient(115deg,rgba(105,217,255,.075),transparent 31%),
    linear-gradient(180deg,var(--ac-command-panel-2),var(--ac-command-panel)) !important;
  box-shadow:0 16px 48px rgba(0,0,0,.30),inset 0 1px 0 rgba(190,242,255,.035) !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-card)::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  opacity:.65;
  background:
    linear-gradient(90deg,transparent 24px,rgba(105,217,255,.055) 25px,transparent 26px),
    linear-gradient(transparent 24px,rgba(105,217,255,.045) 25px,transparent 26px),
    linear-gradient(135deg,transparent 0 77%,rgba(105,217,255,.08) 77.1%,transparent 77.35%);
  background-size:25px 25px,25px 25px,100% 100%;
  -webkit-mask-image:linear-gradient(90deg,transparent 18%,#000 64%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 18%,#000 64%,transparent 100%);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-card)::after{
  content:"";
  position:absolute;
  z-index:3;
  top:0;
  left:0;
  width:112px;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--ac-command-line-hot),transparent);
  box-shadow:0 0 10px rgba(105,217,255,.42);
  animation:ac-command-signal 4.2s linear infinite;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-card) > *{
  position:relative;
  z-index:1;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-kicker,.ops-kicker){
  min-height:26px !important;
  margin-bottom:10px !important;
  padding:6px 9px !important;
  border:1px solid rgba(105,217,255,.24) !important;
  border-radius:6px !important;
  background:rgba(105,217,255,.065) !important;
  color:var(--ac-cyan-bright) !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-kicker,.ops-kicker)::after{
  content:"01001001 01001110 01010100 01000101 01001100";
  position:absolute;
  top:50%;
  left:calc(100% + 14px);
  width:min(28vw,320px);
  overflow:hidden;
  color:rgba(105,217,255,.26);
  font:8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.2em;
  white-space:nowrap;
  pointer-events:none;
  animation:ac-data-drift 3.8s linear infinite;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-title){
  margin:0 0 9px !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.hero-lead){
  max-width:900px !important;
  margin:0 !important;
  color:#a9c0d0 !important;
}

/* Connected telemetry modules. */
body:is(.ac-admin-body,.ac-portal-body) :is(.stats-grid,.summary-grid,.mini-grid,.ops-grid,.grid){
  position:relative;
  gap:10px !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stats-grid,.summary-grid,.ops-grid)::before{
  content:"";
  position:absolute;
  z-index:0;
  left:8px;
  right:8px;
  top:50%;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--ac-command-line),var(--ac-command-line),transparent);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-card,.op-card,.tenant-card,.panel,.card,.status-card,.step-card,.recovery-card,.form-card,.conversation-card,.message-card,.booking-card,.state-card,.action-card,.meta-card){
  position:relative;
  z-index:1;
  overflow:hidden;
  border-radius:13px !important;
  border:1px solid rgba(105,217,255,.16) !important;
  background:
    linear-gradient(135deg,rgba(105,217,255,.045),transparent 42%),
    linear-gradient(180deg,rgba(7,18,29,.97),rgba(4,12,21,.97)) !important;
  color:var(--ac-text) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.22),inset 0 1px 0 rgba(185,239,255,.025) !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-card,.op-card,.tenant-card,.panel,.card,.status-card,.step-card,.recovery-card,.form-card,.booking-card,.state-card,.action-card,.meta-card)::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:82px;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(105,217,255,.72),transparent);
  transform:translate3d(-110%,0,0);
  opacity:.55;
  transition:transform .55s ease,opacity .3s ease;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-card,.op-card,.tenant-card,.panel,.card,.status-card,.step-card,.recovery-card,.form-card,.booking-card,.state-card,.action-card,.meta-card):hover::after{
  transform:translate3d(560%,0,0);
  opacity:.9;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-card){
  min-height:112px !important;
  padding:16px 17px !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-card)::before{
  content:"";
  position:absolute;
  top:14px;
  right:14px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--ac-cyan);
  box-shadow:0 0 10px rgba(105,217,255,.68);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-value,.stat-main){
  font-size:clamp(34px,3vw,40px) !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-label){
  margin-bottom:8px !important;
  color:#7896aa !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.stat-note){
  margin-top:8px !important;
  color:#86a1b3 !important;
  font-size:12px !important;
  line-height:1.45 !important;
}

body.ac-admin-body .ac-dashboard .ops-wrap{
  position:relative;
  overflow:hidden;
  padding:19px !important;
  border:1px solid rgba(105,217,255,.17) !important;
  border-radius:15px !important;
  background:
    linear-gradient(120deg,rgba(105,217,255,.038),transparent 32%),
    rgba(4,12,21,.96) !important;
  box-shadow:0 15px 42px rgba(0,0,0,.27) !important;
}

body.ac-admin-body .ac-dashboard .ops-head{
  margin-bottom:14px !important;
}

body.ac-admin-body .ac-dashboard .op-card{
  padding:16px !important;
}

body.ac-admin-body .ac-dashboard .op-title{
  margin:0 0 7px !important;
  font-size:15px !important;
  letter-spacing:-.01em !important;
}

body.ac-admin-body .ac-dashboard .op-text{
  min-height:3.2em;
  margin:0 0 12px !important;
  color:#96adbc !important;
  font-size:13px !important;
  line-height:1.55 !important;
}

body.ac-admin-body .ac-dashboard .op-note{
  margin-top:9px !important;
  color:#718da1 !important;
  font-size:11px !important;
  line-height:1.5 !important;
}

/* Admin page-specific compaction. */
body.ac-admin-body .tenants-page .registry-wrap,
body.ac-admin-body .analytics-page .panel,
body.ac-admin-body .ld .panel,
body.ac-admin-body .ac-audit .card,
body.ac-admin-body .admin-security :is(.status-card,.step-card,.recovery-card,.danger-card),
body.ac-admin-body .admin-password .form-card{
  padding:17px !important;
}

body.ac-admin-body .tenants-page .tenant-card{
  padding:16px !important;
}

body.ac-admin-body :is(.tenants-page,.analytics-page,.ac-audit,.admin-security,.admin-password) :is(.registry-title,.panel-title,.card-title){
  margin-bottom:10px !important;
}

body.ac-admin-body :is(.tenants-page,.analytics-page,.ac-audit,.admin-security,.admin-password) :is(.meta-row,.mini-row){
  padding:8px 0 !important;
  gap:9px !important;
}

body.ac-admin-body .analytics-page .summary-grid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important;
}

body.ac-admin-body .analytics-page .stat-card{
  min-height:104px !important;
}

body.ac-admin-body .admin-security .danger-card,
body.ac-portal-body .security-page .danger-card{
  border-color:rgba(255,96,126,.40) !important;
  background:
    linear-gradient(135deg,rgba(255,70,105,.085),transparent 44%),
    rgba(24,7,14,.94) !important;
  box-shadow:0 12px 34px rgba(20,0,6,.30) !important;
}

/* Enterprise telemetry tables and compact controls. */
body:is(.ac-admin-body,.ac-portal-body) :is(.table-wrap,.scroll){
  max-width:100%;
  overflow:auto;
  border:1px solid rgba(105,217,255,.11);
  border-radius:10px;
}

body:is(.ac-admin-body,.ac-portal-body) table{
  font-size:13px !important;
  line-height:1.38 !important;
}

body:is(.ac-admin-body,.ac-portal-body) th{
  color:#8ba7b8 !important;
  background:rgba(105,217,255,.052) !important;
}

body:is(.ac-admin-body,.ac-portal-body) th,
body:is(.ac-admin-body,.ac-portal-body) td{
  height:44px;
  padding:8px 10px !important;
  border-color:rgba(105,217,255,.09) !important;
}

body:is(.ac-admin-body,.ac-portal-body) tbody tr{
  transition:background .16s ease,box-shadow .16s ease;
}

body:is(.ac-admin-body,.ac-portal-body) tbody tr:hover{
  background:rgba(105,217,255,.035) !important;
  box-shadow:inset 2px 0 0 rgba(105,217,255,.55);
}

body:is(.ac-admin-body,.ac-portal-body) :is(input:not([type="checkbox"]):not([type="radio"]),select){
  min-height:40px !important;
  height:40px;
  padding:8px 11px !important;
  border-radius:8px !important;
  border-color:rgba(105,217,255,.20) !important;
  background:rgba(3,12,20,.92) !important;
  font-size:13px !important;
}

body:is(.ac-admin-body,.ac-portal-body) textarea{
  min-height:92px !important;
  padding:10px 11px !important;
  border-radius:8px !important;
  border-color:rgba(105,217,255,.20) !important;
  background:rgba(3,12,20,.92) !important;
  font-size:13px !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.btn,.ac-btn,button,a.btn,.op-btn){
  position:relative;
  overflow:hidden;
  width:auto;
  min-width:0 !important;
  min-height:40px !important;
  height:auto;
  padding:9px 14px !important;
  border-radius:8px !important;
  font-size:12px !important;
  line-height:1.25 !important;
  letter-spacing:.015em !important;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.btn,.ac-btn,button,a.btn,.op-btn)::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(108deg,transparent 30%,rgba(255,255,255,.17) 50%,transparent 70%);
  transform:translate3d(-125%,0,0);
  transition:transform .38s ease;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.btn,.ac-btn,button,a.btn,.op-btn):hover::after{
  transform:translate3d(125%,0,0);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.danger,.danger-btn,.btn-danger,.delete,.remove),
body:is(.ac-admin-body,.ac-portal-body) :is(.danger-card) button{
  border-color:rgba(255,116,142,.46) !important;
  background:rgba(112,20,40,.42) !important;
  color:#ffd6df !important;
}

/* Sidebar and top command rail. */
body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar){
  isolation:isolate;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar)::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:14px;
  right:7px;
  bottom:14px;
  width:1px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(105,217,255,.22) 12%,rgba(105,217,255,.08) 84%,transparent);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar)::after{
  content:"";
  position:absolute;
  z-index:2;
  top:14px;
  right:5px;
  width:5px;
  height:5px;
  border-radius:50%;
  pointer-events:none;
  background:var(--ac-cyan);
  box-shadow:0 0 12px rgba(105,217,255,.72);
  animation:ac-node-travel 4.5s linear infinite;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-brand,.ac-portal-brand){
  position:relative;
  padding-right:18px;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-brand,.ac-portal-brand)::after{
  content:"";
  position:absolute;
  top:5px;
  right:2px;
  width:6px;
  height:6px;
  border:1px solid rgba(185,239,255,.72);
  border-radius:50%;
  background:#113044;
  box-shadow:0 0 9px rgba(105,217,255,.44);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-nav,.ac-portal-nav) a{
  position:relative;
  overflow:hidden;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-nav,.ac-portal-nav) a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:54px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(105,217,255,.74),transparent);
  transform:translate3d(-120%,0,0);
  transition:transform .36s ease;
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-nav,.ac-portal-nav) a:hover::after,
body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-nav,.ac-portal-nav) a.is-active::after{
  transform:translate3d(410%,0,0);
}

body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-nav,.ac-portal-nav) a.is-active::before{
  content:"";
  flex:0 0 5px;
  width:5px;
  height:5px;
  margin-right:2px;
  border-radius:50%;
  background:var(--ac-cyan);
  box-shadow:0 0 10px rgba(105,217,255,.78);
}

/* Auth surfaces become compact command gates without touching auth behavior. */
body.ac-auth-page :is(.login-title,.tfa-title){
  font-size:clamp(36px,4vw,42px) !important;
  line-height:1.02 !important;
}

body.ac-auth-page :is(.login-hero,.tfa-hero,.login-card,.tfa-card),
body :is(.ac-recovery-page,.ac-change-password-page) > :is(.card,.wrap){
  position:relative;
  overflow:hidden;
}

body.ac-auth-page :is(.login-hero,.tfa-hero)::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.55;
  background:
    linear-gradient(rgba(105,217,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(105,217,255,.04) 1px,transparent 1px),
    radial-gradient(circle at 78% 26%,rgba(105,217,255,.12),transparent 17rem);
  background-size:28px 28px,28px 28px,100% 100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 42%,#000 100%);
  mask-image:linear-gradient(90deg,transparent,#000 42%,#000 100%);
}

body.ac-auth-page :is(.login-card,.tfa-card)::before,
body :is(.ac-recovery-page,.ac-change-password-page) .card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:90px;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--ac-command-line-hot),transparent);
  animation:ac-command-signal 4.6s linear infinite;
}

body.ac-auth-page :is(.login-card,.tfa-card){
  padding:22px !important;
}

@media (min-width:1280px){
  body.ac-admin-body .ac-dashboard .ops-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media (max-width:979px){
  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-grid,.ac-portal-grid){
    width:100%;
    max-width:100vw;
    grid-template-columns:minmax(0,1fr) !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar,.ac-admin-main,.ac-portal-main){
    width:100%;
    min-width:0;
    max-width:100vw;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar){
    padding:10px 12px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar)::before{
    top:auto;
    right:12px;
    bottom:5px;
    left:12px;
    width:auto;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(105,217,255,.22) 12%,rgba(105,217,255,.08) 84%,transparent);
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-sidebar,.ac-portal-sidebar)::after{
    top:auto;
    right:auto;
    bottom:3px;
    left:12px;
    animation:ac-command-signal 4.5s linear infinite;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-brand,.ac-portal-brand){
    margin-bottom:8px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.ac-admin-nav,.ac-portal-nav) a{
    min-height:36px !important;
    padding:8px 10px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.stats-grid,.summary-grid,.ops-grid)::before{
    left:10px;
    right:auto;
    top:8px;
    bottom:8px;
    width:1px;
    height:auto;
    background:linear-gradient(180deg,transparent,var(--ac-command-line),transparent);
  }
}

@media (max-width:479px){
  body.ac-admin-body .ac-admin-main h1,
  body.ac-portal-body .ac-portal-main h1,
  body.ac-auth-page :is(.login-title,.tfa-title){
    font-size:clamp(30px,8.6vw,34px) !important;
    line-height:1.04 !important;
    letter-spacing:-.035em !important;
  }

  body.ac-admin-body .ac-admin-main h2,
  body.ac-portal-body .ac-portal-main h2{
    font-size:24px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.hero-card){
    padding:16px 15px !important;
    border-radius:13px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.hero-kicker,.ops-kicker)::after{
    width:76px;
    left:calc(100% + 9px);
    font-size:7px;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.stat-card){
    min-height:102px !important;
    padding:14px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.stat-value,.stat-main){
    font-size:34px !important;
  }

  body.ac-admin-body .ac-dashboard .ops-wrap,
  body.ac-admin-body .tenants-page .registry-wrap,
  body.ac-admin-body .analytics-page .panel,
  body.ac-admin-body .ld .panel,
  body.ac-admin-body .ac-audit .card,
  body.ac-admin-body .admin-security :is(.status-card,.step-card,.recovery-card,.danger-card),
  body.ac-admin-body .admin-password .form-card{
    padding:14px !important;
  }

  body:is(.ac-admin-body,.ac-portal-body) :is(.btn,.ac-btn,button,a.btn,.op-btn){
    width:100%;
    min-height:42px !important;
    padding:10px 12px !important;
  }
}
