/* ─────────────────────────────────────────────────────────────
   Custom Styling — Pentest Notes
   ───────────────────────────────────────────────────────────── */

/* ─── Color Variables (Dark) ──────────────────────────────── */
[data-md-color-scheme="slate"] {
  --md-hue: 232;
  --md-default-bg-color: hsla(232, 15%, 9%, 1);
  --md-default-bg-color--light: hsla(232, 15%, 12%, 1);
  --md-code-bg-color: hsla(232, 15%, 13%, 1);
  --md-code-fg-color: hsla(140, 50%, 75%, 1);
  --md-accent-fg-color: #00d97e;
  --md-typeset-a-color: #00d97e;
  --card-bg: hsla(232, 15%, 12%, 1);
  --card-border: hsla(232, 15%, 20%, 1);
  --card-hover-border: #00d97e;
  --pill-bg: hsla(232, 15%, 18%, 1);
  --pill-active-bg: #00d97e;
  --pill-active-color: #000;
  --pill-color: #aaa;
  --filter-label-color: #666;
}

/* ─── Color Variables (Light) ─────────────────────────────── */
[data-md-color-scheme="default"] {
  --md-accent-fg-color: #d96f00;
  --md-typeset-a-color: #d96f00;
  --card-bg: #fff;
  --card-border: #e0e0e0;
  --card-hover-border: #d96f00;
  --pill-bg: #f0f0f0;
  --pill-active-bg: #d96f00;
  --pill-active-color: #fff;
  --pill-color: #555;
  --filter-label-color: #999;
}

/* ─── Header ──────────────────────────────────────────────── */
.md-header {
  background: var(--md-default-bg-color);
  border-bottom: 1px solid hsla(232, 15%, 20%, 1);
  box-shadow: none;
}

[data-md-color-scheme="slate"] .md-header {
  background: hsla(232, 15%, 7%, 1);
}

/* ─── Search bar — wider, centered ────────────────────────── */
.md-search__form {
  border-radius: 8px;
}

.md-search__input {
  background: hsla(232, 15%, 18%, 1);
  font-size: 0.85rem;
}

@media screen and (min-width: 60em) {
  .md-search {
    order: 0;
  }
  .md-search__input {
    width: 100%;
  }
}

/* ─── Subtitle on homepage ────────────────────────────────── */
.subtitle {
  color: #888;
  font-size: 0.95rem;
  max-width: 680px;
  line-height: 1.6;
  margin-bottom: 2.5rem;
}

.view-all-link {
  text-align: center;
  margin-top: 1rem;
  font-size: 0.9rem;
}

/* ─── Card badges ─────────────────────────────────────────── */
.card-difficulty,
.card-os,
.card-platform {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.15em 0.6em;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-right: 0.4rem;
}

.card-difficulty.easy {
  background: rgba(0, 217, 126, 0.15);
  color: #00d97e;
}

.card-difficulty.medium {
  background: rgba(255, 170, 0, 0.15);
  color: #ffaa00;
}

.card-difficulty.hard {
  background: rgba(255, 82, 82, 0.15);
  color: #ff5252;
}

.card-difficulty.insane {
  background: rgba(180, 0, 255, 0.15);
  color: #b400ff;
}

.card-os {
  background: rgba(100, 150, 255, 0.1);
  color: #6496ff;
}

.card-platform {
  background: rgba(0, 217, 126, 0.08);
  color: #00d97e;
  border: 1px solid rgba(0, 217, 126, 0.2);
}

/* ─────────────────────────────────────────────────────────────
   Filter Bar
   ───────────────────────────────────────────────────────────── */
.filter-bar {
  margin-bottom: 1.5rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--card-border);
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
  flex-wrap: wrap;
}

.filter-group:last-child {
  margin-bottom: 0;
}

.filter-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--filter-label-color);
  min-width: 80px;
}

.filter-pill {
  background: var(--pill-bg);
  color: var(--pill-color);
  border: 1px solid transparent;
  border-radius: 20px;
  padding: 0.3em 0.9em;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: inherit;
}

.filter-pill:hover {
  border-color: var(--card-hover-border);
  color: var(--card-hover-border);
}

.filter-pill.active {
  background: var(--pill-active-bg);
  color: var(--pill-active-color);
  border-color: transparent;
}

/* ─── Filtered-out overlay ────────────────────────────────── */
.writeup-card.filtered-out {
  opacity: 0.12;
  pointer-events: none;
  transform: scale(0.98);
}

/* ─────────────────────────────────────────────────────────────
   Code Blocks
   ───────────────────────────────────────────────────────────── */
.md-typeset code {
  border-radius: 4px;
  padding: 0.15em 0.4em;
  font-size: 0.85em;
}

.md-typeset pre > code {
  border-radius: 6px;
  padding: 1em 1.2em;
  line-height: 1.5;
  font-size: 0.82em;
  border-left: 3px solid var(--md-accent-fg-color);
}

.md-typeset :not(pre) > code {
  background: hsla(232, 15%, 18%, 1);
  color: var(--md-code-fg-color);
}

/* Terminal-style code blocks */
.md-typeset .highlight[data-title^="$"] pre,
.md-typeset .highlight[data-title^="#"] pre {
  background: #0d0d0d !important;
}

/* ─── Admonitions ─────────────────────────────────────────── */
.md-typeset .admonition,
.md-typeset details {
  border-radius: 6px;
  border-width: 0;
  border-left: 4px solid;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  font-size: 0.78rem;
}

/* Custom admonition: loot */
:root {
  --md-admonition-icon--loot: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1l3.09 6.26L22 8.27l-5 4.87 1.18 6.88L12 16.77l-6.18 3.25L7 13.14 2 8.27l6.91-1.01L12 1z"/></svg>');
}
.md-typeset .admonition.loot,
.md-typeset details.loot {
  border-color: #ffd700;
}
.md-typeset .loot > .admonition-title,
.md-typeset .loot > summary {
  background-color: rgba(255, 215, 0, 0.1);
}
.md-typeset .loot > .admonition-title::before,
.md-typeset .loot > summary::before {
  background-color: #ffd700;
  -webkit-mask-image: var(--md-admonition-icon--loot);
          mask-image: var(--md-admonition-icon--loot);
}

/* Custom admonition: exploit */
:root {
  --md-admonition-icon--exploit: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 21h-1l1-7H7.5c-.58 0-.57-.32-.38-.66.19-.34.05-.08.07-.12C8.48 10.94 10.42 7.54 13 3h1l-1 7h3.5c.49 0 .56.33.47.51l-.07.15C12.96 17.55 11 21 11 21z"/></svg>');
}
.md-typeset .admonition.exploit,
.md-typeset details.exploit {
  border-color: #ff5252;
}
.md-typeset .exploit > .admonition-title,
.md-typeset .exploit > summary {
  background-color: rgba(255, 82, 82, 0.1);
}
.md-typeset .exploit > .admonition-title::before,
.md-typeset .exploit > summary::before {
  background-color: #ff5252;
  -webkit-mask-image: var(--md-admonition-icon--exploit);
          mask-image: var(--md-admonition-icon--exploit);
}

/* ─── Tables ──────────────────────────────────────────────── */
.md-typeset table:not([class]) {
  font-size: 0.78rem;
  border-radius: 6px;
  overflow: hidden;
}

.md-typeset table:not([class]) th {
  background: hsla(232, 15%, 15%, 1);
  font-weight: 600;
}

/* ─── Tags ────────────────────────────────────────────────── */
.md-typeset .md-tag {
  border-radius: 4px;
  font-size: 0.7rem;
  padding: 0.2em 0.6em;
  font-weight: 600;
}

/* ─── Scrollbar (Webkit) ──────────────────────────────────── */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: var(--md-default-bg-color);
}
::-webkit-scrollbar-thumb {
  background: hsla(232, 15%, 25%, 1);
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
  background: hsla(232, 15%, 35%, 1);
}

/* ─── Keyboard Keys ───────────────────────────────────────── */
.md-typeset kbd {
  background: hsla(232, 15%, 18%, 1);
  border: 1px solid hsla(232, 15%, 30%, 1);
  border-radius: 4px;
  box-shadow: 0 2px 0 hsla(232, 15%, 12%, 1);
  font-size: 0.75em;
  padding: 0.15em 0.5em;
}

/* ─── Footer ──────────────────────────────────────────────── */
.md-footer {
  background: hsla(232, 15%, 7%, 1);
}

/* ─── Search ──────────────────────────────────────────────── */
.md-search__input {
  background: hsla(232, 15%, 18%, 1);
}

/* ─── Weitere kleine Anpassungen ───────────────────────────── */
/* .writeup-grid .grid.cards {
  grid-template-columns: repeat(3, 1fr) !important;
  display: grid !important;
  margin: 1em 0 !important;
  grid-gap: .4rem !important;
} */

.writeup-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-top: 1.5rem;
}

.writeup-grid.filter-active .writeup-card:not(.filtered-out) {
  border-color: var(--card-hover-border);
  box-shadow: 0 0 12px rgba(0, 217, 126, 0.15);
}

@media screen and (max-width: 900px) {
  .writeup-grid { grid-template-columns: repeat(2, 1fr); }
}

@media screen and (max-width: 560px) {
  .writeup-grid { grid-template-columns: 1fr; }
}

.writeup-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 8px;
  padding: 1.2rem 1.4rem;
  position: relative;
  transition: border-color 0.2s ease, opacity 0.3s ease, transform 0.3s ease;
  cursor: pointer;
  position: relative;
}

.writeup-card > a:last-of-type::after {
  content: "";
  position: absolute;
  inset: 0;
}

.writeup-card img.card-cover {
  pointer-events: none;
}

.writeup-card:hover {
  border-color: var(--card-hover-border);
}

.writeup-card h3 {
  margin-top: 0.6rem !important;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
}

.writeup-card p {
  font-size: 0.8rem;
  color: #999;
  line-height: 1.5;
  margin-bottom: 0.8rem;
}

.writeup-card a {
  font-size: 0.8rem;
  font-weight: 600;
}

.writeup-card.filtered-out {
  opacity: 0.12;
  pointer-events: none;
  transform: scale(0.98);
}

.card-cover {
  display: block;
  margin: 1rem 0;
  border-radius: 5px;
  margin-left: auto;
  margin-right: auto;
}
