@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800;900&family=Source+Sans+3:wght@400;600;700&display=swap");

:root {
  --font: Inter, ui-sans-serif, system-ui, "Segoe UI", sans-serif;
  --radius: 18px;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: var(--font); }
a { color: inherit; }
button, input { font: inherit; }

/* AiCallAgents — VNext: navy, cyan, violet */
body.aca {
  --bg: #060814;
  --panel: rgba(14, 21, 39, .86);
  --ink: #f7f9ff;
  --muted: #a9b5ca;
  --line: rgba(159, 183, 225, .16);
  --accent: #00d4ff;
  --accent2: #a855f7;
  --btn: linear-gradient(135deg, #00bddf, #7e50ee);
  --shadow: 0 18px 50px rgba(0, 0, 0, .35);
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 0%, rgba(0, 212, 255, .12), transparent 26rem),
    radial-gradient(circle at 90% 12%, rgba(168, 85, 247, .12), transparent 30rem),
    var(--bg);
}

/* AiDigitalSmart — orange + purple on dark */
body.ads {
  --bg: #07070b;
  --panel: rgba(18, 15, 26, .78);
  --ink: #f7f4ff;
  --muted: #b9b2c8;
  --line: rgba(255, 255, 255, .12);
  --accent: #ff7a18;
  --accent2: #8a5cff;
  --btn: linear-gradient(135deg, #ff7a18, #ff9541 44%, #8a5cff);
  --shadow: 0 30px 90px rgba(0, 0, 0, .45);
  color: var(--ink);
  background:
    radial-gradient(circle at 70% -10%, rgba(138, 92, 255, .17), transparent 30%),
    radial-gradient(circle at 5% 15%, rgba(255, 122, 24, .09), transparent 25%),
    var(--bg);
}

/* Digital4Doctors — V5 white matte (not dark) */
body.d4d {
  --bg: #fffefb;
  --panel: #fffefb;
  --ink: #0b2942;
  --muted: #5f7379;
  --line: #d9e4e2;
  --accent: #2aa876;
  --accent2: #146e8c;
  --btn: #2aa876;
  --shadow: none;
  color: var(--ink);
  background-color: #fffefb;
  background-image: none;
  font-family: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;
}

.shell { max-width: 1120px; margin: 0 auto; padding: 28px 20px 80px; }
.top { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
.top img { height: 40px; width: auto; max-width: 260px; object-fit: contain; }
.brand-switch { margin-left: auto; }
.ghost, button.ghost {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
}
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: var(--shadow);
}
.card h3 {
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 800;
}
.metric { font-size: 28px; font-weight: 800; letter-spacing: -.03em; }
.login { max-width: 440px; margin: 10vh auto; }
label { display: block; font-size: 12px; font-weight: 800; color: var(--muted); margin: 14px 0 6px; }
input {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: transparent;
  color: inherit;
}
body.d4d input { background: rgba(255, 255, 255, .82); }
body.aca input, body.ads input { background: rgba(255, 255, 255, .04); }
button.primary {
  width: 100%;
  margin-top: 18px;
  background: var(--btn);
  color: #fff;
  font-weight: 800;
  border: 0;
  padding: 13px;
  border-radius: 14px;
  cursor: pointer;
  box-shadow: var(--shadow);
}
.err { color: #c44; min-height: 1.2em; font-size: 14px; }
body.aca .err, body.ads .err { color: #ffb4aa; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line); }
.muted { color: var(--muted); }
.row { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
body.d4d .card,
body.d4d .login .card {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
body.d4d button.primary { box-shadow: none; color: #fff; }
body.d4d h3 { color: #0b2942; }

/* Digital4Doctors Practice OS — white-paper V5. */
body.d4d .d4d-shell { display: grid; grid-template-columns: 205px minmax(0, 1fr); min-height: 100vh; }
body.d4d .d4d-rail { border-right: 1px solid #d9e4e2; display: flex; flex-direction: column; gap: 3px; padding: 20px 14px; }
body.d4d .d4d-mark { color: #0b2942; font-size: 16px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 24px; }
body.d4d .d4d-rail a, body.d4d .d4d-link { border: 0; border-radius: 4px; color: #5f7379; cursor: pointer; font: inherit; padding: 8px 10px; text-align: left; text-decoration: none; }
body.d4d .d4d-rail a.active { background: #edf5f4; color: #146e8c; font-weight: 700; }
body.d4d .d4d-link { background: transparent; margin-top: auto; }
body.d4d .d4d-main { min-width: 0; padding: 26px 30px 60px; }
body.d4d .d4d-header { align-items: flex-start; border-bottom: 1px solid #d9e4e2; display: flex; justify-content: space-between; margin-bottom: 24px; padding-bottom: 17px; }
body.d4d .d4d-header h1, body.d4d .d4d-public h1, body.d4d .d4d-empty h1 { color: #0b2942; font-size: 28px; letter-spacing: -.025em; margin: 2px 0 0; }
body.d4d .d4d-eyebrow { color: #5f7379; font-size: 12px; }
body.d4d .d4d-date { color: #5f7379; font-size: 13px; padding-top: 9px; }
body.d4d .d4d-metrics { border-bottom: 1px solid #d9e4e2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 22px; }
body.d4d .d4d-metrics div { border-right: 1px solid #d9e4e2; padding: 0 16px 16px; }
body.d4d .d4d-metrics div:first-child { padding-left: 0; }
body.d4d .d4d-metrics div:last-child { border-right: 0; }
body.d4d .d4d-metrics span { color: #5f7379; display: block; font-size: 12px; }
body.d4d .d4d-metrics strong { color: #0b2942; display: block; font-feature-settings: "tnum" 1; font-size: 24px; margin-top: 4px; }
body.d4d .d4d-card { border: 1px solid #d9e4e2; border-radius: 6px; margin: 0 0 16px; padding: 16px; }
body.d4d .d4d-card h2 { font-size: 17px; margin: 0 0 12px; }
body.d4d .d4d-card p { color: #5f7379; font-size: 14px; }
body.d4d .d4d-row { align-items: center; display: flex; justify-content: space-between; gap: 12px; }
body.d4d .d4d-table { overflow-x: auto; }
body.d4d .d4d-table table { font-size: 13px; }
body.d4d .d4d-table th { color: #5f7379; font-size: 12px; font-weight: 600; }
body.d4d .d4d-table a, body.d4d .d4d-provider-grid a { color: #146e8c; text-decoration: none; }
body.d4d .d4d-status { color: #2aa876; font-size: 12px; font-weight: 600; }
body.d4d .d4d-button { background: #146e8c; border: 0; border-radius: 4px; color: #fff; cursor: pointer; display: inline-block; font: inherit; font-size: 13px; padding: 8px 12px; text-decoration: none; }
body.d4d .d4d-public, body.d4d .d4d-empty { margin: 0 auto; max-width: 680px; padding: 36px 20px 60px; }
body.d4d .d4d-public > p { color: #5f7379; margin: 5px 0 24px; }
body.d4d .d4d-public label { color: #0b2942; font-size: 13px; font-weight: 600; margin-top: 14px; }
body.d4d .d4d-public input, body.d4d .d4d-public select, body.d4d .d4d-public textarea { background: #fffefb; border: 1px solid #d9e4e2; border-radius: 4px; color: #0b2942; display: block; margin-top: 5px; padding: 9px 10px; width: 100%; }
body.d4d .d4d-public textarea { min-height: 72px; resize: vertical; }
body.d4d .d4d-public .d4d-button { margin-top: 20px; }
body.d4d .d4d-slots { display: grid; gap: 7px; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); margin-top: 14px; }
body.d4d .d4d-slot { background: #fffefb; border: 1px solid #d9e4e2; border-radius: 4px; color: #0b2942; cursor: pointer; padding: 9px; text-align: left; }
body.d4d .d4d-slot.selected { background: #edf5f4; border-color: #146e8c; color: #146e8c; }
body.d4d .d4d-provider-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
body.d4d .d4d-provider-grid a { border: 1px solid #d9e4e2; border-radius: 6px; color: #0b2942; padding: 14px; }
body.d4d .d4d-provider-grid a span { color: #5f7379; display: block; font-size: 13px; margin-top: 5px; }
body.d4d .d4d-logo { display: block; height: 42px; margin: 0 0 20px; max-width: 176px; object-fit: contain; object-position: left center; width: auto; }
body.d4d .d4d-header-tools { align-items: center; display: flex; gap: 9px; }
body.d4d .d4d-chip { background: #edf5f4; border: 1px solid #d9e4e2; border-radius: 999px; color: #0b2942; cursor: pointer; font: inherit; font-size: 12px; padding: 7px 10px; text-decoration: none; }
body.d4d .d4d-chip[hidden] { display: none; }
body.d4d .d4d-card label { color: #0b2942; font-size: 13px; font-weight: 600; }
body.d4d .d4d-card input, body.d4d .d4d-card select, body.d4d .d4d-card textarea { background: #fffefb; border: 1px solid #d9e4e2; border-radius: 4px; color: #0b2942; display: block; margin-top: 5px; padding: 9px 10px; width: 100%; }
body.d4d .d4d-card textarea { min-height: 88px; resize: vertical; }
body.d4d .d4d-actions { display: flex; gap: 9px; margin-top: 16px; }
body.d4d .d4d-actions .d4d-button { margin: 0; }
body.d4d .d4d-split { align-items: start; display: grid; gap: 16px; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr); }
body.d4d .d4d-files, body.d4d .d4d-messages, body.d4d .d4d-timeline { display: grid; gap: 10px; }
body.d4d .d4d-file, body.d4d .d4d-event, body.d4d .d4d-reach, body.d4d .d4d-message, body.d4d .d4d-empty-state { border: 1px solid #d9e4e2; border-radius: 6px; padding: 16px; }
body.d4d .d4d-file span, body.d4d .d4d-event span, body.d4d .d4d-message span { color: #2aa876; font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
body.d4d .d4d-file h2, body.d4d .d4d-event h2, body.d4d .d4d-reach h2 { font-size: 16px; margin: 7px 0; }
body.d4d .d4d-file p, body.d4d .d4d-event p, body.d4d .d4d-message p, body.d4d .d4d-note, body.d4d .d4d-empty-state { color: #5f7379; font-size: 13px; line-height: 1.5; }
body.d4d .d4d-file a { color: #146e8c; }
body.d4d .d4d-message { background: #fffefb; color: #0b2942; cursor: pointer; display: grid; gap: 4px; text-align: left; width: 100%; }
body.d4d .d4d-message.unread { background: #f1f8f5; border-left: 3px solid #2aa876; }
body.d4d .d4d-message small { color: #5f7379; }
body.d4d .d4d-reach-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
body.d4d .d4d-reach dl { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
body.d4d .d4d-reach dt { color: #5f7379; font-size: 11px; text-transform: uppercase; }
body.d4d .d4d-reach dd { margin: 3px 0 0; }
@media (max-width: 900px) { body.d4d .d4d-split { grid-template-columns: 1fr; } }
@media (max-width: 760px) { body.d4d .d4d-shell { display: block; } body.d4d .d4d-rail { border-bottom: 1px solid #d9e4e2; border-right: 0; display: grid; grid-template-columns: repeat(3, 1fr); } body.d4d .d4d-logo { grid-column: 1 / -1; margin-bottom: 8px; } body.d4d .d4d-link { margin-top: 0; } body.d4d .d4d-main { padding: 20px 14px 40px; } body.d4d .d4d-header { display: block; } body.d4d .d4d-date { padding-top: 8px; } body.d4d .d4d-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.d4d .d4d-metrics div:nth-child(2) { border-right: 0; } body.d4d .d4d-metrics div:nth-child(-n+2) { border-bottom: 1px solid #d9e4e2; margin-bottom: 12px; } }

/* AiCallAgents Client OS — Abacus v2 navy, cyan, and violet; never mounted outside the ACA host. */
body.aca .aca-os { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: 100vh; }
body.aca .aca-rail { background: rgba(3, 8, 24, .82); border-right: 1px solid rgba(0, 212, 255, .16); display: flex; flex-direction: column; padding: 28px 16px; }
body.aca .aca-wordmark { color: #f7fbff; font-size: 20px; font-weight: 800; letter-spacing: -.035em; }
body.aca .aca-submark { color: #8ca1c4; font-size: 12px; letter-spacing: .08em; margin: 4px 0 28px; text-transform: uppercase; }
body.aca .aca-rail nav { display: grid; gap: 4px; }
body.aca .aca-rail a { border-left: 2px solid transparent; color: #91a6c7; font-size: 14px; padding: 10px 11px; text-decoration: none; }
body.aca .aca-rail a:hover, body.aca .aca-rail a.active { background: rgba(0, 212, 255, .08); border-left-color: #00d4ff; color: #f7fbff; }
body.aca .aca-signout { background: transparent; border: 0; color: #91a6c7; cursor: pointer; font: inherit; margin-top: auto; padding: 10px 11px; text-align: left; }
body.aca .aca-main { min-width: 0; padding: 34px 36px 70px; }
body.aca .aca-header { align-items: center; display: flex; justify-content: space-between; margin-bottom: 26px; }
body.aca .aca-eyebrow { color: #00d4ff; font-size: 11px; font-weight: 700; letter-spacing: .14em; margin: 0 0 8px; text-transform: uppercase; }
body.aca .aca-header h1 { font-size: 30px; letter-spacing: -.035em; margin: 0; }
body.aca .aca-live { background: rgba(168, 85, 247, .14); border: 1px solid rgba(168, 85, 247, .45); border-radius: 999px; color: #d7b8ff; font-size: 12px; font-weight: 700; padding: 7px 10px; }
body.aca .aca-kpis { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; }
body.aca .aca-kpis article, body.aca .aca-card, body.aca .aca-form { background: rgba(10, 19, 40, .76); border: 1px solid rgba(159, 183, 225, .15); border-radius: 12px; box-shadow: 0 18px 50px rgba(0, 0, 0, .2); }
body.aca .aca-kpis article { padding: 17px; }
body.aca .aca-kpis span { color: #91a6c7; display: block; font-size: 12px; }
body.aca .aca-kpis strong { color: #f7fbff; display: block; font-size: 27px; font-variant-numeric: tabular-nums; margin-top: 8px; }
body.aca .aca-card { margin-bottom: 14px; padding: 18px; }
body.aca .aca-card h2, body.aca .aca-form h2 { font-size: 16px; margin: 0; }
body.aca .aca-row { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 14px; }
body.aca .aca-table { overflow-x: auto; }
body.aca .aca-table table { min-width: 610px; }
body.aca .aca-table th { color: #91a6c7; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
body.aca .aca-table td { color: #dce8ff; vertical-align: top; }
body.aca .aca-secondary { color: #8ca1c4; display: block; font-size: 12px; margin-top: 3px; }
body.aca .aca-muted, body.aca .aca-note { color: #91a6c7; font-size: 13px; line-height: 1.5; }
body.aca .aca-action, body.aca .aca-recording { color: #00d4ff; font-size: 13px; font-weight: 700; text-decoration: none; }
body.aca .aca-split { align-items: start; display: grid; gap: 14px; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .9fr); }
body.aca .aca-form { padding: 18px; }
body.aca .aca-form h2 { margin-bottom: 14px; }
body.aca .aca-form label { color: #b6c7e1; font-size: 12px; margin-top: 12px; }
body.aca .aca-form input, body.aca .aca-form select, body.aca .aca-form textarea { background: rgba(255, 255, 255, .04); border: 1px solid rgba(159, 183, 225, .21); border-radius: 8px; color: #f7fbff; display: block; margin-top: 6px; padding: 10px; width: 100%; }
body.aca .aca-form select option { background: #0a1328; color: #f7fbff; }
body.aca .aca-form textarea { min-height: 105px; resize: vertical; }
body.aca .aca-form-grid { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
body.aca .aca-button { background: linear-gradient(135deg, #00cbea, #a855f7); border: 0; border-radius: 8px; color: #06101d; cursor: pointer; font: inherit; font-weight: 800; margin-top: 16px; padding: 11px 14px; }
body.aca .aca-text-button { background: transparent; border: 0; color: #00d4ff; cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; padding: 0; }
body.aca .aca-card code { color: #bda8ff; font-size: 11px; }
body.aca .aca-logo { height: 34px; margin-bottom: 12px; object-fit: contain; object-position: left center; width: 146px; }
body.aca .aca-header-tools { align-items: center; display: flex; gap: 10px; }
body.aca .aca-chip, body.aca .aca-bell { background: rgba(0, 212, 255, .08); border: 1px solid rgba(0, 212, 255, .28); border-radius: 999px; color: #dce8ff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 700; padding: 7px 10px; text-decoration: none; }
body.aca .aca-chip[hidden] { display: none; }
body.aca .aca-bell { position: relative; }
body.aca .aca-bell span { align-items: center; background: #a855f7; border-radius: 999px; color: #fff; display: flex; font-size: 10px; height: 18px; justify-content: center; min-width: 18px; padding: 0 4px; position: absolute; right: -8px; top: -9px; }
body.aca .aca-messages, body.aca .aca-files { display: grid; gap: 10px; }
body.aca .aca-message { background: rgba(255,255,255,.025); border: 1px solid rgba(159,183,225,.15); border-radius: 10px; color: #dce8ff; cursor: pointer; display: grid; gap: 5px; padding: 14px; text-align: left; width: 100%; }
body.aca .aca-message.unread { border-left: 3px solid #00d4ff; background: rgba(0,212,255,.055); }
body.aca .aca-message-kind, body.aca .aca-file span { color: #a97aff; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
body.aca .aca-message small { color: #91a6c7; }
body.aca .aca-message p, body.aca .aca-file p { color: #91a6c7; line-height: 1.45; margin: 3px 0 0; }
body.aca .aca-empty { border: 1px dashed rgba(159,183,225,.2); border-radius: 10px; color: #91a6c7; padding: 30px 16px; text-align: center; }
body.aca .aca-player { background: #060814; border: 1px solid rgba(0,212,255,.18); border-radius: 12px; margin: 18px 0; padding: 16px; }
body.aca .aca-player audio { margin-top: 14px; width: 100%; }
body.aca .aca-call-detail { margin: 0 auto; max-width: 520px; }
body.aca .aca-call-meta { display: flex; justify-content: space-between; margin: 22px 0 4px; }
body.aca .aca-call-meta span { color: #00d4ff; font-size: 12px; font-weight: 700; }
body.aca .aca-file { background: rgba(255,255,255,.025); border: 1px solid rgba(159,183,225,.15); border-radius: 10px; display: grid; gap: 6px; padding: 14px; }
@media (max-width: 860px) { body.aca .aca-os { display: block; } body.aca .aca-rail { border-bottom: 1px solid rgba(0, 212, 255, .16); border-right: 0; padding: 18px; } body.aca .aca-rail nav { grid-template-columns: repeat(3, 1fr); margin-top: 14px; } body.aca .aca-signout { margin-top: 12px; } body.aca .aca-main { padding: 24px 16px 48px; } body.aca .aca-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.aca .aca-split { grid-template-columns: 1fr; } }
@media (max-width: 520px) { body.aca .aca-header { align-items: flex-start; gap: 14px; } body.aca .aca-header-tools { flex-wrap: wrap; justify-content: flex-end; } body.aca .aca-live { display: none; } body.aca .aca-rail nav { grid-template-columns: repeat(2, minmax(0,1fr)); } body.aca .aca-call-detail { border-radius: 0; margin: 0 -16px; } }

/* AiDigitalSmart Growth Desk — Abacus ADS dark space, orange, and violet. */
body.ads .ads-os { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: 100vh; }
body.ads .ads-rail { background: rgba(8, 7, 14, .88); border-right: 1px solid rgba(255, 122, 24, .18); display: flex; flex-direction: column; padding: 28px 16px; }
body.ads .ads-wordmark { color: #fff7ef; font-size: 20px; font-weight: 800; letter-spacing: -.04em; }
body.ads .ads-submark { color: #b9b2c8; font-size: 12px; letter-spacing: .12em; margin: 4px 0 28px; text-transform: uppercase; }
body.ads .ads-rail nav { display: grid; gap: 4px; }
body.ads .ads-rail a { border-left: 2px solid transparent; color: #b9b2c8; font-size: 14px; padding: 10px 11px; text-decoration: none; }
body.ads .ads-rail a:hover, body.ads .ads-rail a.active { background: rgba(255, 122, 24, .08); border-left-color: #ff7a18; color: #fff7ef; }
body.ads .ads-signout { background: transparent; border: 0; color: #b9b2c8; cursor: pointer; font: inherit; margin-top: auto; padding: 10px 11px; text-align: left; }
body.ads .ads-main { min-width: 0; padding: 34px 36px 70px; }
body.ads .ads-header { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 26px; }
body.ads .ads-eyebrow { color: #ff9541; font-size: 11px; font-weight: 800; letter-spacing: .14em; margin: 0 0 7px; text-transform: uppercase; }
body.ads .ads-header h1 { font-size: 30px; letter-spacing: -.04em; margin: 0; }
body.ads .ads-subtitle { color: #b9b2c8; margin: 7px 0 0; }
body.ads .ads-live { background: rgba(138, 92, 255, .16); border: 1px solid rgba(138, 92, 255, .48); border-radius: 999px; color: #d5c7ff; font-size: 12px; font-weight: 700; padding: 7px 10px; }
body.ads .ads-kpis { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; }
body.ads .ads-kpis article, body.ads .ads-card, body.ads .ads-wide-card, body.ads .ads-form, body.ads .ads-account { background: rgba(20, 17, 29, .82); border: 1px solid rgba(255, 255, 255, .11); border-radius: 13px; box-shadow: 0 20px 60px rgba(0, 0, 0, .2); }
body.ads .ads-kpis article { padding: 17px; }
body.ads .ads-kpis span, body.ads .ads-card > span { color: #b9b2c8; display: block; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; }
body.ads .ads-kpis strong { color: #fff7ef; display: block; font-size: 27px; font-variant-numeric: tabular-nums; margin-top: 8px; }
body.ads .ads-card-grid { display: grid; gap: 12px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 14px; }
body.ads .ads-card { min-height: 150px; padding: 16px; }
body.ads .ads-card h2 { color: #fff7ef; font-size: 16px; margin: 12px 0 8px; }
body.ads .ads-card p { color: #b9b2c8; font-size: 13px; line-height: 1.45; margin: 0 0 14px; }
body.ads .ads-card strong { color: #ff9541; font-size: 12px; text-transform: capitalize; }
body.ads .ads-wide-card { margin-bottom: 14px; padding: 18px; }
body.ads .ads-wide-card h2, body.ads .ads-account h2, body.ads .ads-form h2 { color: #fff7ef; font-size: 16px; margin: 0; }
body.ads .ads-row { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 14px; }
body.ads .ads-row a, body.ads .ads-text-button { background: transparent; border: 0; color: #ff9541; cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; padding: 0; text-decoration: none; }
body.ads .ads-table { overflow-x: auto; }
body.ads .ads-table table { min-width: 570px; }
body.ads .ads-table th { color: #b9b2c8; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
body.ads .ads-table td { color: #eee8f7; vertical-align: top; }
body.ads .ads-muted, body.ads .ads-note { color: #b9b2c8; font-size: 13px; line-height: 1.5; }
body.ads .ads-split { align-items: start; display: grid; gap: 14px; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .9fr); }
body.ads .ads-form { padding: 18px; }
body.ads .ads-form h2 { margin-bottom: 14px; }
body.ads .ads-form label { color: #d4cde0; font-size: 12px; margin-top: 12px; }
body.ads .ads-form input, body.ads .ads-form select, body.ads .ads-form textarea { background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .15); border-radius: 8px; color: #fff7ef; display: block; margin-top: 6px; padding: 10px; width: 100%; }
body.ads .ads-form select option { background: #17121f; color: #fff7ef; }
body.ads .ads-form textarea { min-height: 108px; resize: vertical; }
body.ads .ads-button { background: linear-gradient(135deg, #ff7a18, #8a5cff); border: 0; border-radius: 8px; color: #fff; cursor: pointer; font: inherit; font-weight: 800; margin-top: 16px; padding: 11px 14px; }
body.ads .ads-account-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
body.ads .ads-account { align-items: center; display: flex; gap: 16px; justify-content: space-between; padding: 18px; }
body.ads .ads-account p { color: #b9b2c8; font-size: 13px; margin: 8px 0 0; }
body.ads .ads-account .ads-button { margin: 0; white-space: nowrap; }
body.ads .ads-logo { height: 38px; max-width: 178px; object-fit: contain; object-position: left center; }
body.ads .ads-header-tools { align-items: center; display: flex; gap: 10px; }
body.ads .ads-chip, body.ads .ads-bell { background: rgba(138, 92, 255, .14); border: 1px solid rgba(138, 92, 255, .42); border-radius: 999px; color: #e3dbff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 700; padding: 7px 10px; position: relative; text-decoration: none; }
body.ads .ads-chip[hidden] { display: none; }
body.ads .ads-bell span { align-items: center; background: #ff7a18; border-radius: 99px; color: #fff; display: flex; font-size: 10px; height: 18px; justify-content: center; min-width: 18px; position: absolute; right: -8px; top: -10px; }
body.ads .ads-status { color: #ffad70; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: capitalize; }
body.ads .ads-status.confirmed, body.ads .ads-status.published, body.ads .ads-status.active { color: #b9a2ff; }
body.ads .ads-actions { display: flex; gap: 10px; }
body.ads .ads-confirm { background: linear-gradient(135deg, #8a5cff, #ff7a18); }
body.ads .ads-strategy { max-width: 820px; }
body.ads .ads-strategy textarea { min-height: 82px; }
body.ads .ads-open { color: #ff9541; display: block; font-size: 12px; margin-top: 5px; }
body.ads .ads-timeline, body.ads .ads-files, body.ads .ads-messages, body.ads .ads-campaigns { display: grid; gap: 12px; }
body.ads .ads-event, body.ads .ads-file, body.ads .ads-campaign, body.ads .ads-message { background: rgba(20, 17, 29, .82); border: 1px solid rgba(255,255,255,.11); border-radius: 13px; padding: 18px; }
body.ads .ads-event span, body.ads .ads-file span, body.ads .ads-message span { color: #b9a2ff; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
body.ads .ads-event h2, body.ads .ads-file h2, body.ads .ads-campaign h2 { font-size: 16px; margin: 8px 0; }
body.ads .ads-event p, body.ads .ads-file p, body.ads .ads-message p { color: #b9b2c8; line-height: 1.45; margin: 5px 0; }
body.ads .ads-event a, body.ads .ads-file a { color: #ff9541; font-size: 13px; }
body.ads .ads-empty { border: 1px dashed rgba(255,255,255,.18); border-radius: 12px; color: #b9b2c8; line-height: 1.55; padding: 30px 18px; text-align: center; }
body.ads .ads-campaigns { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
body.ads .ads-campaign dl { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; margin: 16px 0 0; }
body.ads .ads-campaign dl div { border-top: 1px solid rgba(255,255,255,.09); padding-top: 10px; }
body.ads .ads-campaign dt { color: #b9b2c8; font-size: 11px; text-transform: uppercase; }
body.ads .ads-campaign dd { color: #fff7ef; font-size: 14px; margin: 5px 0 0; }
body.ads .ads-message { color: #fff7ef; cursor: pointer; display: grid; gap: 4px; text-align: left; width: 100%; }
body.ads .ads-message.unread { background: rgba(255,122,24,.07); border-left: 3px solid #ff7a18; }
body.ads .ads-message small { color: #8f879e; }
@media (max-width: 960px) { body.ads .ads-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.ads .ads-split { grid-template-columns: 1fr; } }
@media (max-width: 760px) { body.ads .ads-os { display: block; } body.ads .ads-rail { border-bottom: 1px solid rgba(255, 122, 24, .18); border-right: 0; padding: 18px; } body.ads .ads-rail nav { grid-template-columns: repeat(2, 1fr); margin-top: 14px; } body.ads .ads-signout { margin-top: 12px; } body.ads .ads-main { padding: 24px 16px 48px; } body.ads .ads-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.ads .ads-card-grid { grid-template-columns: 1fr; } body.ads .ads-header { display: block; } body.ads .ads-header-tools { margin-top: 12px; } body.ads .ads-campaign dl { grid-template-columns: 1fr; } }

/* Brand admin is additive and isolated from client screens. */
.brand-admin .admin-shell { display: grid; grid-template-columns: 236px minmax(0, 1fr); min-height: 100vh; }
.brand-admin .admin-rail { background: color-mix(in srgb, var(--bg) 92%, transparent); border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: 26px 18px; }
.brand-admin .admin-lockup { height: 44px; max-width: 190px; object-fit: contain; object-position: left center; }
.brand-admin .admin-rail > strong { font-size: 18px; margin-top: 14px; }
.brand-admin .admin-rail > span { color: var(--muted); font-size: 12px; margin-top: 4px; }
.brand-admin .admin-rail nav { display: grid; gap: 5px; margin-top: 30px; }
.brand-admin .admin-rail nav button, .brand-admin .admin-signout { background: transparent; border: 0; border-left: 2px solid transparent; color: var(--muted); cursor: pointer; padding: 10px 11px; text-align: left; }
.brand-admin .admin-rail nav button:hover, .brand-admin .admin-rail nav button.active { background: color-mix(in srgb, var(--accent) 10%, transparent); border-left-color: var(--accent); color: var(--ink); }
.brand-admin .admin-signout { margin-top: auto; }
.brand-admin .admin-main { min-width: 0; padding: 34px 36px 70px; }
.brand-admin .admin-header { border-bottom: 1px solid var(--line); margin-bottom: 24px; padding-bottom: 20px; }
.brand-admin .admin-header p { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; margin: 0 0 7px; text-transform: uppercase; }
.brand-admin .admin-header h1 { font-size: 30px; letter-spacing: -.035em; margin: 0; }
.brand-admin .admin-header span { color: var(--muted); display: block; margin-top: 7px; }
.brand-admin .admin-metrics { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 16px; }
.brand-admin .admin-metrics article, .brand-admin .admin-card { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.brand-admin .admin-metrics article { padding: 17px; }
.brand-admin .admin-metrics span { color: var(--muted); display: block; font-size: 12px; }
.brand-admin .admin-metrics strong { display: block; font-size: 28px; margin-top: 7px; }
.brand-admin .admin-card { margin-bottom: 14px; padding: 18px; }
.brand-admin .admin-card h2 { font-size: 17px; margin: 0 0 14px; }
.brand-admin .admin-card-head, .brand-admin .admin-tools, .brand-admin .admin-message > div { align-items: center; display: flex; gap: 14px; justify-content: space-between; }
.brand-admin .admin-card-head p { color: var(--muted); margin: 4px 0 0; }
.brand-admin .admin-card-head > span { color: var(--accent); font-size: 12px; }
.brand-admin .admin-tools input, .brand-admin .admin-tools select { background: transparent; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); max-width: 280px; padding: 9px 10px; }
.brand-admin .admin-table { overflow-x: auto; }
.brand-admin .admin-table table { min-width: 720px; }
.brand-admin .admin-table th { color: var(--muted); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.brand-admin .admin-table td { vertical-align: top; }
.brand-admin .admin-table small { color: var(--muted); display: block; font-size: 11px; margin-top: 4px; }
.brand-admin .admin-click { cursor: pointer; }
.brand-admin .admin-click:hover { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.brand-admin .admin-link, .brand-admin .admin-back { background: transparent; border: 0; color: var(--accent); cursor: pointer; font: inherit; padding: 0; text-align: left; }
.brand-admin .admin-back { font-weight: 700; margin-bottom: 16px; }
.brand-admin .admin-empty { color: var(--muted); padding: 24px; text-align: center; }
.brand-admin .admin-transcript { display: grid; gap: 10px; margin-top: 18px; }
.brand-admin .admin-message { border: 1px solid var(--line); border-radius: 10px; max-width: 82%; padding: 13px 14px; }
.brand-admin .admin-message.team { border-left: 3px solid var(--accent); justify-self: end; }
.brand-admin .admin-message.customer { justify-self: start; }
.brand-admin .admin-message time, .brand-admin .admin-chief time { color: var(--muted); font-size: 11px; }
.brand-admin .admin-message p { line-height: 1.5; margin: 8px 0 0; white-space: pre-wrap; }
.brand-admin .admin-chief { display: grid; gap: 7px; grid-template-columns: 1fr auto; }
.brand-admin .admin-chief > span { color: var(--muted); }
.brand-admin .admin-chief > strong { color: var(--accent); text-transform: capitalize; }
.brand-admin .admin-chief p { grid-column: 1 / -1; margin: 6px 0 0; }
body.d4d.brand-admin .admin-rail { background: #fffefb; }
body.d4d.brand-admin .admin-metrics article, body.d4d.brand-admin .admin-card { box-shadow: none; }
@media (max-width: 800px) { .brand-admin .admin-shell { display: block; } .brand-admin .admin-rail { border-bottom: 1px solid var(--line); border-right: 0; padding: 16px; } .brand-admin .admin-rail nav { grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 16px; } .brand-admin .admin-signout { margin-top: 10px; } .brand-admin .admin-main { padding: 22px 14px 46px; } .brand-admin .admin-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 420px) { .brand-admin .admin-rail nav { grid-template-columns: repeat(2,minmax(0,1fr)); } .brand-admin .admin-header h1 { font-size: 25px; } .brand-admin .admin-message { max-width: 94%; } }

.pwa-modal { position: fixed; inset: 0; background: rgba(6,8,20,.55); display: grid; place-items: center; z-index: 80; padding: 16px; }
.pwa-card { background: var(--panel, #fff); color: var(--ink, #15243a); border-radius: 16px; max-width: 420px; padding: 22px; box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.pwa-card h3 { margin: 0 0 8px; }
.pwa-actions { display: flex; gap: 10px; margin-top: 16px; }
.rail-foot { display: grid; gap: 6px; margin-top: auto; padding-top: 18px; }
.account-panel form { display: grid; gap: 6px; margin-top: 10px; }
.account-panel input { width: 100%; }
.account-panel { border: 1px solid var(--line, rgba(0,0,0,.12)); border-radius: 8px; font-size: 12px; line-height: 1.45; padding: 10px; }
.account-panel p { margin: 0 0 6px; }
.account-panel .account-name { font-weight: 700; }
body.aca .aca-signout { margin-top: 0; }
body.ads .ads-signout { margin-top: 0; }
body.d4d .d4d-link { margin-top: 0; }
.brand-admin .admin-signout { margin-top: 0; }


/* WebSmart — own door: orange + purple on black */
body.ws {
  --bg: #07070b;
  --panel: rgba(18, 15, 26, .82);
  --ink: #f7f4ff;
  --muted: #b9b2c8;
  --line: rgba(255, 255, 255, .12);
  --accent: #ff7a18;
  --accent2: #8a5cff;
  --btn: linear-gradient(135deg, #ff7a18, #ff9541 44%, #8a5cff);
  --shadow: 0 30px 90px rgba(0, 0, 0, .45);
  color: var(--ink);
  background:
    radial-gradient(circle at 70% -10%, rgba(138, 92, 255, .17), transparent 30%),
    radial-gradient(circle at 5% 15%, rgba(255, 122, 24, .09), transparent 25%),
    var(--bg);
}
body.ws .ws-os { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: 100vh; }
body.ws .ws-rail { background: rgba(8, 7, 14, .92); border-right: 1px solid rgba(138, 92, 255, .22); display: flex; flex-direction: column; padding: 28px 16px; }
body.ws .ws-logo { height: 36px; width: auto; max-width: 180px; object-fit: contain; }
body.ws .ws-submark { color: #b9b2c8; font-size: 12px; letter-spacing: .12em; margin: 10px 0 28px; text-transform: uppercase; }
body.ws .ws-rail nav { display: grid; gap: 4px; }
body.ws .ws-rail a { border-left: 2px solid transparent; color: #b9b2c8; font-size: 14px; padding: 10px 11px; text-decoration: none; }
body.ws .ws-rail a:hover, body.ws .ws-rail a.active { background: rgba(255, 122, 24, .08); border-left-color: #ff7a18; color: #fff7ef; }
body.ws .ws-signout, body.ws .ws-chip { background: transparent; border: 1px solid rgba(255,255,255,.14); color: #b9b2c8; cursor: pointer; font: inherit; padding: 8px 12px; border-radius: 999px; }
body.ws .rail-foot { margin-top: auto; display: grid; gap: 8px; }
body.ws .ws-main { min-width: 0; padding: 34px 36px 70px; }
body.ws .ws-header { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 26px; gap: 16px; }
body.ws .ws-eyebrow { color: #ff9541; font-size: 11px; font-weight: 800; letter-spacing: .14em; margin: 0 0 7px; text-transform: uppercase; }
body.ws .ws-header h1 { font-size: 30px; letter-spacing: -.04em; margin: 0; }
body.ws .ws-subtitle, body.ws .ws-muted { color: #b9b2c8; }
body.ws .ws-header-tools { display: flex; gap: 10px; align-items: center; }
body.ws .ws-bell { text-decoration: none; color: #d5c7ff; border: 1px solid rgba(138,92,255,.4); border-radius: 999px; padding: 7px 12px; font-size: 12px; }
body.ws .ws-kpis { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; }
body.ws .ws-kpis article, body.ws .ws-wide-card, body.ws .ws-campaign, body.ws .ws-file { background: rgba(20, 17, 29, .82); border: 1px solid rgba(255, 255, 255, .11); border-radius: 13px; box-shadow: 0 20px 60px rgba(0, 0, 0, .2); }
body.ws .ws-kpis article { padding: 17px; }
body.ws .ws-kpis span { color: #b9b2c8; display: block; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; }
body.ws .ws-kpis strong { color: #fff7ef; display: block; font-size: 18px; margin-top: 8px; }
body.ws .ws-wide-card { margin-bottom: 14px; padding: 18px; }
body.ws .ws-wide-card h2, body.ws .ws-campaign h2 { color: #fff7ef; font-size: 16px; margin: 0 0 10px; }
body.ws .ws-row { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 14px; flex-wrap: wrap; }
body.ws .ws-steps, body.ws .ws-list { color: #d9d2e8; line-height: 1.55; padding-left: 1.2rem; }
body.ws .ws-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
body.ws .ws-button { background: var(--btn); border: 0; border-radius: 999px; color: #120b08; cursor: pointer; font-weight: 700; padding: 10px 16px; text-decoration: none; display: inline-flex; align-items: center; }
body.ws .ws-button.ghost { background: transparent; border: 1px solid rgba(255,255,255,.18); color: #fff7ef; }
body.ws .ws-chat-box { display: grid; gap: 10px; max-height: 360px; overflow: auto; margin-bottom: 12px; }
body.ws .ws-msg { border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 12px; }
body.ws .ws-msg.you { border-color: rgba(255,122,24,.35); }
body.ws .ws-msg.team { border-color: rgba(138,92,255,.35); }
body.ws .ws-msg header { display: flex; justify-content: space-between; gap: 10px; color: #b9b2c8; font-size: 12px; margin-bottom: 6px; }
body.ws .ws-msg p { margin: 0; color: #fff7ef; white-space: pre-wrap; }
body.ws .ws-chat-form { display: grid; gap: 10px; }
body.ws .ws-chat-form textarea { min-height: 110px; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); color: #fff7ef; padding: 12px; resize: vertical; }
body.ws .ws-dl { display: grid; gap: 10px; }
body.ws .ws-dl div { display: grid; grid-template-columns: 160px 1fr; gap: 10px; }
body.ws .ws-dl dt { color: #b9b2c8; }
body.ws .ws-dl dd { margin: 0; color: #fff7ef; }
body.ws .ws-empty { color: #b9b2c8; padding: 18px; border: 1px dashed rgba(255,255,255,.14); border-radius: 12px; }
body.ws .ws-status { background: rgba(138, 92, 255, .16); border: 1px solid rgba(138, 92, 255, .48); border-radius: 999px; color: #d5c7ff; font-size: 12px; font-weight: 700; padding: 7px 10px; }
body.ws .ws-campaigns, body.ws .ws-files { display: grid; gap: 12px; }
body.ws .ws-campaign, body.ws .ws-file { padding: 16px; }
body.ws .ws-campaign dl { display: grid; gap: 8px; color: #b9b2c8; }
@media (max-width: 900px) {
  body.ws .ws-os { grid-template-columns: 1fr; }
  body.ws .ws-rail { border-right: 0; border-bottom: 1px solid rgba(138, 92, 255, .22); }
  body.ws .ws-kpis { grid-template-columns: 1fr 1fr; }
  body.ws .ws-dl div { grid-template-columns: 1fr; }
}
