/* Shared AT-AI brand tokens. Legacy token aliases keep existing components compatible. */
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");

:root {
  color-scheme: light;
  --ink: #0a1620;
  --ink-2: #14343d;
  --night: #081a22;
  --night-2: #14343d;
  --forest: #081a22;
  --accent: #00aeb4;
  --accent-2: #75ece6;
  --accent-rgb: 0,174,180;
  --green: #007b80;
  --mint: #8bf7f0;
  --lime: #8bf7f0;
  --mint-soft: #e5f7f6;
  --aqua: #75ece6;
  --aqua-soft: #e5f7f6;
  --paper: #f5f9f9;
  --cream: #f4f8f8;
  --surface: #fff;
  --line: #dce7e8;
  --muted: #64747b;
  --placeholder: #73838a;
  --display: "Manrope",system-ui,sans-serif;
  --shadow: 0 12px 28px #123b3d08;
  --sidebar: 255px;
  --portal-sidebar: 255px;
  --radius-card: 14px;
  --radius-control: 8px;
}

body { font-family: var(--display); }
button,input,select,textarea { font: inherit; }
h1,h2,h3 { font-family: var(--display); letter-spacing: -.045em; }
:where(button,a,input,select,textarea,summary):focus-visible {
  outline: 3px solid #007b80;
  outline-offset: 3px;
}
input::placeholder,textarea::placeholder { color: var(--placeholder); font-weight: 400; opacity: 1; }
input[type="checkbox"],input[type="radio"] { accent-color: var(--green); }
:where(button,input,select,textarea):disabled,
a[aria-disabled="true"] { opacity: .6; cursor: not-allowed; }
button[aria-busy="true"] { cursor: progress; }
button:disabled:hover,a[aria-disabled="true"]:hover { transform: none; box-shadow: none; }

/* Public surfaces: spacious white/mist sections and restrained cyan highlights. */
.site-header { background: #fffffff2; border-color: var(--line); backdrop-filter: blur(14px); }
.home-hero {
  color: var(--ink);
  background: radial-gradient(circle at 77% 32%,#d8f7f5,transparent 36%),#fff;
}
.home-hero h1 { font-size: clamp(3.1rem,6.4vw,5.6rem); line-height: .94; letter-spacing: -.055em; }
.home-hero h1 em { color: #008e93; }
.hero-kicker,.eyebrow { color: var(--green); }
.hero-lead,.trust-row p,.hero-ticker { color: var(--muted); }
.trust-row strong { color: var(--ink); }
.hero-ticker { border-color: var(--line); }
.home-hero .hero-grid { gap: 5vw; }
.hero-glow { opacity: .12; }
.stage-orbit { border-color: #b8dfde; }
.assistant-window {
  background: #fff; color: var(--ink); border: 1px solid #cce3e4;
  border-radius: 18px; box-shadow: 0 30px 70px #183c4224; transform: none;
}
.window-bar { border-color: var(--line); }
.window-brand small,.ai-message small,.verified { color: var(--muted); }
.customer-message { background: var(--ink); color: #fff; }
.result-card { background: #f4f8f8; color: var(--ink); }
.ai-message { background: #e8f3f3; color: var(--ink); }
.signal-chip,.insight-card { border: 1px solid var(--line); box-shadow: 0 18px 32px #183c4218; }
.button,.button-primary { background: var(--ink); color: #fff; border-radius: 9px; }
.button:hover,.button-primary:hover { background: var(--accent); color: var(--ink); }
.button-bright { background: var(--accent-2); color: var(--ink); }
.button-bright:hover { background: var(--accent); color: var(--ink); }
.button-light,.button-ghost { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.button-ghost:hover { background: var(--aqua-soft); color: var(--ink); }
.public-service-card,.feature-card,.feature-showcase,.price-card {
  border: 1px solid var(--line); border-radius: var(--radius-card);
  box-shadow: var(--shadow); transition: transform .25s,border-color .25s,box-shadow .25s;
}
.public-service-card { background: #fff; padding: 25px; min-height: 0; }
.public-service-card h3 { font-size: clamp(1.4rem,2.2vw,2rem); line-height: 1.15; }
.public-service-card,.voice-service-card { color: var(--ink); }
.voice-service-card .public-service-meta,
.voice-service-card>p:not(.eyebrow) { color: var(--muted); }
.voice-service-card li { color: var(--ink); border-color: var(--line); }
.service-symbol { width: 100px; height: 100px; margin: 32px 0; background: var(--aqua-soft); }
.service-symbol>span { width: 64px; height: 48px; border-radius: 14px; }
.public-service-card:hover,.feature-card:hover {
  transform: translateY(-4px); border-color: #78d3d0; box-shadow: 0 18px 38px #123d4010;
}
.mint-panel,.pale-panel { background: var(--aqua-soft); }
.dark-panel,.site-footer { background: #071820; color: #fff; }
.closing-cta { background: radial-gradient(circle at 50% 45%,#b8f2ee,transparent 40%),#eaf7f6; color: var(--ink); }
.closing-cta .eyebrow { color: var(--green); }

/* Shared admin/client geometry, without changing routing or permission behavior. */
.admin-body,.portal-body,.client-view { background: var(--paper); color: var(--ink); }
.portal-body { --portal-sidebar: 255px; }
.portal-topbar a:not([class]) { color: var(--green); text-underline-offset: 3px; }
.admin-sidebar,.portal-sidebar { background: var(--night); overflow-y: auto; overscroll-behavior: contain; }
.admin-sidebar nav a,.portal-sidebar nav a { color: #c8dbdc; border-radius: 9px; }
.admin-sidebar nav a.active,.admin-sidebar nav a:hover,
.portal-sidebar nav a.active,.portal-sidebar nav a:hover { background: #14343d; color: #8bf7f0; }
.portal-sidebar nav a.active i { background: #00aeb41f; }
.admin-sidebar :focus-visible,.portal-sidebar :focus-visible { outline-color: #8bf7f0; }
.admin-main,.portal-main { min-width: 0; }
.section-main,.section-side,.portal-primary-column,.portal-secondary-column { min-width: 0; }
.admin-topbar h1,.portal-topbar h1 { font-weight: 800; letter-spacing: -.05em; }
.portal-panel,.panel-grid>article,.metric-grid>article,.portal-metric,.master-panel {
  border: 1px solid var(--line); border-radius: var(--radius-card);
  background: #fff; box-shadow: var(--shadow);
}
.portal-panel,.panel-grid>article,.metric-grid>article { padding: 20px; }
.client-service-card { padding: 20px; border-radius: var(--radius-card); box-shadow: var(--shadow); }
.client-service-icon { color: var(--accent-2); }
.service-capability-list span { color: var(--green); background: var(--aqua-soft); }
.metric-grid>article:hover,.portal-metric:hover { border-color: #8bd6d4; }
.portal-metric { --accent: #00aeb4; }
.primary-action { background: var(--ink); color: #fff; border-radius: var(--radius-control); }
.primary-action:hover { background: var(--accent); color: var(--ink); }
.outline-action { border-color: var(--line); background: #fff; color: var(--ink); border-radius: var(--radius-control); }
.manage-tabs a.active,.master-tabs a.active { background: var(--ink); color: #fff; }
.management-row>summary { background: #f4f8f8; border-left-color: var(--green); }
.management-row[open]>summary { background: #e5f7f6; border-bottom-color: var(--line); }
.management-row[open] { border-color: #8bd6d4; }
.table-shell { overflow-x: auto; }
.table-shell tbody tr:hover { background: #f7fbfb; }
.portal-panel input,.portal-panel select,.portal-panel textarea,
.admin-main input,.admin-main select,.admin-main textarea { border-radius: var(--radius-control); }
.portal-panel input:not([type="checkbox"]):not([type="radio"]),
.portal-panel select,.portal-panel textarea { border-color: var(--line); }

@media(min-width:992px) {
  .admin-main,.portal-main { padding-left: 38px; padding-right: 38px; }
}
@media(max-width:991px) {
  .admin-sidebar,.portal-sidebar { position: static; width: 100%; height: auto; padding: 16px; }
  .admin-sidebar .admin-brand,.portal-sidebar .admin-brand { margin: 0 0 16px; }
  .admin-sidebar nav,.portal-sidebar nav { display: flex; overflow-x: auto; }
  .admin-sidebar nav a,.portal-sidebar nav a { flex-shrink: 0; white-space: nowrap; }
  .admin-main,.portal-main { margin-left: 0; padding-left: 20px; padding-right: 20px; }
  .admin-topbar,.portal-topbar { height: auto; min-height: 0; padding-block: 24px; flex-wrap: wrap; gap: 16px; }
  .admin-sidebar .sidebar-foot,.portal-sidebar-card,.portal-profile { display: none; }
  .home-hero .hero-grid { padding-top: 55px; padding-bottom: 60px; }
  .home-hero h1 { font-size: clamp(3.1rem,8vw,4.5rem); }
  .public-service-card { padding: 24px; }
}
@media(max-width:900px) {
  /* Keep the existing checkbox menu operable by keyboard as well as pointer. */
  .nav-toggle { display: block; position: absolute; width: 1px; height: 1px; clip-path: inset(50%); }
  .nav-toggle:focus-visible+.nav-toggle-label { outline: 3px solid var(--green); outline-offset: 4px; border-radius: 4px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; }
}
