:root {
  --fn-tap-scale: .975;
  --fn-fast: 130ms;
  --fn-medium: 220ms;
}

button,
[role="button"],
.item,
.card,
.menu-nav-item,
.notification-item {
  -webkit-tap-highlight-color: transparent;
}

button,
[role="button"] {
  touch-action: manipulation;
}

button:not(:disabled),
[role="button"] {
  transition: transform var(--fn-fast) ease, background-color var(--fn-fast) ease, border-color var(--fn-fast) ease, box-shadow var(--fn-medium) ease, opacity var(--fn-fast) ease;
}

button:not(:disabled):active,
[role="button"]:active {
  transform: scale(var(--fn-tap-scale));
}

button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--primary) 42%, transparent);
  outline-offset: 3px;
}

.primary-button,
.secondary-button,
.danger-button {
  min-height: 48px;
  border-radius: 17px;
  font-weight: 800;
}

.fn-ui-icon {
  width: 24px;
  height: 24px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nav-icon .fn-ui-icon {
  width: 25px;
  height: 25px;
}

.menu-nav-icon {
  display: grid;
  place-items: center;
}

.menu-nav-icon .fn-ui-icon {
  width: 23px;
  height: 23px;
}

.bottom-nav button.active .nav-icon-wrap {
  background: color-mix(in srgb, var(--primary) 13%, transparent);
  border-radius: 14px;
  padding: 5px 10px;
  margin: -5px -10px;
}

.bottom-nav button.active .nav-icon {
  color: var(--primary-strong);
}

.menu-nav-item .menu-nav-icon {
  color: var(--muted);
  transition: color var(--fn-fast) ease, background-color var(--fn-fast) ease;
}

.menu-nav-item.active .menu-nav-icon {
  color: var(--primary-strong);
  background: color-mix(in srgb, var(--primary) 13%, transparent);
}

.item,
.card.compact,
.notification-item,
.fn-settings-link {
  transition: transform var(--fn-fast) ease, border-color var(--fn-medium) ease, box-shadow var(--fn-medium) ease, background-color var(--fn-medium) ease;
}

.item:has(button:active),
.notification-item:active,
.fn-settings-link:active {
  transform: scale(.99);
}

.empty {
  min-height: 150px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 7px;
  border: 1px dashed color-mix(in srgb, var(--line) 72%, transparent);
  border-radius: 22px;
  background: color-mix(in srgb, var(--surface) 62%, transparent);
}

.empty > span:first-child,
.empty .emoji {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin: 0 auto 3px;
  border-radius: 18px;
  background: color-mix(in srgb, var(--primary) 11%, var(--surface-strong));
  font-size: 25px;
}

.empty strong {
  color: var(--text);
  font-size: 16px;
}

.empty p {
  max-width: 330px;
  margin: 0 auto;
  line-height: 1.5;
}

.modal-backdrop {
  background: rgba(16, 15, 14, .54);
  backdrop-filter: blur(9px) saturate(1.08);
  animation: fn-backdrop-in var(--fn-medium) ease both;
}

.modal {
  border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
  box-shadow: 0 -28px 80px rgba(0,0,0,.34);
  overscroll-behavior: contain;
  animation: fn-sheet-in 260ms cubic-bezier(.22,.8,.24,1) both;
}

.modal-handle {
  width: 42px;
  height: 5px;
  background: color-mix(in srgb, var(--muted) 26%, transparent);
}

.modal-head {
  position: sticky;
  top: -18px;
  z-index: 3;
  padding-top: 18px;
  background: linear-gradient(var(--surface-strong) 76%, transparent);
}

.toast {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: 13px 17px;
  box-shadow: 0 18px 52px rgba(0,0,0,.34);
  backdrop-filter: blur(18px);
  animation: fn-toast-in 220ms cubic-bezier(.22,.8,.24,1) both;
}

button:disabled,
.primary-button:disabled,
.secondary-button:disabled {
  cursor: default;
  opacity: .55;
  transform: none !important;
}

[aria-busy="true"],
button:disabled {
  position: relative;
}

@keyframes fn-sheet-in {
  from { transform: translateY(22px); opacity: .72; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes fn-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fn-toast-in {
  from { opacity: 0; transform: translate(-50%, 10px) scale(.98); }
  to { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

/* Build 6.9.1: feste einzeilige Bottom Navigation und sichere untere Abstände */
.bottom-nav {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-template-rows: minmax(72px, auto) !important;
  grid-auto-flow: column !important;
  gap: 0 !important;
  align-items: stretch !important;
  overflow: visible !important;
}

.bottom-nav > button {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 72px !important;
  padding: 8px 2px 9px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.bottom-nav > button > span:last-child {
  display: block !important;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
  font-size: 11px !important;
  line-height: 1.1;
}

.bottom-nav .nav-icon-wrap {
  flex: 0 0 auto;
  min-width: 0;
}

.app-shell {
  padding-bottom: calc(132px + var(--safe-bottom)) !important;
}

.fab {
  bottom: calc(118px + var(--safe-bottom)) !important;
}

@media (max-width: 390px) {
  .bottom-nav > button > span:last-child { font-size: 10px !important; }
  .bottom-nav > button { padding-inline: 1px !important; }
}

@media (min-width: 760px) {
  .modal {
    box-shadow: 0 28px 90px rgba(0,0,0,.28);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
