/* NOVA keeps its violet accent; the supplied logo retains its original colors. */
:root {
  --bg: #f4f5f9;
  --surface: #fff;
  --surface-soft: #f8f7fc;
  --ink: #292735;
  --muted: #777587;
  --line: #e6e5ee;
  --purple: #7654d2;
  --purple-dark: #6240bc;
  --lavender: #efebfa;
  --green: #278772;
  --shadow: 0 2px 3px #28203703, 0 8px 24px #28203706;
  --radius: 12px;
}
html[data-theme="dark"] {
  --bg: #18171e;
  --surface: #222129;
  --surface-soft: #282630;
  --ink: #eeeaf4;
  --muted: #aaa5b7;
  --line: #37343f;
  --purple: #b69aef;
  --purple-dark: #c9affb;
  --lavender: #342c48;
  --green: #78c7ac;
  --shadow: 0 3px 16px #00000012;
}
body {
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
.nova-logo-mark {
  display: inline-grid;
  place-items: center;
  width: 50px;
  height: 50px;
  flex: none;
}
.nova-logo-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand { gap: 8px; padding: 0 5px; }
.brand strong, .nova-sidebar-brand strong { font-size: 25px; letter-spacing: 0; font-weight: 760; }
.brand small { font-size: 10px; letter-spacing: 0; margin-top: 6px; }
.sidebar {
  background: var(--surface);
  border-right-color: var(--line);
  box-shadow: 4px 0 20px #30274703;
}
.sidebar .workspace-label { font-size: 11px; padding-bottom: 18px; }
.nav-group-toggle { font-size: 11px; letter-spacing: 0; }
.sidebar .nav-item { border-radius: 8px; font-size: 13px; min-height: 42px; }
.nav-item.active {
  background: var(--lavender);
  color: var(--purple);
  box-shadow: inset 3px 0 0 var(--purple);
}
.topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 3px 14px #30274703;
}
main { padding-top: 28px; }
.welcome { margin-bottom: 18px; }
.welcome h1, .page-heading h1 { font-size: 25px; letter-spacing: 0; line-height: 1.45; font-weight: 650; }
.page-heading { margin-bottom: 24px; align-items: center; }
.page-heading p, .welcome p { font-size: 12px; color: var(--muted); }
.date-label { font-size: 11px; }
.hero.hero-workspace { height: 164px; border-radius: 12px; box-shadow: var(--shadow); }
.hero.hero-workspace::before {
  background: linear-gradient(90deg, #efebfb 5%, #efebfbf0 35%, #efebfb80 68%, #efebfb20);
}
.hero.hero-workspace::after { inset: 9px; border-color: #ffffff7a; border-radius: 7px; }
.hero.hero-workspace .hero-content { padding: 22px 30px; }
.hero.hero-workspace h2 {
  font-family: inherit;
  font-size: 28px;
  letter-spacing: 0;
  line-height: 1.2;
  margin: 4px 0 8px;
  color: #322846;
}
.hero.hero-workspace .hero-content > p { font-size: 12px; letter-spacing: 0; color: #776b8e; }
.hero.hero-workspace .hero-bottom { margin-top: 14px; gap: 14px; font-size: 11px; color: #655776; }
.hero.hero-workspace .hero-bottom .small-pill { border-radius: 6px; font-size: 10px; }
.hero.hero-workspace .hero-caption > div { display: none; }
.hero.hero-workspace .shutter { width: 45px; height: 45px; }
.quick-actions { gap: 12px; margin-top: 16px; margin-bottom: 30px; }
.quick-action { border-radius: 10px; box-shadow: var(--shadow); padding: 15px; }
.quick-action strong { font-size: 12px; }
.quick-action small { font-size: 10px; line-height: 1.6; }
.quick-icon { border-radius: 10px; background: #ebe5fb; color: #7855c8; }
.quick-action:nth-child(2) .quick-icon { background: #e7f1ed; color: #48856f; }
.quick-action:nth-child(3) .quick-icon { background: #e8edf7; color: #58789e; }
.quick-action:nth-child(4) .quick-icon { background: #f4eaf0; color: #a46d90; }
.dashboard-grid { column-gap: 28px; }
.stack { gap: 28px; }
.dashboard-grid .panel {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
.panel-heading { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.section-title h2 { font-size: 15px; font-weight: 650; }
.panel-heading .text-button { font-size: 11px; }
.topic-row { border-radius: 8px; padding: 14px 8px; background: transparent; }
.topic-row:hover { background: var(--surface); }
.topic-title h3 { font-weight: 600; }
.topic-desc { line-height: 1.8; }
.topic-thumb { border-radius: 8px; }
.topic-thumb > span { font-size: 9px; }
.studio-greeting { background: transparent; padding: 12px 0; }
.studio-greeting h3 { font-size: 13px; font-weight: 600; }
.stats { gap: 10px; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.stat strong { font-size: 25px; font-weight: 600; }
.post-grid { gap: 18px; }
.post-card { border-radius: 10px; min-width: 0; }
.post-cover { border-radius: 9px; overflow: hidden; }
.post-card h3 { font-size: 14px; line-height: 1.7; }
.post-category { background: var(--surface); color: var(--ink); border: 1px solid var(--line); box-shadow: none; }
.topic-card {
  border-radius: 12px;
  border-color: var(--line);
  background: var(--surface);
  box-shadow: var(--shadow);
  transition: transform .18s ease, box-shadow .18s ease;
}
.topic-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px #42325f0e; }
.topic-card-content { padding: 18px; }
.topic-card-content h3 { font-size: 15px; font-weight: 600; line-height: 1.6; }
.topic-card-content > p { font-size: 12px; line-height: 1.8; color: var(--muted); }
.card-kicker { color: var(--muted); font-size: 10px; letter-spacing: 0; }
.card-bottom { border-color: var(--line); }
.button {
  border-radius: 8px;
  background: var(--purple);
  border: 1px solid transparent;
  box-shadow: inset 0 1px 0 #ffffff24, 0 3px 8px #694bb31a;
  font-weight: 550;
}
.button.secondary { border-color: var(--line); box-shadow: inset 0 1px 0 #ffffff28; }
.tab { border-radius: 7px; }
.tabs { gap: 5px; }
.tabs .tab.active { color: var(--purple); background: var(--lavender); }
.member-card, .notice-card, .rotation-card { border-radius: 10px; box-shadow: var(--shadow); }
.member-card p, .notice-card p { color: var(--muted); line-height: 1.8; }
.board-column { border-radius: 8px; background: #eae9f080; }
.board-card { border-radius: 8px; border: 1px solid var(--line); box-shadow: 0 2px 6px #2e1d4604; }
dialog { border-radius: 14px; box-shadow: 0 24px 80px #28203233; }
.modal-head { border-bottom-color: var(--line); padding-bottom: 21px; }
.modal-head h2 { font-size: 21px; letter-spacing: 0; }
.detail-title { font-size: 24px; line-height: 1.5; letter-spacing: 0; }
.field input, .field textarea, .field select { border-color: var(--line); border-radius: 8px; }
.field { font-size: 12px; }
.page-footer { font-size: 10px; color: var(--muted); }
.chat-layout, .simple-scores, .rotation-stats-panel { box-shadow: var(--shadow); }
html[data-theme="dark"] .hero.hero-workspace::before {
  background: linear-gradient(90deg, #2b253af5 5%, #2b253ad9 40%, #2b253a60 75%, transparent);
}
html[data-theme="dark"] .hero.hero-workspace h2 { color: #f0eafa; }
html[data-theme="dark"] .hero.hero-workspace .hero-content > p,
html[data-theme="dark"] .hero.hero-workspace .hero-bottom { color: #c2b6d3; }
html[data-theme="dark"] .quick-icon { background: #382e4f; color: #c6aaf1; }
html[data-theme="dark"] .quick-action:nth-child(2) .quick-icon { background: #273c34; color: #90c5a9; }
html[data-theme="dark"] .quick-action:nth-child(3) .quick-icon { background: #2b3549; color: #a0b9e2; }
html[data-theme="dark"] .quick-action:nth-child(4) .quick-icon { background: #402d3b; color: #d3a0bd; }
html[data-theme="dark"] .button:not(.secondary):not(.danger) { background: #9470d7; color: #fff; }
html[data-theme="dark"] .button:not(.secondary):not(.danger):hover { background: #a382e1; }
html[data-theme="dark"] .board-column { background: #24222c; }
.nova-login { background: #f5f4f9; color: #2c283a; }
.nova-login .ambient { display: none; }
.nova-login .brand-name { font-weight: 750; letter-spacing: 0; }
.nova-login .brand-name small { font-size: 11px; color: #7a7489; letter-spacing: 0; }
.nova-login .form-column {
  max-width: 410px;
  padding: 26px 0;
  margin-top: 0;
}
.nova-login .form-heading { margin-bottom: 32px; }
.nova-login .form-heading h1 { font-size: 34px; letter-spacing: 0; }
.nova-login .input-wrap {
  background: #fff;
  border-color: #e2deeb;
  border-radius: 9px;
  box-shadow: 0 2px 5px #30243e03;
}
.nova-login .input-wrap:focus-within { border-color: #9c83cf; box-shadow: 0 0 0 3px #7957df0d; }
.nova-login .field-group > label { color: #61596f; font-size: 13px; }
.nova-login .login-submit {
  background: linear-gradient(110deg, #8660dd, #7049ca);
  border-radius: 9px;
  box-shadow: inset 0 1px 0 #ffffff33, 0 5px 16px #7950c826;
  letter-spacing: 0;
  font-size: 13px;
}
.nova-login .login-footer { color: #8b8497; }
.nova-login .exposure-lab { box-shadow: 0 18px 45px #3b2b4c18, 0 2px 4px #30243b0a; }
@media (max-width: 1100px) {
  .quick-action { padding: 12px; }
  .quick-action small { display: none; }
  .dashboard-grid { column-gap: 20px; }
}
@media (max-width: 760px) {
  .hero.hero-workspace { height: 152px; }
  .hero.hero-workspace .hero-content { padding: 21px 24px; }
  .hero.hero-workspace h2 { font-size: 26px; }
  .hero.hero-workspace .hero-bottom { gap: 8px; }
  .hero.hero-workspace .hero-bottom .small-pill { font-size: 9px; }
  .quick-actions { gap: 9px; margin-bottom: 24px; }
  .quick-action { border-radius: 8px; }
  .quick-action strong { font-size: 11px; }
  .welcome h1, .page-heading h1 { font-size: 22px; }
  .nova-login .nova-logo-mark { width: 44px; height: 44px; }
  .nova-login .form-heading h1 { font-size: 29px; }
}
@media (max-width: 420px) {
  .nova-logo-mark { width: 44px; height: 44px; }
  .hero.hero-workspace .hero-content { padding: 21px; }
  .hero.hero-workspace .hero-bottom { flex-wrap: wrap; gap: 5px; }
  .hero.hero-workspace .hero-bottom > span { font-size: 10px; }
  .topic-card-content { padding: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .topic-card, .button { transition: none; }
  .topic-card:hover, .button:hover { transform: none; }
}
