/* ---------------------- PeriDocs-code/app/static/style.css  - save-state 2026-03-21T20:40:30-04:00 ---------------------- */

/* ---------------------- Fonts ---------------------- */
@font-face{font-family:'Cabinet Grotesk';font-weight:100;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Thin.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Thin.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Thin.ttf') format('truetype');}
@font-face{font-family:'Cabinet Grotesk';font-weight:200;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Extralight.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Extralight.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Extralight.ttf') format('truetype');}
@font-face{font-family:'Cabinet Grotesk';font-weight:300;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Light.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Light.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Light.ttf') format('truetype');}
@font-face{font-family:'Cabinet Grotesk';font-weight:400;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Regular.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Regular.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Regular.ttf') format('truetype');}
@font-face{font-family:'Cabinet Grotesk';font-weight:500;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Medium.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Medium.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Medium.ttf') format('truetype');}
@font-face{font-family:'Cabinet Grotesk';font-weight:700;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Bold.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Bold.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Bold.ttf') format('truetype');}
@font-face{font-family:'CabinetGrotesk';font-weight:800;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Extrabold.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Extrabold.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Extrabold.ttf') format('truetype');}
@font-face{font-family:'Cabinet Grotesk';font-weight:900;src:url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Black.woff2') format('woff2'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Black.woff') format('woff'),url('/static/CabinetGrotesk_Complete/Fonts/WEB/fonts/CabinetGrotesk-Black.ttf') format('truetype');}

/* ---------------------- Color Variables ---------------------- */
:root{
  /* Base palette */
  --bg: #7F86B0;
  --card: #F0F0EB;
  --muted: #BFC8CC;
  --accent: #7F86B0;
  --text: #111;
  --radius: 12px;

  /* Fixed accent / hover */
  --accent-hover: #6b708f;
  --white: #ffffff;
  --black: #000000;

  /* Toasts */
  --toast-bg: #F5E8A3;
  --toast-text: #000000;

  /* Privacy toast */
  --privacy-bg: var(--card);
  --privacy-text: var(--text);
  --privacy-link: var(--accent);

  /* Excerpts / quotes */
  --excerpt-bg: color-mix(in srgb, var(--card) 92%, var(--bg) 8%);

  /* Parse feedback */
  --parse-bg: color-mix(in srgb, var(--card) 94%, var(--bg) 6%);
  --parse-text: var(--text);
  --parse-hover-bg: color-mix(in srgb, var(--accent) 12%, var(--card) 88%);

  /* Table / highlight */
  --table-hover-light: #f2f2f0;
  --table-hover-dark: #2f2f2f;
  --expanded-bg-light: #f2f2f0;
  --expanded-bg-dark: #2f2f2f;

  /* Fonts */
  --font-family: 'Cabinet Grotesk', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

html[data-theme='dark']{
  --bg: #3A3D5A;
  --card: #1A1A18;
  --muted: #4A5155;
  --accent: #2F302F;
  --text: #f0e2cc;

  --privacy-bg: #2A2C3C;
  --privacy-text: #f0e2cc;
  --privacy-link: #b3b0a3;

  --excerpt-bg-dark: color-mix(in srgb, var(--card) 88%, var(--bg) 12%);

  --parse-dark-bg: color-mix(in srgb, var(--card) 86%, var(--bg) 14%);
  --parse-dark-text: var(--text);
  --parse-btn-dark-bg: color-mix(in srgb, var(--card) 90%, var(--accent) 10%);
  --parse-btn-dark-border: var(--muted);
  --parse-btn-dark-text: var(--text);
  --parse-btn-dark-hover-bg: color-mix(in srgb, var(--accent) 14%, var(--card) 86%);
}

/* ---------------------- Global resets ---------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;width:100%;background:linear-gradient(180deg,var(--bg),var(--card));color:var(--text);line-height:1.5;font-family:var(--font-family);overflow:hidden;}

/* ---------------------- Layout ---------------------- */
.wrap{display:flex;justify-content:center;align-items:center;min-height:100vh;width:100%;padding:1rem;box-sizing:border-box;}
.card{display:flex;flex-direction:column;width:720px;max-width:96%;max-height:80vh;background:var(--card);border-radius:var(--radius);box-shadow:0 10px 30px rgba(17,17,17,.06);padding:1rem;position:relative;overflow:hidden;}
.card-content{flex:1;overflow-y:auto;margin-bottom:1rem;padding-right:0.5rem;}
.card footer{font-size:12px;color:var(--muted);text-align:center;padding-top:1rem;border-top:none;}
.card > *:first-child{margin-top:1rem;}
.card > *:last-child{margin-bottom:1rem;}
.card *{margin:initial;padding:initial;width:auto;max-width:100%;}

/* ---------------------- Typography ---------------------- */
h1{margin:6px 0 12px;font-weight:600;color:var(--text);}
p,p.mirror{font-size:15px;margin:8px 0 18px;color:var(--text);}
.id,.source{font-size:12px;color:var(--muted);margin-top:8px;}
.id{letter-spacing:.6px;}

/* ---------------------- Forms / Inputs ---------------------- */
textarea,input[type="text"],input[type="search"],input[type="email"],input[type="number"]{background:var(--card);color:var(--text);border:1px solid var(--muted);border-radius:.25rem;padding:.75rem;font-family:inherit;font-size:1rem;resize:vertical;}
::placeholder{color:var(--muted);opacity:1;}
form{display:flex;flex-direction:column;}

/* ---------------------- Excerpt / Quote blocks ---------------------- */
.excerpt,
.matched-snippet {
  background-color: var(--excerpt-bg);
  border-left: 4px solid var(--accent);
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
  padding: 12px 16px 12px 12px;
  margin: 1rem 0;
  color: var(--text);
}

html[data-theme='dark'] .excerpt,
html[data-theme='dark'] .matched-snippet {
  background-color: var(--excerpt-bg-dark);
  color: var(--text);
}

/* ---------------------- Input focus normalization ---------------------- */
textarea:focus,
input[type="text"]:focus,
input[type="search"]:focus,
input[type="email"]:focus,
input[type="number"]:focus {
  outline: none;
  border-color: var(--muted);
  box-shadow: none;
}

textarea::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
}

textarea:focus-visible {
  box-shadow: 0 0 0 2px var(--accent);
}

/* ---------------------- Buttons ---------------------- */
button,.btn{display:inline-block;padding:0.6rem 1rem;border-radius:10px;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:0 4px 12px rgba(17,17,17,.12);transition:background .16s ease;font-size:.9rem;}
button.primary,.btn.primary{background:var(--accent);color:var(--white);border:none;}
button.ghost,.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--muted);}
button:hover,.btn:hover,button.primary:hover,.btn.primary:hover{background-color:var(--accent-hover);}

/* ---------------------- Global Links ---------------------- */
a:not(.brand-link),
a:link:not(.brand-link),
a:visited:not(.brand-link),
a:hover:not(.brand-link),
a:active:not(.brand-link) {
    color: #7F86B0;
    text-decoration: underline;
}

/* ---------------------- Header/logo ---------------------- */
.brand-link{display:flex;align-items:center;text-decoration:none;color:inherit;}
.brand-logo{height:3rem;width:auto;display:block;filter:none;  transform: scaleX(1); transform-origin: center}
html[data-theme='dark'] .brand-logo{filter:invert(1) brightness(.95) contrast(.9);}
.brand-text{line-height:1;}
header.header-bar .brand-link{color:inherit;text-decoration:none;}
header.header-bar .brand-link:hover,header.header-bar .brand-link:active{color:inherit;text-decoration:none;}

/* Header */
header.header-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 1rem;
  font-family: 'CabinetGrotesk-Variable', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  font-weight: 100;
  font-size: 2rem;
  color: var(--text);
  background: var(--card);
  opacity: 0.95;
  box-shadow: 0 6px 16px rgba(0,0,0,0.25);
  user-select: none;
  pointer-events: auto;
  z-index: 7;
}

header.header-bar >p {
  margin-top: 1rem;
}

/* ---------------------- Feedback / Theme buttons ---------------------- */
#feedback-btn,#theme-toggle-btn,.feedback-btn{position:fixed;bottom:1.5rem;background:var(--accent);color:var(--white);border:none;border-radius:10px;cursor:pointer;font-weight:600;box-shadow:0 4px 12px rgba(17,17,17,.12);transition:background .16s ease;font-size:.9rem;padding:0.6rem 1rem;z-index:1000;}
#feedback-btn{right:1.5rem;}#theme-toggle-btn{left:1.5rem;}
#feedback-btn:hover,#theme-toggle-btn:hover,.feedback-btn:hover{background:var(--accent-hover);transform:translateY(-1px);}

/* ---------------------- Toasts ---------------------- */
#general-toast-container{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:row;gap:10px;pointer-events:none;z-index:1001;}
.stacked-toast{background-color:var(--toast-bg);color:var(--toast-text);padding:10px 15px;border-radius:8px;display:inline-flex;align-items:center;opacity:0;transform:translateY(20px);transition:opacity 0.4s ease, transform 0.4s ease;pointer-events:auto;}
.stacked-toast.show{opacity:1;transform:translateY(0);}
.stacked-toast.hide{opacity:0;transform:translateY(20px);}
#privacy-toast{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%) translateY(20px);display:none;flex-direction:row;align-items:center;gap:.75rem;max-width:600px;padding:.75rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;z-index:10000;box-shadow:0 4px 12px rgba(0,0,0,.25);border:1px solid rgba(0,0,0,.15);background:var(--privacy-bg);color:var(--privacy-text);transition:opacity .4s ease,transform .4s ease;}
#privacy-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
#privacy-toast.hide{opacity:0;transform:translateX(-50%) translateY(20px);}
#privacy-toast a{color:var(--privacy-link);text-decoration:underline;}
#privacy-toast button{background:transparent;border:none;color:var(--privacy-text);font-size:1.2rem;cursor:pointer;margin-left:auto;opacity:.8;}
#privacy-toast button:hover{opacity:1;}
#privacy-toast .cookie-icon{filter:none;}
html[data-theme='dark'] #privacy-toast .cookie-icon{filter:invert(1) brightness(.95) contrast(.9);}

/* ---------------------- Parse feedback bar & buttons ---------------------- */
.parse-feedback-bar{margin-top:1.5rem;padding:.75rem 1rem;background:var(--parse-bg);border-radius:8px;font-size:.9rem;text-align:center;color:var(--parse-text);box-shadow:0 1px 3px rgba(0,0,0,.05);}
.report-parse-btn{display:inline-block;margin:.3rem;padding:.4rem .8rem;font-size:.85rem;border-radius:6px;border:1px solid var(--parse-text);background:var(--parse-bg);color:var(--parse-text);cursor:pointer;transition:.2s;}
.report-parse-btn:hover{background:var(--parse-hover-bg);}
html[data-theme='dark'] .parse-feedback-bar{background:var(--parse-dark-bg);color:var(--parse-dark-text);box-shadow:0 1px 3px rgba(0,0,0,.3);}
html[data-theme='dark'] .report-parse-btn{background:var(--parse-btn-dark-bg);border:1px solid var(--parse-btn-dark-border);color:var(--parse-btn-dark-text);}
html[data-theme='dark'] .report-parse-btn:hover{background:var(--parse-btn-dark-hover-bg);}

/* ---------------------- Feedback Modal ---------------------- */
.feedback-modal{display:none;position:fixed;inset:0;background:rgba(17,17,17,0.55);backdrop-filter:blur(4px);justify-content:center;align-items:center;z-index:1002;}
.feedback-modal-content{background:var(--card);border-radius:var(--radius);padding:24px;width:90%;max-width:420px;box-shadow:0 10px 30px rgba(0,0,0,0.25);}
.feedback-modal-actions{display:flex;justify-content:flex-end;gap:8px;}


@media (hover: none) {
  #theme-toggle-btn:hover,
  #feedback-btn:hover {
    background: var(--accent); /* same as normal */
    transform: translateY(0);
  }

  #theme-toggle-btn:active,
  #feedback-btn:active {
    background: var(--accent-hover);
    transform: translateY(-1px);
  }
}

/* ==========================================
   Entry Wrapper / Textarea
========================================== */
.entry-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

.entry-wrapper textarea {
  width: 100%;
  resize: vertical;
  position: relative;
  z-index: 1; /* ensure overlay is above */
  background: inherit;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 1rem;
  line-height: 1.4;
}

/* ==========================================
   Aero Glass Overlay
========================================== */
.entry-overlay {
  position: absolute;
  inset: 0;
  z-index: 10; /* above textarea & streaks */
  pointer-events: auto;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  background-color: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(1.5px) saturate(120%);
  -webkit-backdrop-filter: blur(1.5px) saturate(120%);

  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.15);

  opacity: 0;
  transition: opacity 0.3s ease, backdrop-filter 0.3s ease;
}

.entry-wrapper[data-locked="true"] .entry-overlay {
  opacity: 1;
  pointer-events: auto;
}

/* Desktop hover intensifies blur + contrast */
@media (hover: hover) {
  .entry-wrapper[data-locked="true"]:hover .entry-overlay {
    backdrop-filter: blur(2px) saturate(140%);
    -webkit-backdrop-filter: blur(2px) saturate(140%);
  }
}


.entry-wrapper[data-locked="true"]:active .entry-overlay {
  backdrop-filter: blur(2.5px) saturate(160%);
}

/* ----------------------------------------
   Consent Toggle Pill + Knob
---------------------------------------- */
.consent-toggle {
  position: relative;
  width: 250px;
  height: 36px;
  border-radius: 999px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.3);
  transition: background 0.3s ease, color 0.3s ease;
}

.consent-toggle .toggle-knob {
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(145deg, #fff, #f2f2f2);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2), inset 0 1px 2px rgba(255,255,255,0.4);
  left: 4px;
  top: 2.5px;
  transition: transform 0.3s ease;
  z-index: 2;
}

.consent-toggle .toggle-label {
  position: relative;
  z-index: 1;
  font-weight: 600;
  text-align: center;
  pointer-events: none;
}

.consent-toggle[data-state="on"] {
  background: var(--accent);
  color: var(--white);
}

.consent-toggle[data-state="on"] .toggle-knob {
  transform: translateX(214px);
}

/* Overlay state */
.entry-wrapper[data-locked="true"] .entry-overlay {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.6s ease, backdrop-filter 0.3s ease;
}

.entry-wrapper[data-locked="false"] .entry-overlay {
  opacity: 0;
  pointer-events: none;
  z-index: 5;
}

/* Overlay content */
.entry-overlay .overlay-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
  padding: 16px 24px;
}


/* Overlay streaks (base + hidden state merged) */
.entry-overlay-streaks {
  position: absolute;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  border-radius: inherit;

  background: rgba(255,255,255,0.8);
  filter: blur(1024px);

  mask-image: repeating-linear-gradient(
    13deg,
    rgba(0,0,0,0) 0px,
    black 24px,
    black 33px,
    rgba(0,0,0,0) 50px
  );
  -webkit-mask-image: repeating-linear-gradient(
    13deg,
    rgba(0,0,0,0) 0px,
    black 24px,
    black 33px,
    rgba(0,0,0,0) 50px
  );
  mask-repeat: repeat;
  -webkit-mask-repeat: repeat;

  opacity: 0;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

/* Dark mode streaks */
[data-theme="dark"] .entry-overlay-streaks {
  background: rgba(255, 255, 255, 0.05);
  filter: blur(0.8px);

  mask-image: repeating-linear-gradient(
    13deg,
    rgba(255,255,255,0) 0px,
    rgba(255,255,255,0.5) 24px,
    rgba(255,255,255,0.5) 33px,
    rgba(255,255,255,0) 50px
  );
  -webkit-mask-image: repeating-linear-gradient(
    13deg,
    rgba(255,255,255,0) 0px,
    rgba(255,255,255,0.5) 24px,
    rgba(255,255,255,0.5) 33px,
    rgba(255,255,255,0) 50px
  );
  mask-repeat: repeat;
  -webkit-mask-repeat: repeat;
}

.entry-wrapper[data-locked="true"] .entry-overlay-streaks {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0s;
}

/* About page paragraph alignment */
.about-content p {
  margin: 0 0 1rem 0;
}

.about-content p.left { text-align: left; }
.about-content p.center { text-align: center; }
.about-content p.right { text-align: right; }

h1.center {
  text-align: center;
}


html[data-theme='dark'] .brand-logo {
  filter: invert(1) brightness(.95) contrast(.9);
}

.brand-text {
  line-height: 1;
}

/* Header menu */
.header-menu {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.9rem;
}

/* Hamburger toggle */
#menu-toggle-btn {
  display: none;
}

@media (max-width: 835px) {

  .wrap {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 3rem 1rem 1rem;
  }

  header.header-bar {
    position: relative;
    top: auto;
    left: auto;
    justify-content: center;
    font-size: 2rem;
  }

  .brand-logo {
    height: 2.4rem;
  }

  .card {
    width: 94%;
    max-height: 80vh;
    padding: 0.3rem;
    border-radius: 16px;
    box-shadow: 0 6px 18px rgba(17,17,17,.08);
    position: relative;
    transform: translateY(-7%);
  }

  .card-content {
    flex: 1;
    overflow-y: auto;
    padding-right: 0.75rem;
  }

  h1 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
  }

  p {
    font-size: 0.95rem;
  }

  textarea,
  input[type="text"],
  input[type="search"],
  input[type="email"],
  input[type="number"] {
    font-size: 1rem;
  }

  #privacy-toast {
    left: 50%;
    bottom: 10%;
    transform: none;
    width: 100vw;
    border-radius: 0;
    padding: 1rem;
  }

  #menu-toggle-btn {
    display: inline-flex;
    border: none;
    font-size: 1.5rem;
    border-radius: 10px;
    cursor: pointer;
    margin-left: auto;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    z-index: 9;
  }

  .header-menu {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 250px;
    flex-direction: column;
    align-items: flex-start;
    padding: 1rem;
    background: var(--card);
    box-shadow: -4px 0 16px rgba(0,0,0,0.15);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    z-index: 8;
  }

  .header-menu a,
  .header-menu button {
    width: 100%;
    margin-bottom: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'CabinetGrotesk-Variable', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    font-weight: 600;
    height: 48px;
    text-decoration: none;
    background: #7F86B0;
    color: #FFFFFF;
    border-radius: 10px;
    transition: background 0.2s ease, transform 0.1s ease;
  }

  .header-menu a:hover,
  .header-menu button:hover {
    background: #6B708F;
    transform: translateY(-1px);
  }

  .header-menu a:active,
  .header-menu button:active {
    transform: translateY(0);
  }

  .header-menu.show {
    transform: translateX(0);
  }

  .header-menu .spacer {
    height: 1.5rem;
    flex-shrink: 0;
  }
  

  /* Floating buttons into menu */
  #theme-toggle-btn,
  #feedback-btn {
    position: static;
    width: 100%;
    margin: 0;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 48px;
    border-radius: 10px;
    font-family: 'CabinetGrotesk-Variable', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    font-weight: 600;
  }

  /* Dark mode header background */
  html[data-theme='dark'] header.header-bar {
    background: var(--card);
    color: var(--text);
  }

  /* Dark mode mobile sidebar menu */
  html[data-theme='dark'] .header-menu {
    background: var(--card);
    color: var(--text);
  }

  html[data-theme='dark'] .header-menu a,
  html[data-theme='dark'] .header-menu button {
    background: var(--accent);
    color: var(--text);
  }

  html[data-theme='dark'] .header-menu a:hover,
  html[data-theme='dark'] .header-menu button:hover {
    background: var(--accent-hover);
  }
  
  /* Dark mode for nav links in header menu */
  html[data-theme='dark'] .header-menu a.btn.primary {
    background: var(--accent);
    color: var(--text);
  }

  html[data-theme='dark'] .header-menu a.btn.primary:hover {
    background: var(--accent-hover);
  }

}

@media (max-width: 835px) {
  /* Make the overlay a scrollable container on mobile */
  #entry-wrapper .entry-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;          /* enable scrolling */
    padding: 1rem;
    display: block;            /* stop flex centering */
    -webkit-overflow-scrolling: touch; /* smooth scrolling on iOS */
  }

  #entry-wrapper .entry-overlay .overlay-content {
    max-height: none;          /* remove fixed min-height conflicts */
    overflow: visible;         /* content scrolls inside overlay container */
    text-align: left;          /* optional for paragraph readability */
  }

  /* Keep the toggle pill at top */
  #consent-toggle {
    margin-bottom: 1rem;
  }
}

/* Ensure desktop nav links don’t wrap */
@media (min-width: 836px) {
  .header-menu a,
  .header-menu button {
    white-space: nowrap;       /* prevent text stacking */
    padding: 0.5rem 1rem;      /* give enough horizontal room */
  }

  .card {
    margin-top: 2rem; /* adjust to taste */
  }
}