:root {
  --acn-purple: #a100ff;
  --acn-purple-dark: #7500c0;
  --acn-purple-deep: #460073;
  --acn-purple-light: #c77cff;
  --acn-purple-pale: #e4c4ff;
  --acn-concrete: #f2f2f2;
  --acn-gradient: linear-gradient(90deg, var(--acn-purple) 0%, var(--acn-purple-light) 55%, var(--acn-purple-pale) 100%);
  --acn-gradient-fill: linear-gradient(100deg, var(--acn-purple-dark) 0%, var(--acn-purple) 55%, #b64dff 100%);
}
body {
  font-family: Inter, "Segoe UI", ui-sans-serif, system-ui, -apple-system, sans-serif;
  background-color: var(--acn-concrete);
  background-image:
    radial-gradient(60rem 30rem at 85% -10%, rgba(161,0,255,0.13), transparent 70%),
    radial-gradient(45rem 28rem at 0% 110%, rgba(199,124,255,0.20), transparent 70%);
  background-attachment: fixed;
}
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: #c9b6dd; border-radius: 9999px; }
::-webkit-scrollbar-thumb:hover { background: var(--acn-purple); }
@keyframes pulse-dot { 0%,80%,100%{opacity:.25;}40%{opacity:1;} }
.dot { animation: pulse-dot 1.2s infinite ease-in-out; }
.dot:nth-child(2) { animation-delay: .15s; }
.dot:nth-child(3) { animation-delay: .3s; }
.acn-rule { height: 3px; background: var(--acn-gradient); }
.acn-logo { background: var(--acn-gradient); }
.acn-fill { background: var(--acn-gradient-fill); }
.bubble { overflow-wrap: anywhere; word-break: break-word; }
.msg-content > *:first-child { margin-top: 0; }
.msg-content > *:last-child { margin-bottom: 0; }
.msg-content p { margin: 0.4em 0; }
.msg-content ul, .msg-content ol { margin: 0.4em 0; padding-left: 1.25em; }
.msg-content ul { list-style: disc; }
.msg-content ol { list-style: decimal; }
.msg-content li { margin: 0.15em 0; }
.msg-content li::marker { color: var(--acn-purple); }
.msg-content strong { font-weight: 600; }
.msg-content code { background: rgba(161,0,255,0.08); color: var(--acn-purple-deep); border-radius: 4px; padding: 0.1em 0.35em; font-size: 0.85em; font-family: ui-monospace, "Cascadia Code", Consolas, monospace; }
.msg-content pre { background: rgba(70,0,115,0.05); border-radius: 8px; padding: 0.6em 0.75em; overflow-x: auto; margin: 0.4em 0; }
.msg-content pre code { background: none; padding: 0; color: inherit; }
.msg-content h1,.msg-content h2,.msg-content h3,.msg-content h4 { font-weight: 700; margin: 0.6em 0 0.3em; letter-spacing: -0.01em; }
.msg-content h1 { font-size: 1.1em; }
.msg-content h2 { font-size: 1.05em; }
.msg-content h3,.msg-content h4 { font-size: 1em; }
.msg-content blockquote { border-left: 3px solid var(--acn-purple); padding-left: 0.75em; margin: 0.4em 0; color: #52525b; }
.msg-content hr { border: none; border-top: 1px solid #e9e4ef; margin: 0.6em 0; }
.msg-content a { color: var(--acn-purple); text-decoration: underline; }
.msg-content table { border-collapse: collapse; margin: 0.5em 0; font-size: 0.9em; display: block; overflow-x: auto; max-width: 100%; }
.msg-content th,.msg-content td { border: 1px solid #e9e4ef; padding: 0.35em 0.65em; text-align: left; white-space: nowrap; }
.msg-content th { background: #f6f1fb; color: var(--acn-purple-deep); font-weight: 600; text-transform: uppercase; font-size: 0.85em; letter-spacing: 0.03em; }
.msg-content tr:nth-child(even) td { background: #fbfafd; }
/* Export cards */
.export-card {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .6rem 1rem;
  border-radius: .9rem;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  min-width: 130px;
  transition: all .15s;
  text-decoration: none;
}
.export-card.active { border-color: var(--acn-purple); cursor: pointer; }
.export-card.active:hover { background: #faf6ff; box-shadow: 0 4px 14px -4px rgba(161,0,255,.2); }
.export-card.final { background: var(--acn-gradient-fill); border-color: transparent; }
.export-card.final:hover { filter: brightness(1.08); }
.export-card.inactive { opacity: .45; cursor: default; }
.card-icon { color: var(--acn-purple); flex-shrink: 0; }
.export-card.final .card-icon { color: #fff; }
.export-card.inactive .card-icon { color: #9ca3af; }
.card-body { display: flex; flex-direction: column; line-height: 1.2; }
.card-name { font-size: 13px; font-weight: 700; color: var(--acn-purple-deep); }
.card-sub  { font-size: 11px; font-weight: 500; color: #6b7280; margin-top: 1px; }
.export-card.final .card-name,
.export-card.final .card-sub { color: #fff; }
.export-card.inactive .card-name,
.export-card.inactive .card-sub { color: #6b7280; }

/* Dashboard */
.card { background: #fff; border: 1px solid #e5e7eb; border-radius: 1rem; box-shadow: 0 1px 2px rgba(70,0,115,.06), 0 8px 24px -12px rgba(70,0,115,.18); overflow: hidden; }
.section-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--acn-purple-deep); }
.tab-btn { padding: .4rem 1rem; border-radius: .6rem; font-size: 13px; font-weight: 600; color: #71717a; transition: all .15s; cursor: pointer; border: none; background: none; }
.tab-btn.active { background: var(--acn-gradient-fill); color: #fff; }
.tab-btn:not(.active):hover { background: #f4f0fb; color: var(--acn-purple-deep); }
.stat-row { display: flex; justify-content: space-between; font-size: 13px; padding: .3rem 0; border-bottom: 1px solid #f3f4f6; }
.stat-row:last-child { border-bottom: none; }
.stat-label { color: #52525b; }
.stat-val { font-weight: 600; color: var(--acn-purple-deep); }
.data-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: .5rem; }
.data-table th { background: #f6f1fb; color: var(--acn-purple-deep); font-weight: 600; text-transform: uppercase; font-size: 10px; letter-spacing: .06em; padding: .4rem .6rem; text-align: left; border-bottom: 1px solid #e9e4ef; }
.data-table td { padding: .35rem .6rem; border-bottom: 1px solid #f3f4f6; color: #374151; }
.data-table tr:last-child td { font-weight: 700; background: #faf8ff; border-bottom: none; }
.loading::after { content: ''; display: inline-block; width: 1.2em; height: 1.2em; border: 2px solid #e4c4ff; border-top-color: var(--acn-purple); border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.export-btn { padding: .5rem 1.2rem; border-radius: .75rem; font-size: 13px; font-weight: 600; border: 1.5px solid var(--acn-purple); color: var(--acn-purple); background: #fff; cursor: pointer; transition: all .15s; }
.export-btn:hover { background: #f4f0fb; }
.export-btn-primary { background: var(--acn-gradient-fill); color: #fff; border-color: transparent; box-shadow: 0 4px 14px -4px rgba(161,0,255,.55); }
.export-btn-primary:hover { filter: brightness(1.08); }
