/* 3Dneuro theme for Vikunja — injected by the admin service (see admin/app/main.py, themed_index).
   Mirrors the 3Dneuro Wiki.js theme: brand blue #0078A8, Montserrat body, Canaro display, 8px radius,
   low-poly mosaic accents. Only Vikunja's public CSS custom properties and stable class names are used. */

:root {
  --d3-ink: #0E1115; --d3-text-2: #3E4750; --d3-muted: #5A6670; --d3-rule: #E3E7EA;
  --d3-panel: #F4F6F8; --d3-surface: #FFFFFF; --d3-brand: #0078A8; --d3-brand-hover: #005F86; --d3-brand-tint: #E8F4FB;
  --d3-display: "Canaro", "CanaroW00-SemiBold", "Montserrat", system-ui, sans-serif;
  --d3-body: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --d3-radius: 8px;

  /* Vikunja / Bulma tokens */
  --primary-h: 197deg; --primary-s: 100%; --primary-l: 33%;
  --success-h: 133deg; --success-s: 55%; --success-l: 40%;
  --warning-h: 34deg;  --warning-s: 88%; --warning-l: 52%;
  --danger-h: 353deg;  --danger-s: 88%;  --danger-l: 52%;
  --info-h: 180deg;    --info-s: 100%;   --info-l: 28%;
  --site-background: var(--d3-panel);
  --text: var(--d3-text-2);
  --text-strong: var(--d3-ink);
  --text-light: var(--d3-muted);
  --text-muted: var(--d3-muted);
  --border: var(--d3-rule);
  --card-border-color: var(--d3-rule);
  --input-border-color: var(--d3-rule);
  --logo-text-color: var(--d3-ink);
  --switch-view-active-background: var(--d3-brand);
}
:root.dark {
  --d3-ink: #E6EAEE; --d3-text-2: #C3CBD2; --d3-muted: #94A0AA; --d3-rule: #262D35;
  --d3-panel: #0E1115; --d3-surface: #161B21; --d3-brand: #24A8DE; --d3-brand-hover: #5CC0EA; --d3-brand-tint: #0D2533;
  --primary-h: 197deg; --primary-s: 74%; --primary-l: 51%;
  --danger-h: 355deg; --danger-s: 100%; --danger-l: 68%;
  --success-h: 134deg; --success-s: 49%; --success-l: 53%;
  --white: var(--d3-surface);
  --site-background: var(--d3-panel);
  --text: var(--d3-text-2);
  --text-strong: var(--d3-ink);
  --border: var(--d3-rule);
  --card-border-color: var(--d3-rule);
  --input-border-color: var(--d3-rule);
  --logo-text-color: var(--d3-ink);
}

/* Typography */
html, body, button, input, select, textarea, .button, .input, .textarea, .select select { font-family: var(--d3-body) !important; }
body { color: var(--text); -webkit-font-smoothing: antialiased; }
h1, h2, h3, .title, .card-header-title, .project-title, .no-auth-wrapper .title, .image-title {
  font-family: var(--d3-display) !important; font-weight: 600 !important; letter-spacing: -0.01em;
}
.title { color: var(--text-strong); }

/* Shape */
.button, .input, .textarea, .select select, .card, .box, .dropdown-content, .modal-card, .notification, .tag {
  border-radius: var(--d3-radius);
}
.button, .button.is-primary, .button.is-text, .button.is-secondary { text-transform: none !important; font-weight: 600; letter-spacing: 0 !important; }
.button.is-primary { background-color: var(--d3-brand); }
.button.is-primary:hover, .button.is-primary:focus { background-color: var(--d3-brand-hover); }
.card { box-shadow: 0 0 0 1px var(--d3-rule) !important; border: 0 !important; }
a { color: var(--d3-brand); }

/* Top bar: hairline + brand mosaic strip, like the wiki header */
.navbar {
  box-shadow: inset 0 -1px 0 var(--d3-rule);
  background: var(--d3-surface) !important;
}
.navbar.has-background { background: transparent !important; box-shadow: none; }
.logo-link img.logo, .menu-container .logo img.logo { max-block-size: 34px !important; }

/* Sidebar */
.menu-container { background: var(--d3-surface) !important; box-shadow: inset -1px 0 0 var(--d3-rule); }
.menu-container .menu-list a.router-link-exact-active,
.menu-container .menu-list a.router-link-active:not(.collapse-project-button) {
  color: var(--d3-brand) !important; background: var(--d3-brand-tint); border-radius: 6px;
}
.menu-container .menu-list a:hover { background: var(--d3-panel); border-radius: 6px; }
.menu-container .menu-label { font-family: var(--d3-body); letter-spacing: .08em; font-weight: 600; color: var(--d3-muted); }

/* Login / register / password reset */
.no-auth-wrapper { background: var(--d3-panel) !important; }
.no-auth-wrapper .noauth-container { border-radius: 12px; box-shadow: 0 0 0 1px var(--d3-rule), 0 12px 40px rgba(14, 17, 21, .08); overflow: hidden; }
.no-auth-wrapper .image {
  background:
    url("/admin/static/mosaic-small.svg") right -60px top 28px / 95% auto no-repeat,
    linear-gradient(160deg, #0078A8 0%, #005F86 55%, #303090 100%) !important;
}
.no-auth-wrapper .image::before { background: none !important; }
.no-auth-wrapper .image-title { font-size: 2rem; text-shadow: none; }

/* Kanban & lists */
.kanban .bucket { border-radius: var(--d3-radius); }
.kanban-card, .task.loader-container { border-radius: var(--d3-radius) !important; }
.project-card { border-radius: 12px !important; }
.progress { border-radius: 999px; }
