/* =====================================================================
   ary/index_ — obsidian theme
   matches the aryvectory.xyz design system
   single-file, ~9 kb. drop into .obsidian/themes/ary/theme.css
   ===================================================================== */

/* ---------------------------------------------------------------------
   COLOR TOKENS — change these to retheme everything.
   the rest of the file uses var(--ary-*) and never hardcodes a color.
   --------------------------------------------------------------------- */

.theme-dark {
  --ary-bg: #0e0e0e;
  --ary-bg-card: #151515;
  --ary-bg-codeblock: #0b0b0b;
  --ary-fg: #e8e6df;
  --ary-muted: #8a8a8a;
  --ary-rule: #e8e6df;
  --ary-cb: #2a2a2a;
  --ary-acc: #c6ff00;          /* accent — change this for a different look */
  --ary-acc-muted: rgba(198, 255, 0, 0.08);
  --ary-acc-text: #c6ff00;
  --ary-red: #e24b4a;          /* destructive / break tag */
}

.theme-light {
  --ary-bg: #f6f4ee;
  --ary-bg-card: #ffffff;
  --ary-bg-codeblock: #ece9df;
  --ary-fg: #1a1a1a;
  --ary-muted: #6b6b6b;
  --ary-rule: #1a1a1a;
  --ary-cb: #1a1a1a;
  --ary-acc: #7a9900;
  --ary-acc-muted: rgba(122, 153, 0, 0.08);
  --ary-acc-text: #7a9900;
  --ary-red: #c83a39;
}

/* ---------------------------------------------------------------------
   APPLY TOKENS TO OBSIDIAN'S OWN VARIABLES
   this is the bridge — obsidian reads --background-primary etc., we
   re-point those to our --ary-* values.
   --------------------------------------------------------------------- */

.theme-dark, .theme-light {
  --background-primary: var(--ary-bg);
  --background-primary-alt: var(--ary-bg);
  --background-secondary: var(--ary-bg-card);
  --background-secondary-alt: var(--ary-bg-card);
  --background-modifier-border: var(--ary-cb);
  --background-modifier-border-hover: var(--ary-acc);
  --background-modifier-border-focus: var(--ary-acc);
  --background-modifier-form-field: var(--ary-bg-card);
  --background-modifier-hover: var(--ary-acc-muted);
  --background-modifier-active-hover: var(--ary-acc-muted);
  --background-modifier-success: var(--ary-acc-muted);
  --background-modifier-error: rgba(226, 75, 74, 0.08);

  --text-normal: var(--ary-fg);
  --text-muted: var(--ary-muted);
  --text-faint: var(--ary-muted);
  --text-accent: var(--ary-acc-text);
  --text-accent-hover: var(--ary-acc-text);
  --text-on-accent: var(--ary-bg);
  --text-error: var(--ary-red);
  --text-success: var(--ary-acc-text);
  --text-selection: var(--ary-acc-muted);
  --text-highlight-bg: var(--ary-acc-muted);
  --text-highlight-bg-active: var(--ary-acc-muted);

  --interactive-normal: var(--ary-bg-card);
  --interactive-hover: var(--ary-acc-muted);
  --interactive-accent: var(--ary-acc);
  --interactive-accent-hover: var(--ary-acc);

  --link-color: var(--ary-fg);
  --link-color-hover: var(--ary-acc-text);
  --link-unresolved-color: var(--ary-muted);

  --tag-background: transparent;
  --tag-background-hover: var(--ary-acc-muted);
  --tag-color: var(--ary-acc-text);
  --tag-color-hover: var(--ary-acc-text);

  /* fonts */
  --font-text-theme: Georgia, "Iowan Old Style", "Times New Roman", serif;
  --font-monospace-theme: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
  --font-interface-theme: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;

  /* sharp corners everywhere */
  --radius-s: 0;
  --radius-m: 0;
  --radius-l: 0;
  --input-radius: 0;
}

/* ---------------------------------------------------------------------
   BODY & BASE
   --------------------------------------------------------------------- */

body {
  font-family: var(--font-text-theme);
  -webkit-font-smoothing: antialiased;
}

/* selection */
::selection {
  background: var(--ary-acc-muted);
  color: var(--ary-fg);
}

/* sharp corners on every panel */
.workspace-leaf-content,
.workspace-tab-header,
.modal,
.menu,
.tooltip,
.suggestion-container,
.search-input-container,
input, textarea, select, button {
  border-radius: 0 !important;
}

/* ---------------------------------------------------------------------
   HEADINGS — feel like a brutalist essay
   --------------------------------------------------------------------- */

.markdown-rendered h1,
.markdown-source-view.mod-cm6 .HyperMD-header-1 {
  font-family: var(--font-text-theme);
  font-size: 2em;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ary-fg);
  border-bottom: 2px solid var(--ary-rule);
  padding-bottom: 0.3em;
  margin: 0.5em 0 0.6em;
}

.markdown-rendered h2,
.markdown-source-view.mod-cm6 .HyperMD-header-2 {
  font-family: var(--font-text-theme);
  font-size: 1.5em;
  font-weight: 500;
  color: var(--ary-fg);
  border-bottom: 1px solid var(--ary-muted);
  padding-bottom: 0.2em;
  margin: 1.5em 0 0.5em;
}

.markdown-rendered h3,
.markdown-source-view.mod-cm6 .HyperMD-header-3 {
  font-family: var(--font-text-theme);
  font-size: 1.2em;
  font-weight: 500;
  color: var(--ary-fg);
  margin: 1.3em 0 0.5em;
}

.markdown-rendered h4, .markdown-rendered h5, .markdown-rendered h6 {
  font-family: var(--font-monospace-theme);
  font-size: 0.85em;
  color: var(--ary-muted);
  letter-spacing: 0.08em;
  text-transform: lowercase;
  margin: 1.2em 0 0.4em;
}

.markdown-rendered h4::before { content: "// "; color: var(--ary-muted); }

/* ---------------------------------------------------------------------
   PROSE
   --------------------------------------------------------------------- */

.markdown-rendered p {
  line-height: 1.7;
  font-size: 16px;
}

.markdown-rendered strong { color: var(--ary-fg); font-weight: 600; }
.markdown-rendered em { font-style: italic; }

.markdown-rendered a.external-link,
.markdown-rendered a.internal-link {
  color: var(--ary-fg);
  text-decoration: none;
  border-bottom: 1px solid var(--ary-muted);
  transition: color .15s, border-color .15s;
}
.markdown-rendered a.external-link:hover,
.markdown-rendered a.internal-link:hover {
  color: var(--ary-acc-text);
  border-bottom-color: var(--ary-acc);
}

/* unresolved (red broken link in default theme) — make it dashed accent */
.markdown-rendered a.internal-link.is-unresolved {
  color: var(--ary-muted);
  border-bottom: 1px dashed var(--ary-muted);
}

/* ---------------------------------------------------------------------
   CODE — the signature 3px accent left border
   --------------------------------------------------------------------- */

.markdown-rendered code {
  font-family: var(--font-monospace-theme);
  font-size: 0.85em;
  background: var(--ary-bg-card);
  border: 0.5px solid var(--ary-cb);
  padding: 1px 5px;
  border-radius: 0;
  color: var(--ary-fg);
}

.markdown-rendered pre {
  font-family: var(--font-monospace-theme);
  font-size: 0.85em;
  background: var(--ary-bg-codeblock) !important;
  border: 1px solid var(--ary-cb);
  border-left: 3px solid var(--ary-acc);
  border-radius: 0;
  padding: 12px 16px;
  line-height: 1.55;
}

.markdown-rendered pre code {
  background: transparent;
  border: none;
  padding: 0;
}

/* ---------------------------------------------------------------------
   BLOCKQUOTES — callouts in the brutalist style
   --------------------------------------------------------------------- */

.markdown-rendered blockquote {
  border-left: 3px solid var(--ary-muted);
  padding: 4px 16px;
  margin: 1em 0;
  font-style: italic;
  color: var(--ary-muted);
  background: transparent;
}

/* obsidian's own callout boxes */
.markdown-rendered .callout {
  background: transparent !important;
  border: none;
  border-left: 3px solid var(--ary-muted);
  border-radius: 0;
  padding: 8px 14px;
  font-style: normal;
}
.markdown-rendered .callout[data-callout="info"],
.markdown-rendered .callout[data-callout="note"],
.markdown-rendered .callout[data-callout="tip"] {
  border-left-color: var(--ary-acc);
  color: var(--ary-fg);
}
.markdown-rendered .callout[data-callout="warning"],
.markdown-rendered .callout[data-callout="caution"],
.markdown-rendered .callout[data-callout="important"] {
  border-left-color: var(--ary-acc);
  background: var(--ary-acc-muted) !important;
  color: var(--ary-fg);
}
.markdown-rendered .callout[data-callout="error"],
.markdown-rendered .callout[data-callout="danger"] {
  border-left-color: var(--ary-red);
  color: var(--ary-fg);
}
.markdown-rendered .callout-title {
  font-family: var(--font-monospace-theme);
  font-size: 0.85em;
  letter-spacing: 0.05em;
  text-transform: lowercase;
  font-weight: 500;
  color: var(--ary-acc-text);
}
.markdown-rendered .callout-icon { display: none; }   /* drop the emoji icons */

/* ---------------------------------------------------------------------
   TABLES — tight, mono
   --------------------------------------------------------------------- */

.markdown-rendered table {
  border-collapse: collapse;
  font-family: var(--font-monospace-theme);
  font-size: 0.85em;
  width: 100%;
}
.markdown-rendered th {
  text-align: left;
  padding: 8px 12px;
  font-weight: 500;
  color: var(--ary-muted);
  letter-spacing: 0.05em;
  text-transform: lowercase;
  border-bottom: 2px solid var(--ary-rule);
  background: transparent;
}
.markdown-rendered td {
  padding: 8px 12px;
  border-bottom: 0.5px dashed var(--ary-muted);
}
.markdown-rendered tr:hover td {
  background: var(--ary-acc-muted);
}

/* ---------------------------------------------------------------------
   LISTS
   --------------------------------------------------------------------- */

.markdown-rendered ul, .markdown-rendered ol {
  padding-left: 1.4em;
}
.markdown-rendered li::marker {
  color: var(--ary-muted);
}
/* tasks */
.markdown-rendered input[type="checkbox"] {
  accent-color: var(--ary-acc);
  border-radius: 0;
}

/* ---------------------------------------------------------------------
   TAGS — pill style
   --------------------------------------------------------------------- */

.markdown-rendered a.tag,
.tag {
  font-family: var(--font-monospace-theme);
  font-size: 0.75em;
  padding: 1px 7px;
  border: 0.5px solid var(--ary-acc);
  background: transparent;
  color: var(--ary-acc-text);
  border-radius: 0;
  text-decoration: none;
  letter-spacing: 0.03em;
}
.markdown-rendered a.tag:hover,
.tag:hover {
  background: var(--ary-acc-muted);
}

/* ---------------------------------------------------------------------
   MATH (mathjax)
   --------------------------------------------------------------------- */

mjx-container[display="true"] {
  border-top: 1px dashed var(--ary-muted);
  border-bottom: 1px dashed var(--ary-muted);
  padding: 8px 0;
  margin: 1em 0;
}

/* ---------------------------------------------------------------------
   SIDEBAR / FILE EXPLORER
   --------------------------------------------------------------------- */

.workspace-tab-header {
  font-family: var(--font-interface-theme);
  font-size: 12px;
  letter-spacing: 0.03em;
}

.nav-folder-title,
.nav-file-title {
  font-family: var(--font-interface-theme);
  font-size: 13px;
  border-radius: 0;
}
.nav-file-title.is-active,
.nav-folder-title.is-active {
  background: var(--ary-acc-muted);
  color: var(--ary-acc-text);
}
.nav-file-title:hover,
.nav-folder-title:hover {
  background: var(--ary-acc-muted);
}

/* ---------------------------------------------------------------------
   STATUS BAR
   --------------------------------------------------------------------- */

.status-bar {
  font-family: var(--font-monospace-theme);
  font-size: 11px;
  color: var(--ary-muted);
  border-top: 1px solid var(--ary-muted);
  background: var(--ary-bg);
}

/* ---------------------------------------------------------------------
   GRAPH VIEW — match the dot color to accent
   --------------------------------------------------------------------- */

.graph-view.color-fill { color: var(--ary-fg); }
.graph-view.color-fill-tag { color: var(--ary-acc-text); }
.graph-view.color-fill-attachment { color: var(--ary-muted); }
.graph-view.color-fill-unresolved { color: var(--ary-muted); }
.graph-view.color-arrow { color: var(--ary-muted); }
.graph-view.color-line { color: var(--ary-cb); }
.graph-view.color-text { color: var(--ary-muted); }
.graph-view.color-fill-highlight { color: var(--ary-acc-text); }

/* ---------------------------------------------------------------------
   BACKLINKS / OUTGOING LINKS PANES
   --------------------------------------------------------------------- */

.tree-item-self {
  border-radius: 0;
  font-family: var(--font-interface-theme);
  font-size: 12px;
}
.tree-item-self:hover {
  background: var(--ary-acc-muted);
}

/* ---------------------------------------------------------------------
   COMMAND PALETTE / SUGGESTIONS
   --------------------------------------------------------------------- */

.suggestion-item {
  font-family: var(--font-interface-theme);
  font-size: 12px;
  border-radius: 0;
}
.suggestion-item.is-selected {
  background: var(--ary-acc-muted);
  color: var(--ary-acc-text);
}

/* ---------------------------------------------------------------------
   BUTTONS
   --------------------------------------------------------------------- */

button.mod-cta,
.mod-cta {
  font-family: var(--font-monospace-theme);
  font-size: 11px;
  letter-spacing: 0.05em;
  padding: 5px 14px;
  border: 1px solid var(--ary-acc);
  background: transparent !important;
  color: var(--ary-acc-text) !important;
  border-radius: 0;
}
button.mod-cta:hover,
.mod-cta:hover {
  background: var(--ary-acc-muted) !important;
}

button:not(.mod-cta) {
  font-family: var(--font-monospace-theme);
  font-size: 11px;
  border: 1px solid var(--ary-muted);
  background: transparent;
  color: var(--ary-muted);
  border-radius: 0;
  padding: 5px 12px;
}
button:not(.mod-cta):hover {
  border-color: var(--ary-acc);
  color: var(--ary-acc-text);
}

/* ---------------------------------------------------------------------
   END.
   to retheme: change the --ary-acc / --ary-bg / etc. values at the top.
   --------------------------------------------------------------------- */
