/* Visla.dev — green / red / black theme */

:root {
  --visla-bg: #080808;
  --visla-surface: #111111;
  --visla-surface-2: #1a1a1a;
  --visla-border: #2a2a2a;
  --visla-text: #f4f4f5;
  --visla-muted: #a1a1aa;
  --visla-green: #22c55e;
  --visla-green-dim: #16a34a;
  --visla-green-glow: rgba(34, 197, 94, 0.15);
  --visla-red: #ef4444;
  --visla-red-dim: #dc2626;
  --visla-black: #000000;
  --visla-font: "DM Sans", system-ui, -apple-system, sans-serif;
  --visla-mono: "JetBrains Mono", ui-monospace, monospace;
  --visla-radius: 6px;
}

html {
  scroll-behavior: smooth;
}

body#wrapper,
body.visla-theme {
  background-color: var(--visla-bg) !important;
  color: var(--visla-text) !important;
  font-family: var(--visla-font) !important;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body .pattern {
  opacity: 0.04;
  background-image: linear-gradient(
      135deg,
      var(--visla-green) 0%,
      transparent 40%,
      transparent 60%,
      var(--visla-red) 100%
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 2px,
      rgba(255, 255, 255, 0.03) 2px,
      rgba(255, 255, 255, 0.03) 4px
    ) !important;
}

#container,
#container-shadow {
  background: var(--visla-bg) !important;
  box-shadow: none !important;
}

#wrapper-content {
  background: var(--visla-bg) !important;
}

/* Header */
#header {
  background: var(--visla-black) !important;
  border-bottom: 2px solid var(--visla-green) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5) !important;
}

.header-content-wrapper,
.header-content {
  background: transparent !important;
}

.site-title {
  margin: 0 !important;
  font-family: var(--visla-font) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
}

.site-title a {
  color: var(--visla-text) !important;
  text-decoration: none !important;
  font-size: 1.75rem !important;
}

.site-title a .visla-dot {
  color: var(--visla-green) !important;
}

.site-title a .visla-tld {
  color: var(--visla-muted) !important;
  font-weight: 500;
  font-size: 0.95em;
}

.site-description {
  color: var(--visla-muted) !important;
  font-size: 0.95rem !important;
  margin-top: 0.35rem !important;
}

#searchform .searchform-wrapper input[type="text"] {
  background: var(--visla-surface) !important;
  border: 1px solid var(--visla-border) !important;
  color: var(--visla-text) !important;
  border-radius: var(--visla-radius) !important;
  font-family: var(--visla-font) !important;
}

#searchform .searchform-wrapper .send,
body input[type="submit"],
body input[type="reset"] {
  background: var(--visla-green-dim) !important;
  border-color: var(--visla-green) !important;
  color: var(--visla-black) !important;
  font-weight: 600 !important;
  border-radius: var(--visla-radius) !important;
  transition: background 0.15s ease, transform 0.1s ease;
}

#searchform .searchform-wrapper .send:hover,
body input[type="submit"]:hover,
body input[type="reset"]:hover {
  background: var(--visla-green) !important;
  color: var(--visla-black) !important;
}

.menu-box-container {
  background: var(--visla-surface) !important;
  border-top: 1px solid var(--visla-border) !important;
}

.menu-box-wrapper,
.menu-box {
  background: transparent !important;
}

.menu-box a,
#nav.menu a {
  color: var(--visla-muted) !important;
  font-family: var(--visla-font) !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  transition: color 0.15s ease;
}

.menu-box a:hover,
#nav.menu a:hover {
  color: var(--visla-green) !important;
}

body #header .menu-box .current-menu-item > a,
body #header .menu-box .current-menu-ancestor > a,
body #header .menu-box .current_page_item > a,
body #header .menu-box .current-page-ancestor > a,
.home #container #header .menu-box .link-home {
  background-color: var(--visla-green-dim) !important;
  color: var(--visla-black) !important;
}

.link-home {
  background: var(--visla-surface-2) !important;
  border: 1px solid var(--visla-border) !important;
  border-radius: var(--visla-radius) !important;
}

.link-home:hover {
  border-color: var(--visla-green) !important;
  color: var(--visla-green) !important;
}

/* Two-column layout: sidebar left, content right */
#wrapper-content {
  background: var(--visla-bg) !important;
  float: left !important;
  width: 100% !important;
}

body.visla-theme #main-content.visla-layout,
body.visla-theme #wrapper #main-content.visla-layout {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1.75rem !important;
  width: 100% !important;
  max-width: 1170px !important;
  margin: 0 auto !important;
  padding: 1.75rem 1.75rem 1rem !important;
  box-sizing: border-box !important;
  float: none !important;
  height: auto !important;
  background: var(--visla-bg) !important;
}

#content,
.hentry {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background: var(--visla-surface) !important;
  border: 1px solid var(--visla-border) !important;
  border-radius: 8px !important;
  padding: 1.5rem 2rem !important;
  box-shadow: 0 1px 0 var(--visla-green-glow) inset;
}

.entry-headline,
.content-headline .entry-headline,
.home-latest-posts .entry-headline,
#default-home-content .entry-headline {
  background: none !important;
  color: var(--visla-text) !important;
}

.entry-headline-text,
.content-headline .entry-headline-text,
.home-latest-posts .entry-headline-text,
#default-home-content .entry-headline-text {
  background: transparent !important;
  color: var(--visla-text) !important;
  padding-right: 0 !important;
}

.entry-headline-text,
.post-entry-headline a,
h1, h2, h3, h4, h5, h6 {
  font-family: var(--visla-font) !important;
  color: var(--visla-text) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
}

.entry-headline-text::after,
.content-headline .entry-headline::after {
  border-bottom-color: var(--visla-red) !important;
}

.post-entry .post-entry-headline a:hover {
  color: var(--visla-red) !important;
}

#default-home-content,
.home-latest-posts {
  background: transparent !important;
}

body a,
body .site-title a,
body .post-entry .post-entry-headline a,
body .grid-entry .grid-entry-headline a,
body .sidebar-widget a {
  color: var(--visla-green) !important;
  transition: color 0.15s ease;
}

body a:hover {
  color: var(--visla-red) !important;
}

.post-meta,
.post-info-date,
.post-info-author {
  color: var(--visla-muted) !important;
  font-size: 0.9rem !important;
}

.post-entry {
  border-bottom: 1px solid var(--visla-border) !important;
  padding-bottom: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.post-entry-content,
.entry-content,
#content p,
#content ul,
#content ol,
#content li,
#content blockquote,
#default-home-content p {
  color: #d4d4d8 !important;
}

.post-entry-content p,
.entry-content p {
  color: #d4d4d8 !important;
}

.read-more-button {
  background: transparent !important;
  border: 2px solid var(--visla-red) !important;
  color: var(--visla-red) !important;
  font-weight: 600 !important;
  border-radius: var(--visla-radius) !important;
  padding: 0.4rem 1rem !important;
  transition: all 0.15s ease !important;
}

.read-more-button:hover {
  background: var(--visla-red) !important;
  color: var(--visla-text) !important;
  border-color: var(--visla-red) !important;
}

/* Code */
pre,
code,
.entry-content pre,
.entry-content code {
  font-family: var(--visla-mono) !important;
}

pre,
.entry-content pre {
  background: var(--visla-black) !important;
  border: 1px solid var(--visla-border) !important;
  border-left: 3px solid var(--visla-green) !important;
  border-radius: var(--visla-radius) !important;
  color: #e4e4e7 !important;
  overflow-x: auto;
}

code {
  background: var(--visla-surface-2) !important;
  color: var(--visla-green) !important;
  padding: 0.15em 0.4em !important;
  border-radius: 4px !important;
  font-size: 0.9em !important;
}

/* Sidebar — right column */
body.visla-theme #sidebar {
  flex: 0 0 280px !important;
  width: 280px !important;
  max-width: 280px !important;
  float: none !important;
  margin: 0 !important;
  align-self: flex-start !important;
  position: sticky !important;
  top: 1rem !important;
  padding: 1rem 1.1rem !important;
  box-sizing: border-box !important;
  background: var(--visla-surface) !important;
  border: 1px solid var(--visla-border) !important;
  border-radius: 8px !important;
}

@media screen and (max-width: 960px) {
  body.visla-theme #main-content.visla-layout,
  body.visla-theme #wrapper #main-content.visla-layout {
    flex-direction: column !important;
    padding: 1.25rem 5% 1rem !important;
  }

  body.visla-theme #sidebar {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    position: static !important;
  }
}

.tag-archive-count {
  margin: 0 0 1.25rem !important;
  color: var(--visla-muted) !important;
}

.tag-index-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}

.tag-index-list .tag-index-count {
  color: var(--visla-muted);
  font-size: 0.85rem;
  margin-right: 0.5rem;
}

.pagination-info {
  color: var(--visla-muted);
  margin: 0 0.75rem;
}

body.visla-theme #sidebar .tag-cloud-link.tag-active {
  border-color: var(--visla-green) !important;
  color: var(--visla-green) !important;
  background: var(--visla-green-glow) !important;
}

.sidebar-widget strong {
  color: var(--visla-text) !important;
  font-family: var(--visla-font) !important;
  display: block;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--visla-green);
}

.tag-cloud-link {
  background: var(--visla-surface-2) !important;
  border: 1px solid var(--visla-border) !important;
  color: var(--visla-muted) !important;
  border-radius: 999px !important;
  padding: 0.2em 0.65em !important;
  margin: 0.15em !important;
  display: inline-block;
  transition: all 0.15s ease;
}

.tag-cloud-link:hover {
  border-color: var(--visla-green) !important;
  color: var(--visla-green) !important;
  background: var(--visla-green-glow) !important;
}

/* Footer */
#wrapper-footer,
#footer {
  background: var(--visla-black) !important;
  border-top: 2px solid var(--visla-red) !important;
  color: var(--visla-muted) !important;
}

.footer-signature-content {
  text-align: center;
  padding: 1rem 0 0.5rem;
  font-size: 0.875rem;
}

.footer-signature-content a {
  color: var(--visla-green) !important;
  font-weight: 600;
}

.visla-footer-brand {
  font-weight: 700;
  color: var(--visla-text);
}

.visla-footer-brand span {
  color: var(--visla-green);
}

/* Lists & tables */
.entry-content ul li::marker,
.entry-content ol li::marker {
  color: var(--visla-green);
}

.entry-content table {
  border-collapse: collapse;
  width: 100%;
}

.entry-content th {
  background: var(--visla-surface-2) !important;
  color: var(--visla-green) !important;
  border: 1px solid var(--visla-border) !important;
}

.entry-content td {
  border: 1px solid var(--visla-border) !important;
  background: var(--visla-surface) !important;
}

/* Pagination */
.pagination a {
  border: 1px solid var(--visla-border) !important;
  padding: 0.5rem 1rem !important;
  border-radius: var(--visla-radius) !important;
  margin-right: 0.5rem;
}

.pagination a:hover {
  border-color: var(--visla-green) !important;
  background: var(--visla-green-glow) !important;
}

/* Blockquotes */
.entry-content blockquote {
  border-left: 4px solid var(--visla-red) !important;
  background: var(--visla-surface-2) !important;
  color: var(--visla-muted) !important;
  margin: 1.25rem 0;
  padding: 0.75rem 1.25rem;
  border-radius: 0 var(--visla-radius) var(--visla-radius) 0;
}

/* Selection */
::selection {
  background: var(--visla-green);
  color: var(--visla-black);
}
