/* =====================================================================================
   Laibhaftig – Design "Warme Backstube"
   Bootstrap 5.3 theme layer: design tokens, light/dark ("Ofen bei Nacht"), layout,
   components. Colours: flour (cream), crust (caramel), rye (dark brown), terracotta.
   ===================================================================================== */

@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../vendor/fonts/fraunces-latin-wght-normal.eb2486760f75.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../vendor/fonts/fraunces-latin-ext-wght-normal.9cab501e1829.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("../vendor/fonts/fraunces-latin-wght-italic.701ae03b5183.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url("../vendor/fonts/source-sans-3-latin-wght-normal.9ef356ea553a.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url("../vendor/fonts/source-sans-3-latin-ext-wght-normal.c6ba61588d7d.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Sans 3";
  font-style: italic;
  font-display: swap;
  font-weight: 200 900;
  src: url("../vendor/fonts/source-sans-3-latin-wght-italic.cd60e3b13ca1.woff2") format("woff2-variations");
}

/* ---------- design tokens ---------- */
:root,
[data-bs-theme="light"] {
  --lh-flour: #fbf6ec;
  --lh-flour-2: #f4ead8;
  --lh-paper: #fffdf8;
  --lh-crust: #8a4b23;
  --lh-crust-2: #b0642e;
  --lh-caramel: #d99a52;
  --lh-wheat: #e8c587;
  --lh-rye: #4a2e1d;
  --lh-terracotta: #c0583a;
  --lh-sage: #6f8b5e;
  --lh-ink: #2f2219;
  --lh-muted: #7b6a5c;
  --lh-line: #e6d8c0;
  --lh-shadow: 0 1px 2px rgba(74, 46, 29, .06), 0 6px 18px rgba(74, 46, 29, .08);
  --lh-header-h: 58px;
  --lh-sidebar-w: 248px;
  --lh-radius: .9rem;

  --bs-body-bg: var(--lh-flour);
  --bs-body-color: var(--lh-ink);
  --bs-secondary-color: var(--lh-muted);
  --bs-tertiary-bg: var(--lh-flour-2);
  --bs-border-color: var(--lh-line);
  --bs-primary: var(--lh-crust);
  --bs-primary-rgb: 138, 75, 35;
  --bs-primary-text-emphasis: #5f3216;
  --bs-primary-bg-subtle: #f3e2cf;
  --bs-primary-border-subtle: #e2c3a2;
  --bs-secondary-rgb: 123, 106, 92;
  --bs-success: #5f7f4a;
  --bs-success-rgb: 95, 127, 74;
  --bs-danger: #b2442b;
  --bs-danger-rgb: 178, 68, 43;
  --bs-warning: #d9a03f;
  --bs-warning-rgb: 217, 160, 63;
  --bs-info: #5b8a99;
  --bs-info-rgb: 91, 138, 153;
  --bs-link-color: #8a4b23;
  --bs-link-color-rgb: 138, 75, 35;
  --bs-link-hover-color: #c0583a;
  --bs-link-hover-color-rgb: 192, 88, 58;
  --bs-font-sans-serif: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-font-size: 1.02rem;
  --bs-border-radius: .6rem;
  --bs-border-radius-lg: .9rem;
  --bs-focus-ring-color: rgba(192, 88, 58, .3);
  --bs-card-bg: var(--lh-paper);
}

[data-bs-theme="dark"] {
  --lh-flour: #1d1511;
  --lh-flour-2: #261c16;
  --lh-paper: #2a1f19;
  --lh-crust: #e0a265;
  --lh-crust-2: #f0b97c;
  --lh-caramel: #e7ab63;
  --lh-wheat: #c9a46a;
  --lh-rye: #f2e3cc;
  --lh-terracotta: #f08a66;
  --lh-ink: #f1e6d6;
  --lh-muted: #b9a590;
  --lh-line: #3f3027;
  --lh-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);

  --bs-body-bg: var(--lh-flour);
  --bs-body-color: var(--lh-ink);
  --bs-secondary-color: var(--lh-muted);
  --bs-tertiary-bg: var(--lh-flour-2);
  --bs-border-color: var(--lh-line);
  --bs-primary: #d98c4f;
  --bs-primary-rgb: 217, 140, 79;
  --bs-primary-text-emphasis: #f4c79d;
  --bs-primary-bg-subtle: #3b2719;
  --bs-primary-border-subtle: #6a442a;
  --bs-link-color: #e9a66c;
  --bs-link-color-rgb: 233, 166, 108;
  --bs-link-hover-color: #f6bf8f;
  --bs-link-hover-color-rgb: 246, 191, 143;
  --bs-card-bg: var(--lh-paper);
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--lh-header-h) + env(safe-area-inset-top) + 1rem); }
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding-top: calc(var(--lh-header-h) + env(safe-area-inset-top));
  background-color: var(--lh-flour);
  background-image:
    radial-gradient(circle at 12% 18%, rgba(217, 154, 82, .07) 0, transparent 38%),
    radial-gradient(circle at 88% 82%, rgba(192, 88, 58, .05) 0, transparent 42%);
  background-attachment: fixed;
  -webkit-tap-highlight-color: transparent;
}
h1, h2, h3, h4, .display-font, .navbar-brand {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-variation-settings: "opsz" 72, "SOFT" 50;
  letter-spacing: -.01em;
  color: var(--lh-rye);
}
h1 { font-weight: 650; }
h2, h3 { font-weight: 600; }
.text-muted, .text-secondary { color: var(--lh-muted) !important; }
a { text-underline-offset: .18em; }
::selection { background: rgba(217, 154, 82, .35); }

/* ---------- header (safe area aware for iOS) ---------- */
.app-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1040;
  padding-top: env(safe-area-inset-top);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  background: color-mix(in srgb, var(--lh-flour) 86%, transparent);
  backdrop-filter: saturate(1.4) blur(10px);
  -webkit-backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--lh-line);
}
.app-header .inner {
  height: var(--lh-header-h);
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 0 1rem;
}
.app-brand {
  display: flex;
  align-items: center;
  gap: .55rem;
  text-decoration: none;
  color: var(--lh-rye);
  font-family: "Fraunces", Georgia, serif;
  font-weight: 700;
  font-size: 1.45rem;
  letter-spacing: -.02em;
}
.app-brand img { width: 36px; height: 36px; filter: drop-shadow(0 2px 3px rgba(74, 46, 29, .25)); transition: transform .3s ease; }
.app-brand:hover img { transform: rotate(-8deg) scale(1.05); }
.app-brand:hover { color: var(--lh-crust); }
.header-user { color: var(--lh-ink); text-decoration: none; font-weight: 600; display: flex; align-items: center; gap: .35rem; max-width: 40vw; }
.header-user span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.header-user:hover { color: var(--lh-crust); }
.btn-hamburger {
  width: 42px; height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px;
  border: 1px solid var(--lh-line);
  background: var(--lh-paper);
  color: var(--lh-rye);
  font-size: 1.4rem;
}
.btn-hamburger:hover, .btn-hamburger:focus-visible { background: var(--bs-primary-bg-subtle); color: var(--lh-crust); }
.header-badge { position: relative; color: var(--lh-ink); font-size: 1.25rem; text-decoration: none; padding: .25rem; }
.header-badge .badge { position: absolute; top: -2px; right: -6px; font-size: .62rem; }

/* ---------- sidebar menu (left) ---------- */
.app-shell { display: flex; flex: 1 0 auto; }
.app-sidebar {
  --bs-offcanvas-width: min(84vw, 300px);
  --bs-offcanvas-bg: var(--lh-paper);
}
.app-sidebar .offcanvas-header { padding-top: calc(1rem + env(safe-area-inset-top)); }
.app-sidebar .nav-link {
  color: var(--lh-ink);
  border-radius: .65rem;
  padding: .55rem .8rem;
  display: flex;
  align-items: center;
  gap: .7rem;
  font-weight: 500;
}
.app-sidebar .nav-link i { font-size: 1.15rem; width: 1.3rem; text-align: center; color: var(--lh-crust-2); }
.app-sidebar .nav-link:hover { background: var(--lh-flour-2); color: var(--lh-crust); }
.app-sidebar .nav-link.active { background: var(--bs-primary-bg-subtle); color: var(--lh-crust); font-weight: 650; }
.app-sidebar .nav-section { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lh-muted); margin: 1rem .8rem .3rem; font-weight: 700; }
@media (min-width: 992px) {
  .app-sidebar.offcanvas-lg {
    position: sticky;
    top: calc(var(--lh-header-h) + env(safe-area-inset-top));
    height: calc(100vh - var(--lh-header-h) - env(safe-area-inset-top));
    width: var(--lh-sidebar-w);
    flex: 0 0 var(--lh-sidebar-w);
    overflow-y: auto;
    border-right: 1px solid var(--lh-line);
    background: color-mix(in srgb, var(--lh-paper) 60%, transparent);
    padding: 1rem .75rem 2rem;
    transition: margin-left .25s ease;
  }
  body.sidebar-collapsed .app-sidebar.offcanvas-lg { margin-left: calc(-1 * var(--lh-sidebar-w)); }
}
.app-main { flex: 1 1 auto; min-width: 0; padding: 1.5rem clamp(1rem, 3vw, 2.5rem) 3rem; }
.app-main > .container-narrow { max-width: 1180px; margin: 0 auto; }

/* ---------- footer ---------- */
.app-footer {
  border-top: 1px solid var(--lh-line);
  color: var(--lh-muted);
  font-size: .9rem;
  padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));
  background: var(--lh-flour-2);
}
.app-footer a { color: inherit; }
.app-footer .sep { opacity: .5; margin: 0 .4rem; }

/* ---------- cards & surfaces ---------- */
.card {
  border-color: var(--lh-line);
  border-radius: var(--lh-radius);
  box-shadow: var(--lh-shadow);
  background: var(--lh-paper);
}
.card-header { background: transparent; border-bottom-color: var(--lh-line); font-weight: 650; }
.card-title { font-family: "Fraunces", Georgia, serif; }
.surface { background: var(--lh-paper); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); box-shadow: var(--lh-shadow); }
.page-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .75rem 1.5rem; margin-bottom: 1.25rem; }
.page-head h1 { margin: 0; font-size: clamp(1.7rem, 3.6vw, 2.5rem); }
.page-head .lead { margin: .25rem 0 0; color: var(--lh-muted); font-size: 1.05rem; }
.kicker { text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; font-weight: 700; color: var(--lh-terracotta); }

.recipe-card { transition: transform .15s ease, box-shadow .15s ease; overflow: hidden; height: 100%; }
.recipe-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(74, 46, 29, .16); }
.recipe-card .art {
  aspect-ratio: 16 / 9;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .6), transparent 60%),
    linear-gradient(160deg, var(--lh-flour-2), color-mix(in srgb, var(--lh-wheat) 45%, var(--lh-flour)));
  position: relative;
}
.recipe-card .art img.illu { width: 62%; height: auto; filter: drop-shadow(0 6px 8px rgba(74, 46, 29, .18)); }
.recipe-card .art img.photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.recipe-card .art .corner { position: absolute; top: .6rem; left: .6rem; display: flex; gap: .35rem; flex-wrap: wrap; }
.recipe-card .card-title { font-size: 1.15rem; margin-bottom: .2rem; }
.recipe-card a.stretched-link { color: inherit; text-decoration: none; }
.chip {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .15rem .55rem;
  font-size: .78rem; font-weight: 600;
  border-radius: 999px;
  background: var(--lh-paper);
  border: 1px solid var(--lh-line);
  color: var(--lh-muted);
  white-space: nowrap;
}
.chip-own { background: #e4efdc; color: #3f5d2f; border-color: #cbdcbf; }
.chip-gf { background: #e6f1ef; color: #2f5a52; border-color: #bfdcd5; cursor: help; }
.chip-ext { background: #f6e6d6; color: #7a3f1c; border-color: #ebcfb4; }
[data-bs-theme="dark"] .chip-own { background: #2b3a23; color: #c6e0b3; border-color: #3f5432; }
[data-bs-theme="dark"] .chip-gf { background: #1f3632; color: #b8e0d7; border-color: #2f524b; }
[data-bs-theme="dark"] .chip-ext { background: #3d2717; color: #f0c39d; border-color: #5a3a24; }
.metric { display: flex; flex-direction: column; padding: .6rem .8rem; border-radius: .7rem; background: var(--lh-flour-2); min-width: 7rem; }
.metric .v { font-family: "Fraunces", Georgia, serif; font-size: 1.35rem; font-weight: 650; color: var(--lh-rye); line-height: 1.1; }
.metric .l { font-size: .78rem; color: var(--lh-muted); text-transform: uppercase; letter-spacing: .05em; }
.stars { color: #d99a2b; letter-spacing: .05em; white-space: nowrap; }

/* hero on the home page */
.hero {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--lh-radius) * 1.4);
  padding: clamp(1.5rem, 4vw, 3rem);
  background:
    radial-gradient(circle at 85% 30%, rgba(255, 255, 255, .35), transparent 45%),
    linear-gradient(135deg, #f3dcb5 0%, #e7b97d 45%, #c97a42 100%);
  color: #3a2214;
  box-shadow: var(--lh-shadow);
}
.hero h1 { color: #3a2214; font-size: clamp(2rem, 5vw, 3.2rem); }
.hero .lead { color: #4f3020; max-width: 38rem; }
.hero .hero-logo { position: absolute; right: -2rem; bottom: -2.5rem; width: clamp(9rem, 26vw, 16rem); opacity: .9; transform: rotate(-12deg); }
[data-bs-theme="dark"] .hero { background: linear-gradient(135deg, #3b2617 0%, #5a3519 55%, #7a3f1c 100%); color: #f6e3c9; }
[data-bs-theme="dark"] .hero h1, [data-bs-theme="dark"] .hero .lead { color: #f6e3c9; }

/* ---------- forms ---------- */
.form-control, .form-select { background-color: var(--lh-paper); border-color: var(--lh-line); }
.form-control::placeholder { color: color-mix(in srgb, var(--lh-muted) 70%, transparent); opacity: 1; }
.form-control:focus, .form-select:focus { border-color: var(--lh-caramel); }
.form-label { font-weight: 600; font-size: .92rem; margin-bottom: .3rem; }
.form-text { color: var(--lh-muted); }
.btn { font-weight: 600; border-radius: .65rem; }
.btn-primary { --bs-btn-bg: var(--lh-crust); --bs-btn-border-color: var(--lh-crust); --bs-btn-hover-bg: #a2582a; --bs-btn-hover-border-color: #a2582a; --bs-btn-active-bg: #6e3a1a; --bs-btn-disabled-bg: var(--lh-crust); --bs-btn-disabled-border-color: var(--lh-crust); }
[data-bs-theme="dark"] .btn-primary { --bs-btn-color: #1d1511; --bs-btn-bg: #e0a265; --bs-btn-border-color: #e0a265; --bs-btn-hover-bg: #f0b97c; --bs-btn-hover-border-color: #f0b97c; --bs-btn-hover-color: #1d1511; --bs-btn-active-bg: #c8874b; --bs-btn-active-color: #1d1511; }
.btn-outline-primary { --bs-btn-color: var(--lh-crust); --bs-btn-border-color: var(--bs-primary-border-subtle); --bs-btn-hover-bg: var(--lh-crust); --bs-btn-hover-border-color: var(--lh-crust); --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--lh-crust); }
.btn-soft { background: var(--bs-primary-bg-subtle); color: var(--lh-crust); border: 1px solid var(--bs-primary-border-subtle); }
.btn-soft:hover { background: var(--lh-crust); color: #fff; }
.nav-pills { --bs-nav-pills-link-active-bg: var(--lh-crust); --bs-nav-link-color: var(--lh-crust); --bs-nav-link-hover-color: var(--lh-terracotta); }
[data-bs-theme="dark"] .nav-pills { --bs-nav-pills-link-active-color: #1d1511; --bs-nav-pills-link-active-bg: #e0a265; }
.dropdown-item.active, .dropdown-item:active { background-color: var(--lh-crust); }
.form-check-input:checked { background-color: var(--lh-crust); border-color: var(--lh-crust); }

/* clearable inputs: the "x" on the right edge */
.clearable { position: relative; }
.clearable > .form-control { padding-right: 2.2rem; }
.clearable > .clear-btn {
  position: absolute; top: 50%; right: .45rem; transform: translateY(-50%);
  border: 0; background: transparent; color: var(--lh-muted);
  width: 1.6rem; height: 1.6rem; border-radius: 50%;
  display: none; align-items: center; justify-content: center; padding: 0; line-height: 1;
  z-index: 5;
}
.clearable.has-value > .clear-btn { display: inline-flex; }
.clearable > .clear-btn:hover { background: var(--lh-flour-2); color: var(--lh-terracotta); }
.input-group > .clearable { flex: 1 1 auto; width: 1%; min-width: 0; }
.input-group > .clearable > .form-control { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .clearable:not(:first-child) > .form-control { border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* autocomplete dropdown */
.ac-menu { max-height: 18rem; overflow-y: auto; width: 100%; }
.ac-menu .dropdown-item { white-space: normal; }
.ac-menu .dropdown-item small { color: var(--lh-muted); }
.ac-menu .dropdown-item.active, .ac-menu .dropdown-item:active { background: var(--lh-crust); color: #fff; }
.ac-menu .dropdown-item.active small { color: #f7e3cf; }

/* ---------- tables ---------- */
.table { --bs-table-bg: transparent; --bs-table-striped-bg: rgba(217, 154, 82, .06); --bs-table-hover-bg: rgba(217, 154, 82, .1); }
.table > :not(caption) > * > * { border-bottom-color: var(--lh-line); }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lh-muted); font-weight: 700; }
.ingredient-table td.amount { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 650; width: 1%; }
.ingredient-table td.pct, .ingredient-table td.temp { text-align: right; color: var(--lh-muted); white-space: nowrap; font-variant-numeric: tabular-nums; width: 1%; }

/* stage cards on the recipe page */
.stage { border-left: 4px solid var(--lh-caramel); }
.stage.stage-main { border-left-color: var(--lh-crust); }
.stage.stage-sour { border-left-color: var(--lh-sage); }
.stage-meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.step-list { list-style: none; padding-left: 0; counter-reset: step; margin: 0; }
.step-list li { position: relative; padding: .45rem 0 .45rem 2.4rem; border-bottom: 1px dashed var(--lh-line); }
.step-list li:last-child { border-bottom: 0; }
.step-list li::before {
  counter-increment: step; content: counter(step);
  position: absolute; left: 0; top: .45rem;
  width: 1.7rem; height: 1.7rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--lh-flour-2); color: var(--lh-crust); font-weight: 700; font-size: .85rem;
}
.step-list li.kind-rest::before { content: "⏳"; background: transparent; }
.step-list li.kind-bake::before { content: "🔥"; background: transparent; }
.step-list li.kind-preheat::before { content: "♨"; background: transparent; color: var(--lh-terracotta); }

/* timeline for bake plans */
.timeline { position: relative; margin: 0; padding: 0 0 0 1.6rem; list-style: none; }
.timeline::before { content: ""; position: absolute; left: .55rem; top: .3rem; bottom: .3rem; width: 2px; background: var(--lh-line); }
.timeline .tl-item { position: relative; padding: .5rem 0 .9rem .6rem; }
.timeline .tl-item::before {
  content: ""; position: absolute; left: -1.38rem; top: .85rem;
  width: .9rem; height: .9rem; border-radius: 50%;
  border: 2px solid var(--lh-paper); box-shadow: 0 0 0 2px var(--lh-caramel); background: var(--lh-caramel);
}
.timeline .tl-item.kind-rest::before { background: var(--lh-paper); }
.timeline .tl-item.kind-bake::before { background: var(--lh-terracotta); box-shadow: 0 0 0 2px var(--lh-terracotta); }
.timeline .tl-item.status-outside::before { background: var(--bs-danger); box-shadow: 0 0 0 2px var(--bs-danger); }
.timeline .tl-day { font-family: "Fraunces", Georgia, serif; font-weight: 650; margin: 1rem 0 .3rem -1.6rem; color: var(--lh-rye); }
.timeline .tl-time { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--lh-crust); min-width: 3.2rem; display: inline-block; }
.timeline .tl-item.kind-rest .tl-title { color: var(--lh-muted); }
.gantt { display: grid; gap: 4px; }
.gantt .bar { height: 10px; border-radius: 6px; background: var(--lh-caramel); opacity: .85; }
.gantt .bar.rest { background: repeating-linear-gradient(45deg, var(--lh-wheat), var(--lh-wheat) 4px, var(--lh-flour-2) 4px, var(--lh-flour-2) 8px); }
.gantt .bar.bake { background: var(--lh-terracotta); }

/* diff view */
.diff { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88rem; white-space: pre-wrap; }
.diff .add { background: rgba(95, 127, 74, .16); border-left: 3px solid var(--bs-success); padding-left: .4rem; }
.diff .del { background: rgba(178, 68, 43, .12); border-left: 3px solid var(--bs-danger); padding-left: .4rem; text-decoration: line-through; text-decoration-color: rgba(178, 68, 43, .5); }
.diff .equal { color: var(--lh-muted); padding-left: .7rem; }

/* docs */
.docs-content h2 { margin-top: 2.2rem; padding-top: .5rem; border-top: 1px solid var(--lh-line); }
.docs-content h3 { margin-top: 1.5rem; }
.docs-content table { width: 100%; margin: 1rem 0; border-collapse: collapse; }
.docs-content table td, .docs-content table th { border: 1px solid var(--lh-line); padding: .4rem .6rem; }
.docs-content code { color: var(--lh-terracotta); }
.docs-content pre { background: var(--lh-flour-2); padding: .8rem 1rem; border-radius: .6rem; }
.docs-content .anchor-link { opacity: 0; margin-left: .4rem; text-decoration: none; }
.docs-content h2:hover .anchor-link, .docs-content h3:hover .anchor-link { opacity: .6; }
.docs-content .admonition { padding: .8rem 1rem; border-left: 4px solid var(--lh-caramel); background: var(--lh-flour-2); border-radius: .4rem; margin: 1rem 0; }
.docs-content .admonition-title { font-weight: 700; margin-bottom: .2rem; }
.docs-toc { position: sticky; top: calc(var(--lh-header-h) + env(safe-area-inset-top) + 1rem); max-height: calc(100vh - 6rem); overflow-y: auto; font-size: .9rem; }
.docs-toc ul { list-style: none; padding-left: .8rem; }
.docs-toc > .toc > ul { padding-left: 0; }
.docs-toc a { color: var(--lh-muted); text-decoration: none; display: block; padding: .15rem 0; }
.docs-toc a:hover { color: var(--lh-crust); }

/* ---------- back to top ---------- */
.back-to-top {
  position: fixed;
  right: calc(1.1rem + env(safe-area-inset-right));
  bottom: calc(1.1rem + env(safe-area-inset-bottom));
  z-index: 1030;
  width: 46px; height: 46px; border-radius: 50%;
  border: 0;
  background: var(--lh-crust); color: #fff;
  box-shadow: 0 6px 16px rgba(74, 46, 29, .3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.back-to-top.show { opacity: 1; transform: none; pointer-events: auto; }
.back-to-top:hover { background: var(--lh-terracotta); }
[data-bs-theme="dark"] .back-to-top { color: #1d1511; }

/* endless list loader */
.lazy-sentinel { padding: 1.5rem; text-align: center; color: var(--lh-muted); }
.htmx-request .lazy-spinner, .lazy-spinner.htmx-request { display: inline-block; }

/* empty states */
.empty-state { text-align: center; padding: 3rem 1rem; color: var(--lh-muted); }
.empty-state img { width: 7rem; opacity: .75; margin-bottom: 1rem; }

/* toasts */
.toast-container { padding-top: calc(var(--lh-header-h) + env(safe-area-inset-top) + .5rem) !important; z-index: 1090; }

/* rating input */
.rating-input { display: inline-flex; flex-direction: row-reverse; gap: .1rem; }
.rating-input input { display: none; }
.rating-input label { font-size: 1.5rem; color: var(--lh-line); cursor: pointer; line-height: 1; }
.rating-input input:checked ~ label, .rating-input label:hover, .rating-input label:hover ~ label { color: #d99a2b; }

/* recipe editor */
.editor-stage { border: 1px solid var(--lh-line); border-left: 4px solid var(--lh-caramel); border-radius: var(--lh-radius); background: var(--lh-paper); padding: 1rem; margin-bottom: 1rem; }
.editor-row { display: grid; grid-template-columns: 6.5rem minmax(10rem, 1fr) 5.5rem 5.5rem auto; gap: .4rem; align-items: center; margin-bottom: .35rem; }
.editor-step { display: grid; grid-template-columns: 9rem minmax(10rem, 1fr) 6rem 5.5rem auto; gap: .4rem; align-items: start; margin-bottom: .35rem; }
@media (max-width: 767px) {
  .editor-row { grid-template-columns: 5.5rem 1fr auto; }
  .editor-row .opt { display: none; }
  .editor-step { grid-template-columns: 1fr auto; }
  .editor-step .opt { display: none; }
}

/* print */
/* print / "Als PDF speichern": ink-friendly, no navigation, nothing cut off */
.print-only { display: none; }
@page { size: A4; margin: 15mm 14mm 16mm; }
@media print {
  :root { --lh-paper: #fff; --lh-flour: #fff; }
  .app-header, .app-sidebar, .app-footer, .back-to-top, .no-print, .btn, .dropdown, .toast-container,
  .offcanvas, .modal, .k-toc-mobile, .lazy-sentinel { display: none !important; }
  .print-only { display: block !important; }
  .anchor-link, .headerlink { display: none !important; }
  html, body { background: #fff !important; color: #000; font-size: 10.5pt; }
  body { padding: 0 !important; }
  .app-main, .container-narrow, main, .container, .container-fluid { margin: 0 !important; padding: 0 !important; max-width: none !important; width: auto !important; }
  .card, .surface { box-shadow: none !important; border: 1px solid #bbb !important; background: #fff !important; }
  li, .card-header, .stat, .k-fig { break-inside: avoid; }
  h1, h2, h3, h4 { break-after: avoid; color: #000; }
  table, tr, figure, .k-fig { break-inside: avoid; }
  .table-responsive { overflow: visible !important; }
  a { color: #000; text-decoration: none; }
  .k-content a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #555; word-break: break-all; }
  .badge { border: 1px solid #888; color: #000 !important; background: #fff !important; }
  .page-head { margin-bottom: .6rem; }
  .page-head .lead { font-size: 11pt; }
  img { max-width: 100% !important; }
  .pe-scroll { overflow: visible !important; }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

/* ------------------------------------------------------------------ plan editor */
.plan-editor { position: relative; }
.pe-status.saving { color: var(--lh-caramel) !important; }
.pe-status.ok { color: var(--lh-sage) !important; }
.pe-status.error { color: var(--bs-danger) !important; }
.pe-canvas { min-height: 6rem; }
.pe-scroll { overflow-x: auto; overflow-y: hidden; border: 1px solid var(--lh-line); border-radius: .7rem; background: var(--lh-flour); -webkit-overflow-scrolling: touch; }
.pe-inner { position: relative; padding-bottom: .4rem; }
.pe-bg { position: absolute; top: 0; bottom: 0; pointer-events: none; }
.pe-window { position: absolute; top: 0; bottom: 0; background: color-mix(in srgb, var(--lh-sage) 13%, transparent); border-left: 1px dashed color-mix(in srgb, var(--lh-sage) 45%, transparent); border-right: 1px dashed color-mix(in srgb, var(--lh-sage) 45%, transparent); }
.pe-now { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--lh-terracotta); z-index: 3; }
.pe-now span { position: absolute; top: 2px; left: 4px; font-size: .68rem; font-weight: 700; color: var(--lh-terracotta); }
.pe-lane, .pe-axis { display: flex; position: relative; }
.pe-axis { height: 2.4rem; border-bottom: 1px solid var(--lh-line); }
.pe-lane { height: 3rem; border-bottom: 1px dotted var(--lh-line); }
.pe-lane-label { position: sticky; left: 0; z-index: 4; flex: 0 0 132px; width: 132px; padding: .2rem .55rem; display: flex; align-items: center; font-size: .8rem; font-weight: 600; color: var(--lh-rye); background: var(--lh-paper); border-right: 1px solid var(--lh-line); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pe-track { position: relative; flex: 0 0 auto; }
.pe-tick { position: absolute; bottom: 0; height: .55rem; border-left: 1px solid var(--lh-line); }
.pe-tick span { position: absolute; bottom: .6rem; left: -.6rem; font-size: .68rem; color: var(--lh-muted); font-variant-numeric: tabular-nums; }
.pe-tick.midnight { height: 100%; border-left: 2px solid var(--lh-wheat); }
.pe-day { position: absolute; top: .15rem; padding-left: .3rem; font-size: .72rem; font-weight: 700; color: var(--lh-crust); white-space: nowrap; }
.pe-bar { position: absolute; top: .45rem; height: 2.1rem; display: flex; align-items: center; gap: .25rem; padding: 0 .35rem; border-radius: .5rem; font-size: .74rem; line-height: 1; white-space: nowrap; overflow: hidden; color: #fff; background: var(--lh-crust-2); box-shadow: 0 1px 2px rgba(74, 46, 29, .25); cursor: pointer; user-select: none; touch-action: pan-y; z-index: 2; transition: box-shadow .12s; }
.pe-bar.draggable { cursor: grab; }
.pe-bar.dragging { cursor: grabbing; opacity: .85; box-shadow: 0 0 0 2px var(--lh-caramel), 0 6px 16px rgba(74, 46, 29, .3); z-index: 5; transition: none; }
.pe-bar:focus-visible, .pe-bar.selected { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--lh-caramel) 70%, transparent); z-index: 5; }
.pe-bar.kind-rest { color: var(--lh-rye); background: repeating-linear-gradient(135deg, var(--lh-wheat) 0 6px, var(--lh-flour-2) 6px 12px); border: 1px solid var(--lh-caramel); box-shadow: none; }
.pe-bar.kind-bake { background: var(--lh-terracotta); }
.pe-bar.kind-preheat { color: var(--lh-terracotta); background: var(--lh-paper); border: 2px dashed var(--lh-terracotta); box-shadow: none; }
.pe-bar.kind-cool { color: var(--lh-muted); background: var(--lh-flour-2); border: 1px solid var(--lh-line); box-shadow: none; }
.pe-bar.status-info { opacity: .75; }
.pe-bar.status-outside { box-shadow: 0 0 0 2px var(--bs-danger); }
.pe-bar.status-stretched.kind-rest, .pe-bar.status-compressed.kind-rest { border-color: var(--bs-warning); }
.pe-bar .pe-text { overflow: hidden; text-overflow: ellipsis; }
.pe-bar .pe-marks { margin-left: auto; display: flex; gap: .2rem; font-size: .66rem; }
.pe-bar .pe-icon { font-size: .8rem; }
.pe-hint { position: absolute; z-index: 10; padding: .2rem .5rem; border-radius: .4rem; font-size: .75rem; font-weight: 600; color: #fff; background: var(--lh-rye); pointer-events: none; white-space: nowrap; }
[data-bs-theme="dark"] .pe-hint { color: var(--lh-flour); }
.pe-swatch { display: inline-block; width: 1.3rem; height: .7rem; border-radius: .25rem; vertical-align: -1px; background: var(--lh-crust-2); }
.pe-swatch.kind-rest { background: repeating-linear-gradient(135deg, var(--lh-wheat) 0 4px, var(--lh-flour-2) 4px 8px); border: 1px solid var(--lh-caramel); }
.pe-swatch.kind-bake { background: var(--lh-terracotta); }
.pe-swatch.window { background: color-mix(in srgb, var(--lh-sage) 25%, transparent); }
.pe-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .5rem; margin-bottom: .75rem; }
.pe-facts div { padding: .45rem .7rem; border-radius: .6rem; background: var(--lh-flour-2); }
.pe-facts span { display: block; font-size: .72rem; color: var(--lh-muted); text-transform: uppercase; letter-spacing: .04em; }
.pe-facts strong { font-variant-numeric: tabular-nums; }
.pe-history { max-height: 22rem; overflow-y: auto; min-width: 18rem; }
@media (max-width: 575.98px) {
  .pe-lane-label { flex-basis: 84px; width: 84px; font-size: .72rem; }
}
.pe-bar.kind-preheat { top: 2.05rem; height: .8rem; padding: 0 .25rem; font-size: .6rem; z-index: 1; }
.pe-bar.kind-preheat .pe-icon { font-size: .6rem; }

/* ------------------------------------------------------------------ Brotbackkompendium */
:root {
  --k-ink: #2f2219; --k-muted: #7b6a5c; --k-accent: #c0583a; --k-cool: #4a7fa8;
  --k-flour: #fbf6ec; --k-wheat: #e8c587; --k-crust: #b0642e; --k-rye: #4a2e1d; --k-sage: #a9bf98;
  --k-water: #cfe2ef; --k-heat: #e08a66; --k-paper: #fffdf8; --k-on-dark: #fbf6ec;
}
[data-bs-theme="dark"] {
  --k-ink: #f1e6d6; --k-muted: #b9a590; --k-accent: #f08a66; --k-cool: #8fbfe0;
  --k-flour: #3a2b22; --k-wheat: #8a6a3a; --k-crust: #a35f2e; --k-rye: #22150e; --k-sage: #55704a;
  --k-water: #24435a; --k-heat: #a8553a; --k-paper: #2a1f19; --k-on-dark: #f1e6d6;
}
.k-line { fill: none; stroke: var(--k-ink); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.k-thin { stroke-width: 1.5; } .k-bold { stroke-width: 3.5; } .k-dash { stroke-dasharray: 6 6; }
.k-accent { stroke: var(--k-accent); } .k-cool { stroke: var(--k-cool); }
.k-f-flour { fill: var(--k-flour); } .k-f-wheat { fill: var(--k-wheat); } .k-f-crust { fill: var(--k-crust); }
.k-f-rye { fill: var(--k-rye); } .k-f-sage { fill: var(--k-sage); } .k-f-water { fill: var(--k-water); }
.k-f-heat { fill: var(--k-heat); } .k-f-paper { fill: var(--k-paper); } .k-f-ink { fill: var(--k-ink); } .k-f-none { fill: none; }
.k-text, .k-small, .k-head, .k-num { font-family: "Source Sans 3", system-ui, sans-serif; fill: var(--k-ink); stroke: none; }
.k-text { font-size: 15px; } .k-small { font-size: 12.5px; fill: var(--k-muted); }
.k-head { font-family: "Fraunces", Georgia, serif; font-size: 17px; font-weight: 650; }
.k-num { font-size: 15px; font-weight: 700; fill: var(--k-accent); }
.k-mid { text-anchor: middle; } .k-end { text-anchor: end; } .k-on-dark { fill: var(--k-on-dark); }

.k-hero { display: grid; grid-template-columns: 1fr minmax(0, 300px); gap: 1.5rem; align-items: center; padding: 1.6rem 1.8rem; background: linear-gradient(135deg, var(--lh-paper), var(--lh-flour-2)); }
.k-hero h1 { font-size: clamp(1.8rem, 4vw, 2.7rem); }
.k-hero-art svg { width: 100%; height: auto; }
.k-search { max-width: 34rem; }
@media (max-width: 767.98px) { .k-hero { grid-template-columns: 1fr; padding: 1.2rem; } .k-hero-art { max-width: 220px; margin: 0 auto; order: -1; } }
.k-chapters { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: 1rem; }
.k-card { position: relative; display: flex; flex-direction: column; gap: .3rem; padding: 1.1rem 1.1rem 1rem; color: inherit; text-decoration: none; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.k-card:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(74, 46, 29, .14); color: inherit; }
.k-card-no { position: absolute; right: .8rem; top: -.4rem; font-family: "Fraunces", Georgia, serif; font-size: 4.2rem; font-weight: 700; color: var(--lh-wheat); opacity: .45; line-height: 1; }
.k-card-icon { width: 2.4rem; height: 2.4rem; border-radius: .8rem; display: grid; place-items: center; background: var(--lh-flour-2); color: var(--lh-crust); font-size: 1.2rem; }
.k-card-title { font-family: "Fraunces", Georgia, serif; font-weight: 650; font-size: 1.15rem; color: var(--lh-rye); position: relative; }
.k-card-summary { font-size: .9rem; color: var(--lh-muted); }
.k-card-meta { margin-top: auto; font-size: .75rem; color: var(--lh-muted); text-transform: uppercase; letter-spacing: .05em; }
.k-glossary-teaser { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; color: inherit; text-decoration: none; }
.k-glossary-teaser > .bi:first-child { font-size: 1.8rem; color: var(--lh-crust); }
.k-sticky { position: sticky; top: calc(var(--lh-header-h) + 1rem); max-height: calc(100vh - var(--lh-header-h) - 2rem); overflow-y: auto; }
.k-nav-home { font-weight: 700; color: var(--lh-crust); text-decoration: none; }
.k-nav-list { list-style: none; padding: 0; margin: 0; font-size: .88rem; }
.k-nav-list > li > a { display: flex; gap: .5rem; padding: .3rem .4rem; border-radius: .5rem; color: inherit; text-decoration: none; }
.k-nav-list > li > a > span { min-width: 1.3rem; color: var(--lh-muted); font-variant-numeric: tabular-nums; }
.k-nav-list > li.current > a { background: var(--lh-flour-2); font-weight: 650; }
.k-toc ul { list-style: none; padding-left: 1.8rem; margin: .2rem 0 .5rem; font-size: .82rem; }
.k-toc ul ul { padding-left: .8rem; }
.k-toc a, .k-toc-mobile a { color: var(--lh-muted); text-decoration: none; display: block; padding: .1rem 0; }
.k-toc a:hover { color: var(--lh-crust); }
.k-toc-mobile summary { cursor: pointer; font-weight: 600; }
.k-toc-mobile ul { padding-left: 1rem; margin: .4rem 0 0; }
.k-head h1 { display: flex; align-items: center; gap: .6rem; }
.k-head-icon { color: var(--lh-caramel); font-size: .8em; }
.k-content { font-size: 1.05rem; line-height: 1.68; }
.k-content > p, .k-content > ul, .k-content > ol, .k-content > dl, .k-content > .admonition { max-width: 46rem; }
.k-content > p:first-child::first-letter { float: left; font-family: "Fraunces", Georgia, serif; font-size: 3.4rem; line-height: .9; padding: .25rem .5rem 0 0; color: var(--lh-crust); font-weight: 700; }
.k-content h2 { font-family: "Fraunces", Georgia, serif; margin-top: 2.4rem; padding-top: 1rem; border-top: 1px solid var(--lh-line); color: var(--lh-rye); }
.k-content h3 { font-family: "Fraunces", Georgia, serif; font-size: 1.22rem; margin-top: 1.7rem; color: var(--lh-crust); }
.k-content h2 .anchor-link, .k-content h3 .anchor-link { opacity: 0; margin-left: .3rem; text-decoration: none; color: var(--lh-muted); }
.k-content h2:hover .anchor-link, .k-content h3:hover .anchor-link { opacity: 1; }
.k-content h2, .k-content h3 { scroll-margin-top: calc(var(--lh-header-h) + 1rem); }
.k-table { font-size: .92rem; margin: 1rem 0 1.4rem; }
.k-table thead th { background: var(--lh-flour-2); color: var(--lh-rye); font-weight: 650; border-bottom: 2px solid var(--lh-wheat); white-space: nowrap; }
.k-table td { vertical-align: top; }
.k-fig { margin: 1.6rem 0 2rem; padding: 1rem 1rem .8rem; border-radius: 1rem; background: var(--lh-flour); border: 1px solid var(--lh-line); }
.k-fig .k-svg svg { display: block; width: 100%; height: auto; max-height: 520px; }
.k-fig figcaption { font-size: .88rem; color: var(--lh-muted); margin-top: .6rem; text-align: center; }
.k-fig-no { font-weight: 700; color: var(--lh-crust); margin-right: .25rem; }
.k-recipes { white-space: nowrap; font-weight: 600; text-decoration-style: dotted; }
.k-recipes::before { content: "\F443"; font-family: "bootstrap-icons"; font-weight: normal; margin-right: .25rem; font-size: .85em; }
.k-gl, .gl-term { text-decoration: underline dotted; text-decoration-color: var(--lh-caramel); text-underline-offset: .2em; color: inherit; cursor: help; }
.k-gl:hover, .gl-term:hover { text-decoration-style: solid; }
.gl-popover { --bs-popover-max-width: min(24rem, 92vw); --bs-popover-header-bg: var(--lh-flour-2); --bs-popover-bg: var(--lh-paper); max-width: min(24rem, 92vw); font-size: .9rem; }
.gl-popover .popover-header { font-family: var(--lh-serif, Georgia, serif); color: var(--lh-rye); }
.gl-popover .gl-more { display: inline-block; margin-top: .35rem; font-weight: 600; }
@media print { .k-gl, .gl-term { text-decoration: none; } }
.admonition { border-radius: .8rem; padding: .8rem 1rem .5rem; margin: 1.2rem 0; border-left: 4px solid var(--lh-caramel); background: var(--lh-flour-2); font-size: .97rem; }
.admonition-title { font-weight: 700; margin-bottom: .3rem; font-family: "Fraunces", Georgia, serif; }
.admonition.tip { border-left-color: var(--lh-sage); }
.admonition.tip .admonition-title::before { content: "\F46B  "; font-family: "bootstrap-icons"; font-weight: normal; }
.admonition.note .admonition-title::before { content: "\F431  "; font-family: "bootstrap-icons"; font-weight: normal; }
.admonition.warning { border-left-color: var(--lh-terracotta); }
.admonition.warning .admonition-title::before { content: "\F33B  "; font-family: "bootstrap-icons"; font-weight: normal; }
.admonition.example { border-left-color: var(--lh-crust-2); background: var(--lh-paper); border: 1px dashed var(--lh-line); border-left: 4px solid var(--lh-crust-2); }
.admonition.example .admonition-title::before { content: "\F1E0  "; font-family: "bootstrap-icons"; font-weight: normal; }
.k-calc { margin: 1.6rem 0; padding: 1rem 1.1rem; border: 1px solid var(--lh-wheat); background: linear-gradient(180deg, var(--lh-paper), var(--lh-flour)); }
.k-calc-head { font-weight: 700; font-family: "Fraunces", Georgia, serif; color: var(--lh-crust); margin-bottom: .6rem; }
.k-calc .form-label { margin-bottom: .15rem; }
.k-calc-out { display: block; margin-top: .9rem; padding: .7rem .9rem; border-radius: .7rem; background: var(--lh-flour-2); font-size: .95rem; }
.k-calc-out .k-big { font-family: "Fraunces", Georgia, serif; font-size: 1.6rem; font-weight: 700; color: var(--lh-rye); line-height: 1.2; }
.k-calc-note { font-size: .8rem; color: var(--lh-muted); margin: .5rem 0 0; }
.k-recipes-box h2 { font-family: "Fraunces", Georgia, serif; }
.k-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.k-pager a { display: flex; flex-direction: column; padding: .8rem 1rem; text-decoration: none; color: inherit; }
.k-pager small { color: var(--lh-muted); } .k-pager span { font-family: "Fraunces", Georgia, serif; font-weight: 650; color: var(--lh-rye); }
.k-glossary-tools { position: sticky; top: calc(var(--lh-header-h) + .5rem); z-index: 5; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.k-glossary-tools input { max-width: 20rem; }
.k-letters { display: flex; flex-wrap: wrap; gap: .15rem; }
.k-letters a { min-width: 1.7rem; text-align: center; padding: .1rem .3rem; border-radius: .4rem; text-decoration: none; font-weight: 700; color: var(--lh-crust); }
.k-letters a:hover { background: var(--lh-flour-2); }
.k-glossary h2.k-letter { font-size: 2rem; color: var(--lh-caramel); border-top: none; margin-top: 1.6rem; scroll-margin-top: calc(var(--lh-header-h) + 5rem); }
.k-glossary h3 { font-size: 1.08rem; margin: 1.1rem 0 .2rem; color: var(--lh-rye); scroll-margin-top: calc(var(--lh-header-h) + 5rem); }
.k-glossary h3 + p { margin-bottom: .4rem; }
.k-glossary h3.k-target { background: var(--lh-flour-2); border-radius: .4rem; padding: .1rem .4rem; }
.k-glossary > p::first-letter { all: unset; }
@media print { .k-nav, .k-pager, .k-calc, .k-glossary-tools, .k-recipes-box { display: none !important; } }

/* glossary search in the sidebar */
.nav-search { padding: .1rem .55rem .4rem 2.35rem; }
.nav-search .form-control { font-size: .85rem; }
.nav-search .ac-menu { width: 100%; max-height: 60vh; overflow-y: auto; }
.nav-search .ac-menu .dropdown-item { white-space: normal; }
.nav-search .ac-menu small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.sidebar-collapsed .nav-search { display: none; }
