:root {
    --makruze-orange: #f28a3b;
    --makruze-orange-dark: #bd4e08;
    --makruze-orange-soft: #fff1e7;
    --makruze-ink: #2d2a33;
    --makruze-muted: #706b75;
    --makruze-surface: #ffffff;
    --makruze-bg: #f7f4f2;
    --makruze-border: #eadfd7;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--makruze-bg); color: var(--makruze-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

.makruze-navbar { background: linear-gradient(135deg, #a64000, #c6530d); color: #fff; box-shadow: 0 3px 18px rgba(97, 53, 19, .16); }
.makruze-navbar .navbar-brand { color: #fff; letter-spacing: .08em; }
.brand-mark { width: 2rem; height: 2rem; border-radius: .75rem; background: rgba(255,255,255,.2); display: inline-grid; place-items: center; }
.text-makruze { color: var(--makruze-orange-dark) !important; }
.btn-makruze { --bs-btn-color: #fff; --bs-btn-bg: #c6530d; --bs-btn-border-color: #c6530d; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #a64000; --bs-btn-hover-border-color: #a64000; --bs-btn-active-color: #fff; --bs-btn-active-bg: #8d3600; --bs-btn-active-border-color: #8d3600; --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #8a6b59; --bs-btn-disabled-border-color: #8a6b59; }
.form-control:focus, .form-check-input:focus { border-color: #f6b27e; box-shadow: 0 0 0 .25rem rgba(242,138,59,.18); }
.form-check-input:checked { background-color: #bd4e08; border-color: #bd4e08; }

.auth-shell { min-height: calc(100vh - 64px); display: grid; place-items: center; padding: 2rem 1rem; background: radial-gradient(circle at top right, #ffe4d1 0, transparent 35%), var(--makruze-bg); }
.auth-card { width: min(100%, 520px); border-radius: 1.4rem; overflow: hidden; }
.auth-logo { width: 4.5rem; height: 4.5rem; border-radius: 1.5rem; background: var(--makruze-orange-soft); color: var(--makruze-orange-dark); display: grid; place-items: center; font-size: 1.8rem; }

.messenger-page { min-height: 0; height: auto; display: flex; flex-direction: column; }
.messenger-shell { height: auto; min-height: min(680px, calc(100dvh - 15rem)); flex: 1 1 auto; display: grid; grid-template-columns: minmax(290px, 360px) 1fr; background: var(--makruze-surface); border: 1px solid var(--makruze-border); border-radius: 1.15rem; overflow: hidden; }
.chat-sidebar { min-width: 0; border-right: 1px solid var(--makruze-border); display: flex; flex-direction: column; background: #fff; }
.conversation-list { flex: 1; overflow-y: auto; }
.chat-main { min-width: 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; position: relative; background: linear-gradient(rgba(255,255,255,.87),rgba(255,255,255,.87)), radial-gradient(circle at 20% 10%, #ffd8b9, transparent 32%), radial-gradient(circle at 80% 90%, #ffe8d6, transparent 38%); display: grid; place-items: center; }
.device-setup-panel { width: min(100%, 650px); max-height: 100%; overflow-y: auto; padding: 1.5rem; }
.chat-placeholder { text-align: center; color: var(--makruze-orange-dark); }
.ad-slot { border: 1px dashed #e3a473; border-radius: .8rem; background: #fffaf6; padding: .8rem; display: grid; gap: .15rem; }
.ad-slot > span { text-transform: uppercase; letter-spacing: .08em; font-size: .65rem; color: var(--makruze-muted); }
.ad-slot small { color: var(--makruze-muted); }
.crypto-gate { border-radius: .8rem; }
.empty-state { color: var(--makruze-muted); }
.pilot-chat { width: 100%; height: 100%; min-height: 36rem; display: grid; grid-template-rows: auto 1fr auto auto; align-self: stretch; background: rgba(255,255,255,.9); }
.pilot-chat-header { padding: 1rem 1.25rem; border-bottom: 1px solid var(--makruze-border); display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #fff; }
.pilot-chat-message-stage { min-height: 0; position: relative; }
.pilot-chat-messages { height: 100%; padding: 1.25rem; overflow-y: auto; display: flex; flex-direction: column; gap: .65rem; align-items: stretch; scroll-behavior: smooth; }
.pilot-message { max-width: min(78%, 42rem); padding: .7rem .9rem; border-radius: 1rem; overflow-wrap: anywhere; white-space: pre-wrap; box-shadow: 0 .15rem .45rem rgba(45,42,51,.08); }
.pilot-message.incoming { align-self: flex-start; background: #fff; border: 1px solid var(--makruze-border); border-bottom-left-radius: .25rem; }
.pilot-message.outgoing { align-self: flex-end; background: #c6530d; color: #fff; border-bottom-right-radius: .25rem; }
.pilot-message-footer { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; margin-top: .25rem; font-size: .68rem; opacity: .78; }
.pilot-message-footer time { display: inline; margin: 0; font-size: inherit; }
.pilot-delivery { border: 0; padding: 0 .1rem; color: inherit; background: transparent; line-height: 1; }
.pilot-delivery.read { color: #8ee8ff; opacity: 1; }
.pilot-message.incoming.is-unread { box-shadow: 0 0 0 2px rgba(198,83,13,.2),0 .15rem .45rem rgba(45,42,51,.08); }
.pilot-retry { margin-top: .45rem; }
.pilot-new-message-jump { position: absolute; left: 50%; bottom: .8rem; transform: translateX(-50%); z-index: 3; border-radius: 999px; box-shadow: 0 .3rem .8rem rgba(0,0,0,.25); }
.pilot-chat-status { min-height: 1.6rem; padding: .2rem 1.25rem; background: #fff; }
.pilot-chat-compose { padding: .8rem 1rem 1rem; border-top: 1px solid var(--makruze-border); display: grid; grid-template-columns: 1fr auto; gap: .65rem; background: #fff; }
.pilot-conversation { width: 100%; padding: .85rem 1rem; border: 0; border-bottom: 1px solid var(--makruze-border); background: #fff; text-align: left; }
.pilot-conversation:hover,.pilot-conversation.active { background: var(--makruze-orange-soft); }
.pilot-conversation-row { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.pilot-conversation-time { white-space: nowrap; }
#makruzeActionModalMessage { white-space: pre-line; }

.metric-card { height: 100%; border-radius: 1rem; padding: 1.25rem; background: #fff; border: 1px solid var(--makruze-border); display: flex; align-items: center; gap: 1rem; }
.metric-card > i { width: 3rem; height: 3rem; border-radius: 1rem; background: var(--makruze-orange-soft); color: var(--makruze-orange-dark); display: grid; place-items: center; }
.metric-card strong { display: block; font-size: 1.6rem; line-height: 1; }
.metric-card span { display: block; color: var(--makruze-muted); margin-top: .25rem; font-size: .85rem; }

.version-badge { display: inline-flex; align-items: center; padding: .55rem .8rem; border: 1px solid #edc3a2; border-radius: 999px; background: #fff8f2; color: var(--makruze-orange-dark); font-size: .82rem; font-weight: 700; white-space: nowrap; }

.security-checks { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .8rem; }
.security-checks i { color: #238636; width: 1.4rem; }
.security-checks .warning i { color: #b26a00; }
.moderation-output { white-space: pre-wrap; max-height: 420px; overflow: auto; background: #1f1d22; color: #f7f7f7; border-radius: .75rem; }

.install-body { background: radial-gradient(circle at top right, #ffe2cd, transparent 32%), var(--makruze-bg); }
.install-shell { width: min(100% - 2rem, 980px); margin: 2rem auto; }
.install-card { border: 0; border-radius: 1.25rem; box-shadow: 0 20px 70px rgba(67, 42, 25, .12); }
.check-list { display: grid; gap: .55rem; }
.check-row { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; border-radius: .65rem; background: #f8f7f6; }
.check-row.ok strong { color: #238636; }
.check-row.fail strong { color: #b42318; }
code, .font-monospace { font-variant-ligatures: none; }

@media (max-width: 800px) {
    .messenger-page { height: auto; min-height: 0; }
    .messenger-shell { min-height: min(760px, calc(100dvh - 10rem)); height: auto; grid-template-columns: 1fr; }
    .chat-sidebar { display: none; }
    .chat-main { min-height: min(680px, calc(100dvh - 10rem)); overflow-y: auto; }
    .crypto-gate { font-size: .85rem; }
    .messenger-shell.pilot-chat-active .chat-sidebar { display: flex; }
    .pilot-chat { min-height: 34rem; }
    .pilot-chat-compose { grid-template-columns: 1fr; }
    .pilot-message { max-width: 88%; }
}

/* MAKRUZE 0.1.00002 – Backend-Untermenü und Rechtsseiten */
html, body { min-height: 100%; }
body { display: flex; flex-direction: column; }
main { flex: 1 0 auto; }

.admin-subnav {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid rgba(42, 38, 45, .08);
  box-shadow: 0 .25rem .75rem rgba(42, 38, 45, .04);
  position: sticky;
  top: 51px;
  z-index: 1010;
}
.admin-subnav-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem .85rem;
  border-radius: .65rem;
  color: #49444e;
  text-decoration: none;
  font-weight: 600;
  font-size: .92rem;
}
.admin-subnav-link:hover,
.admin-subnav-link.active {
  color: #bd4e08;
  background: #fff0e6;
}

.makruze-footer {
  background: rgba(255, 255, 255, .72);
  border-top: 1px solid rgba(42, 38, 45, .08);
}
.makruze-footer a { color: #665f69; text-decoration: none; }
.makruze-footer a:hover { color: #d65f12; text-decoration: underline; }

.legal-overview-card { transition: transform .18s ease, box-shadow .18s ease; }
.legal-overview-card:hover { transform: translateY(-2px); }
.legal-icon {
  width: 2.9rem;
  height: 2.9rem;
  display: inline-grid;
  place-items: center;
  border-radius: .85rem;
  color: #d65f12;
  background: #fff0e6;
  font-size: 1.2rem;
}

.legal-editor-shell {
  border: 1px solid #d9d4dc;
  border-radius: .85rem;
  overflow: hidden;
  background: #fff;
}
.legal-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  padding: .65rem;
  background: #f8f6f7;
  border-bottom: 1px solid #dfdbe1;
}
.legal-editor-toolbar .editor-format { width: 10.5rem; }
.legal-editor-toolbar .btn { min-width: 2.1rem; }
.toolbar-divider { width: 1px; height: 1.7rem; background: #d7d1d9; margin: 0 .15rem; }
.legal-editor-content,
.legal-editor-source {
  min-height: 34rem;
  padding: 1.35rem;
  border: 0;
  border-radius: 0;
  outline: 0;
  line-height: 1.65;
  overflow: auto;
}
.legal-editor-content:focus { box-shadow: inset 0 0 0 2px rgba(248, 133, 56, .24); }
.legal-editor-source {
  resize: vertical;
  font: .9rem/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  background: #242129;
  color: #f9f3ef;
}
.legal-editor-content h2,
.legal-editor-content h3,
.legal-editor-content h4 { margin-top: 1.35em; }
.legal-editor-content table,
.legal-document-content table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.legal-editor-content th,
.legal-editor-content td,
.legal-document-content th,
.legal-document-content td { border: 1px solid #d9d4dc; padding: .55rem .7rem; vertical-align: top; }

.legal-public-wrap { max-width: 980px; }
.legal-public-card { border-radius: 1.1rem; }
.legal-document-content { line-height: 1.72; overflow-wrap: anywhere; }
.legal-document-content h2,
.legal-document-content h3,
.legal-document-content h4 { margin-top: 1.65em; margin-bottom: .65em; }
.legal-document-content blockquote {
  padding: .85rem 1rem;
  border-left: .3rem solid #f58a42;
  background: #fff7f1;
  color: #504a52;
}
.legal-document-content pre {
  padding: 1rem;
  border-radius: .7rem;
  background: #27232a;
  color: #f7f2ee;
  white-space: pre-wrap;
}
.legal-document-content a { color: #bd4e08; }

@media (max-width: 767.98px) {
  .admin-subnav { top: 51px; }
  .legal-editor-content, .legal-editor-source { min-height: 25rem; padding: 1rem; }
  .legal-editor-toolbar .editor-format { width: 100%; }
  .toolbar-divider { display: none; }
}

/* MAKRUZE 0.1.00003 – signierte Backend-Updates */
.update-command,
.update-changelog {
  border-radius: .75rem;
  background: #252129;
  color: #fff8f2;
  padding: 1rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.update-command { user-select: all; }
.update-changelog { max-height: 22rem; overflow: auto; font-size: .82rem; }
.update-job { transition: background-color .18s ease; }
.update-job:hover { background: #fffaf6; }
.update-job .progress { height: .55rem; background: #eee8e4; }
.update-job .progress-bar { background: linear-gradient(90deg, #ef7c2f, #f4a05f); transition: width .35s ease; }

/* MAKRUZE 0.1.00004 – öffentliche Landingpage */
html { scroll-behavior: smooth; }
.public-shell { background: #fff; }
.public-shell main { overflow: hidden; }
.makruze-public-navbar {
  min-height: 72px;
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid rgba(45, 42, 51, .08);
  box-shadow: 0 .5rem 2rem rgba(66, 43, 28, .06);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.makruze-public-navbar .navbar-brand { color: var(--makruze-ink); letter-spacing: .08em; }
.makruze-public-navbar .brand-mark {
  background: linear-gradient(135deg, #ef7c2f, #f7a764);
  color: #fff;
  box-shadow: 0 .5rem 1rem rgba(217, 106, 28, .2);
}
.makruze-public-navbar .navbar-toggler { border: 0; box-shadow: none !important; }
.makruze-public-navbar .nav-link {
  color: #5d5761;
  font-weight: 650;
  padding: .65rem .85rem !important;
  border-radius: .65rem;
}
.makruze-public-navbar .nav-link:hover,
.makruze-public-navbar .nav-link.active { color: #c6530d; background: #fff3ea; }
.public-nav-login { color: #5f5963; font-weight: 700; }
.public-nav-login:hover { color: #c6530d; }
.public-nav-admin { border-color: #d7d0d7; }

.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.landing-hero {
  position: relative;
  background:
    radial-gradient(circle at 4% 15%, rgba(255, 194, 145, .3), transparent 24%),
    radial-gradient(circle at 96% 12%, rgba(255, 223, 199, .78), transparent 31%),
    linear-gradient(180deg, #fffaf6 0%, #ffffff 100%);
}
.landing-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(217, 106, 28, .2), transparent);
}
.landing-glow { position: absolute; border-radius: 50%; filter: blur(4px); pointer-events: none; }
.landing-glow-one { width: 10rem; height: 10rem; background: rgba(242, 138, 59, .08); left: -4rem; top: 5rem; }
.landing-glow-two { width: 15rem; height: 15rem; background: rgba(245, 173, 118, .12); right: -7rem; bottom: 1rem; }
.landing-eyebrow,
.landing-kicker {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: #bd4e08;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.landing-eyebrow {
  padding: .55rem .85rem;
  border: 1px solid rgba(217, 106, 28, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 .5rem 1.5rem rgba(90, 53, 27, .06);
}
.landing-title { font-size: clamp(2.65rem, 6vw, 5.15rem); line-height: .98; letter-spacing: -.055em; font-weight: 850; }
.landing-title span { display: block; color: #d9651a; margin-top: .15em; }
.landing-lead,
.landing-copy { color: #67616b; font-size: 1.12rem; line-height: 1.75; max-width: 42rem; }
.landing-primary-cta,
.landing-secondary-cta { border-radius: .85rem; padding: .85rem 1.25rem; font-weight: 750; }
.landing-primary-cta { box-shadow: 0 .8rem 1.7rem rgba(217, 106, 28, .22); }
.landing-secondary-cta { border-color: #d8d0d5; background: rgba(255,255,255,.65); }
.landing-secondary-cta:hover { background: #2d2a33; border-color: #2d2a33; }
.landing-trust-row { display: flex; flex-wrap: wrap; gap: .85rem 1.35rem; color: #5f5963; font-size: .88rem; }
.landing-trust-row span { display: inline-flex; align-items: center; gap: .45rem; }
.landing-trust-row i { color: #d9651a; }

.landing-messenger-visual { position: relative; min-height: 33rem; display: grid; place-items: center; }
.messenger-preview-card {
  position: relative;
  width: min(100%, 680px);
  border: 1px solid rgba(74, 58, 48, .12);
  border-radius: 1.4rem;
  background: #fff;
  box-shadow: 0 2.3rem 5rem rgba(91, 56, 30, .17), 0 .5rem 1.5rem rgba(66, 45, 33, .08);
  overflow: hidden;
  transform: rotate(1deg);
  z-index: 2;
}
.preview-topbar { height: 3.4rem; display: flex; align-items: center; justify-content: space-between; padding: 0 1rem; background: linear-gradient(135deg, #a64000, #c6530d); color: #fff; }
.preview-brand { display: flex; align-items: center; gap: .55rem; font-size: .78rem; letter-spacing: .08em; font-weight: 850; }
.preview-brand span { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: .6rem; background: rgba(255,255,255,.2); }
.preview-actions { display: flex; gap: 1rem; opacity: .88; }
.preview-body { display: grid; grid-template-columns: 34% 66%; min-height: 25.5rem; }
.preview-sidebar { padding: .8rem; border-right: 1px solid #eee5df; background: #fffdfa; }
.preview-search { display: flex; gap: .5rem; align-items: center; padding: .65rem .75rem; color: #908792; background: #f5f1ee; border-radius: .7rem; font-size: .68rem; margin-bottom: .75rem; }
.preview-chat { display: grid; grid-template-columns: 2.25rem 1fr auto; align-items: center; gap: .55rem; padding: .7rem .55rem; border-radius: .7rem; font-size: .7rem; }
.preview-chat.active { background: #fff0e5; }
.preview-chat strong, .preview-chat small { display: block; }
.preview-chat small { color: #8a828c; margin-top: .12rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.preview-chat time { font-size: .55rem; color: #8e858e; align-self: start; margin-top: .2rem; }
.preview-avatar { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: .8rem; color: #fff; font-weight: 800; }
.avatar-orange { background: linear-gradient(135deg, #f28a3b, #ef6d46); }
.avatar-violet { background: linear-gradient(135deg, #7f75d1, #a88bd8); }
.avatar-green { background: linear-gradient(135deg, #4b9b7a, #70b791); }
.preview-conversation { min-width: 0; display: grid; grid-template-rows: auto 1fr auto; background: linear-gradient(rgba(255,255,255,.91),rgba(255,255,255,.91)), radial-gradient(circle at 15% 20%, #ffd8b8, transparent 28%), radial-gradient(circle at 90% 85%, #fff0e4, transparent 35%); }
.preview-contact { display: grid; grid-template-columns: 2.25rem 1fr auto; align-items: center; gap: .65rem; padding: .75rem 1rem; background: rgba(255,255,255,.92); border-bottom: 1px solid #eee5df; font-size: .72rem; }
.preview-contact strong, .preview-contact small { display: block; }
.preview-contact small { color: #3a9d67; }
.preview-contact > i { color: #d9651a; }
.preview-messages { display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: .45rem; padding: .75rem 1rem; }
.preview-day { align-self: center; padding: .22rem .55rem; border-radius: 999px; background: rgba(255,255,255,.85); color: #8a828c; font-size: .52rem; }
.preview-bubble { max-width: 75%; padding: .6rem .75rem; border-radius: .8rem; font-size: .67rem; line-height: 1.35; box-shadow: 0 .2rem .5rem rgba(61,45,35,.06); }
.preview-bubble.received { background: #fff; border-bottom-left-radius: .2rem; }
.preview-bubble.sent { align-self: flex-end; background: #ffe5d2; border-bottom-right-radius: .2rem; }
.preview-media-message { display: flex; align-items: center; gap: .55rem; padding: .55rem .7rem; border-radius: .75rem; background: #fff; font-size: .62rem; }
.preview-media-message strong, .preview-media-message small { display: block; }
.preview-media-message small { color: #8c848d; }
.preview-media-icon { width: 2.15rem; height: 2.15rem; display: grid; place-items: center; border-radius: .65rem; background: #fff0e5; color: #d9651a; }
.preview-composer { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: .6rem; padding: .6rem .75rem; background: rgba(255,255,255,.96); border-top: 1px solid #eee5df; color: #9b939c; font-size: .62rem; }
.preview-composer span { padding: .5rem .7rem; background: #f4f1f0; border-radius: 999px; }
.preview-composer button { width: 2.2rem; height: 2.2rem; border: 0; border-radius: 50%; background: #f28a3b; color: #fff; }
.preview-security-pill { position: absolute; z-index: 3; right: 1rem; bottom: 1.2rem; padding: .7rem .95rem; border-radius: .9rem; background: #fff; color: #2f6f4d; font-size: .75rem; font-weight: 800; box-shadow: 0 .9rem 2rem rgba(56, 47, 42, .15); }
.visual-orbit { position: absolute; width: 3.35rem; height: 3.35rem; display: grid; place-items: center; border-radius: 1rem; background: #fff; color: #d9651a; box-shadow: 0 .9rem 2rem rgba(87, 58, 38, .16); z-index: 3; }
.visual-orbit-one { left: -1rem; top: 5rem; transform: rotate(-9deg); }
.visual-orbit-two { right: -.7rem; top: 3.2rem; transform: rotate(8deg); }
.visual-orbit-three { left: 2.2rem; bottom: 1rem; transform: rotate(-5deg); }

.landing-fact-strip { background: #fff; border-top: 1px solid #f0e8e2; border-bottom: 1px solid #f0e8e2; }
.landing-fact { min-height: 7rem; display: flex; align-items: center; gap: .85rem; padding: 1.25rem; border-right: 1px solid #f0e8e2; }
.landing-fact i { color: #d9651a; font-size: 1.35rem; }
.landing-fact strong, .landing-fact span { display: block; }
.landing-fact strong { font-size: .92rem; }
.landing-fact span { color: #817984; font-size: .76rem; margin-top: .2rem; }
.landing-fact-strip [class*="col-"]:last-child .landing-fact { border-right: 0; }

.landing-section { background: #fff; }
.landing-section-heading { max-width: 46rem; }
.landing-section-heading h2 { font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 820; letter-spacing: -.04em; margin: .75rem 0 1rem; }
.landing-section-heading p { color: #706a73; font-size: 1.05rem; line-height: 1.7; }
.landing-feature-card { padding: 1.7rem; border: 1px solid #eee4dd; border-radius: 1.2rem; background: #fff; box-shadow: 0 .65rem 2rem rgba(65, 44, 31, .045); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.landing-feature-card:hover { transform: translateY(-4px); border-color: #efc3a5; box-shadow: 0 1.2rem 2.6rem rgba(74, 47, 29, .09); }
.landing-feature-icon { width: 3.4rem; height: 3.4rem; display: grid; place-items: center; border-radius: 1rem; background: linear-gradient(135deg, #fff0e5, #ffe1ca); color: #d9651a; font-size: 1.25rem; }
.landing-feature-card h3 { font-size: 1.14rem; font-weight: 780; margin: 1.15rem 0 .55rem; }
.landing-feature-card p { color: #756e78; line-height: 1.65; margin: 0; font-size: .94rem; }

.landing-security-section { background: linear-gradient(135deg, #2e2932 0%, #39313a 52%, #46342f 100%); color: #fff; position: relative; }
.landing-security-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 20%, rgba(242,138,59,.22), transparent 28%); pointer-events: none; }
.landing-security-section .landing-kicker { color: #f7a567; }
.landing-security-section .landing-copy { color: #d4cdd4; }
.landing-check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.landing-check-list li { display: flex; gap: .75rem; color: #ded8df; line-height: 1.55; }
.landing-check-list li i { color: #f49a57; margin-top: .25rem; }
.landing-check-list strong { color: #fff; }
.security-flow-card { position: relative; display: grid; grid-template-columns: 1fr auto 1.1fr auto 1fr; align-items: center; gap: .7rem; padding: 2.2rem 1.5rem 4.7rem; border: 1px solid rgba(255,255,255,.12); border-radius: 1.4rem; background: rgba(255,255,255,.06); box-shadow: inset 0 1px rgba(255,255,255,.08), 0 2rem 4rem rgba(0,0,0,.16); backdrop-filter: blur(12px); }
.security-flow-node { text-align: center; }
.security-flow-node > span { width: 4.2rem; height: 4.2rem; margin: 0 auto .8rem; display: grid; place-items: center; border-radius: 1.3rem; background: rgba(255,255,255,.09); color: #f8a668; font-size: 1.5rem; border: 1px solid rgba(255,255,255,.1); }
.security-flow-node.featured > span { background: linear-gradient(135deg, #f28a3b, #e56c28); color: #fff; box-shadow: 0 1rem 2rem rgba(0,0,0,.22); }
.security-flow-node strong, .security-flow-node small { display: block; }
.security-flow-node strong { font-size: .9rem; }
.security-flow-node small { color: #bfb7c0; font-size: .7rem; margin-top: .3rem; }
.security-flow-line { min-width: 2.2rem; height: 2px; background: linear-gradient(90deg, rgba(244,154,87,.2), #f49a57, rgba(244,154,87,.2)); position: relative; }
.security-flow-line i { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: .35rem; border-radius: 50%; background: #393139; color: #f49a57; font-size: .65rem; }
.security-flow-note { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.25rem; padding: .75rem 1rem; text-align: center; border-radius: .75rem; background: rgba(0,0,0,.16); color: #d8d1d8; font-size: .78rem; }
.security-flow-note i { color: #f49a57; margin-right: .4rem; }

.landing-experience-section { background: linear-gradient(180deg, #fff 0%, #fff9f5 100%); }
.experience-stack { position: relative; min-height: 28rem; max-width: 34rem; margin: 0 auto; }
.experience-stack::before { content: ""; position: absolute; width: 20rem; height: 20rem; border-radius: 50%; left: 4rem; top: 3rem; background: radial-gradient(circle, #ffe0c8 0%, #fff1e6 50%, transparent 70%); }
.experience-card { position: absolute; left: 6%; right: 7%; display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: .9rem; padding: 1rem 1.15rem; border: 1px solid #eee1d8; border-radius: 1rem; background: rgba(255,255,255,.95); box-shadow: 0 1rem 2.6rem rgba(80, 52, 34, .12); }
.experience-card > i:first-child { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: .85rem; background: #fff0e5; color: #d9651a; }
.experience-card > i:last-child { color: #3b9a69; }
.experience-card strong, .experience-card small { display: block; }
.experience-card small { color: #877f89; margin-top: .15rem; font-size: .75rem; }
.experience-card.card-one { top: 3rem; transform: rotate(-3deg); }
.experience-card.card-two { top: 10.5rem; left: 13%; right: 0; transform: rotate(2deg); }
.experience-card.card-three { top: 18rem; left: 2%; right: 12%; transform: rotate(-1deg); }
.experience-bubble { position: absolute; right: 0; bottom: .8rem; padding: .8rem 1.15rem; border-radius: 1rem 1rem .2rem 1rem; background: #f28a3b; color: #fff; font-weight: 700; box-shadow: 0 .8rem 1.6rem rgba(217,106,28,.22); }
.experience-bubble span { font-size: .7rem; opacity: .78; margin-left: .3rem; }
.mini-benefit { display: flex; align-items: center; gap: .65rem; padding: .85rem 1rem; border: 1px solid #eee3dc; border-radius: .8rem; background: #fff; font-weight: 650; font-size: .9rem; }
.mini-benefit i { width: 1.55rem; height: 1.55rem; display: grid; place-items: center; border-radius: 50%; background: #fff0e5; color: #d9651a; font-size: .7rem; }

.landing-cta-section { background: #fff; }
.landing-cta-card { position: relative; padding: clamp(2.5rem, 7vw, 5rem) 1.5rem; border-radius: 1.6rem; color: #fff; background: linear-gradient(135deg, #a64000 0%, #b94700 48%, #c6530d 100%); box-shadow: 0 2rem 4rem rgba(188, 79, 14, .21); overflow: hidden; }
.landing-cta-card::before, .landing-cta-card::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255,255,255,.1); }
.landing-cta-card::before { width: 16rem; height: 16rem; left: -7rem; top: -8rem; }
.landing-cta-card::after { width: 20rem; height: 20rem; right: -10rem; bottom: -12rem; }
.landing-cta-card > * { position: relative; z-index: 1; }
.landing-cta-icon { width: 4.1rem; height: 4.1rem; margin: 0 auto 1.2rem; display: grid; place-items: center; border-radius: 1.25rem; background: rgba(255,255,255,.18); font-size: 1.5rem; }
.landing-cta-card h2 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 830; letter-spacing: -.04em; }
.landing-cta-card p { max-width: 42rem; margin: .8rem auto 1.8rem; color: rgba(255,255,255,.88); font-size: 1.05rem; }
.landing-cta-card .btn { border-radius: .85rem; font-weight: 750; }

.landing-footer { background: #2c2830; color: #bfb8c0; }
.landing-footer-brand { display: inline-flex; align-items: center; gap: .65rem; color: #fff; text-decoration: none; letter-spacing: .08em; }
.landing-footer-brand span { width: 2.3rem; height: 2.3rem; display: grid; place-items: center; border-radius: .75rem; background: linear-gradient(135deg, #ef7c2f, #f5a365); }
.landing-footer p { max-width: 32rem; line-height: 1.65; }
.landing-footer h2 { color: #fff; text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; }
.landing-footer-links { display: grid; gap: .65rem; }
.landing-footer-links a { color: #bfb8c0; text-decoration: none; }
.landing-footer-links a:hover { color: #fff; }
.landing-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); color: #958e97; font-size: .8rem; }

.registration-shell { min-height: calc(100vh - 72px); display: grid; align-items: center; background: radial-gradient(circle at 10% 10%, #ffe2cd, transparent 28%), radial-gradient(circle at 90% 90%, #fff0e5, transparent 30%), #f8f5f3; }
.registration-card { border-radius: 1.35rem; }
.registration-side { color: #fff; background: linear-gradient(145deg, #2d2830, #49372f); position: relative; overflow: hidden; }
.registration-side::after { content: ""; position: absolute; width: 15rem; height: 15rem; border-radius: 50%; right: -7rem; bottom: -7rem; background: rgba(242,138,59,.25); }
.registration-side > div { position: relative; z-index: 1; }
.registration-brand { display: inline-flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; font-weight: 850; letter-spacing: .08em; }
.registration-brand span { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: .65rem; background: #f28a3b; }
.registration-lock { width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: 1.15rem; background: rgba(255,255,255,.1); color: #f5a365; font-size: 1.5rem; }
.registration-status { display: flex; gap: .85rem; padding: 1rem; border-radius: .85rem; background: #fff4eb; border: 1px solid #f2d0b7; color: #5e4636; }
.registration-status > i { color: #d9651a; margin-top: .2rem; font-size: 1.2rem; }
.registration-status strong, .registration-status span { display: block; }
.registration-status span { color: #7c6b60; font-size: .85rem; margin-top: .2rem; line-height: 1.5; }
.registration-status-open { background: #eef9f3; border-color: #bfdfcd; color: #2e6647; }
.registration-status-open > i { color: #2f8a5d; }
.registration-status-open span { color: #547565; }

@media (max-width: 991.98px) {
  .py-lg-6 { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
  .makruze-public-navbar .navbar-collapse { margin-top: .65rem; padding: .4rem .75rem; border-radius: .9rem; background: #fff; box-shadow: 0 1rem 2rem rgba(52,39,32,.1); }
  .landing-messenger-visual { min-height: 29rem; }
  .visual-orbit-one { left: 1rem; }
  .visual-orbit-two { right: 1rem; }
  .security-flow-card { grid-template-columns: 1fr; gap: .8rem; padding-bottom: 4.7rem; }
  .security-flow-line { min-width: 0; width: 2px; height: 1.7rem; margin: 0 auto; background: linear-gradient(180deg, rgba(244,154,87,.2), #f49a57, rgba(244,154,87,.2)); }
}

@media (max-width: 767.98px) {
  .landing-title { font-size: clamp(2.45rem, 12vw, 3.5rem); }
  .landing-lead { font-size: 1rem; }
  .preview-body { grid-template-columns: 1fr; min-height: 23rem; }
  .preview-sidebar { display: none; }
  .messenger-preview-card { transform: none; }
  .landing-messenger-visual { min-height: 28rem; }
  .visual-orbit { width: 2.8rem; height: 2.8rem; }
  .visual-orbit-one { left: -.2rem; top: 3rem; }
  .visual-orbit-two { right: -.2rem; top: 2rem; }
  .visual-orbit-three { left: 1rem; bottom: 1rem; }
  .preview-security-pill { right: .5rem; bottom: .4rem; }
  .landing-fact { min-height: 6.4rem; padding: 1rem .65rem; border-bottom: 1px solid #f0e8e2; }
  .landing-fact-strip [class*="col-"]:nth-child(2n) .landing-fact { border-right: 0; }
  .experience-stack { min-height: 25rem; }
  .experience-card { left: 0; right: 0; }
  .experience-card.card-two { left: 6%; right: 0; }
  .experience-card.card-three { left: 0; right: 6%; }
  .landing-footer { text-align: center; }
  .landing-footer-brand { justify-content: center; }
  .landing-footer p { margin-left: auto; margin-right: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .landing-feature-card { transition: none; }
}

/* MAKRUZE 0.1.00006 – Betriebssteuerung, Unternehmensdaten und Wartungsseite */
.settings-page { max-width: 1180px; }
.settings-anchor-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  padding: .7rem;
  border: 1px solid var(--makruze-border);
  border-radius: 1rem;
  background: rgba(255,255,255,.82);
}
.settings-anchor-nav a {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .65rem .9rem;
  border-radius: .75rem;
  color: #554f58;
  text-decoration: none;
  font-weight: 700;
}
.settings-anchor-nav a:hover { color: var(--makruze-orange-dark); background: var(--makruze-orange-soft); }
.settings-section { border-radius: 1.15rem; scroll-margin-top: 8.5rem; }
.settings-control-card {
  padding: 1.15rem;
  border: 1px solid #e7ddd7;
  border-radius: .95rem;
  background: #fbfaf9;
}
.settings-control-card-warning { background: #fff9f2; border-color: #f0d4bc; }
.settings-control-icon {
  flex: 0 0 auto;
  width: 2.8rem;
  height: 2.8rem;
  display: grid;
  place-items: center;
  border-radius: .85rem;
  color: var(--makruze-orange-dark);
  background: var(--makruze-orange-soft);
}
.settings-group-title {
  margin: 0;
  padding-bottom: .75rem;
  color: #4d474f;
  border-bottom: 1px solid #eee5df;
}
.settings-security-note { background: #eaf8fb; color: #185e70; }
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .5rem .75rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}
.status-pill-success { color: #236b43; background: #eaf7ef; }
.status-pill-warning { color: #8b520b; background: #fff1d8; }
.status-pill-secure { color: #265f7b; background: #eaf5fb; }

.maintenance-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(circle at 12% 10%, rgba(255,215,184,.74), transparent 27%),
    radial-gradient(circle at 88% 85%, rgba(255,236,220,.92), transparent 30%),
    linear-gradient(145deg, #fffaf6 0%, #f8f4f2 100%);
}
.maintenance-shell {
  flex: 1 0 auto;
  display: grid;
  place-items: center;
  padding: 2rem 1rem;
}
.maintenance-card {
  width: min(100%, 720px);
  padding: clamp(2rem, 6vw, 4.5rem);
  text-align: center;
  border: 1px solid rgba(219,194,177,.7);
  border-radius: 1.6rem;
  background: rgba(255,255,255,.92);
  box-shadow: 0 2rem 5rem rgba(72,48,34,.14);
  backdrop-filter: blur(14px);
}
.maintenance-brand {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: 2.2rem;
  color: var(--makruze-ink);
  text-decoration: none;
  letter-spacing: .08em;
}
.maintenance-brand span {
  width: 2.6rem;
  height: 2.6rem;
  display: grid;
  place-items: center;
  border-radius: .85rem;
  color: #fff;
  background: linear-gradient(135deg, #ef7c2f, #f5a365);
}
.maintenance-icon {
  width: 5.2rem;
  height: 5.2rem;
  margin: 0 auto 1.5rem;
  display: grid;
  place-items: center;
  border-radius: 1.55rem;
  color: var(--makruze-orange-dark);
  background: var(--makruze-orange-soft);
  font-size: 2rem;
  box-shadow: inset 0 0 0 1px rgba(217,106,28,.08);
}
.maintenance-card h1 {
  max-width: 36rem;
  margin: 0 auto 1rem;
  font-size: clamp(2rem, 6vw, 3.45rem);
  font-weight: 850;
  letter-spacing: -.045em;
}
.maintenance-message {
  max-width: 38rem;
  margin: 0 auto;
  color: #706973;
  font-size: 1.08rem;
  line-height: 1.7;
}
.maintenance-actions { margin-top: 2rem; }
.maintenance-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem 1.4rem;
  margin-top: 2rem;
  padding-top: 1.4rem;
  border-top: 1px solid #eee5df;
  color: #817982;
  font-size: .82rem;
}
.maintenance-footer {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.25rem;
  padding: 1.4rem;
  color: #706973;
  font-size: .85rem;
}
.maintenance-footer a { color: inherit; text-decoration: none; }
.maintenance-footer a:hover { color: var(--makruze-orange-dark); text-decoration: underline; }

/* ======================================================================
   Barrierefreiheit und Einwilligungsverwaltung – Version 0.1.00008
   ====================================================================== */
.skip-link {
    position: fixed;
    top: .5rem;
    left: .5rem;
    z-index: 2000;
    transform: translateY(-160%);
    padding: .75rem 1rem;
    border: 2px solid #1f2937;
    border-radius: .65rem;
    background: #fff;
    color: #111827;
    font-weight: 700;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .2);
}
.skip-link:focus {
    transform: translateY(0);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid #0b5fff !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 5px rgba(255, 255, 255, .95) !important;
}

:where(input, select, textarea)[aria-invalid="true"] {
    border-color: #b42318 !important;
    box-shadow: 0 0 0 .2rem rgba(180, 35, 24, .18) !important;
}

#main-content:focus {
    outline: none;
}

.public-shell .btn,
.public-shell button:not(.navbar-toggler),
.messenger-page .btn,
.auth-shell .btn,
.admin-subnav-link {
    min-height: 44px;
}

.navbar-toggler {
    min-width: 44px;
    min-height: 44px;
}

.footer-link-button {
    display: inline;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    text-decoration: none;
}
.footer-link-button:hover,
.footer-link-button:focus-visible {
    text-decoration: underline;
}
.landing-footer-links .footer-link-button {
    display: block;
    color: #bfb8c0;
    opacity: 1;
}
.makruze-footer .footer-link-button {
    color: var(--bs-secondary-color);
}

.consent-modal .modal-content {
    border-radius: 1.25rem;
}
.consent-modal .modal-header,
.consent-modal .modal-footer {
    padding: 1.25rem 1.5rem;
}
.consent-modal .modal-body {
    padding: 1.25rem 1.5rem;
}
.consent-category {
    padding: 1rem;
    border: 1px solid #e7e0db;
    border-radius: .9rem;
    background: #fffaf7;
}
.consent-category + .consent-category {
    margin-top: .75rem;
}
.consent-category .form-check-input {
    width: 3rem;
    height: 1.6rem;
    cursor: pointer;
}
.consent-category .form-check-input:disabled {
    opacity: .72;
    cursor: not-allowed;
}
.consent-details summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: 700;
}
.consent-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}
.consent-actions .btn {
    margin: 0;
    min-height: 48px;
    white-space: normal;
}
.privacy-category-admin:last-child {
    border-bottom: 0 !important;
}

.legal-content,
.legal-page,
.card-body,
.alert,
.form-text,
.table {
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    .consent-actions {
        grid-template-columns: 1fr;
    }
    .consent-modal .modal-dialog {
        margin: .5rem;
    }
    .consent-modal .modal-header,
    .consent-modal .modal-footer,
    .consent-modal .modal-body {
        padding: 1rem;
    }
}

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

@media (forced-colors: active) {
    .btn,
    .card,
    .consent-category,
    .brand-mark,
    .landing-eyebrow {
        border: 1px solid CanvasText !important;
    }
    .badge {
        border: 1px solid CanvasText;
    }
}

@media (min-width: 1200px) {
    .public-shell main p,
    .public-shell main li,
    .auth-shell,
    .messenger-page {
        line-height: 1.65;
    }
}

/* MAKRUZE 0.1.00009 – Kryptografie-Grundlage */
.crypto-protocol-list {
  display: grid;
  gap: .9rem;
}
.crypto-protocol-item {
  padding: 1rem 1.05rem;
  border: 1px solid var(--makruze-border);
  border-radius: .9rem;
  background: #fffaf6;
}
.crypto-protocol-item a { color: var(--makruze-orange-dark); font-weight: 700; }
.crypto-document-card {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  padding: 1rem;
  border: 1px solid var(--makruze-border);
  border-radius: .85rem;
  background: #fff;
}
.crypto-document-card code {
  display: block;
  padding: .45rem .55rem;
  border-radius: .55rem;
  background: #29252d;
  color: #fff7f0;
  overflow-wrap: anywhere;
}
.crypto-document-card span { color: var(--makruze-muted); font-size: .88rem; }
.crypto-probe-status {
  min-height: 3rem;
  padding: .85rem 1rem;
  border-radius: .75rem;
  background: #f7f4f2;
  color: #4e4852;
}
.crypto-probe-result-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .55rem;
}
.crypto-probe-result-list li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .65rem .75rem;
  border-radius: .65rem;
  background: #f7f4f2;
  font-size: .9rem;
}
.crypto-probe-result-list li.pass i { color: #238636; }
.crypto-probe-result-list li.fail i { color: #b42318; }
.crypto-probe-result-list li.optional-missing i { color: #746d76; }
.crypto-probe-result-list li.fail { background: #fff0f0; }
.crypto-probe-result-list li.pass { background: #f0f9f2; }

@media (forced-colors: active) {
  .crypto-protocol-item,
  .crypto-document-card,
  .crypto-probe-status,
  .crypto-probe-result-list li { border: 1px solid CanvasText; }
}

/* MAKRUZE 0.1.00010 – Double-Ratchet-Labor */
.crypto-lab-summary {
  border-left: .35rem solid var(--makruze-orange-dark) !important;
}
.crypto-lab-action-card,
.crypto-lab-fact {
  border: 1px solid var(--makruze-border);
  border-radius: .9rem;
  background: #fffaf6;
  padding: 1rem;
}
.crypto-lab-fact {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  height: 100%;
}
.crypto-lab-fact > span {
  color: var(--makruze-muted);
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.crypto-lab-fact code,
.crypto-lab-code {
  overflow-wrap: anywhere;
}
.crypto-lab-code {
  font-size: 1.35rem;
  letter-spacing: .16em;
}
.crypto-lab-chat {
  border-top: 1px solid var(--makruze-border);
  padding-top: 1.25rem;
}
.crypto-lab-transcript {
  min-height: 9rem;
  max-height: 24rem;
  overflow-y: auto;
  padding: 1rem;
  border: 1px solid var(--makruze-border);
  border-radius: .9rem;
  background: #f7f4f2;
}
.crypto-lab-transcript:empty::before {
  content: 'Noch keine lokal entschlüsselten Nachrichten.';
  color: var(--makruze-muted);
}
.crypto-lab-message {
  width: min(86%, 42rem);
  padding: .8rem 1rem;
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 .15rem .5rem rgba(45, 35, 31, .08);
}
.crypto-lab-message + .crypto-lab-message {
  margin-top: .75rem;
}
.crypto-lab-message.outgoing {
  margin-left: auto;
  background: #fff2e8;
  border: 1px solid #d7681f;
}
.crypto-lab-message.incoming {
  margin-right: auto;
  border: 1px solid #cfc7c1;
}
.crypto-lab-message p {
  margin: .35rem 0;
  white-space: pre-wrap;
}
.crypto-lab-message small {
  color: var(--makruze-muted);
}

@media (forced-colors: active) {
  .crypto-lab-summary,
  .crypto-lab-action-card,
  .crypto-lab-fact,
  .crypto-lab-transcript,
  .crypto-lab-message {
    border: 1px solid CanvasText !important;
  }
}

/* MAKRUZE 0.1.00011 – Profile, Kontakte, Geräte und Prekeys */
.profile-page,
.contacts-page,
.devices-page { max-width: 1180px; }

.profile-avatar-preview,
.profile-avatar-large,
.contact-avatar,
.admin-avatar-placeholder {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 50%;
  background: var(--makruze-orange-soft);
  color: var(--makruze-orange-dark);
  border: 1px solid var(--makruze-border);
  font-weight: 800;
}
.profile-avatar-preview { width: 8rem; height: 8rem; font-size: 2.5rem; }
.profile-avatar-large { width: 10rem; height: 10rem; font-size: 3rem; }
.contact-avatar { width: 3.25rem; height: 3.25rem; font-size: 1.05rem; }
.admin-avatar-placeholder { width: 4rem; height: 4rem; font-size: 1.25rem; }
.profile-avatar-preview img,
.profile-avatar-large img,
.contact-avatar img,
.admin-avatar-link img { width: 100%; height: 100%; object-fit: cover; display: block; }
.admin-avatar-link { display: block; width: 4rem; height: 4rem; border-radius: 50%; overflow: hidden; border: 2px solid var(--makruze-border); }
.admin-avatar-link:focus-visible { outline: .2rem solid var(--makruze-orange-dark); outline-offset: .2rem; }

.avatar-crop-shell { width: min(100%, 34rem); margin-inline: auto; }
.avatar-crop-canvas {
  display: block;
  width: 100%;
  max-width: 32rem;
  aspect-ratio: 1;
  margin-inline: auto;
  border-radius: 1rem;
  border: 1px solid var(--makruze-border);
  background: #f1eeee;
  cursor: grab;
  touch-action: none;
}
.avatar-crop-canvas:active { cursor: grabbing; }
.avatar-crop-canvas:focus-visible { outline: .2rem solid var(--makruze-orange-dark); outline-offset: .2rem; }
.profile-bio { white-space: pre-wrap; overflow-wrap: anywhere; }
.profile-public-card { border-radius: 1.15rem; }

.contact-list { display: grid; gap: .85rem; }
.contact-row,
.request-card,
.device-card {
  border: 1px solid var(--makruze-border);
  border-radius: 1rem;
  background: var(--makruze-surface);
  padding: 1rem;
}
.contact-row { display: flex; align-items: center; gap: 1rem; }
.contact-main { min-width: 0; flex: 1 1 auto; }
.contact-main strong,
.contact-main a { overflow-wrap: anywhere; }
.contact-actions { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }
.contact-search-results { display: grid; gap: .75rem; }
.request-card { height: 100%; }

.security-number-panel,
.security-number-value,
.fingerprint-box {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-variant-ligatures: none;
  overflow-wrap: anywhere;
}
.security-number-value {
  padding: 1rem;
  border-radius: .85rem;
  background: #f5f2f0;
  border: 1px solid var(--makruze-border);
  font-size: clamp(1rem, 2.5vw, 1.35rem);
  line-height: 1.7;
  letter-spacing: .05em;
  text-align: center;
}
.fingerprint-box {
  padding: .75rem;
  border-radius: .75rem;
  background: #f5f2f0;
  border: 1px solid var(--makruze-border);
  font-size: .82rem;
  line-height: 1.6;
}
.device-card { height: 100%; }
.device-card[data-revoked="1"] { opacity: .78; }
.device-action-status { min-height: 1.25rem; }
.admin-avatar-form { min-width: 15rem; }

@media (max-width: 700px) {
  .contact-row { align-items: flex-start; flex-wrap: wrap; }
  .contact-main { flex-basis: calc(100% - 4.5rem); }
  .contact-actions { width: 100%; justify-content: flex-start; }
  .profile-avatar-large { width: 8rem; height: 8rem; }
  .admin-avatar-form { min-width: 12rem; }
}

@media (forced-colors: active) {
  .profile-avatar-preview,
  .profile-avatar-large,
  .contact-avatar,
  .admin-avatar-placeholder,
  .avatar-crop-canvas,
  .contact-row,
  .request-card,
  .device-card,
  .fingerprint-box,
  .security-number-value { border: 1px solid CanvasText; }
}


/* MAKRUZE 0.1.00014 – Kontaktbenachrichtigungen, responsive Dialoge und Chat-Höhe */
html, body { min-height: 100%; min-height: 100dvh; }
body { overflow-x: hidden; }
main { min-height: 0; flex: 1 1 auto; }
.makruze-footer { position: relative; z-index: 2; background: #fff; }

.app-contact-link { overflow: visible; }
.contact-request-badge {
  position: absolute;
  top: -.55rem;
  right: -.55rem;
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 .32rem;
  border: 2px solid #a64000;
  border-radius: 999px;
  background: #fff;
  color: #a61b12;
  font-size: .68rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 .15rem .45rem rgba(0, 0, 0, .2);
}
.contact-request-notice { border-radius: .85rem; }

.makruze-action-modal .modal-dialog { width: min(calc(100% - 1.5rem), 34rem); margin-inline: auto; }
.makruze-action-modal .modal-content { border-radius: 1rem; overflow: hidden; }
.makruze-action-modal .modal-body { overflow-wrap: anywhere; }
.makruze-action-modal .modal-footer { gap: .5rem; }

@media (max-width: 575.98px) {
  .makruze-action-modal .modal-dialog {
    width: calc(100% - 1rem);
    max-height: calc(100dvh - 1rem);
    margin: .5rem auto;
  }
  .makruze-action-modal .modal-content { max-height: calc(100dvh - 1rem); }
  .makruze-action-modal .modal-header,
  .makruze-action-modal .modal-body,
  .makruze-action-modal .modal-footer { padding: 1rem; }
  .makruze-action-modal .modal-footer { display: grid; grid-template-columns: 1fr; }
  .makruze-action-modal .modal-footer .btn { width: 100%; min-height: 2.8rem; }
  .makruze-action-modal .modal-footer .btn-outline-dark { order: 2; }
  .device-setup-panel { max-height: none; padding: .75rem; }
  .messenger-shell { min-height: 0; }
  .chat-main { min-height: 42rem; }
}


/* MAKRUZE 0.1.00015 – Live-Kontaktanfragen und getrennte Kontoverwaltung */
.admin-users-table .admin-user-actions { min-width: 15rem; }
.admin-users-table td:last-child { min-width: 14rem; }
.admin-account-form .form-control,
.admin-avatar-form .form-control { min-width: 12rem; }
@media (max-width: 575.98px) {
  .makruze-action-modal .modal-dialog { margin: .75rem; }
  .makruze-action-modal .modal-footer { align-items: stretch; }
  .makruze-action-modal .modal-footer .btn { width: 100%; }
}


/* MAKRUZE 0.1.00016 – internationale Domain, Registrierung und Mail */
.registration-lock { width: 4.5rem; height: 4.5rem; display: inline-grid; place-items: center; border-radius: 1.25rem; background: rgba(255,255,255,.14); font-size: 2rem; }
.registration-brand { color: #fff; text-decoration: none; font-weight: 800; letter-spacing: .08em; }
.registration-brand span { display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-right: .55rem; border-radius: .6rem; background: #f28a3b; color: #1d1d1d; }
.registration-status { display: flex; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid #e3e6ea; border-radius: .9rem; background: #f8f9fa; }
.registration-status i { font-size: 1.5rem; color: #8a4c1c; }
.registration-status span { display: block; color: #6c757d; font-size: .9rem; }
.verification-code-input { letter-spacing: .45em; text-align: center; font-size: 1.65rem; font-weight: 800; font-variant-numeric: tabular-nums; }
@media (max-width: 575.98px) { .registration-shell .container { padding-inline: .75rem; } .verification-code-input { letter-spacing: .28em; } }

/* MAKRUZE 0.1.00017 – Sicherheit, Beobachtbarkeit und Produktionsoberfläche */
.production-mode .diagnostic-only { display: none !important; }
.development-mode .diagnostic-only,
.production-mode.show-admin-diagnostics .diagnostic-only { display: block !important; }
.development-mode .diagnostic-only.d-flex,
.production-mode.show-admin-diagnostics .diagnostic-only.d-flex { display: flex !important; }

/* Während der ersten Geräteeinrichtung scrollt ausschließlich die Dokumentseite.
   Danach bleiben Chatliste und Nachrichtenbereich wieder eigenständige Scrollflächen. */
.messenger-shell.device-setup-active {
  height: auto;
  min-height: min(680px, calc(100dvh - 15rem));
  overflow: visible;
}
.messenger-shell.device-setup-active .chat-main {
  min-height: 0;
  overflow: visible;
  overscroll-behavior-y: auto;
  align-content: start;
  place-items: start center;
}
.messenger-shell.device-setup-active .device-setup-panel {
  max-height: none;
  min-height: 0;
  overflow: visible;
  padding-block: 1.5rem;
}
.device-setup-panel .card { max-width: 650px; }

.profile-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: .65rem;
  border: 1px solid var(--makruze-border);
  border-radius: .9rem;
  background: #fff;
  position: sticky;
  top: 4.5rem;
  z-index: 5;
}
.profile-section-nav a {
  padding: .55rem .85rem;
  border-radius: .65rem;
  color: #3f3944;
  text-decoration: none;
  font-weight: 700;
}
.profile-section-nav a:hover,
.profile-section-nav a:focus-visible { background: #fff0e6; color: #a64000; }
.scroll-anchor { scroll-margin-top: 8.5rem; }
.security-feature-icon {
  display: inline-grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  flex: 0 0 auto;
  border-radius: .9rem;
  background: #fff0e6;
  color: #b64a08;
  font-size: 1.35rem;
}
.mfa-qr-wrap {
  width: min(100%, 22rem);
  margin-inline: auto;
  padding: 1rem;
  border: 1px solid var(--makruze-border);
  border-radius: 1rem;
  background: #fff;
}
.mfa-qr-wrap svg { display: block; width: 100%; height: auto; }
.recovery-code-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
}
.recovery-code-grid code {
  padding: .7rem;
  border: 1px solid var(--makruze-border);
  border-radius: .65rem;
  background: #f8f9fa;
  text-align: center;
  font-size: .95rem;
}
.notification-option {
  min-height: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid var(--makruze-border);
  border-radius: .85rem;
  background: #fff;
}
.notification-required { background: #f6fff9; border-color: #b9e1c6; }
.context-help summary { cursor: pointer; font-weight: 700; color: #554d59; }
.security-stat-card {
  height: 100%;
  padding: 1rem 1.15rem;
  border: 1px solid var(--makruze-border);
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 .25rem .8rem rgba(22, 18, 26, .05);
}
.security-stat-card span { display: block; color: #6c757d; font-size: .82rem; }
.security-stat-card strong { display: block; margin-top: .2rem; font-size: 1.15rem; }
.security-timeline { display: grid; gap: .8rem; max-height: 44rem; overflow: auto; padding-right: .35rem; }
.security-timeline-item { padding: .85rem 1rem; border-left: .25rem solid #f28a3b; border-radius: .2rem .75rem .75rem .2rem; background: #f8f9fa; }
.security-timeline-item time,
.security-timeline-item span { display: block; color: #6c757d; font-size: .8rem; }
.security-timeline-item pre,
.security-log-table pre { max-width: 34rem; max-height: 18rem; overflow: auto; margin-top: .5rem; padding: .65rem; border-radius: .5rem; background: #211f24; color: #f7f7f7; font-size: .75rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.security-log-table td { vertical-align: top; }

@media (max-width: 991.98px) {
  .messenger-shell { overflow: hidden; }
  .chat-sidebar { border-radius: 1.15rem 1.15rem 0 0; }
  .chat-main { border-radius: 0 0 1.15rem 1.15rem; overflow: visible; min-height: 0; }
  .device-setup-panel { width: 100%; padding: 1rem; }
  .profile-section-nav { position: static; }
}
@media (max-width: 575.98px) {
  .recovery-code-grid { grid-template-columns: 1fr; }
  .notification-option { align-items: center; }
  .device-setup-panel { padding: .5rem; }
  .device-setup-panel .card-body { padding: 1.25rem !important; }
}
@media print {
  nav, footer, .btn, .alert:not(.alert-danger), .public-shell .navbar { display: none !important; }
  .recovery-code-grid { grid-template-columns: repeat(2, 1fr); }
}
.totp-qr {
  width: min(100%, 20rem);
  padding: 1rem;
  border: 1px solid var(--makruze-border);
  border-radius: 1rem;
  background: #fff;
}
.totp-qr svg { display: block; width: 100%; height: auto; }

/* Während der erstmaligen Geräteabsicherung scrollt das Dokument, nicht nur eine Teilkachel. */
.messenger-shell.device-setup-active {
  height: auto;
  min-height: 0;
  overflow: visible;
  align-items: stretch;
}
.messenger-shell.device-setup-active .chat-main {
  min-height: 0;
  height: auto;
  overflow: visible;
  overscroll-behavior: auto;
}
.messenger-shell.device-setup-active .device-setup-panel {
  width: 100%;
  max-height: none;
  overflow: visible;
}
@media (min-width: 992px) {
  .messenger-shell.device-setup-active .chat-sidebar {
    align-self: stretch;
    min-height: 100%;
  }
}
