
:root {
  --bg: #f5f5f1;
  --surface: #ffffff;
  --surface-soft: #fafaf8;
  --text: #20221f;
  --muted: #6e726a;
  --border: #e2e4dd;
  --primary: #2f7d4c;
  --primary-dark: #23663d;
  --primary-soft: #e7f4ec;
  --danger: #b93838;
  --warning: #f4b740;
  --shadow: 0 12px 32px rgba(32,34,31,.08);
  --radius: 24px;
  --radius-sm: 16px;
  --content: 1220px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body.tn-body, body {
  margin: 0;
  min-height: 100%;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(47,125,76,.14), transparent 35%),
    linear-gradient(180deg, #fbfbf8, var(--bg));
  line-height: 1.45;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }

.app-shell { min-height: 100vh; display: flex; }
.app-sidebar {
  width: 280px;
  flex: 0 0 280px;
  min-height: 100vh;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(14px);
  border-right: 1px solid var(--border);
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: sticky;
  top: 0;
  height: 100vh;
}

.brand-block {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 34px;
}
.brand-mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  background: var(--primary);
  color: white;
  border-radius: 18px;
  font-size: 24px;
  box-shadow: var(--shadow);
}
.brand-block strong { display:block; font-size: 1.35rem; letter-spacing: -.03em; }
.brand-block small { display:block; color: var(--muted); font-size: .82rem; margin-top: 2px; }

.side-nav { display: grid; gap: 6px; }
.side-nav a {
  padding: 13px 14px;
  border-radius: 16px;
  color: #30332d;
  font-weight: 650;
  font-size: .95rem;
}
.side-nav a:hover, .side-nav a:focus {
  background: var(--primary-soft);
  color: var(--primary-dark);
}
.side-nav .admin-link {
  margin-top: 12px;
  background: #1f2520;
  color: #fff;
}
.side-nav .admin-link:hover { background: #111; color: #fff; }

.sidebar-user {
  border-top: 1px solid var(--border);
  padding-top: 16px;
  display: grid;
  gap: 4px;
}
.sidebar-user strong { font-size: 1rem; }
.sidebar-user small { color: var(--muted); }
.sidebar-user a { color: var(--primary-dark); font-weight: 700; margin-top: 8px; }

.app-main { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.app-content {
  width: min(100%, var(--content));
  margin: 0 auto;
  padding: 30px 28px 94px;
  flex: 1;
}

.mobile-topbar {
  display: none;
  height: 62px;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 50;
}
.mobile-brand { font-weight: 800; font-size: 1.08rem; }
.icon-button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 14px;
  font-size: 1.1rem;
}

.page-hero {
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(231,244,236,.88));
  border: 1px solid rgba(47,125,76,.16);
  border-radius: 32px;
  padding: 28px;
  box-shadow: var(--shadow);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 30px;
}
.eyebrow {
  color: var(--primary-dark);
  text-transform: uppercase;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .08em;
  margin: 0 0 8px;
}
h1, h2, h3 { letter-spacing: -.035em; line-height: 1.08; }
h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.2rem); }
h2 { margin: 0 0 8px; font-size: clamp(1.25rem, 2vw, 1.55rem); }
p { margin-top: 0; }
.muted { color: var(--muted); }
.hero-actions, .actions, .card-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.grid, .cards-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.card {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: 0 6px 22px rgba(32,34,31,.055);
}
.diary-card-modern, .feature-card {
  min-height: 286px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.diary-card-modern:hover, .feature-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
  border-color: rgba(47,125,76,.28);
}
.card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.card-icon {
  width: 58px;
  height: 58px;
  border-radius: 22px;
  background: var(--primary-soft);
  display: grid;
  place-items: center;
  font-size: 2rem;
  flex: 0 0 auto;
}
.badge {
  background: var(--surface-soft);
  border: 1px solid var(--border);
  color: var(--primary-dark);
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}
.card-body { margin: 18px 0; }
.card-body p, .feature-card p { color: var(--muted); min-height: 44px; }

.mini-stats {
  display: grid;
  gap: 8px;
  margin: 0 0 18px;
  padding: 14px;
  border-radius: 18px;
  background: var(--surface-soft);
}
.mini-stats div, dl div { display:flex; justify-content:space-between; gap: 12px; }
dt { color: var(--muted); font-size: .82rem; }
dd { margin: 0; font-weight: 750; text-align: right; }

.add-card {
  min-height: 286px;
  border: 2px dashed #cfd5ca;
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--muted);
  transition: .16s ease;
}
.add-card span { font-size: 3rem; color: var(--primary); }
.add-card strong { display:block; color: var(--text); font-size: 1.2rem; margin-top: 8px; }
.add-card small { max-width: 220px; display:block; margin-top: 6px; }
.add-card:hover { background: var(--primary-soft); border-color: var(--primary); }

.button, button {
  border: 0;
  border-radius: 15px;
  padding: 11px 16px;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}
.button.primary, .button:not(.secondary), button:not(.secondary) {
  background: var(--primary);
  color: #fff;
}
.button.secondary, .secondary {
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
}
.button:hover, button:hover { filter: brightness(.98); }

.success, .alert {
  border-radius: 18px;
  padding: 14px 16px;
  margin-bottom: 18px;
  font-weight: 700;
}
.success { background: #e7f4ec; color: #245f3d; border: 1px solid #bfe3ce; }
.alert { background: #fff1f1; color: var(--danger); border: 1px solid #f2c2c2; }

.form, form.form { display: grid; gap: 15px; }
label { display: grid; gap: 7px; font-weight: 750; }
input, textarea, select {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 13px 14px;
  font: inherit;
  background: #fff;
  color: var(--text);
}
textarea { min-height: 110px; resize: vertical; }
input:focus, textarea:focus, select:focus {
  outline: 3px solid rgba(47,125,76,.16);
  border-color: var(--primary);
}

.field-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}
.field-grid > * { grid-column: span 4; }
.field-grid .half { grid-column: span 6; }
.field-grid .span { grid-column: span 12; }
.field-grid .compact { grid-column: span 4; }

.topbar {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 28px;
  padding: 20px;
  margin-bottom: 22px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}
.back { color: var(--primary-dark); font-weight: 800; }
.diary-card { min-height: 260px; display:flex; flex-direction:column; justify-content:space-between; }

.fab {
  position: fixed;
  right: 24px;
  bottom: 26px;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: none;
  place-items: center;
  background: var(--primary);
  color: #fff;
  font-size: 2rem;
  box-shadow: var(--shadow);
  z-index: 60;
}

.bottom-nav {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border-top: 1px solid var(--border);
  z-index: 80;
  padding: 7px 10px calc(7px + env(safe-area-inset-bottom));
  justify-content: space-around;
}
.bottom-nav a {
  min-width: 54px;
  display: grid;
  place-items: center;
  gap: 1px;
  color: var(--muted);
  font-weight: 750;
  font-size: .75rem;
}
.bottom-nav span { font-size: 1.25rem; }
.bottom-nav .bottom-plus {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  margin-top: -34px;
  box-shadow: var(--shadow);
  border: 4px solid var(--bg);
}
.bottom-nav .bottom-plus span { font-size: 2rem; line-height: 1; }

.app-footer {
  color: var(--muted);
  font-size: .82rem;
  text-align: center;
  padding: 20px 10px 28px;
}
.maintenance-banner {
  background: var(--warning);
  color: #332300;
  padding: 10px 18px;
  font-weight: 850;
  text-align: center;
}
.feature-card { color: inherit; }
.feature-card h2 { margin-top: 16px; }
.segmented { display:flex; gap: 6px; flex-wrap:wrap; }
.segmented button { background: var(--surface-soft); color: var(--text); border: 1px solid var(--border); min-height: 38px; padding: 8px 12px; }

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"], body:not([data-theme]) {
    --bg: #111512;
    --surface: #1a201c;
    --surface-soft: #232a25;
    --text: #f3f5ef;
    --muted: #aeb7ad;
    --border: #30392f;
    --primary-soft: #173322;
    --shadow: 0 16px 42px rgba(0,0,0,.28);
  }
}
body[data-theme="dark"] {
  --bg: #111512;
  --surface: #1a201c;
  --surface-soft: #232a25;
  --text: #f3f5ef;
  --muted: #aeb7ad;
  --border: #30392f;
  --primary-soft: #173322;
  --shadow: 0 16px 42px rgba(0,0,0,.28);
}
body[data-theme="dark"] input,
body[data-theme="dark"] textarea,
body[data-theme="dark"] select { background:#151914; }

@media (max-width: 960px) {
  .app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 100;
    transform: translateX(-105%);
    transition: transform .18s ease;
    box-shadow: var(--shadow);
  }
  body.sidebar-open .app-sidebar { transform: translateX(0); }
  .mobile-topbar { display: flex; }
  .app-content { padding: 18px 14px 100px; }
  .page-hero { padding: 22px; border-radius: 26px; display:block; }
  .hero-actions { margin-top: 18px; }
  .topbar { display:block; border-radius: 24px; }
  .topbar .actions { margin-top: 14px; }
  .grid, .cards-grid { grid-template-columns: 1fr; gap: 14px; }
  .diary-card-modern, .feature-card, .add-card { min-height: auto; }
  .card { padding: 18px; border-radius: 22px; }
  .field-grid { grid-template-columns: 1fr; }
  .field-grid > *, .field-grid .half, .field-grid .span, .field-grid .compact { grid-column: auto; }
  .bottom-nav { display: flex; }
  .fab { display: none; }
  .mini-stats div, dl div { display:block; }
  dd { text-align:left; margin-top: 2px; }
}

@media (max-width: 520px) {
  h1 { font-size: 2rem; }
  .page-hero { margin-bottom: 20px; }
  .section-head { display:block; }
  .card-actions, .hero-actions, .actions { flex-direction: column; align-items: stretch; }
  .button { width: 100%; }
  .card-icon { width: 50px; height: 50px; border-radius: 18px; font-size: 1.6rem; }
  .card-body p { min-height: 0; }
}


/* v0.4.3 Mobile UX Polish */
:root {
  --muted: #4f574e;
  --text: #171b16;
  --border: #d6dbd2;
}

.muted { color: var(--muted); }
dt { color: #495046; font-weight: 750; }
dd { color: var(--text); }

.sidebar-close {
  display: none;
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
  font-weight: 900;
}

.logout-link {
  color: #b42323 !important;
  font-weight: 850 !important;
}

.section-card {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 18px 20px;
  box-shadow: 0 6px 22px rgba(32,34,31,.055);
}

.profile-list {
  display: grid;
  gap: 14px;
}

.profile-list .feature-card {
  min-height: auto;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 14px 16px;
  align-items: center;
  padding: 18px;
}

.profile-list .feature-card .card-icon {
  grid-row: span 2;
}

.profile-list .feature-card h2,
.profile-list .feature-card p {
  margin: 0;
  min-height: 0;
}

.profile-list .feature-card .segmented {
  grid-column: 1 / -1;
}

.manage-section {
  overflow: visible;
}

.manage-list {
  display: grid;
  gap: 16px;
}

.manage-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 6px 22px rgba(32,34,31,.055);
}

.manage-card.is-disabled {
  opacity: .66;
}

.manage-card-head {
  display: grid;
  grid-template-columns: 58px 1fr auto;
  gap: 14px;
  align-items: center;
  margin-bottom: 16px;
}

.manage-card-head h3 {
  margin: 0;
  font-size: 1.22rem;
  letter-spacing: -.03em;
}

.manage-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: var(--primary-soft);
  font-size: 1.8rem;
}

.manage-fields {
  display: grid;
  grid-template-columns: 90px 1fr 1fr 160px 160px auto;
  gap: 12px;
  align-items: end;
}

.manage-fields .span {
  grid-column: span 2;
}

.checkline {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 9px;
  min-height: 48px;
}

.checkline input {
  width: auto;
}

.compact-button {
  min-height: 40px;
  padding: 9px 12px;
  white-space: nowrap;
}

.perm-details {
  margin-top: 14px;
  border-top: 1px solid var(--border);
  padding-top: 12px;
}

.perm-details summary {
  font-weight: 850;
  cursor: pointer;
  color: var(--primary-dark);
}

.sticky-actions {
  position: sticky;
  bottom: 82px;
  z-index: 30;
  display: flex;
  justify-content: flex-end;
  margin-top: 18px;
  padding: 10px 0;
}

.sticky-actions button {
  box-shadow: var(--shadow);
}

.image-gallery {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.image-card {
  border: 1px solid var(--border);
  border-radius: 22px;
  overflow: hidden;
  background: var(--surface);
}

.image-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--surface-soft);
}

.image-meta {
  padding: 14px;
  display: grid;
  gap: 8px;
}

body[data-theme="dark"] {
  --muted: #c4cdc2;
  --text: #f6f8f2;
  --border: #3f4a3e;
}

@media (max-width: 960px) {
  .sidebar-close {
    display: grid;
    place-items: center;
  }

  .app-sidebar {
    padding-top: 66px;
  }

  .mobile-topbar {
    box-shadow: 0 6px 18px rgba(32,34,31,.06);
  }

  .page-hero {
    background: rgba(255,255,255,.96);
  }

  .manage-card-head {
    grid-template-columns: 52px 1fr auto;
  }

  .manage-fields {
    grid-template-columns: 1fr 1fr;
  }

  .manage-fields .span {
    grid-column: 1 / -1;
  }

  .perm-grid {
    grid-template-columns: 1fr;
  }

  .sticky-actions {
    bottom: 78px;
  }

  .sticky-actions button {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .app-content {
    padding-left: 12px;
    padding-right: 12px;
  }

  .page-hero {
    padding: 18px;
  }

  .section-card {
    padding: 15px;
  }

  .manage-card {
    padding: 15px;
    border-radius: 22px;
  }

  .manage-card-head {
    grid-template-columns: 48px 1fr;
  }

  .manage-card-head .compact-button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .manage-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    font-size: 1.55rem;
  }

  .manage-fields {
    grid-template-columns: 1fr;
  }

  .profile-list .feature-card {
    grid-template-columns: 46px 1fr;
  }

  .profile-list .feature-card .card-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    font-size: 1.45rem;
  }

  .mini-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mini-stats div {
    display: block;
  }
}


/* v0.4.4 Feedback + Login Polish */
.login-page {
  min-height: calc(100vh - 80px);
  display: grid;
  place-items: center;
  padding: 28px 14px 70px;
  position: relative;
}

.login-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(rgba(245,245,241,.82), rgba(245,245,241,.92)),
    radial-gradient(circle at top left, rgba(47,125,76,.28), transparent 38%),
    radial-gradient(circle at bottom right, rgba(47,125,76,.14), transparent 44%);
}

.login-card {
  width: min(100%, 460px);
  background: rgba(255,255,255,.94);
  border: 1px solid var(--border);
  border-radius: 32px;
  padding: 30px;
  box-shadow: var(--shadow);
}

.login-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
}

.login-brand h1 {
  font-size: 2rem;
  margin: 0 0 2px;
}

.login-brand p {
  margin: 0;
  color: var(--muted);
  font-weight: 650;
}

.login-intro {
  color: var(--muted);
  margin-bottom: 18px;
}

.login-form {
  gap: 16px;
}

.feedback-card textarea {
  min-height: 180px;
}

.message-list {
  display: grid;
  gap: 16px;
}

.message-card {
  display: grid;
  gap: 16px;
}

.message-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.message-head h2 {
  margin-top: 12px;
}

.message-body {
  padding: 16px;
  border-radius: 18px;
  background: var(--surface-soft);
  line-height: 1.7;
  white-space: normal;
}

.message-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.message-meta {
  border-top: 1px solid var(--border);
  padding-top: 10px;
}

.status-open {
  border-color: rgba(47,125,76,.45);
}

.status-read {
  opacity: .86;
}

.status-archived {
  opacity: .64;
}

@media (max-width: 520px) {
  .login-page {
    place-items: start center;
    padding-top: 18px;
  }

  .login-card {
    padding: 22px;
    border-radius: 26px;
  }

  .login-brand h1 {
    font-size: 1.75rem;
  }

  .message-head {
    display: grid;
  }

  .message-actions {
    display: grid;
  }

  .message-actions button {
    width: 100%;
  }
}


/* v0.4.5 Tracknote Management Rebuild + Message Badges */
.nav-badge {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  margin-left: 6px;
  border-radius: 999px;
  background: #d63a3a;
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
}

.badge-alert {
  background: #d63a3a;
  color: #fff;
  border-color: #d63a3a;
}

.manage-topbar {
  margin-bottom: 18px;
}

.manage-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, .8fr);
  gap: 20px;
  align-items: start;
}

.manage-main {
  min-width: 0;
}

.panel-card {
  background: rgba(255,255,255,.97);
  border: 1px solid var(--border);
  border-radius: 28px;
  padding: 22px;
  box-shadow: 0 8px 26px rgba(32,34,31,.06);
}

.panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.tracknote-manage-list {
  display: grid;
  gap: 16px;
}

.tracknote-manage-card {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 24px;
  padding: 18px;
  display: grid;
  gap: 16px;
  box-shadow: 0 5px 18px rgba(32,34,31,.045);
}

.tracknote-manage-card.is-disabled {
  opacity: .62;
}

.tmc-head {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
}

.tmc-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: var(--primary-soft);
  font-size: 1.75rem;
}

.tmc-title {
  min-width: 0;
}

.tmc-title h3 {
  margin: 0;
  font-size: 1.24rem;
  letter-spacing: -.035em;
}

.tmc-title p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .92rem;
}

.tmc-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tmc-fields {
  display: grid;
  grid-template-columns: 84px minmax(170px, .85fr) minmax(220px, 1.4fr) 160px 150px 86px;
  gap: 12px;
  align-items: end;
}

.tmc-fields label {
  min-width: 0;
}

.tmc-fields input,
.tmc-fields select {
  min-height: 42px;
}

.switch-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 0 4px;
}

.switch-row input {
  width: auto;
}

.create-panel {
  position: sticky;
  top: 20px;
}

.create-tracknote-form {
  gap: 16px;
}

.category-packets {
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 16px;
  background: var(--surface-soft);
}

.category-packets legend {
  font-weight: 900;
  padding: 0 8px;
}

.category-package {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  padding: 10px 12px;
  margin-top: 10px;
}

.category-package summary {
  cursor: pointer;
  font-weight: 850;
  color: var(--primary-dark);
}

.checkbox-grid {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}

.checkbox-grid label {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 7px 10px;
  align-items: start;
  padding: 10px;
  border-radius: 14px;
  background: var(--surface-soft);
}

.checkbox-grid label input {
  width: auto;
  margin-top: 3px;
}

.checkbox-grid label small {
  grid-column: 2;
  color: var(--muted);
  line-height: 1.45;
}

.option-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  align-items: end;
}

.reply-box {
  border-top: 1px solid var(--border);
  padding-top: 12px;
}

.reply-box summary {
  cursor: pointer;
  font-weight: 850;
  color: var(--primary-dark);
}

@media (max-width: 1180px) {
  .manage-layout {
    grid-template-columns: 1fr;
  }

  .create-panel {
    position: static;
  }

  .tmc-fields {
    grid-template-columns: 80px 1fr 1fr;
  }

  .tmc-fields .wide {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .panel-card {
    padding: 16px;
    border-radius: 24px;
  }

  .tmc-head {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .tmc-actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .tmc-actions .button {
    flex: 1;
  }

  .tmc-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    font-size: 1.55rem;
  }

  .tmc-fields {
    grid-template-columns: 1fr;
  }

  .tmc-fields .wide {
    grid-column: auto;
  }

  .perm-grid {
    grid-template-columns: 1fr;
  }

  .category-packets {
    padding: 12px;
  }
}


/* v0.4.7 User Preferences + Stronger Mobile Contrast */
:root {
  --muted: #30372f;
  --text: #101510;
  --label: #101510;
  --input-text: #101510;
  --input-bg: #ffffff;
  --input-border: #9ba697;
}

body[data-accent="blue"] {
  --primary: #2f6fa3;
  --primary-dark: #25577f;
  --primary-soft: #e4f0fa;
}

body[data-accent="violet"] {
  --primary: #7653b5;
  --primary-dark: #5c3d96;
  --primary-soft: #efe9fb;
}

body[data-accent="orange"] {
  --primary: #b7662d;
  --primary-dark: #925020;
  --primary-soft: #fff0e4;
}

body[data-font-size="compact"] {
  font-size: 15px;
}

body[data-font-size="normal"] {
  font-size: 16px;
}

body[data-font-size="large"] {
  font-size: 18px;
}

body[data-font-size="xlarge"] {
  font-size: 20px;
}

body[data-density="compact"] .card,
body[data-density="compact"] .panel-card,
body[data-density="compact"] .tracknote-manage-card {
  padding: 14px;
}

label {
  color: var(--label);
}

label,
.login-form label,
.form label {
  font-weight: 850;
}

input,
textarea,
select {
  color: var(--input-text);
  background: var(--input-bg);
  border-color: var(--input-border);
  font-weight: 650;
}

input::placeholder,
textarea::placeholder {
  color: #596357;
  opacity: 1;
}

.hint,
.login-card .hint,
.login-intro,
.login-brand p,
.card-body p,
.feature-card p,
.muted {
  color: var(--muted) !important;
}

.login-card {
  color: var(--text);
}

.login-brand h1 {
  color: var(--text);
}

.login-brand p {
  font-weight: 800;
}

.login-intro {
  font-weight: 750;
}

.login-card .hint {
  font-weight: 750;
}

.preference-form {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  margin-top: 10px;
}

.preference-form button {
  margin-top: 4px;
}

body[data-theme="dark"] {
  --muted: #e0e7dc;
  --text: #fbfdf7;
  --label: #fbfdf7;
  --input-text: #fbfdf7;
  --input-bg: #151b16;
  --input-border: #62715f;
}

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] {
    --muted: #e0e7dc;
    --text: #fbfdf7;
    --label: #fbfdf7;
    --input-text: #fbfdf7;
    --input-bg: #151b16;
    --input-border: #62715f;
  }
}

@media (max-width: 760px) {
  :root {
    --muted: #20281f;
    --text: #070b07;
    --label: #070b07;
  }

  /* v0.4.9.1: Login/Theme-Fix: globale mobile Auto-Dark-Überschreibung entfernt. */

  .login-card {
    background: rgba(255,255,255,.985);
  }

  .login-brand p,
  .login-intro,
  .login-card .hint,
  .muted {
    color: var(--muted) !important;
  }

  .form label,
  .login-form label {
    color: var(--label);
    font-size: 1rem;
  }

  input,
  textarea,
  select {
    border-width: 2px;
  }
}


/* =========================================================
   TRACKNOTE LOGIN MODERN UI HOTFIX
   v0.4.9
   Stabiler Login-Kontrast für Mobile/Desktop
   ========================================================= */

.login-card {
  background: rgba(255,255,255,0.98) !important;
  border: 1px solid rgba(0,0,0,0.18) !important;
  border-radius: 34px !important;
  box-shadow:
    0 18px 50px rgba(0,0,0,0.12),
    0 2px 8px rgba(0,0,0,0.06) !important;
  color: #172017 !important;
}

.login-card h1,
.login-card h2,
.login-card h3,
.login-card label,
.login-card p,
.login-card span,
.login-card small,
.login-card .muted,
.login-card .hint,
.login-intro,
.login-brand p {
  color: #2b352b !important;
  opacity: 1 !important;
}

.login-brand h1 {
  color: #111811 !important;
  font-weight: 900 !important;
  letter-spacing: -0.03em !important;
}

.login-brand p {
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

.login-intro {
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  margin-top: 10px !important;
}

.login-form label {
  display: block !important;
  margin-bottom: 10px !important;
  color: #253125 !important;
  font-weight: 800 !important;
  font-size: 0.98rem !important;
  letter-spacing: 0.01em !important;
}

.login-card input {
  width: 100% !important;
  background: linear-gradient(180deg, #1a241c 0%, #151d17 100%) !important;
  color: #f3ebbf !important;
  border: 2px solid #667460 !important;
  border-radius: 22px !important;
  padding: 18px 20px !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,0.04),
    inset 0 -2px 4px rgba(0,0,0,0.25) !important;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .12s ease !important;
}

.login-card input::placeholder {
  color: #cfc7a2 !important;
  opacity: 1 !important;
}

.login-card input:focus {
  border-color: #43a266 !important;
  outline: none !important;
  box-shadow:
    0 0 0 4px rgba(67,162,102,0.18),
    inset 0 2px 4px rgba(255,255,255,0.05),
    inset 0 -2px 4px rgba(0,0,0,0.25) !important;
  transform: translateY(-1px) !important;
}

.login-card button,
.login-card .button {
  width: 100% !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, #43915b 0%, #347447 100%) !important;
  color: #ffffff !important;
  border: none !important;
  padding: 18px 22px !important;
  font-size: 1.1rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.01em !important;
  box-shadow:
    0 10px 24px rgba(52,116,71,0.28),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
  transition:
    transform .14s ease,
    box-shadow .14s ease,
    filter .14s ease !important;
}

.login-card button:hover,
.login-card .button:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.03) !important;
  box-shadow:
    0 14px 28px rgba(52,116,71,0.34),
    inset 0 1px 0 rgba(255,255,255,0.16) !important;
}

.login-card .hint,
.login-card .demo-login,
.login-card .demo-hint {
  margin-top: 18px !important;
  color: #364236 !important;
  font-size: 0.98rem !important;
  font-weight: 750 !important;
  line-height: 1.5 !important;
}

.login-brand {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
}

.login-brand img,
.login-brand .logo,
.login-brand .brand-logo {
  border-radius: 20px !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.12) !important;
}

/* Template-Auswahl etwas ruhiger und besser klickbar */
.category-package {
  border-color: #c5cec0 !important;
}

.category-package summary {
  min-height: 42px;
  display: flex;
  align-items: center;
}

.checkbox-grid label {
  border: 1px solid rgba(0,0,0,.08);
}

.checkbox-grid label:hover {
  background: var(--primary-soft);
  border-color: rgba(47,125,76,.35);
}

@media (max-width: 760px) {
  .login-card {
    border-radius: 28px !important;
    padding: 26px 22px !important;
  }

  .login-brand {
    gap: 14px !important;
  }

  .login-brand h1 {
    font-size: 2rem !important;
  }

  .login-brand p {
    font-size: 0.98rem !important;
  }

  .login-intro {
    font-size: 1rem !important;
  }

  .login-card input {
    padding: 17px 18px !important;
    font-size: 1rem !important;
  }

  .login-card button,
  .login-card .button {
    padding: 17px 18px !important;
    font-size: 1.02rem !important;
  }

  .category-package summary {
    font-size: 1rem;
  }

  .checkbox-grid label {
    padding: 12px;
  }
}


/* =========================================================
   TRACKNOTE LOGIN THEME ISOLATION FIX
   v0.4.9.1
   Der Login ist bewusst unabhängig von User-Theme/Auto-Dark.
   ========================================================= */

.login-page {
  isolation: isolate !important;
  position: relative !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at top left, rgba(67,145,91,.24), transparent 34%),
    radial-gradient(circle at bottom right, rgba(36,74,49,.18), transparent 42%),
    linear-gradient(180deg, #eef5ef 0%, #dde8dd 100%) !important;
  border-radius: 0 !important;
}

.login-page::before {
  z-index: -1 !important;
  background:
    radial-gradient(circle at 18% 16%, rgba(255,255,255,.72), transparent 22%),
    radial-gradient(circle at 84% 80%, rgba(67,145,91,.18), transparent 28%),
    linear-gradient(180deg, rgba(245,249,245,.58), rgba(221,232,221,.68)) !important;
}

.login-page::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  opacity: .22 !important;
  background-image:
    linear-gradient(45deg, rgba(255,255,255,.34) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(255,255,255,.26) 25%, transparent 25%);
  background-size: 34px 34px !important;
  background-position: 0 0, 17px 17px !important;
}

.login-card {
  width: min(100%, 460px) !important;
  background: rgba(255,255,255,.985) !important;
  color: #172017 !important;
  border: 1px solid rgba(23,32,23,.18) !important;
  box-shadow:
    0 22px 65px rgba(23,32,23,.18),
    0 3px 10px rgba(23,32,23,.08) !important;
}

.login-card,
.login-card * {
  color-scheme: light !important;
}

.login-card h1,
.login-card h2,
.login-card h3,
.login-card label,
.login-card p,
.login-card span,
.login-card small,
.login-card strong,
.login-card .muted,
.login-card .hint,
.login-card .login-intro,
.login-card .login-brand p {
  color: #243124 !important;
  opacity: 1 !important;
}

.login-card .brand-mark {
  background: linear-gradient(180deg, #43915b 0%, #2f7046 100%) !important;
  color: #ffffff !important;
}

.login-card input,
.login-card input:-webkit-autofill,
.login-card input:-webkit-autofill:hover,
.login-card input:-webkit-autofill:focus {
  -webkit-text-fill-color: #f3ebbf !important;
  caret-color: #f3ebbf !important;
  background: linear-gradient(180deg, #1a241c 0%, #151d17 100%) !important;
  color: #f3ebbf !important;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,0.04),
    inset 0 -2px 4px rgba(0,0,0,0.25),
    0 0 0 1000px #151d17 inset !important;
}

.login-card button,
.login-card .button {
  color: #ffffff !important;
}

body[data-theme="dark"] .login-page,
body[data-theme="auto"] .login-page,
body[data-theme="light"] .login-page {
  color: #172017 !important;
}

body[data-theme="dark"] .login-card,
body[data-theme="auto"] .login-card,
body[data-theme="light"] .login-card {
  background: rgba(255,255,255,.985) !important;
  color: #172017 !important;
}

@media (max-width: 760px) {
  .login-page {
    min-height: calc(100vh - 62px) !important;
    padding: 22px 14px 80px !important;
  }

  .login-card {
    width: min(100%, 430px) !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.10 CLEAN UI CANDIDATE
   Layout-Kompatibilität + Login Vollbild-Hintergrund
   ========================================================= */

/* Alte/übernommene Klassen sauber auffangen */
.error {
  border-radius: 18px;
  padding: 14px 16px;
  margin-bottom: 18px;
  font-weight: 800;
  background: #fff1f1;
  color: #9f2424;
  border: 1px solid #f2c2c2;
}

.danger,
button.danger,
.button.danger {
  background: #b93838 !important;
  color: #fff !important;
}

.danger-row {
  background: #fff4f4;
}

.danger-zone {
  border: 1px solid #efb7b7;
  background: #fff7f7;
  border-radius: 22px;
  padding: 18px;
}

.small,
.button.small,
button.small {
  min-height: 36px;
  padding: 8px 12px;
  font-size: .88rem;
  border-radius: 12px;
}

.narrow {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--surface);
}

.editor-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}

.editor-table th,
.editor-table td {
  padding: 12px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
  text-align: left;
}

.editor-table th {
  background: var(--surface-soft);
  color: var(--text);
  font-size: .86rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.field-group {
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 16px;
  background: var(--surface-soft);
}

.field-group legend {
  padding: 0 8px;
  font-weight: 900;
}

.two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}

.entry-list {
  display: grid;
  gap: 14px;
}

.entry-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 5px 18px rgba(32,34,31,.045);
}

.entry-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.entry-values {
  display: grid;
  gap: 8px;
}

.category-tabs,
.tag-list,
.optional-tags,
.thumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.category-tabs a,
.tag-list span,
.optional-tags span {
  border: 1px solid var(--border);
  background: var(--surface-soft);
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 750;
}

.thumb {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid var(--border);
}

.image-existing,
.profile-grid,
.profile-details,
.item-row {
  display: grid;
  gap: 12px;
}

.mobile-save {
  position: sticky;
  bottom: 80px;
  z-index: 30;
}

.order-buttons {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.check {
  width: auto;
}

/* Login: Vollbild, hochwertiger Verlauf, sichere Lesbarkeit */
body:has(.login-page) .app-content {
  width: 100%;
  max-width: none;
  padding: 0;
}

body:has(.login-page) .app-footer {
  display: none;
}

.login-page {
  min-height: 100vh !important;
  width: 100% !important;
  display: grid !important;
  place-items: center !important;
  padding: 32px 18px !important;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.76), transparent 22%),
    radial-gradient(circle at 82% 78%, rgba(68,151,95,.22), transparent 30%),
    radial-gradient(circle at 20% 92%, rgba(47,88,60,.13), transparent 28%),
    linear-gradient(135deg, #eef6ef 0%, #dce9dd 48%, #cfded0 100%) !important;
}

.login-page::before {
  background:
    radial-gradient(circle at top left, rgba(67,145,91,.22), transparent 35%),
    radial-gradient(circle at bottom right, rgba(33,67,45,.18), transparent 42%) !important;
}

.login-card {
  backdrop-filter: blur(18px);
  background: rgba(255,255,255,.985) !important;
  color: #172017 !important;
}

.login-card h1,
.login-card h2,
.login-card h3,
.login-card label,
.login-card p,
.login-card span,
.login-card small,
.login-card strong,
.login-card .muted,
.login-card .hint,
.login-card .login-intro,
.login-card .login-brand p {
  color: #243124 !important;
  opacity: 1 !important;
}

.login-card input {
  background: linear-gradient(180deg, #1a241c 0%, #151d17 100%) !important;
  color: #f3ebbf !important;
}

@media (max-width: 760px) {
  .two-col {
    grid-template-columns: 1fr;
  }

  .entry-head {
    display: grid;
  }

  .login-page {
    min-height: 100vh !important;
    align-items: start !important;
    padding-top: 22px !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.11 UI RESET
   Ziel: hell, lesbar, ruhig, keine schwarzen Felder.
   ========================================================= */

/* Grundsätzlich helle, gut lesbare Oberfläche erzwingen */
body.tn-body {
  background:
    radial-gradient(circle at top left, rgba(58,130,82,.12), transparent 32%),
    linear-gradient(180deg, #f7f8f4 0%, #eef3ed 100%) !important;
  color: #172017 !important;
}

:root {
  --bg: #f3f5ef;
  --surface: #ffffff;
  --surface-soft: #f7f8f4;
  --text: #172017;
  --muted: #344034;
  --border: #cfd8cc;
  --primary: #3f8f5a;
  --primary-dark: #2f7046;
  --primary-soft: #e8f4ec;
  --input-bg: #ffffff;
  --input-text: #172017;
  --input-border: #aebbad;
}

/* Auto/Dark darf Formularlesbarkeit nicht zerstören */
body[data-theme="auto"],
body[data-theme="dark"],
body[data-theme="light"] {
  --surface: #ffffff;
  --surface-soft: #f7f8f4;
  --text: #172017;
  --muted: #344034;
  --border: #cfd8cc;
  --input-bg: #ffffff;
  --input-text: #172017;
  --input-border: #aebbad;
}

/* Texte auf hellen Flächen klar dunkel */
.card,
.panel-card,
.login-card,
.page-hero,
.topbar,
.tracknote-manage-card,
.feature-card,
.message-card {
  color: #172017 !important;
}

.muted,
.card p,
.panel-card p,
.login-card p,
.login-card .hint,
.login-card .muted,
.login-intro,
.login-brand p,
label,
dt,
dd {
  color: #344034 !important;
  opacity: 1 !important;
}

/* Formulare: wieder hell und sauber */
input,
textarea,
select,
.login-card input,
.login-card textarea,
.login-card select,
body[data-theme="dark"] input,
body[data-theme="dark"] textarea,
body[data-theme="dark"] select,
body[data-theme="auto"] input,
body[data-theme="auto"] textarea,
body[data-theme="auto"] select {
  background: #ffffff !important;
  color: #172017 !important;
  -webkit-text-fill-color: #172017 !important;
  caret-color: #172017 !important;
  border: 2px solid #aebbad !important;
  box-shadow: none !important;
}

input::placeholder,
textarea::placeholder,
.login-card input::placeholder {
  color: #687568 !important;
  opacity: 1 !important;
}

input:focus,
textarea:focus,
select:focus,
.login-card input:focus {
  border-color: #3f8f5a !important;
  outline: 3px solid rgba(63,143,90,.22) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Buttons: kein hartes Schwarz mehr */
button,
.button,
.login-card button,
.login-card .button {
  background: #3f8f5a !important;
  color: #ffffff !important;
  border: 0 !important;
  box-shadow: 0 8px 20px rgba(63,143,90,.22) !important;
}

.button.secondary,
button.secondary,
.secondary,
.tmc-actions .button,
.compact-button {
  background: #f7f8f4 !important;
  color: #172017 !important;
  border: 1px solid #cfd8cc !important;
  box-shadow: none !important;
}

/* Login: heller moderner Verlauf, keine dunklen Felder */
body:has(.login-page) {
  background:
    radial-gradient(circle at 14% 18%, rgba(63,143,90,.18), transparent 30%),
    radial-gradient(circle at 88% 78%, rgba(63,143,90,.14), transparent 36%),
    linear-gradient(135deg, #f8faf6 0%, #eaf2ea 54%, #dce8dd 100%) !important;
}

.login-page {
  min-height: 100vh !important;
  width: 100% !important;
  display: grid !important;
  place-items: center !important;
  padding: 32px 18px !important;
  background:
    radial-gradient(circle at 14% 18%, rgba(63,143,90,.18), transparent 30%),
    radial-gradient(circle at 88% 78%, rgba(63,143,90,.14), transparent 36%),
    linear-gradient(135deg, #f8faf6 0%, #eaf2ea 54%, #dce8dd 100%) !important;
}

.login-page::before,
.login-page::after {
  display: none !important;
}

.login-card {
  width: min(100%, 460px) !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(23,32,23,.14) !important;
  border-radius: 30px !important;
  box-shadow: 0 20px 55px rgba(23,32,23,.13) !important;
  color: #172017 !important;
}

.login-card *,
.login-card h1,
.login-card label,
.login-card p,
.login-card strong,
.login-card span,
.login-card small {
  color: #172017 !important;
}

.login-brand p,
.login-intro,
.login-card .hint {
  color: #344034 !important;
  font-weight: 700 !important;
}

/* Tracknotes verwalten: erst einmal stabil einspaltig */
.manage-layout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 22px !important;
  align-items: start !important;
}

.create-panel {
  position: static !important;
  width: 100% !important;
}

.tracknote-manage-card {
  overflow: hidden !important;
}

.tmc-head {
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: center !important;
}

.tmc-actions {
  grid-column: 1 / -1 !important;
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
}

.tmc-fields {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 12px !important;
}

.tmc-fields .wide {
  grid-column: span 2;
}

@media (max-width: 760px) {
  body.tn-body {
    background: #f3f5ef !important;
  }

  .app-content {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .login-page {
    min-height: 100vh !important;
    place-items: start center !important;
    padding-top: 24px !important;
  }

  .login-card {
    border-radius: 24px !important;
    padding: 22px !important;
  }

  .tmc-head {
    grid-template-columns: 48px minmax(0, 1fr) !important;
  }

  .tmc-fields,
  .tmc-fields .wide {
    grid-template-columns: 1fr !important;
    grid-column: auto !important;
  }

  .tmc-actions .button,
  .compact-button {
    width: 100% !important;
  }

  input,
  textarea,
  select {
    font-size: 1rem !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.12 UI TOUCHUPS
   Gezielte Korrekturen nach PC/Mobile-Test.
   ========================================================= */

:root {
  --notice: #f3ebbf;
  --notice-strong: #d9c86a;
}

/* Browser-Autofill soll NICHT schwarz werden */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill,
.login-card input:-webkit-autofill,
.login-card input:-webkit-autofill:hover,
.login-card input:-webkit-autofill:focus {
  -webkit-text-fill-color: #172017 !important;
  caret-color: #172017 !important;
  background-color: #fff8d7 !important;
  background-image: none !important;
  box-shadow: 0 0 0 1000px #fff8d7 inset !important;
  border-color: #d9c86a !important;
  color: #172017 !important;
}

/* Verwaltungsbutton nicht schwarz, sondern freundlich grün */
.side-nav .admin-link,
.side-nav .admin-link:hover,
.side-nav .admin-link:focus {
  background: #e8f4ec !important;
  color: #245f3d !important;
  border: 1px solid #b9dbc4 !important;
  box-shadow: none !important;
}

/* Hinweis-/Neu-Badge in warmem Gelb statt Warn-Rot */
.badge-alert,
.nav-badge {
  background: #f3ebbf !important;
  color: #172017 !important;
  border-color: #d9c86a !important;
}

/* Mobile Sidebar: Logo nicht so weit nach unten drücken */
@media (max-width: 960px) {
  .app-sidebar {
    padding-top: 22px !important;
  }

  .sidebar-close {
    top: 14px !important;
    right: 14px !important;
    background: #f7f8f4 !important;
    color: #172017 !important;
    border: 1px solid #cfd8cc !important;
  }

  .brand-block {
    padding-right: 52px !important;
    margin-bottom: 26px !important;
  }
}

/* Neue Tracknote: Hover auch bei Hauptgruppe besser sichtbar */
.category-package:hover,
.category-package[open] {
  border-color: #9fcaaa !important;
  background: #f7fbf8 !important;
}

.category-package summary:hover {
  color: #245f3d !important;
}


/* v0.4.13 Brand/Favicon Prep + Security UI */
.brand-word {
  font-weight: 950;
  letter-spacing: -.04em;
}

.brand-track {
  color: #245f3d !important;
}

.brand-note {
  color: #3f8f5a !important;
}

.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border-radius: inherit;
}

.mobile-brand {
  font-weight: 950;
  letter-spacing: -.04em;
}

/* Security lock reset buttons */
.security-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}


/* =========================================================
   TRACKNOTE v0.4.14 BRAND CLEANUP
   ========================================================= */

/* Logo ohne feste Hintergrundfläche */
.brand-mark {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
}

.brand-mark img {
  width: 42px !important;
  height: 42px !important;
  object-fit: contain !important;
  display: block !important;
}

/* Brand sauber in einer Zeile */
.brand-block {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}

.brand-text {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-width: 0 !important;
}

.brand-word {
  display: inline-flex !important;
  align-items: baseline !important;
  line-height: 1 !important;
  font-size: 1.32rem !important;
}

.brand-sub,
.brand-block small {
  margin-top: 4px !important;
  color: #5c6d5e !important;
  font-size: .82rem !important;
}

/* Login ebenfalls sauber */
.login-brand {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}

.login-brand .brand-mark img {
  width: 56px !important;
  height: 56px !important;
}

/* Vorhandene Tracknotes leicht abheben */
.tracknote-manage-card,
.entry-card,
.diary-card,
.card.diary-card {
  background: linear-gradient(180deg, #f4faf5 0%, #edf5ef 100%) !important;
  border: 1px solid #d5e6d8 !important;
}

.tracknote-manage-card:hover,
.entry-card:hover,
.diary-card:hover {
  background: linear-gradient(180deg, #eef7f0 0%, #e5f1e8 100%) !important;
  border-color: #bdd6c3 !important;
}

/* Verwaltung ruhiger */
.manage-layout {
  gap: 24px !important;
}

/* Mobile */
@media (max-width: 760px) {
  .brand-word {
    font-size: 1.16rem !important;
  }

  .brand-mark img {
    width: 36px !important;
    height: 36px !important;
  }

  .login-brand .brand-mark img {
    width: 48px !important;
    height: 48px !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.15 LOGO ALIGN
   Logo in Login und Sidebar sauber zur Wortmarke ausrichten.
   ========================================================= */

.brand-block,
.login-brand {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.brand-block .brand-mark,
.login-brand .brand-mark {
  flex: 0 0 auto !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.brand-block .brand-mark,
.brand-block .brand-mark img {
  width: 42px !important;
  height: 42px !important;
}

.login-brand .brand-mark,
.login-brand .brand-mark img {
  width: 58px !important;
  height: 58px !important;
}

.brand-block .brand-mark img,
.login-brand .brand-mark img {
  object-fit: contain !important;
  display: block !important;
  border-radius: 0 !important;
}

.brand-text {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  line-height: 1.1 !important;
}

.brand-word {
  display: inline-flex !important;
  align-items: baseline !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.login-brand .brand-word {
  font-size: 2.05rem !important;
}

.brand-sub,
.brand-block small,
.login-brand p {
  display: block !important;
  margin-top: 5px !important;
  line-height: 1.25 !important;
}

@media (max-width: 760px) {
  .brand-block {
    gap: 10px !important;
  }

  .brand-block .brand-mark,
  .brand-block .brand-mark img {
    width: 36px !important;
    height: 36px !important;
  }

  .login-brand .brand-mark,
  .login-brand .brand-mark img {
    width: 50px !important;
    height: 50px !important;
  }

  .login-brand .brand-word {
    font-size: 1.8rem !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.16 MESSAGES + BRAND FIX
   ========================================================= */

/* Placeholder sind Hinweise, kein echter Inhalt */
input::placeholder,
textarea::placeholder,
.login-card input::placeholder,
.feedback-card textarea::placeholder,
.form textarea::placeholder {
  color: #8a948b !important;
  opacity: 1 !important;
  font-style: italic;
  font-weight: 500 !important;
}

/* Brand Layout:
   [Logo] tracknote
   Untertitel darunter
*/
.brand-block,
.login-brand {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  align-items: flex-start !important;
}

.brand-top {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.brand-mark {
  display: grid !important;
  place-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}

.brand-mark img {
  width: 42px !important;
  height: 42px !important;
  object-fit: contain !important;
  display: block !important;
  border-radius: 0 !important;
}

.login-brand .brand-mark img {
  width: 56px !important;
  height: 56px !important;
}

.brand-word {
  display: inline-flex !important;
  align-items: baseline !important;
  margin: 0 !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.04em !important;
}

.brand-track,
.login-brand .brand-track {
  color: #245f3d !important;
}

.brand-note,
.login-brand .brand-note {
  color: #3f8f5a !important;
}

.brand-sub,
.brand-block small,
.login-brand p.brand-sub {
  margin: 0 !important;
  margin-left: 54px !important;
  color: #5c6d5e !important;
  font-size: .82rem !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}

.login-brand .brand-sub {
  margin-left: 68px !important;
}

.login-brand .brand-word {
  font-size: 2.05rem !important;
}

@media (max-width: 760px) {
  .brand-mark img {
    width: 36px !important;
    height: 36px !important;
  }

  .login-brand .brand-mark img {
    width: 48px !important;
    height: 48px !important;
  }

  .brand-sub,
  .brand-block small {
    margin-left: 48px !important;
  }

  .login-brand .brand-sub {
    margin-left: 60px !important;
  }

  .login-brand .brand-word {
    font-size: 1.8rem !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.17 LEGAL TEMPLATES
   ========================================================= */

input::placeholder,
textarea::placeholder,
.form input::placeholder,
.form textarea::placeholder {
  color: #adb7af !important;
  opacity: 1 !important;
  font-style: italic;
  font-weight: 450 !important;
}

.legal-hero {
  align-items: center;
}

.legal-brand .brand-sub {
  margin-left: 54px !important;
}

.legal-grid .feature-card {
  min-height: auto;
}

.legal-block {
  line-height: 1.7;
}

.legal-block p {
  margin: 0 0 14px;
}

.app-footer a {
  color: inherit;
  text-decoration: none;
  font-weight: 750;
}

.app-footer a:hover {
  text-decoration: underline;
}


/* TRACKNOTE v0.4.18/19 COMBINED UX PATCH */

.brand-separator {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(63,143,90,.08), rgba(63,143,90,.28), rgba(63,143,90,.08));
  margin: 14px 0 18px;
}

.side-nav-legal {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(63,143,90,.14);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.side-nav-legal a {
  opacity: .88;
  font-size: .94rem;
}

input::placeholder,
textarea::placeholder {
  color: #b6c0b8 !important;
}

button[disabled] {
  opacity: .75;
  cursor: wait;
}


/* v0.4.19.1 Sidebar Fix */

.brand-separator{
  width:100%;
  height:1px;
  background:rgba(63,143,90,.14);
  margin:6px 0 10px;
}

.side-nav-legal{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(63,143,90,.14);
  display:flex;
  flex-direction:column;
  gap:4px;
}

.side-nav-legal a{
  font-size:.92rem;
  opacity:.9;
}


/* =========================================================
   TRACKNOTE v0.4.19.2 COMPACT MOBILE FORMS
   Ziel: Tagebücher/Formulare auf Handy weniger aufgeblasen.
   Nur Mobile/kleine Screens.
   ========================================================= */

@media (max-width: 760px) {

  .card,
  .panel-card,
  .tracknote-manage-card,
  .entry-card,
  .message-card,
  .feature-card {
    padding: 14px !important;
    border-radius: 20px !important;
  }

  .form {
    gap: 10px !important;
  }

  label {
    gap: 5px !important;
    margin-bottom: 8px !important;
    font-size: .96rem !important;
  }

  input,
  textarea,
  select {
    min-height: 42px !important;
    padding: 11px 12px !important;
    border-radius: 14px !important;
    font-size: 1rem !important;
  }

  textarea {
    min-height: 96px !important;
  }

  .field-grid,
  .tmc-fields,
  .perm-grid,
  .profile-grid,
  .two-col {
    gap: 10px !important;
  }

  .page-hero,
  .topbar {
    padding: 18px !important;
    border-radius: 22px !important;
    margin-bottom: 14px !important;
  }

  .page-hero h1,
  .topbar h1 {
    font-size: 1.72rem !important;
    line-height: 1.08 !important;
  }

  .section-head,
  .panel-head {
    margin-bottom: 12px !important;
  }

  .entry-list,
  .tracknote-manage-list,
  .message-list {
    gap: 10px !important;
  }

  .entry-head {
    margin-bottom: 8px !important;
    gap: 8px !important;
  }

  .entry-values {
    gap: 6px !important;
  }

  .mini-stats {
    gap: 8px !important;
  }

  .mini-stats div,
  dl div {
    padding: 10px !important;
    border-radius: 14px !important;
  }

  button,
  .button,
  .compact-button {
    min-height: 42px !important;
    padding: 10px 13px !important;
    border-radius: 14px !important;
  }

  .checkbox-grid label {
    padding: 9px 10px !important;
    border-radius: 13px !important;
  }

  .category-package {
    padding: 9px 10px !important;
    border-radius: 14px !important;
  }

  .category-package summary {
    min-height: 34px !important;
  }

  .message-body {
    padding: 12px !important;
    border-radius: 14px !important;
    line-height: 1.55 !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.19.5 DASHBOARD WELCOME + PRIVACY
   ========================================================= */

.dashboard-welcome {
  font-style: italic;
  font-weight: 750;
  color: #4e6251 !important;
  max-width: 720px;
}

.dashboard-welcome::before {
  content: "“";
}

.dashboard-welcome::after {
  content: "”";
}

.legal-section {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.legal-section ul {
  margin: 10px 0 0 18px;
  padding: 0;
}

.legal-section li {
  margin-bottom: 6px;
}

@media (max-width: 760px) {
  .legal-section {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .dashboard-welcome {
    font-size: .98rem;
  }
}


/* TRACKNOTE v0.4.19.6 UI FINISH */

.dashboard-welcome{
  white-space:pre-line;
  line-height:1.55;
}

.brand-sub{
  margin-bottom:4px !important;
}

.brand-separator{
  margin-top:4px !important;
}

.legal-section{
  align-items:stretch;
}

.legal-section .card,
.legal-section .feature-card,
.legal-section article{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-self:stretch;
  height:100%;
}

.legal-section h2{
  overflow-wrap:break-word;
  hyphens:auto;
}

.legal-section .card-icon{
  display:block;
  margin-bottom:8px;
}


/* =========================================================
   TRACKNOTE v0.4.19.9 UI HARMONIZE
   Sidebar-Struktur, Card-Icons, Card-Grids und Header-Actions.
   ========================================================= */

/* Sidebar als klare Bereiche: Header / Navigation / Footer */
.app-sidebar {
  display: flex !important;
  flex-direction: column !important;
}

.sidebar-header {
  padding-bottom: 10px !important;
  margin-bottom: 18px !important;
  border-bottom: 1px solid rgba(63,143,90,.16) !important;
}

.sidebar-header .brand-block,
.sidebar-header .brand-sub {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.sidebar-header .brand-sub {
  margin-top: 6px !important;
}

.brand-separator {
  display: none !important;
}

.side-nav {
  flex: 1 1 auto !important;
}

.sidebar-footer {
  margin-top: auto !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(63,143,90,.16) !important;
}

.sidebar-footer .side-nav-legal {
  border-top: 0 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

.sidebar-footer .sidebar-user {
  border-top: 1px solid rgba(63,143,90,.16) !important;
  padding-top: 14px !important;
}

/* Card-Icons global heller, sauberer und mobil besser zentriert */
.card-icon,
.feature-card .card-icon,
.card-top .card-icon,
span.card-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 54px !important;
  height: 54px !important;
  min-width: 54px !important;
  min-height: 54px !important;
  padding: 0 !important;
  border-radius: 18px !important;
  background: #dcefdc !important;
  color: #36503a !important;
  line-height: 1 !important;
  font-size: 1.55rem !important;
  text-align: center !important;
}

/* Grid-Cards: Inhalte immer oben ausrichten, Cards gleichmäßig strecken */
.cards-grid {
  align-items: stretch !important;
}

.cards-grid > .card,
.cards-grid > article,
.cards-grid > a.card,
.cards-grid .feature-card,
.diary-card-modern,
.legal-section .feature-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-self: stretch !important;
  height: 100% !important;
}

/* Header-Actions einheitlicher:
   Desktop: links Titel/Text, rechts Buttons
   Mobile: Titel/Text oben, Buttons darunter */
.page-hero,
.topbar {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 22px !important;
}

.page-hero > div:first-child,
.topbar > div:first-child {
  min-width: 0 !important;
}

.hero-actions,
.actions,
.topbar .actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

.page-hero .hero-actions,
.topbar .actions {
  margin-left: auto !important;
}

/* Userverwaltung / Root-Formulare: Desktop-Fläche besser nutzen */
@media (min-width: 900px) {
  .form .two-col,
  .two-col,
  .profile-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 16px !important;
  }

  .form label {
    margin-bottom: 8px !important;
  }

  .form input,
  .form select,
  .form textarea {
    min-width: 0 !important;
  }

  select[name*="role"],
  select[name*="global_role"],
  select[name*="user_role"],
  .role-select {
    min-width: 190px !important;
  }
}

@media (max-width: 760px) {
  .page-hero,
  .topbar {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .hero-actions,
  .actions,
  .topbar .actions {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  .hero-actions .button,
  .actions .button,
  .topbar .actions .button {
    flex: 1 1 auto !important;
  }

  .card-icon,
  .feature-card .card-icon,
  .card-top .card-icon,
  span.card-icon {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    font-size: 1.42rem !important;
    border-radius: 16px !important;
  }
}


/* TRACKNOTE v0.4.20.0 SIDEBAR / HEADER FIX */

.sidebar-header,
.sidebar-footer,
.sidebar-footer .sidebar-user,
.side-nav-legal {
  border-color: rgba(80,90,85,.35) !important;
}

.sidebar-header {
  border-bottom: 1px solid rgba(80,90,85,.35) !important;
  padding-bottom: 14px !important;
  margin-bottom: 18px !important;
}

.sidebar-footer {
  border-top: 1px solid rgba(80,90,85,.35) !important;
}

.sidebar-footer .sidebar-user {
  border-top: 1px solid rgba(80,90,85,.35) !important;
}

.page-hero,
.hero-card,
.topbar,
.page-header {
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:24px !important;
}

.page-hero > :first-child,
.hero-card > :first-child,
.page-header > :first-child {
  flex:1 1 auto !important;
  min-width:0 !important;
}

.hero-actions,
.page-actions,
.topbar .actions,
.page-hero .button-group,
.page-hero .actions {
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  margin-left:auto !important;
}

@media (max-width:760px){
  .page-hero,
  .hero-card,
  .topbar,
  .page-header {
    flex-direction:column !important;
    align-items:flex-start !important;
  }

  .hero-actions,
  .page-actions,
  .topbar .actions,
  .page-hero .button-group,
  .page-hero .actions {
    width:100% !important;
    justify-content:flex-start !important;
    margin-left:0 !important;
  }
}


/* TRACKNOTE v0.4.20.1 UI FINAL BEFORE CORE */

:root {
  --tn-separator: rgba(82,90,86,.42);
}

.sidebar-header {
  border-bottom: 1px solid var(--tn-separator) !important;
  padding-bottom: 12px !important;
  margin-bottom: 14px !important;
}

.sidebar-footer {
  border-top: 1px solid var(--tn-separator) !important;
  padding-top: 14px !important;
}

.sidebar-footer .sidebar-user {
  border-top: 1px solid var(--tn-separator) !important;
  padding-top: 14px !important;
}

.side-nav-legal {
  border-top: 0 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

.brand-separator {
  display: none !important;
}

/* Header: nur Container ausrichten, Buttons nicht aufblasen */
.page-hero,
.topbar,
.page-header,
.hero-card {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 22px !important;
}

.page-hero > :first-child,
.topbar > :first-child,
.page-header > :first-child,
.hero-card > :first-child {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.hero-actions,
.page-actions,
.topbar .actions,
.page-header .actions,
.page-hero .actions {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  margin-left: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.button,
button,
input[type="submit"],
input[type="button"],
a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.15 !important;
  min-height: 42px !important;
  padding: 10px 15px !important;
  white-space: nowrap !important;
}

.page-hero .button,
.page-hero a.button,
.topbar .button,
.topbar a.button,
.hero-actions .button,
.hero-actions a.button {
  width: auto !important;
  flex: 0 0 auto !important;
}

/* Card-Icons und Grid-Ausrichtung */
.cards-grid {
  align-items: stretch !important;
}

.cards-grid > .card,
.cards-grid > article,
.cards-grid > a.card,
.cards-grid .feature-card,
.diary-card-modern,
.legal-section .feature-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-self: stretch !important;
  height: 100% !important;
}

.card-icon,
.feature-card .card-icon,
.card-top .card-icon,
span.card-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 54px !important;
  height: 54px !important;
  min-width: 54px !important;
  min-height: 54px !important;
  padding: 0 !important;
  border-radius: 18px !important;
  background: #dcefdc !important;
  color: #36503a !important;
  line-height: 1 !important;
  font-size: 1.52rem !important;
  text-align: center !important;
}

/* Desktop-Formulare */
@media (min-width: 900px) {
  .form .two-col,
  .two-col,
  .profile-grid,
  .field-grid,
  .perm-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 16px !important;
  }

  .form label {
    margin-bottom: 8px !important;
  }

  .form input,
  .form select,
  .form textarea {
    min-width: 0 !important;
  }

  select[name*="role"],
  select[name*="global_role"],
  select[name*="user_role"],
  .role-select {
    min-width: 210px !important;
  }
}

/* Mobile: Titel oben, Buttons darunter */
@media (max-width: 760px) {
  .page-hero,
  .topbar,
  .page-header,
  .hero-card {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 14px !important;
  }

  .hero-actions,
  .page-actions,
  .topbar .actions,
  .page-header .actions,
  .page-hero .actions {
    width: 100% !important;
    margin-left: 0 !important;
    justify-content: flex-start !important;
  }

  .hero-actions .button,
  .page-actions .button,
  .topbar .actions .button,
  .page-hero .actions .button,
  .page-hero a.button {
    flex: 1 1 auto !important;
    width: auto !important;
    white-space: normal !important;
  }

  .button,
  button,
  input[type="submit"],
  input[type="button"],
  a.button {
    min-height: 42px !important;
    padding: 10px 13px !important;
  }

  .card-icon,
  .feature-card .card-icon,
  .card-top .card-icon,
  span.card-icon {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    font-size: 1.4rem !important;
    border-radius: 16px !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.20.2 CSS / THEME CLEANUP
   Ziel:
   - linke Navigation wieder kompakt, nicht als große Buttons
   - Themes greifen auch mobil, alle Farben über Variablen
   - klare Variablennamen als Grundlage für spätere Style-Doku
   ========================================================= */

/* ---------- Theme Tokens / Design Tokens ---------- */

body {
  --tn-bg: var(--bg);
  --tn-surface: var(--surface);
  --tn-surface-soft: var(--surface-soft);
  --tn-text: var(--text);
  --tn-muted: var(--muted);
  --tn-border: var(--border);
  --tn-primary: var(--primary);
  --tn-primary-dark: var(--primary-dark);
  --tn-primary-soft: var(--primary-soft);

  --tn-sidebar-bg: rgba(255,255,255,.94);
  --tn-sidebar-text: #2d352e;
  --tn-sidebar-muted: #667269;
  --tn-sidebar-link-bg: transparent;
  --tn-sidebar-link-hover-bg: rgba(63,143,90,.12);
  --tn-sidebar-link-active-bg: rgba(63,143,90,.18);
  --tn-sidebar-link-text: #30372f;
  --tn-sidebar-separator: rgba(84,96,88,.38);

  --tn-card-icon-bg: #dcefdc;
  --tn-card-icon-text: #36503a;

  --tn-button-min-height: 42px;
  --tn-button-padding-y: 10px;
  --tn-button-padding-x: 15px;
}

/* explizites Light Theme */
body[data-theme="light"] {
  --bg: #f4f8f2;
  --surface: #ffffff;
  --surface-soft: #eef6ef;
  --text: #171d18;
  --muted: #526052;
  --border: #d7e1d7;
  --primary-soft: rgba(63,143,90,.14);
  --shadow: 0 16px 42px rgba(32,55,38,.10);

  --tn-sidebar-bg: rgba(255,255,255,.96);
  --tn-sidebar-text: #2d352e;
  --tn-sidebar-muted: #667269;
  --tn-sidebar-link-hover-bg: rgba(63,143,90,.12);
}

/* dunkles Theme */
body[data-theme="dark"] {
  --bg: #111512;
  --surface: #1a201c;
  --surface-soft: #232a25;
  --text: #f3f5ef;
  --muted: #aeb7ad;
  --border: #30392f;
  --primary-soft: #173322;
  --shadow: 0 16px 42px rgba(0,0,0,.28);

  --tn-sidebar-bg: rgba(22,28,24,.96);
  --tn-sidebar-text: #f3f5ef;
  --tn-sidebar-muted: #aeb7ad;
  --tn-sidebar-link-text: #eef3ec;
  --tn-sidebar-link-hover-bg: rgba(79,163,107,.20);
  --tn-sidebar-link-active-bg: rgba(79,163,107,.28);
  --tn-sidebar-separator: rgba(170,184,171,.30);
  --tn-card-icon-bg: #24382a;
  --tn-card-icon-text: #d9f4de;
}

/* Auto Dark auch mit denselben tn-Tokens */
@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] {
    --bg: #111512;
    --surface: #1a201c;
    --surface-soft: #232a25;
    --text: #f3f5ef;
    --muted: #aeb7ad;
    --border: #30392f;
    --primary-soft: #173322;
    --shadow: 0 16px 42px rgba(0,0,0,.28);

    --tn-sidebar-bg: rgba(22,28,24,.96);
    --tn-sidebar-text: #f3f5ef;
    --tn-sidebar-muted: #aeb7ad;
    --tn-sidebar-link-text: #eef3ec;
    --tn-sidebar-link-hover-bg: rgba(79,163,107,.20);
    --tn-sidebar-link-active-bg: rgba(79,163,107,.28);
    --tn-sidebar-separator: rgba(170,184,171,.30);
    --tn-card-icon-bg: #24382a;
    --tn-card-icon-text: #d9f4de;
  }
}

/* Accent-Farben */
body[data-accent="blue"] {
  --primary: #3f78b5;
  --primary-dark: #24517d;
  --primary-soft: rgba(63,120,181,.14);
}

body[data-accent="violet"] {
  --primary: #7b5bb6;
  --primary-dark: #563e86;
  --primary-soft: rgba(123,91,182,.14);
}

body[data-accent="orange"] {
  --primary: #c47b36;
  --primary-dark: #87511e;
  --primary-soft: rgba(196,123,54,.16);
}

/* Font-Größen */
body[data-font-size="compact"] { font-size: 15px; }
body[data-font-size="normal"] { font-size: 16px; }
body[data-font-size="large"] { font-size: 17px; }
body[data-font-size="xlarge"] { font-size: 18px; }

/* Dichte */
body[data-density="compact"] {
  --tn-button-min-height: 38px;
  --tn-button-padding-y: 8px;
  --tn-button-padding-x: 12px;
}

/* ---------- Sidebar Cleanup ---------- */

.app-sidebar {
  background: var(--tn-sidebar-bg) !important;
  color: var(--tn-sidebar-text) !important;
  border-right: 1px solid var(--tn-sidebar-separator) !important;
  justify-content: flex-start !important;
}

.sidebar-header {
  border-bottom: 1px solid var(--tn-sidebar-separator) !important;
  padding-bottom: 12px !important;
  margin-bottom: 12px !important;
}

.side-nav {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  flex: 1 1 auto !important;
}

/* Normale Navigation kompakt, nicht große Dashboard-Buttons */
.side-nav a {
  min-height: 38px !important;
  padding: 8px 10px !important;
  border-radius: 11px !important;
  background: var(--tn-sidebar-link-bg) !important;
  color: var(--tn-sidebar-link-text) !important;
  font-weight: 720 !important;
  font-size: .94rem !important;
  line-height: 1.18 !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  box-shadow: none !important;
}

.side-nav a:hover,
.side-nav a:focus {
  background: var(--tn-sidebar-link-hover-bg) !important;
  color: var(--primary-dark) !important;
}

/* Verwaltung darf hervorgehoben sein, aber nicht schwarz/groß */
.side-nav .admin-link {
  margin-top: 8px !important;
  background: var(--tn-sidebar-link-active-bg) !important;
  color: var(--primary-dark) !important;
  border: 1px solid rgba(63,143,90,.16) !important;
}

body[data-theme="dark"] .side-nav .admin-link {
  color: #d9f4de !important;
}

.sidebar-footer {
  margin-top: auto !important;
  border-top: 1px solid var(--tn-sidebar-separator) !important;
  padding-top: 12px !important;
}

.side-nav-legal {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  margin-bottom: 12px !important;
}

.side-nav-legal a {
  min-height: 32px !important;
  padding: 6px 8px !important;
  border-radius: 10px !important;
  color: var(--tn-sidebar-link-text) !important;
  font-size: .9rem !important;
  font-weight: 680 !important;
}

.side-nav-legal a:hover {
  background: var(--tn-sidebar-link-hover-bg) !important;
}

.sidebar-user {
  color: var(--tn-sidebar-text) !important;
  border-top: 1px solid var(--tn-sidebar-separator) !important;
  padding-top: 12px !important;
}

.sidebar-user small {
  color: var(--tn-sidebar-muted) !important;
}

/* ---------- Mobile Theme Fixes ---------- */

.mobile-topbar {
  background: var(--tn-sidebar-bg) !important;
  border-bottom: 1px solid var(--tn-sidebar-separator) !important;
  color: var(--tn-sidebar-text) !important;
}

.icon-button {
  background: var(--surface) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}

.bottom-nav {
  background: var(--tn-sidebar-bg) !important;
  border-top: 1px solid var(--tn-sidebar-separator) !important;
}

.bottom-nav a {
  color: var(--tn-sidebar-text) !important;
}

body[data-theme="dark"] .bottom-nav,
body[data-theme="dark"] .mobile-topbar {
  box-shadow: 0 -8px 30px rgba(0,0,0,.25);
}

/* ---------- Inhalte müssen Theme-Variablen respektieren ---------- */

body,
.app-main,
.app-content {
  background: var(--bg) !important;
  color: var(--text) !important;
}

.card,
.section-card,
.page-hero,
.topbar,
.feature-card,
.add-card,
.diary-card-modern,
.entry-card,
.message-card {
  background-color: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

.page-hero {
  background-image: linear-gradient(135deg, var(--surface), var(--surface-soft)) !important;
}

.muted,
.card p,
.section-card p,
.page-hero p,
.topbar p {
  color: var(--muted) !important;
}

input,
textarea,
select {
  background: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

input::placeholder,
textarea::placeholder {
  color: color-mix(in srgb, var(--muted) 72%, transparent) !important;
}

/* ---------- Buttons: kompakt und mittig ---------- */

.button,
button,
input[type="submit"],
input[type="button"],
a.button {
  min-height: var(--tn-button-min-height) !important;
  padding: var(--tn-button-padding-y) var(--tn-button-padding-x) !important;
  line-height: 1.15 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* ---------- Card Icons ---------- */

.card-icon,
.feature-card .card-icon,
.card-top .card-icon,
span.card-icon {
  background: var(--tn-card-icon-bg) !important;
  color: var(--tn-card-icon-text) !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ---------- Mobile Navigation kompakt halten ---------- */

@media (max-width: 960px) {
  .app-sidebar {
    background: var(--tn-sidebar-bg) !important;
  }

  .side-nav a {
    min-height: 38px !important;
    padding: 8px 10px !important;
  }
}

@media (max-width: 520px) {
  .side-nav a {
    min-height: 36px !important;
    padding: 7px 9px !important;
    font-size: .92rem !important;
  }
}


/* TRACKNOTE v0.4.20.3 CSS TOKENS / DARK POLISH */

body {
  --tn-page-bg: var(--bg);
  --tn-panel-bg: var(--surface);
  --tn-panel-bg-soft: var(--surface-soft);
  --tn-panel-bg-elevated: #ffffff;

  --tn-text-main: var(--text);
  --tn-text-muted: var(--muted);
  --tn-text-soft: #6d796f;
  --tn-heading: var(--text);

  --tn-line: var(--border);
  --tn-line-strong: rgba(82,90,86,.42);

  --tn-field-bg: #ffffff;
  --tn-field-bg-focus: #fbfffc;
  --tn-field-text: #172017;
  --tn-field-border: #cfdcd1;
  --tn-field-label: #4f5d52;
  --tn-field-help: #718077;

  --tn-button-bg: var(--primary);
  --tn-button-text: #ffffff;
  --tn-button-secondary-bg: var(--surface-soft);
  --tn-button-secondary-text: var(--text);

  --tn-card-bg: var(--surface);
  --tn-card-bg-soft: var(--surface-soft);
  --tn-card-border: var(--border);
}

body[data-theme="light"] {
  --tn-page-bg: #f4f8f2;
  --tn-panel-bg: #ffffff;
  --tn-panel-bg-soft: #eef6ef;
  --tn-panel-bg-elevated: #ffffff;
  --tn-text-main: #172017;
  --tn-text-muted: #526052;
  --tn-text-soft: #6d796f;
  --tn-heading: #172017;
  --tn-line: #d7e1d7;
  --tn-line-strong: rgba(82,90,86,.42);
  --tn-field-bg: #ffffff;
  --tn-field-bg-focus: #fbfffc;
  --tn-field-text: #172017;
  --tn-field-border: #cfdcd1;
  --tn-field-label: #4f5d52;
  --tn-field-help: #718077;
  --tn-card-bg: #ffffff;
  --tn-card-bg-soft: #eef6ef;
  --tn-card-border: #d7e1d7;
}

body[data-theme="dark"] {
  --tn-page-bg: #111512;
  --tn-panel-bg: #1a201c;
  --tn-panel-bg-soft: #242b26;
  --tn-panel-bg-elevated: #202722;
  --tn-text-main: #f3f5ef;
  --tn-text-muted: #c4cec3;
  --tn-text-soft: #d2dbd0;
  --tn-heading: #f6f8f3;
  --tn-line: #364136;
  --tn-line-strong: rgba(185,200,185,.34);
  --tn-field-bg: #252c27;
  --tn-field-bg-focus: #2d352f;
  --tn-field-text: #f4f7f1;
  --tn-field-border: #4a574d;
  --tn-field-label: #d3ded2;
  --tn-field-help: #b2beb1;
  --tn-button-secondary-bg: #252c27;
  --tn-button-secondary-text: #f3f5ef;
  --tn-card-bg: #1a201c;
  --tn-card-bg-soft: #242b26;
  --tn-card-border: #364136;
}

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] {
    --tn-page-bg: #111512;
    --tn-panel-bg: #1a201c;
    --tn-panel-bg-soft: #242b26;
    --tn-panel-bg-elevated: #202722;
    --tn-text-main: #f3f5ef;
    --tn-text-muted: #c4cec3;
    --tn-text-soft: #d2dbd0;
    --tn-heading: #f6f8f3;
    --tn-line: #364136;
    --tn-line-strong: rgba(185,200,185,.34);
    --tn-field-bg: #252c27;
    --tn-field-bg-focus: #2d352f;
    --tn-field-text: #f4f7f1;
    --tn-field-border: #4a574d;
    --tn-field-label: #d3ded2;
    --tn-field-help: #b2beb1;
    --tn-button-secondary-bg: #252c27;
    --tn-button-secondary-text: #f3f5ef;
    --tn-card-bg: #1a201c;
    --tn-card-bg-soft: #242b26;
    --tn-card-border: #364136;
  }
}

body,
.app-main,
.app-content {
  background: var(--tn-page-bg) !important;
  color: var(--tn-text-main) !important;
}

h1, h2, h3, h4,
.card h2,
.feature-card h2,
.section-head h2,
.topbar h1,
.page-hero h1 {
  color: var(--tn-heading) !important;
}

.muted,
small,
.help,
.form-help,
.card p,
.section-card p,
.page-hero p,
.topbar p,
label small {
  color: var(--tn-text-muted) !important;
}

label,
.form label,
.field-label,
legend,
.form-group > span:first-child {
  color: var(--tn-field-label) !important;
  font-weight: 760;
}

.card,
.section-card,
.page-hero,
.topbar,
.feature-card,
.add-card,
.diary-card-modern,
.entry-card,
.message-card,
.panel-card {
  background-color: var(--tn-card-bg) !important;
  color: var(--tn-text-main) !important;
  border-color: var(--tn-card-border) !important;
}

.page-hero,
.topbar {
  background-image: linear-gradient(135deg, var(--tn-card-bg), var(--tn-card-bg-soft)) !important;
}

input,
textarea,
select {
  background: var(--tn-field-bg) !important;
  color: var(--tn-field-text) !important;
  border-color: var(--tn-field-border) !important;
}

input:focus,
textarea:focus,
select:focus {
  background: var(--tn-field-bg-focus) !important;
  border-color: var(--primary) !important;
  outline: 2px solid color-mix(in srgb, var(--primary) 28%, transparent) !important;
  outline-offset: 1px;
}

input::placeholder,
textarea::placeholder {
  color: color-mix(in srgb, var(--tn-field-help) 78%, transparent) !important;
  opacity: 1 !important;
}

body[data-theme="dark"] select,
body[data-theme="dark"] option {
  background: var(--tn-field-bg) !important;
  color: var(--tn-field-text) !important;
}

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] select,
  body[data-theme="auto"] option {
    background: var(--tn-field-bg) !important;
    color: var(--tn-field-text) !important;
  }
}

.button.secondary,
a.button.secondary,
button.secondary {
  background: var(--tn-button-secondary-bg) !important;
  color: var(--tn-button-secondary-text) !important;
  border-color: var(--tn-line) !important;
}

.mini-stats div,
dl div,
.stat-card,
.info-box {
  background: var(--tn-card-bg-soft) !important;
  color: var(--tn-text-main) !important;
  border-color: var(--tn-card-border) !important;
}

dt { color: var(--tn-text-muted) !important; }
dd { color: var(--tn-text-main) !important; }

.segmented button {
  background: var(--tn-card-bg-soft) !important;
  color: var(--tn-text-main) !important;
  border-color: var(--tn-line) !important;
}


/* TRACKNOTE v0.4.20.4 DARK FORM POLISH */

body[data-theme="dark"] {
  --tn-field-bg: #303832;
  --tn-field-bg-focus: #39423b;
  --tn-field-text: #f7faf5;
  --tn-field-border: #5a675d;
  --tn-field-label: #dce6da;
  --tn-field-help: #becabe;
  --tn-select-bg: #343d36;
  --tn-select-bg-hover: #3d473f;
  --tn-select-text: #f7faf5;
  --tn-button-secondary-bg: #344036;
  --tn-button-secondary-text: #f4faf1;
  --tn-button-secondary-border: #59685d;
}

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] {
    --tn-field-bg: #303832;
    --tn-field-bg-focus: #39423b;
    --tn-field-text: #f7faf5;
    --tn-field-border: #5a675d;
    --tn-field-label: #dce6da;
    --tn-field-help: #becabe;
    --tn-select-bg: #343d36;
    --tn-select-bg-hover: #3d473f;
    --tn-select-text: #f7faf5;
    --tn-button-secondary-bg: #344036;
    --tn-button-secondary-text: #f4faf1;
    --tn-button-secondary-border: #59685d;
  }
}

body[data-theme="dark"] input,
body[data-theme="dark"] textarea,
body[data-theme="dark"] select,
body[data-theme="dark"] .form input,
body[data-theme="dark"] .form textarea,
body[data-theme="dark"] .form select,
body[data-theme="dark"] .card input,
body[data-theme="dark"] .card textarea,
body[data-theme="dark"] .card select,
body[data-theme="dark"] .profile-grid input,
body[data-theme="dark"] .profile-grid textarea,
body[data-theme="dark"] .profile-grid select,
body[data-theme="dark"] .field-grid input,
body[data-theme="dark"] .field-grid textarea,
body[data-theme="dark"] .field-grid select,
body[data-theme="dark"] .perm-grid input,
body[data-theme="dark"] .perm-grid textarea,
body[data-theme="dark"] .perm-grid select,
body[data-theme="dark"] .message-card input,
body[data-theme="dark"] .message-card textarea,
body[data-theme="dark"] .message-card select {
  background-color: var(--tn-field-bg) !important;
  background-image: none !important;
  color: var(--tn-field-text) !important;
  border-color: var(--tn-field-border) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
}

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] input,
  body[data-theme="auto"] textarea,
  body[data-theme="auto"] select,
  body[data-theme="auto"] .form input,
  body[data-theme="auto"] .form textarea,
  body[data-theme="auto"] .form select,
  body[data-theme="auto"] .card input,
  body[data-theme="auto"] .card textarea,
  body[data-theme="auto"] .card select,
  body[data-theme="auto"] .profile-grid input,
  body[data-theme="auto"] .profile-grid textarea,
  body[data-theme="auto"] .profile-grid select,
  body[data-theme="auto"] .field-grid input,
  body[data-theme="auto"] .field-grid textarea,
  body[data-theme="auto"] .field-grid select,
  body[data-theme="auto"] .perm-grid input,
  body[data-theme="auto"] .perm-grid textarea,
  body[data-theme="auto"] .perm-grid select,
  body[data-theme="auto"] .message-card input,
  body[data-theme="auto"] .message-card textarea,
  body[data-theme="auto"] .message-card select {
    background-color: var(--tn-field-bg) !important;
    background-image: none !important;
    color: var(--tn-field-text) !important;
    border-color: var(--tn-field-border) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
  }
}

body[data-theme="dark"] select,
body[data-theme="dark"] option {
  background-color: var(--tn-select-bg) !important;
  color: var(--tn-select-text) !important;
}

body[data-theme="dark"] select:hover {
  background-color: var(--tn-select-bg-hover) !important;
}

body[data-theme="dark"] input:focus,
body[data-theme="dark"] textarea:focus,
body[data-theme="dark"] select:focus {
  background-color: var(--tn-field-bg-focus) !important;
  border-color: #7fbf8e !important;
  outline: 2px solid rgba(127,191,142,.25) !important;
}

body[data-theme="dark"] label,
body[data-theme="dark"] .form label,
body[data-theme="dark"] .field-label,
body[data-theme="dark"] legend,
body[data-theme="dark"] .form-group > span:first-child {
  color: var(--tn-field-label) !important;
}

body[data-theme="dark"] .form button,
body[data-theme="dark"] .card button,
body[data-theme="dark"] .actions button,
body[data-theme="dark"] .button.secondary,
body[data-theme="dark"] a.button.secondary,
body[data-theme="dark"] button.secondary {
  background-color: var(--tn-button-secondary-bg) !important;
  color: var(--tn-button-secondary-text) !important;
  border-color: var(--tn-button-secondary-border) !important;
}

body[data-theme="dark"] .form button:hover,
body[data-theme="dark"] .card button:hover,
body[data-theme="dark"] .button.secondary:hover {
  filter: brightness(1.08);
}

body[data-theme="dark"] input:-webkit-autofill,
body[data-theme="dark"] textarea:-webkit-autofill,
body[data-theme="dark"] select:-webkit-autofill {
  -webkit-text-fill-color: var(--tn-field-text) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--tn-field-bg) inset !important;
  box-shadow: 0 0 0 1000px var(--tn-field-bg) inset !important;
}


/* TRACKNOTE v0.4.20.5 DARK TRACKNOTE POLISH */

body[data-theme="dark"] {
  --tn-entry-bg: #1f2621;
  --tn-entry-bg-soft: #28312a;
  --tn-entry-field-bg: #303832;
  --tn-entry-field-border: #5a675d;
  --tn-entry-field-text: #f7faf5;
}

body[data-theme="dark"] .entry-card,
body[data-theme="dark"] .entry-list .card,
body[data-theme="dark"] .diary-card-modern,
body[data-theme="dark"] .tracknote-manage-card,
body[data-theme="dark"] .tracknote-manage-list .card,
body[data-theme="dark"] .tmc-fields,
body[data-theme="dark"] .category-package,
body[data-theme="dark"] details,
body[data-theme="dark"] .field-row,
body[data-theme="dark"] .field-preview,
body[data-theme="dark"] .entry-values,
body[data-theme="dark"] .entry-meta,
body[data-theme="dark"] .entry-head {
  background-color: var(--tn-entry-bg) !important;
  color: var(--tn-entry-field-text) !important;
  border-color: var(--tn-entry-field-border) !important;
}

body[data-theme="dark"] .entry-values div,
body[data-theme="dark"] .mini-stats div,
body[data-theme="dark"] dl div,
body[data-theme="dark"] .category-package,
body[data-theme="dark"] .field-preview,
body[data-theme="dark"] .field-row,
body[data-theme="dark"] .checkbox-grid label,
body[data-theme="dark"] .option-card,
body[data-theme="dark"] .template-card,
body[data-theme="dark"] .template-preview,
body[data-theme="dark"] .package-card {
  background-color: var(--tn-entry-bg-soft) !important;
  color: var(--tn-entry-field-text) !important;
  border-color: var(--tn-entry-field-border) !important;
}

body[data-theme="dark"] .field-grid input,
body[data-theme="dark"] .field-grid textarea,
body[data-theme="dark"] .field-grid select,
body[data-theme="dark"] .entry-form input,
body[data-theme="dark"] .entry-form textarea,
body[data-theme="dark"] .entry-form select,
body[data-theme="dark"] .entry-edit-form input,
body[data-theme="dark"] .entry-edit-form textarea,
body[data-theme="dark"] .entry-edit-form select,
body[data-theme="dark"] .diary-form input,
body[data-theme="dark"] .diary-form textarea,
body[data-theme="dark"] .diary-form select,
body[data-theme="dark"] .tracknote-form input,
body[data-theme="dark"] .tracknote-form textarea,
body[data-theme="dark"] .tracknote-form select {
  background-color: var(--tn-entry-field-bg) !important;
  background-image: none !important;
  color: var(--tn-entry-field-text) !important;
  border-color: var(--tn-entry-field-border) !important;
}

body[data-theme="dark"] table,
body[data-theme="dark"] th,
body[data-theme="dark"] td {
  background-color: var(--tn-entry-bg) !important;
  color: var(--tn-entry-field-text) !important;
  border-color: var(--tn-entry-field-border) !important;
}

body[data-theme="dark"] tr:nth-child(even) td {
  background-color: var(--tn-entry-bg-soft) !important;
}

@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] {
    --tn-entry-bg: #1f2621;
    --tn-entry-bg-soft: #28312a;
    --tn-entry-field-bg: #303832;
    --tn-entry-field-border: #5a675d;
    --tn-entry-field-text: #f7faf5;
  }

  body[data-theme="auto"] .entry-card,
  body[data-theme="auto"] .entry-list .card,
  body[data-theme="auto"] .diary-card-modern,
  body[data-theme="auto"] .tracknote-manage-card,
  body[data-theme="auto"] .tracknote-manage-list .card,
  body[data-theme="auto"] .tmc-fields,
  body[data-theme="auto"] .category-package,
  body[data-theme="auto"] details,
  body[data-theme="auto"] .field-row,
  body[data-theme="auto"] .field-preview,
  body[data-theme="auto"] .entry-values,
  body[data-theme="auto"] .entry-meta,
  body[data-theme="auto"] .entry-head {
    background-color: var(--tn-entry-bg) !important;
    color: var(--tn-entry-field-text) !important;
    border-color: var(--tn-entry-field-border) !important;
  }

  body[data-theme="auto"] .entry-values div,
  body[data-theme="auto"] .mini-stats div,
  body[data-theme="auto"] dl div,
  body[data-theme="auto"] .category-package,
  body[data-theme="auto"] .field-preview,
  body[data-theme="auto"] .field-row,
  body[data-theme="auto"] .checkbox-grid label,
  body[data-theme="auto"] .option-card,
  body[data-theme="auto"] .template-card,
  body[data-theme="auto"] .template-preview,
  body[data-theme="auto"] .package-card {
    background-color: var(--tn-entry-bg-soft) !important;
    color: var(--tn-entry-field-text) !important;
    border-color: var(--tn-entry-field-border) !important;
  }

  body[data-theme="auto"] .field-grid input,
  body[data-theme="auto"] .field-grid textarea,
  body[data-theme="auto"] .field-grid select,
  body[data-theme="auto"] .entry-form input,
  body[data-theme="auto"] .entry-form textarea,
  body[data-theme="auto"] .entry-form select,
  body[data-theme="auto"] .entry-edit-form input,
  body[data-theme="auto"] .entry-edit-form textarea,
  body[data-theme="auto"] .entry-edit-form select,
  body[data-theme="auto"] .diary-form input,
  body[data-theme="auto"] .diary-form textarea,
  body[data-theme="auto"] .diary-form select,
  body[data-theme="auto"] .tracknote-form input,
  body[data-theme="auto"] .tracknote-form textarea,
  body[data-theme="auto"] .tracknote-form select {
    background-color: var(--tn-entry-field-bg) !important;
    background-image: none !important;
    color: var(--tn-entry-field-text) !important;
    border-color: var(--tn-entry-field-border) !important;
  }
}


/* =========================================================
   TRACKNOTE v0.4.20.6 LIGHT THEME FIX
   Ziel:
   Explizit gewähltes Theme "Hell" muss immer Vorrang haben,
   auch wenn das Gerät/System im Darkmode ist.
   ========================================================= */

/* Explizites Hell-Theme final erzwingen */
body[data-theme="light"] {
  --bg: #f4f8f2 !important;
  --surface: #ffffff !important;
  --surface-soft: #eef6ef !important;
  --text: #172017 !important;
  --muted: #526052 !important;
  --border: #d7e1d7 !important;
  --primary-soft: rgba(63,143,90,.14) !important;

  --tn-page-bg: #f4f8f2 !important;
  --tn-panel-bg: #ffffff !important;
  --tn-panel-bg-soft: #eef6ef !important;
  --tn-panel-bg-elevated: #ffffff !important;

  --tn-text-main: #172017 !important;
  --tn-text-muted: #526052 !important;
  --tn-text-soft: #6d796f !important;
  --tn-heading: #172017 !important;

  --tn-line: #d7e1d7 !important;
  --tn-line-strong: rgba(82,90,86,.42) !important;

  --tn-field-bg: #ffffff !important;
  --tn-field-bg-focus: #fbfffc !important;
  --tn-field-text: #172017 !important;
  --tn-field-border: #cfdcd1 !important;
  --tn-field-label: #4f5d52 !important;
  --tn-field-help: #718077 !important;

  --tn-select-bg: #ffffff !important;
  --tn-select-bg-hover: #f4faf5 !important;
  --tn-select-text: #172017 !important;

  --tn-card-bg: #ffffff !important;
  --tn-card-bg-soft: #eef6ef !important;
  --tn-card-border: #d7e1d7 !important;

  --tn-entry-bg: #ffffff !important;
  --tn-entry-bg-soft: #eef6ef !important;
  --tn-entry-field-bg: #ffffff !important;
  --tn-entry-field-border: #cfdcd1 !important;
  --tn-entry-field-text: #172017 !important;

  --tn-sidebar-bg: rgba(255,255,255,.96) !important;
  --tn-sidebar-text: #2d352e !important;
  --tn-sidebar-muted: #667269 !important;
  --tn-sidebar-link-text: #30372f !important;
  --tn-sidebar-link-hover-bg: rgba(63,143,90,.12) !important;
  --tn-sidebar-separator: rgba(84,96,88,.38) !important;

  --tn-card-icon-bg: #dcefdc !important;
  --tn-card-icon-text: #36503a !important;

  --tn-button-secondary-bg: #eef6ef !important;
  --tn-button-secondary-text: #172017 !important;
  --tn-button-secondary-border: #d7e1d7 !important;
}

/* Falls Gerät im Darkmode ist: Light bleibt trotzdem Light */
@media (prefers-color-scheme: dark) {
  body[data-theme="light"] {
    --bg: #f4f8f2 !important;
    --surface: #ffffff !important;
    --surface-soft: #eef6ef !important;
    --text: #172017 !important;
    --muted: #526052 !important;
    --border: #d7e1d7 !important;

    --tn-page-bg: #f4f8f2 !important;
    --tn-card-bg: #ffffff !important;
    --tn-card-bg-soft: #eef6ef !important;
    --tn-text-main: #172017 !important;
    --tn-text-muted: #526052 !important;
    --tn-heading: #172017 !important;

    --tn-field-bg: #ffffff !important;
    --tn-field-bg-focus: #fbfffc !important;
    --tn-field-text: #172017 !important;
    --tn-field-border: #cfdcd1 !important;
    --tn-field-label: #4f5d52 !important;

    --tn-select-bg: #ffffff !important;
    --tn-select-text: #172017 !important;

    --tn-sidebar-bg: rgba(255,255,255,.96) !important;
    --tn-sidebar-text: #2d352e !important;
    --tn-sidebar-link-text: #30372f !important;
  }
}

/* konkrete Elemente im Light Theme zurückholen */
body[data-theme="light"],
body[data-theme="light"] .app-main,
body[data-theme="light"] .app-content {
  background: var(--tn-page-bg) !important;
  color: var(--tn-text-main) !important;
}

body[data-theme="light"] .card,
body[data-theme="light"] .section-card,
body[data-theme="light"] .page-hero,
body[data-theme="light"] .topbar,
body[data-theme="light"] .feature-card,
body[data-theme="light"] .add-card,
body[data-theme="light"] .diary-card-modern,
body[data-theme="light"] .entry-card,
body[data-theme="light"] .message-card,
body[data-theme="light"] .panel-card {
  background-color: var(--tn-card-bg) !important;
  color: var(--tn-text-main) !important;
  border-color: var(--tn-card-border) !important;
}

body[data-theme="light"] input,
body[data-theme="light"] textarea,
body[data-theme="light"] select,
body[data-theme="light"] option {
  background-color: var(--tn-field-bg) !important;
  background-image: none !important;
  color: var(--tn-field-text) !important;
  border-color: var(--tn-field-border) !important;
}

body[data-theme="light"] .app-sidebar,
body[data-theme="light"] .mobile-topbar,
body[data-theme="light"] .bottom-nav {
  background: var(--tn-sidebar-bg) !important;
  color: var(--tn-sidebar-text) !important;
  border-color: var(--tn-sidebar-separator) !important;
}


/* =========================================================
   TRACKNOTE v0.4.20.8 DARK TRACKNOTE MANAGE FIX
   Ziel:
   Helle Innenflächen in der Tracknote-Verwaltung im Darkmode abdunkeln.
   Betrifft insbesondere .tracknote-manage-card und .tmc-fields.
   ========================================================= */

body[data-theme="dark"] {
  --tn-manage-card-bg: #1f2621;
  --tn-manage-card-bg-soft: #28312a;
  --tn-manage-inner-bg: #202821;
  --tn-manage-inner-bg-2: #263028;
  --tn-manage-border: #5a675d;
  --tn-manage-text: #f7faf5;
  --tn-manage-muted: #c4cec3;
}

/* Auto-Dark bekommt dieselben Werte */
@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] {
    --tn-manage-card-bg: #1f2621;
    --tn-manage-card-bg-soft: #28312a;
    --tn-manage-inner-bg: #202821;
    --tn-manage-inner-bg-2: #263028;
    --tn-manage-border: #5a675d;
    --tn-manage-text: #f7faf5;
    --tn-manage-muted: #c4cec3;
  }
}

/* äußere Verwaltungsflächen */
body[data-theme="dark"] .manage-layout,
body[data-theme="dark"] .manage-main,
body[data-theme="dark"] .panel-card,
body[data-theme="dark"] .tracknote-manage-list {
  background-color: transparent !important;
  color: var(--tn-manage-text) !important;
}

/* Tracknote-Karte selbst: nicht mehr hell */
body[data-theme="dark"] .tracknote-manage-card {
  background: var(--tn-manage-card-bg) !important;
  background-color: var(--tn-manage-card-bg) !important;
  color: var(--tn-manage-text) !important;
  border-color: var(--tn-manage-border) !important;
}

/* Kopf und Innenbereiche */
body[data-theme="dark"] .tracknote-manage-card .tmc-head,
body[data-theme="dark"] .tracknote-manage-card .tmc-fields,
body[data-theme="dark"] .tracknote-manage-card .perm-details,
body[data-theme="dark"] .tracknote-manage-card .perm-grid,
body[data-theme="dark"] .tracknote-manage-card details,
body[data-theme="dark"] .tracknote-manage-card summary,
body[data-theme="dark"] .tracknote-manage-card .switch-row {
  background: var(--tn-manage-inner-bg) !important;
  background-color: var(--tn-manage-inner-bg) !important;
  color: var(--tn-manage-text) !important;
  border-color: var(--tn-manage-border) !important;
}

/* Felderblock minimal absetzen */
body[data-theme="dark"] .tracknote-manage-card .tmc-fields {
  background: var(--tn-manage-inner-bg-2) !important;
  background-color: var(--tn-manage-inner-bg-2) !important;
}

/* Labels/Texte in Tracknote-Verwaltung */
body[data-theme="dark"] .tracknote-manage-card label,
body[data-theme="dark"] .tracknote-manage-card .tmc-title h3,
body[data-theme="dark"] .tracknote-manage-card .tmc-title p,
body[data-theme="dark"] .tracknote-manage-card summary,
body[data-theme="dark"] .tracknote-manage-card .muted {
  color: var(--tn-manage-text) !important;
}

body[data-theme="dark"] .tracknote-manage-card .tmc-title p,
body[data-theme="dark"] .tracknote-manage-card .muted {
  color: var(--tn-manage-muted) !important;
}

/* Inputs innerhalb der Tracknote-Verwaltung */
body[data-theme="dark"] .tracknote-manage-card input,
body[data-theme="dark"] .tracknote-manage-card select,
body[data-theme="dark"] .tracknote-manage-card textarea {
  background-color: var(--tn-field-bg) !important;
  color: var(--tn-field-text) !important;
  border-color: var(--tn-field-border) !important;
  background-image: none !important;
}

/* Iconfläche dunkler, aber sichtbar */
body[data-theme="dark"] .tracknote-manage-card .tmc-icon {
  background: #12351f !important;
  color: #e8f7e8 !important;
}

/* Auto-Dark analog */
@media (prefers-color-scheme: dark) {
  body[data-theme="auto"] .tracknote-manage-card {
    background: var(--tn-manage-card-bg) !important;
    background-color: var(--tn-manage-card-bg) !important;
    color: var(--tn-manage-text) !important;
    border-color: var(--tn-manage-border) !important;
  }

  body[data-theme="auto"] .tracknote-manage-card .tmc-head,
  body[data-theme="auto"] .tracknote-manage-card .tmc-fields,
  body[data-theme="auto"] .tracknote-manage-card .perm-details,
  body[data-theme="auto"] .tracknote-manage-card .perm-grid,
  body[data-theme="auto"] .tracknote-manage-card details,
  body[data-theme="auto"] .tracknote-manage-card summary,
  body[data-theme="auto"] .tracknote-manage-card .switch-row {
    background: var(--tn-manage-inner-bg) !important;
    background-color: var(--tn-manage-inner-bg) !important;
    color: var(--tn-manage-text) !important;
    border-color: var(--tn-manage-border) !important;
  }

  body[data-theme="auto"] .tracknote-manage-card .tmc-fields {
    background: var(--tn-manage-inner-bg-2) !important;
    background-color: var(--tn-manage-inner-bg-2) !important;
  }

  body[data-theme="auto"] .tracknote-manage-card input,
  body[data-theme="auto"] .tracknote-manage-card select,
  body[data-theme="auto"] .tracknote-manage-card textarea {
    background-color: var(--tn-field-bg) !important;
    color: var(--tn-field-text) !important;
    border-color: var(--tn-field-border) !important;
    background-image: none !important;
  }
}
