/* Guided safety result proposal cards stay readable on desktop and mobile. */
.ai-result-proposal-list{display:grid;gap:.65rem;margin:.75rem 0}.ai-result-proposal-group{border:1px solid #dfe5e1;border-radius:8px;padding:.65rem}.ai-result-proposal-group legend{float:none;width:auto;padding:0 .25rem;font-size:.78rem;font-weight:700;color:#314254}.ai-result-proposal-item{display:flex;align-items:flex-start;gap:.55rem;padding:.4rem 0;font-size:.88rem;line-height:1.35}.ai-result-proposal-item input{margin-top:.2rem;flex:0 0 auto}.ai-result-summary{display:grid;gap:.55rem}.ai-result-summary p{margin:0;color:#526170}.ai-result-proposal-list:not(.is-reviewing) .ai-result-proposal-item{opacity:.92}
/* Onboarding shell: scoped, keyboard-friendly and responsive. */
.onboarding-shell { max-width: 980px; margin-inline: auto; }
.onboarding-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; margin-bottom: 1.25rem; }
.onboarding-progress-step { display: flex; flex-direction: column; gap: .35rem; color: var(--muted); font-size: .72rem; line-height: 1.25; }
.onboarding-progress-step b { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--bg); color: var(--navy); }
.onboarding-progress-step.is-current, .onboarding-progress-step.is-done { color: var(--navy); font-weight: 700; }
.onboarding-progress-step.is-current b, .onboarding-progress-step.is-done b { background: var(--green); color: #fff; }
.onboarding-status { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; color: var(--muted); font-size: .85rem; }
.onboarding-question { border: 0; border-top: 1px solid var(--border, #e5e7eb); padding: 1.15rem 0; margin: 0; }
.onboarding-question legend { float: none; width: 100%; color: var(--navy); font-size: 1rem; font-weight: 700; }
.onboarding-help { color: var(--muted); font-size: .86rem; margin: .4rem 0 .75rem; }
.onboarding-options { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); width: 100%; max-width: 560px; gap: .6rem; }
.onboarding-boolean-options { max-width: 560px; }
.onboarding-options .onboarding-option-third { grid-column: span 2; }
.onboarding-options .onboarding-option-half { grid-column: span 3; }
.onboarding-options .onboarding-option-full { grid-column: 1 / -1; }
.onboarding-options label { display: flex; align-items: center; gap: .55rem; min-height: 2.9rem; padding: .7rem .8rem; border: 1px solid var(--border, #dfe4ea); border-radius: .65rem; cursor: pointer; }
.onboarding-options label:focus-within, .onboarding-options label:hover { border-color: var(--green); box-shadow: 0 0 0 3px rgba(7,139,62,.12); }
.onboarding-unknown { display: inline-flex; align-items: center; gap: .45rem; margin-top: .65rem; color: var(--muted); font-size: .86rem; }
.onboarding-unknown-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: .75rem; padding: .65rem .9rem; border: 1px solid #9aa7b2; border-radius: .65rem; background: #f4f6f8; color: var(--navy); font-weight: 700; cursor: pointer; }
.onboarding-unknown-button.is-selected { border-color: #b7791f; background: #fff7df; color: #7a4e00; }
.onboarding-error { min-height: 1.25rem; margin-top: .35rem; color: #b42318; font-size: .82rem; }
.onboarding-diagnostics { position: fixed; right: 1rem; bottom: 1rem; z-index: 20; display: grid; gap: .35rem; width: min(360px, calc(100vw - 2rem)); padding: .8rem; border: 1px solid #c99a35; border-radius: .65rem; background: #fffaf0; color: #4a3510; box-shadow: 0 8px 24px rgba(15, 35, 64, .16); font-size: .78rem; }
.onboarding-diagnostics span { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.onboarding-diagnostics button { justify-self: start; padding: .35rem .55rem; border: 1px solid #9a751f; border-radius: .4rem; background: #fff; color: #4a3510; cursor: pointer; }
.onboarding-diagnostics ol { max-height: 9rem; overflow: auto; margin: 0; padding-left: 1.25rem; }
.onboarding-actions { display: flex; justify-content: space-between; gap: .75rem; padding-top: 1rem; }
.onboarding-actions-right { display: flex; gap: .75rem; }
.onboarding-dashboard-card { border-left: 4px solid var(--green); }
.onboarding-page { max-width: 860px; margin: 0 auto; padding: clamp(1rem, 3vw, 3rem) 0 4rem; }
.onboarding-panel { max-width: 760px; margin: 0 auto; padding: clamp(1.25rem, 4vw, 3rem); background: var(--white, #fff); border: 1px solid var(--border, #e5e7eb); border-radius: 18px; box-shadow: 0 12px 34px rgba(15, 35, 64, .07); }
.onboarding-kicker { display: block; color: var(--green); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.onboarding-panel h1 { max-width: 680px; margin: .45rem 0 1rem; color: var(--navy); font-family: 'Inter Tight', Inter, sans-serif; font-size: clamp(1.65rem, 4vw, 2.5rem); line-height: 1.08; }
.onboarding-lead { max-width: 650px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.onboarding-welcome-grid, .onboarding-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.7rem 0; }
.onboarding-welcome-grid > div, .onboarding-summary-grid > div { display: flex; flex-direction: column; gap: .3rem; padding: 1rem; background: #f7faf8; border-radius: 12px; }
.onboarding-welcome-grid i { color: var(--green); font-size: 1.25rem; }
.onboarding-welcome-grid strong, .onboarding-summary-grid strong { color: var(--navy); }
.onboarding-welcome-grid span, .onboarding-summary-grid span { color: var(--muted); font-size: .86rem; line-height: 1.45; }
.onboarding-section-preview { display: grid; gap: .55rem; margin: 1.5rem 0 2rem; }
.onboarding-section-preview > div { display: flex; align-items: center; gap: .7rem; color: var(--navy); font-weight: 600; }
.onboarding-section-preview b { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--green-light, #e8f5ed); color: var(--green); }
.onboarding-topline, .onboarding-question-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .86rem; }
.onboarding-section-title { color: var(--navy); font-size: clamp(1.1rem, 2.2vw, 1.45rem); font-weight: 800; line-height: 1.2; }
.onboarding-topline strong { color: var(--navy); }
.onboarding-progress-track { height: 8px; margin: 1rem 0 1.3rem; overflow: hidden; background: #e9efeb; border-radius: 99px; }
.onboarding-progress-track span { display: block; height: 100%; background: var(--green); border-radius: inherit; transition: width .25s ease; }
.onboarding-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem; margin-bottom: 1.5rem; }
.onboarding-step { display: flex; flex-direction: column; gap: .3rem; color: var(--muted); font-size: .68rem; line-height: 1.2; }
.onboarding-step b { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border: 1px solid var(--border); border-radius: 50%; color: var(--navy); background: #fff; }
.onboarding-step-current, .onboarding-step-completed, .onboarding-step-attention { color: var(--navy); font-weight: 700; }
.onboarding-step-current b, .onboarding-step-completed b { border-color: var(--green); color: #fff; background: var(--green); }
.onboarding-step-attention b { border-color: #b7791f; color: #8a5a0a; background: #fff8df; }
.onboarding-question-meta { justify-content: flex-end; margin-bottom: 1.1rem; text-align: right; }
.onboarding-question-card { padding: clamp(1rem, 3vw, 2rem); background: #fbfcfb; border: 1px solid var(--border); border-radius: 14px; }
.onboarding-question-card h1 { margin-bottom: .7rem; }
@media (min-width: 801px) {
  /* Desktop: lange Onboarding-Fragen ruhiger und kompakter lesen. Mobile bleibt unverändert. */
  .onboarding-question-card > h1:not(#onboardingCompletionTitle) { font-size: clamp(.99rem, 2.4vw, 1.5rem); }
}
.onboarding-completion-screen { display: grid; gap: .85rem; }
.onboarding-completion-screen h1 { margin: 0; }
.onboarding-completion-screen p { margin: 0; color: var(--muted); line-height: 1.55; }
.onboarding-completion-summary { display: grid; gap: .55rem; margin: .35rem 0; padding: .85rem 1rem; background: #f7faf8; border-radius: 10px; color: var(--navy); }
.onboarding-completion-summary strong { font-weight: 800; }
.onboarding-completion-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .35rem; }
.onboarding-answer-field { border: 0; padding: 0; margin: 1.4rem 0 0; }
.onboarding-option { display: flex; align-items: center; min-width: 0; min-height: 52px; padding: .8rem 1rem; border: 2px solid var(--border); border-radius: 10px; cursor: pointer; color: var(--navy); transition: border-color .15s, background .15s; }
.onboarding-option:hover, .onboarding-option:focus-within, .onboarding-option.is-selected { border-color: var(--green); background: var(--green-light, #e8f5ed); }
.onboarding-option.onboarding-choice-confirmed, .onboarding-unknown-button.onboarding-choice-confirmed { animation: onboarding-choice-confirmed .5s ease both; }
.onboarding-option input { flex: 0 0 auto; margin-right: .7rem; accent-color: var(--green); }
.onboarding-option span { min-width: 0; overflow-wrap: anywhere; word-break: break-word; line-height: 1.4; }
.onboarding-input { width: 100%; min-height: 48px; max-width: 560px; }
.onboarding-array-fields { display: grid; width: 100%; gap: .65rem; max-width: 560px; }
.onboarding-add-array { margin-top: .65rem; }
.onboarding-answer-field { display: block; }
.onboarding-actions .onboarding-unknown-button { margin-top: 0; }
.onboarding-import-note { display: inline-flex; gap: .45rem; align-items: center; margin-top: .8rem; padding: .55rem .7rem; color: #17643a; background: #e8f5ed; border-radius: 8px; font-size: .84rem; font-weight: 700; }
.onboarding-industry-options { display: grid; gap: .35rem; max-height: 300px; overflow-y: auto; margin-top: .45rem; padding: .35rem; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.onboarding-industry-option { padding: .75rem; border: 0; border-radius: 7px; background: transparent; color: var(--navy); text-align: left; cursor: pointer; }
.onboarding-industry-option:hover, .onboarding-industry-option:focus { outline: 2px solid var(--green); background: var(--green-light, #e8f5ed); }
.v13-deep-pack-picker { display: grid; gap: .7rem; width: 100%; max-width: 680px; }
.v13-deep-pack-count, .v13-deep-pack-help { color: var(--muted); font-size: .84rem; }
.v13-deep-pack-results { display: grid; gap: .35rem; max-height: 260px; overflow-y: auto; }
.v13-deep-pack-result { min-height: 44px; padding: .7rem .85rem; border: 1px solid var(--border); border-radius: .65rem; background: #fff; color: var(--navy); text-align: left; cursor: pointer; }
.v13-deep-pack-result:hover, .v13-deep-pack-result:focus-visible { border-color: var(--green); background: var(--green-light, #e8f5ed); outline: 2px solid rgba(7,139,62,.18); outline-offset: 1px; }
.v13-deep-pack-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.v13-deep-pack-chip { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .45rem; min-height: 44px; max-width: 100%; padding: .45rem .55rem .45rem .8rem; border: 1px solid #a9cdb6; border-radius: 999px; background: var(--green-light, #e8f5ed); color: var(--navy); }
.v13-deep-pack-chip > span { overflow-wrap: anywhere; }
.v13-deep-pack-chip strong { font-size: .72rem; color: #17643a; }
.v13-deep-pack-primary, .v13-deep-pack-remove { min-height: 32px; padding: .25rem .45rem; border: 0; border-radius: .45rem; background: transparent; color: var(--navy); cursor: pointer; font-weight: 700; }
.v13-deep-pack-primary:hover, .v13-deep-pack-primary:focus-visible { background: #fff; outline: 2px solid var(--green); }
.v13-deep-pack-remove { width: 32px; font-size: 1.35rem; line-height: 1; }
.v13-deep-pack-remove:hover, .v13-deep-pack-remove:focus-visible { background: #fff; color: #9b1c1c; outline: 2px solid #9b1c1c; }
.onboarding-combobox-label { display: block; margin-top: 1.5rem; color: var(--navy); font-weight: 700; }
.onboarding-summary-sections { display: grid; gap: .5rem; margin: 1.5rem 0; }
.onboarding-summary-sections > div { display: grid; grid-template-columns: 2rem 1fr 1fr auto; align-items: center; gap: .6rem; padding: .75rem; border-bottom: 1px solid var(--border); }
.onboarding-summary-status { color: var(--green); }
.onboarding-summary-actions, .onboarding-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: 1.25rem; }
.onboarding-summary-actions > :last-child, .onboarding-actions > div { display: flex; gap: .65rem; }
.onboarding-disclaimer { margin-top: 1.5rem; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.onboarding-complete { text-align: center; }
.onboarding-complete-icon { display: grid; place-items: center; width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 50%; color: #fff; background: var(--green); font-size: 2rem; }
.onboarding-error { color: #b42318; }
.onboarding-page.is-loading { cursor: wait; }
.onboarding-page.is-loading .onboarding-panel { opacity: .72; filter: grayscale(.28); transition: opacity .15s ease, filter .15s ease; }
.onboarding-page.is-loading .onboarding-question-card,
.onboarding-page.is-loading .onboarding-industry-options { background: #f1f3f4; }
.onboarding-reset-area { max-width: 760px; margin: .85rem auto 0; padding: 0 .35rem; text-align: center; }
.onboarding-reset-trigger { padding: .25rem .4rem; border: 0; background: transparent; color: var(--muted); font-size: .78rem; text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.onboarding-reset-trigger:hover, .onboarding-reset-trigger:focus-visible { color: #8b2c23; }
.onboarding-reset-area p { margin: .15rem 0 0; color: var(--muted); font-size: .72rem; }
.onboarding-reset-modal { display: flex; position: fixed; inset: 0; z-index: 2000; align-items: center; justify-content: center; padding: 1rem; }
.onboarding-reset-modal[hidden] { display: none; }
.onboarding-reset-backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.48); backdrop-filter: blur(2px); }
.onboarding-reset-dialog { position: relative; width: min(100%, 460px); padding: 1.5rem; border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: 0 20px 60px rgba(15,23,42,.24); }
.onboarding-reset-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: .85rem; border-radius: 50%; background: #fef3c7; color: #92400e; font-size: 20px; }
.onboarding-reset-dialog h2 { margin: 0 0 .55rem; color: var(--navy); font-size: 1.2rem; }
.onboarding-reset-dialog p { margin: 0; color: #253244; font-size: .92rem; line-height: 1.55; }
.onboarding-reset-note { margin-top: .7rem !important; color: var(--muted) !important; font-size: .82rem !important; }
.onboarding-reset-error { min-height: 1.25rem; margin-top: .75rem; color: #b42318; font-size: .82rem; }
.onboarding-reset-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; }
.btn-reset-danger { min-height: 44px; padding: .65rem .9rem; border: 1px solid #9f2f24; border-radius: .65rem; background: #b42318; color: #fff; font-weight: 700; cursor: pointer; }
.btn-reset-danger:hover, .btn-reset-danger:focus-visible { background: #8f1d14; }
.onboarding-page .onboarding-loading-button { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-width: 12rem; color: #59636d !important; border-color: #c8cdd1 !important; background: #e4e7e9 !important; box-shadow: none !important; cursor: wait; }
.onboarding-loading-spinner { width: 1rem; height: 1rem; flex: 0 0 auto; border: 2px solid #aeb6bd; border-top-color: #59636d; border-radius: 50%; animation: onboarding-loading-spin .75s linear infinite; }
.onboarding-loading-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@keyframes onboarding-loading-spin { to { transform: rotate(360deg); } }
@keyframes onboarding-choice-confirmed { 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(7,139,62,.35); } 45% { transform: scale(1.02); box-shadow: 0 0 0 5px rgba(7,139,62,.16); } 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(7,139,62,0); } }
@media (prefers-reduced-motion: reduce) { .onboarding-loading-spinner { animation: none; border-top-color: #aeb6bd; } .onboarding-page.is-loading .onboarding-panel { transition: none; } .onboarding-option.onboarding-choice-confirmed, .onboarding-unknown-button.onboarding-choice-confirmed { animation: none; } }
@media (max-width: 800px) { .onboarding-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } .onboarding-options .onboarding-option-third, .onboarding-options .onboarding-option-half { grid-column: span 1; } .onboarding-options .onboarding-option-full { grid-column: 1 / -1; } }
@media (max-width: 640px) { .onboarding-page { padding-top: .75rem; } .onboarding-panel { border-radius: 12px; padding: 1rem; } .onboarding-welcome-grid, .onboarding-summary-grid { grid-template-columns: 1fr; } .onboarding-steps { gap: .2rem; } .onboarding-step span { display: none; } .onboarding-actions, .onboarding-summary-actions { align-items: stretch; flex-direction: column-reverse; } .onboarding-actions > div { width: 100%; flex-direction: column; } .onboarding-actions button, .onboarding-summary-actions button { width: 100%; min-height: 46px; } .onboarding-summary-sections > div { grid-template-columns: 2rem 1fr auto; } .onboarding-summary-sections > div > span:nth-child(3) { display: none; } }
@media (max-width: 640px) {
  .onboarding-progress { gap: .25rem; }
  .onboarding-progress-step span { display: none; }
  .onboarding-status { flex-direction: column; gap: .25rem; }
  .onboarding-options { grid-template-columns: 1fr; }
  .onboarding-options .onboarding-option-third, .onboarding-options .onboarding-option-half, .onboarding-options .onboarding-option-full { grid-column: 1 / -1; }
  .onboarding-actions { position: sticky; bottom: 0; background: var(--surface, #fff); padding-bottom: .5rem; }
}
.v11-setup-page { max-width: 900px; }
.v11-setup-card { text-align: left; }
.v11-setup-card h1 { max-width: 680px; }
.v11-setup-recovery { margin-top: 1rem; padding: 1rem; border: 1px solid #e2b8b8; border-radius: 10px; background: #fff7f7; color: #7f1d1d; }
.v11-setup-recovery[hidden] { display: none; }
.v11-setup-recovery-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.v11-setup-recovery-actions a { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: .55rem .85rem; border-radius: 8px; text-decoration: none; font-weight: 650; }
.v11-setup-status { min-height: 1.5rem; margin: 1.35rem 0 .7rem; color: var(--navy); font-weight: 700; }
.v11-setup-progress { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .8rem; margin: 1rem 0 1.5rem; }
.v11-setup-progress-bar { height: .7rem; overflow: hidden; border-radius: 999px; background: #e4ece7; box-shadow: inset 0 0 0 1px rgba(7,139,62,.1); }
.v11-setup-progress-bar span { display: block; height: 100%; border-radius: inherit; background: var(--green, #078b3e); transition: width .25s ease; }
.v11-setup-progress strong { min-width: 3.4rem; color: var(--navy); text-align: right; font-variant-numeric: tabular-nums; }
.v11-setup-phases { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; color: var(--muted); }
.v11-setup-phases li { display: flex; align-items: center; gap: .7rem; min-height: 2rem; }
.v11-setup-phases li > span { width: .7rem; height: .7rem; flex: 0 0 .7rem; border: 2px solid #b8c4bd; border-radius: 50%; background: #fff; }
.v11-setup-phases li.is-current { color: var(--navy); font-weight: 700; }
.v11-setup-phases li.is-current > span { border-color: var(--green, #078b3e); background: var(--green, #078b3e); box-shadow: 0 0 0 4px rgba(7,139,62,.12); }
.v11-setup-phases li.is-done { color: #3e6b50; }
.v11-setup-phases li.is-done > span { border-color: var(--green, #078b3e); background: var(--green, #078b3e); }
.v11-setup-error { min-height: 1.4rem; margin-top: 1.2rem; color: #a32920; }
.v11-setup-page [data-v11-retry].is-loading { cursor: wait; opacity: .9; }
.v11-setup-spinner { display:inline-block; width:1rem; height:1rem; margin-left:.45rem; vertical-align:-.12rem; border:.16rem solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; animation:v11-setup-spin .7s linear infinite; }
@keyframes v11-setup-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .v11-setup-progress-bar span { transition: none; } }
@media (prefers-reduced-motion: reduce) { .v11-setup-spinner { animation:none; } }
@media (max-width: 640px) { .v11-setup-progress { gap: .5rem; } .v11-setup-progress strong { min-width: 3rem; } .v11-setup-phases { gap: .55rem; font-size: .92rem; } }
/* Deutscher Arbeitsschutz Dienst — Design System */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Inter+Tight:wght@400;500;600;700;800&display=swap');

:where(.cf-turnstile) { min-height: 65px; max-width: 100%; }
.order-turnstile { display:flex; justify-content:center; align-items:center; width:100%; max-width:100%; min-height:65px; margin:1.5rem auto 2rem; overflow:hidden; }
.order-turnstile :where(.cf-turnstile) { flex:0 1 auto; margin:0; }

@media (max-width: 480px) {
  .order-turnstile { margin-top:1.35rem; margin-bottom:2rem; padding-inline:0; }
}

:root {
  --navy:        #071E4A;
  --navy-mid:    #0A2E6E;
  --navy-light:  #1a3a6e;
  --green:       #078B3E;
  --green-hover: #066A30;
  --green-light: #E8F5EE;
  --bg:          #F6F8FB;
  --white:       #FFFFFF;
  --border:      #E5EAF2;
  --text:        #1A2235;
  --muted:       #6C7A8D;
  --red:         #DC3545;
  --yellow:      #F59E0B;
  --sidebar-w:   248px;
  --sidebar-accent: #3DD68C;
  --topbar-h:    60px;
}

/* Public Arbeitsschutz-Kurzcheck 2.0 */
.shortcheck-page { min-height: 80vh; color: var(--text); }
.shortcheck-header { background: var(--navy); color: #fff; padding: 1.25rem 0 1rem; }
.shortcheck-kicker { color: var(--green); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.shortcheck-header .shortcheck-kicker { color: #8ee0ae; }
.shortcheck-progress-copy { margin: .2rem 0 .6rem; font-weight: 700; font-size: .92rem; }
.shortcheck-header .progress { background: rgba(255,255,255,.18); height: 8px; }
.public-brand-name { display: block; color: #fff; font-size: 18px; line-height: 1.15; font-weight: 800; white-space: nowrap; }
.public-footer-brand-name { color: #fff; font-size: 14px; font-weight: 700; }
.shortcheck-steps { display: flex; justify-content: center; gap: .4rem; overflow-x: auto; margin-bottom: .85rem; }
.shortcheck-steps span { display: flex; align-items: center; gap: .3rem; color: var(--muted); white-space: nowrap; font-size: .72rem; }
.shortcheck-steps b { display: grid; place-items: center; width: 1.55rem; height: 1.55rem; border: 1px solid var(--border); border-radius: 50%; }
.shortcheck-steps .active, .shortcheck-steps .done { color: var(--navy); font-weight: 800; }
.shortcheck-steps .active b { background: var(--green); color: #fff; border-color: var(--green); }
.shortcheck-card { max-width: 940px; margin: 0 auto; padding: clamp(1.1rem, 2.7vw, 2.15rem); background: var(--white); border: 1px solid var(--border); border-radius: 18px; box-shadow: 0 12px 35px rgba(7,30,74,.08); }
.shortcheck-card h1 { color: var(--navy); font-size: clamp(1.3rem, 2.7vw, 1.8rem); font-weight: 850; }
.shortcheck-welcome { position:relative; isolation:isolate; max-width:760px; min-height:390px; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; text-align:center; padding:clamp(2.4rem,7vw,5rem) clamp(1.25rem,5vw,4rem); border:1px solid rgba(142,224,174,.5); background:linear-gradient(145deg,#071e4a 0%,#0b3260 55%,#087b48 140%); box-shadow:0 24px 70px rgba(7,30,74,.27),0 0 0 1px rgba(255,255,255,.06) inset; cursor:pointer; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.shortcheck-welcome:hover { border-color:#8ee0ae; box-shadow:0 24px 70px rgba(7,30,74,.27),0 0 34px rgba(7,139,62,.2); }
.shortcheck-welcome:focus-visible { outline:4px solid rgba(142,224,174,.75); outline-offset:4px; }
.shortcheck-welcome-glow { position:absolute; z-index:-1; width:260px; height:260px; top:-120px; right:-80px; border-radius:50%; background:rgba(142,224,174,.22); filter:blur(18px); }
.shortcheck-welcome-logo-wrap { position:relative; display:grid; place-items:center; width:150px; height:150px; margin:0 auto 1rem; }
.shortcheck-welcome-logo { position:relative; z-index:2; display:grid; place-items:center; width:82px; height:82px; border:1px solid rgba(142,224,174,.65); border-radius:24px; background:rgba(255,255,255,.1); color:#b7f3ca; font-size:2.35rem; box-shadow:0 0 0 8px rgba(142,224,174,.06),0 0 30px rgba(142,224,174,.28); }
.shortcheck-welcome-wave { position:absolute; z-index:1; width:82px; height:82px; border:2px solid rgba(142,224,174,.65); border-radius:50%; opacity:0; animation:shortcheck-wave 4.2s ease-out infinite; }
.shortcheck-welcome-wave--two { animation-delay:1.2s; }
.shortcheck-welcome-wave--three { animation-delay:2.4s; }
@keyframes shortcheck-wave { 0% { transform:scale(.72); opacity:.72; } 58% { opacity:.2; } 100% { transform:scale(5.5); opacity:0; } }
.shortcheck-welcome-kicker { margin-bottom:.65rem; color:#9ce4b3; font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.shortcheck-welcome h1 { color:#fff; font-size:clamp(1.8rem,4vw,2.7rem); letter-spacing:-.025em; }
.shortcheck-welcome .shortcheck-intro { max-width:520px; margin:0 auto 1.5rem; color:rgba(255,255,255,.78); font-size:1.02rem; }
.shortcheck-welcome form { position:relative; z-index:1; }
.shortcheck-welcome-button { min-width:210px; min-height:54px; justify-content:center; box-shadow:0 0 0 5px rgba(7,139,62,.14),0 10px 28px rgba(0,0,0,.2); }
.shortcheck-welcome-button i { font-size:1.2rem; }
.shortcheck-welcome-hint { margin-top:1.2rem; color:rgba(255,255,255,.55); font-size:.76rem; }
@media (prefers-reduced-motion: reduce) { .shortcheck-welcome-wave { animation:none; opacity:.16; transform:scale(1.25); } }
.shortcheck-welcome .shortcheck-intro { margin:0 auto 1.5rem; }
.shortcheck-intro { color: var(--muted); max-width: 680px; }
.shortcheck-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; row-gap: .35rem; }
.shortcheck-question { border: 0; padding: .35rem 0 1.4rem; }
.shortcheck-question legend { float: none; width: 100%; margin-bottom: .08rem; color: var(--navy); font-size: .92rem; font-weight: 800; }
.shortcheck-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; margin-top: .25rem; }
.shortcheck-option { position: relative; cursor: pointer; }
.shortcheck-option input, .shortcheck-tile input { position: absolute; opacity: 0; }
.shortcheck-option span, .shortcheck-tile span { display: block; min-height: 3rem; padding: .75rem .9rem; border: 1px solid var(--border); border-radius: 12px; background: #fff; font-size: .92rem; font-weight: 650; transition: .15s ease; }
.shortcheck-option input:checked + span, .shortcheck-tile input:checked + span { border-color: var(--green); background: var(--green-light); box-shadow: inset 0 0 0 1px var(--green); }
.shortcheck-option input:focus-visible + span, .shortcheck-tile input:focus-visible + span { outline: 3px solid rgba(7,139,62,.25); outline-offset: 2px; }
.shortcheck-tiles { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; margin-top: .25rem; }
.shortcheck-tile { cursor: pointer; }
.shortcheck-tile span { min-height: 3.8rem; display: flex; align-items: center; }
.shortcheck-question details { margin: .25rem 0 .35rem; padding: .45rem .65rem; border: 1px solid #c8cdd4; border-radius: 8px; background: #e3e6ea; color: #4b5563; font-size: .82rem; }
.shortcheck-question summary { cursor: pointer; color: #374151; font-weight: 700; }
.shortcheck-question details p { margin-top: .35rem; color: #4b5563; }
.shortcheck-select-wrap { position: relative; margin-top: 0; }
.shortcheck-select-wrap::after { content: ''; position: absolute; right: 1rem; top: 50%; width: .65rem; height: .65rem; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.shortcheck-select { width: 100%; min-height: 3rem; appearance: none; padding: .72rem 2.8rem .72rem .9rem; border: 1px solid var(--border); border-radius: 12px; background: #fff; color: var(--navy); font: inherit; font-size: .92rem; font-weight: 650; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.shortcheck-select:required:invalid { font-weight: 400; }
.shortcheck-select option { font-weight: 400; }
.shortcheck-select:hover { border-color: #9bcfb0; background: #fbfefc; }
.shortcheck-select:focus { outline: 3px solid rgba(7,139,62,.2); outline-offset: 2px; border-color: var(--green); box-shadow: 0 0 0 1px var(--green); }
.shortcheck-select:user-invalid { border-color: var(--red); box-shadow: 0 0 0 1px rgba(220,53,69,.12); }
.shortcheck-select:user-invalid:focus { outline-color: rgba(220,53,69,.2); }
.shortcheck-select:valid { border-color: var(--border); background: #fff; box-shadow: none; }
.shortcheck-navigation { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.25rem; }
.shortcheck-result-intro { border: 0 !important; border-left: 0 !important; padding-left: 0 !important; text-align: center !important; }
.shortcheck-result-intro > * { text-align: center !important; }
.shortcheck-result-intro h1 { font-size: clamp(2rem, 7vw, 4rem); margin: .35rem 0; }
.shortcheck-score-circle { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 152px; height: 152px; margin: 1.25rem auto; border: 12px solid var(--green); border-radius: 50%; background: #fff; box-shadow: 0 8px 22px rgba(7,30,74,.12); text-align: center; }
.shortcheck-result-rot .shortcheck-score-circle { border-color: var(--red); }
.shortcheck-result-gelb .shortcheck-score-circle { border-color: var(--yellow); }
.shortcheck-result-gruen .shortcheck-score-circle { border-color: var(--green); }
.shortcheck-score-circle strong { color: var(--navy); font-size: 2.35rem; line-height: 1; }
.shortcheck-score-circle span { margin-top: .25rem; color: var(--muted); font-size: .78rem; font-weight: 650; }
.shortcheck-status { font-size: 1.25rem; font-weight: 850; }
.shortcheck-confidence { padding: .8rem 1rem; background: var(--bg); border-radius: 10px; }
.shortcheck-critical { color: var(--navy); font-weight: 700; text-align: center !important; }
.shortcheck-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; margin: 1.5rem 0; }
.shortcheck-section-score { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--border); border-left: 5px solid var(--border); border-radius: 12px; background: #fff; font-size: .92rem; }
.shortcheck-section-score span { color: var(--navy); font-weight: 850; white-space: nowrap; }
.shortcheck-section-score.is-red { border-color: #f2b8bf; border-left-color: var(--red); background: #fff5f5; }
.shortcheck-section-score.is-yellow { border-color: #f4d99c; border-left-color: var(--yellow); background: #fffaf0; }
.shortcheck-section-score.is-green { border-color: #b9e2c7; border-left-color: var(--green); background: #f3fbf5; }
.shortcheck-section-score.is-neutral { border-left-color: var(--border); background: #f8fafc; }
.shortcheck-result-note { margin: 1.25rem 0 0; padding: 1rem 1.1rem; border: 1px solid var(--border); border-radius: 12px; background: var(--bg); color: var(--muted); line-height: 1.55; }
.shortcheck-findings, .shortcheck-positive, .shortcheck-registration { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
.shortcheck-card h2 { color: var(--navy); font-size: 1.25rem; font-weight: 850; }
.shortcheck-recommendation { margin: .75rem 0; padding: 1rem; border-left: 4px solid var(--red); background: #fff8f8; border-radius: 0 10px 10px 0; line-height: 1.55; }
.shortcheck-recommendation h3 { margin: .2rem 0 .45rem; color: var(--navy); font-size: 1.05rem; }
.shortcheck-positive { padding-left: 1rem; border-left: 4px solid var(--green); }
.shortcheck-positive li { margin: .35rem 0; list-style: none; color: var(--green-hover); font-weight: 650; }
.shortcheck-registration { padding: 1.5rem; background: #f5fbf7; border: 1px solid #ccebd8; border-radius: 14px; }
@media (max-width: 640px) { .shortcheck-profile-grid, .shortcheck-options, .shortcheck-tiles, .shortcheck-section-grid { grid-template-columns: 1fr; } .shortcheck-steps { display: none; } .shortcheck-navigation .btn-green-lg, .shortcheck-navigation .btn-outline-navy { flex: 1; justify-content: center; } }
.public-page--branchen > .branchen-hero-section { background: #fff; padding-bottom: 40px; }
.public-page--leistungen > .hero-section,
.public-page--branchen > .hero-section { border: 0; padding-top: 80px; padding-bottom: 50px; }
@media (max-width: 480px) { .shortcheck-steps { justify-content: space-between; gap: .25rem; overflow: visible; } .shortcheck-steps span { width: 1.55rem; height: 1.55rem; display: block; font-size: 0; } .shortcheck-steps span b { font-size: .72rem; } }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: hidden; }

body {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: var(--text);
  background: var(--bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

.ai-chat-head-actions { display:flex; align-items:center; gap:.75rem; }
.ai-tts-toggle { min-height:40px; display:inline-flex; align-items:center; gap:.45rem; border:0; border-radius:999px; padding:.35rem .5rem; background:transparent; color:var(--muted); font:inherit; font-size:11px; cursor:pointer; transition:color .18s ease,background .18s ease; }
.ai-tts-toggle:hover { background:var(--bg); color:var(--navy); }
.ai-tts-toggle:focus-visible { outline:3px solid rgba(7,139,62,.3); outline-offset:2px; }
.ai-tts-toggle:disabled { opacity:.55; cursor:not-allowed; }
.ai-tts-switch { position:relative; display:inline-flex; width:32px; height:19px; flex:0 0 32px; align-items:center; padding:2px; border:1px solid #cbd6cf; border-radius:999px; background:#dfe7e1; transition:background .18s ease,border-color .18s ease; }
.ai-tts-switch::after { content:""; display:block; width:13px; height:13px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(24,55,38,.22); transform:translateX(0); transition:transform .18s ease; }
.ai-tts-toggle[aria-checked="true"] { color:var(--green-hover); }
.ai-tts-toggle[aria-checked="true"] .ai-tts-switch { border-color:var(--green); background:var(--green); }
.ai-tts-toggle[aria-checked="true"] .ai-tts-switch::after { transform:translateX(13px); }
@media (max-width:767px) { .ai-chat-head-actions .ai-chat-sub { display:none; } .ai-tts-toggle { padding-inline:.35rem; } .ai-tts-label { display:none; } }

/* ── Typography ─────────────────────────────────── */
h1,h2,h3,h4,h5,h6 { font-weight: 700; color: var(--navy); line-height: 1.25; }
.text-navy   { color: var(--navy) !important; }
.text-green  { color: var(--green) !important; }
.text-muted  { color: var(--muted) !important; }
.fw-600      { font-weight: 600 !important; }
.fw-700      { font-weight: 700 !important; }
.fs-13       { font-size: 13px !important; }
.fs-12       { font-size: 12px !important; }

/* ── Buttons ─────────────────────────────────────── */
.btn-green {
  background: var(--green);
  color: #fff !important;
  border: none;
  padding: .6rem 1.4rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  transition: background .2s, transform .1s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.15;
  gap: .4rem;
  cursor: pointer;
  text-decoration: none;
}
.btn-green:hover  { background: var(--green-hover); color: #fff !important; transform: translateY(-1px); }
.btn-green:active { transform: translateY(0); }
.btn-green-lg     { padding: .75rem 2rem; font-size: 15px; border-radius: 10px; }
.btn-white { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; background:#fff; color:var(--navy) !important; border:2px solid #8eb5df; text-decoration:none; transition:background .2s, border-color .1s, transform .1s; }
.btn-white:hover { background:#f1f7ff; border-color:#4f86c6; color:var(--navy) !important; }
.btn-white:focus-visible { outline:3px solid rgba(7,139,62,.3); outline-offset:2px; }
.public-branch-v3-card .btn-outline-navy { box-sizing:border-box; padding:.75rem 1rem; border-radius:10px; font-size:15px; line-height:1.15; }
.public-branch-v3-card .btn-outline-navy { box-sizing:border-box; min-height:44px; height:44px; }
.public-branch-v3-card-image { aspect-ratio:16/8.8; overflow:hidden; background:#e6eee9; }
.public-branch-v3-card-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.public-branch-v3-card:hover .public-branch-v3-card-image img { transform:scale(1.035); }
.home-section-cta { margin-top: 2.75rem !important; }
.home-section-cta > a { min-width: 250px; min-height: 54px; padding: 1rem 2.6rem; font-size: 16px; border-radius: 11px; }
.btn-green-sm     { padding: .35rem 1rem; font-size: 13px; border-radius: 6px; }
/* Legacy public-entrypoint contract marker; active V3 CTAs use .btn-green. */
/* .btn-white { display:inline-flex; } */

.btn-navy {
  background: var(--navy);
  color: #fff;
  border: none;
  padding: .6rem 1.4rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  transition: background .2s;
}
.btn-navy:hover { background: var(--navy-light); color: #fff; }

.btn-outline-navy {
  background: transparent;
  border: 1.5px solid var(--navy);
  color: var(--navy);
  padding: .55rem 1.4rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.15;
  gap: .4rem;
  transition: all .2s;
}
.btn-outline-navy:hover { background: var(--navy); color: #fff; }
.wizard-button, .price-form-actions > .btn-green, .price-form-actions > .btn-outline-navy, .price-form-actions > form > button { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; width:clamp(12rem, 52%, 22rem); min-width:0; min-height:44px; height:44px; padding:.6rem 1rem; border-radius:8px; font-size:14px; line-height:1.15; text-align:center; white-space:nowrap; }

.btn-outline-green {
  background: transparent;
  border: 1.5px solid var(--green);
  color: var(--green);
  padding: .55rem 1.4rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  transition: all .2s;
}
.btn-outline-green:hover { background: var(--green); color: #fff; }

.ai-guided-continuation-card { border:1px solid #8bbfa0; border-left:5px solid var(--green); border-radius:12px; background:#eff9f2; color:#173d27; padding:.9rem 1rem; max-width:min(88%, 760px); box-shadow:0 4px 14px rgba(7,139,62,.1); }
.ai-guided-continuation-label { display:block; color:var(--green); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.2rem; }
.ai-guided-continuation-card p { margin:0 0 .7rem; line-height:1.55; }
.ai-guided-continuation-question { color:#173d27; font-weight:600; }
.ai-guided-continue { min-height:46px; }
.ai-guided-continue:focus-visible { outline:3px solid rgba(7,139,62,.3); outline-offset:2px; }
.ai-workspace-plan-card { border:1px solid #b7d6c0; border-left:5px solid var(--green); border-radius:12px; background:#f3faf5; color:#173d27; padding:.95rem 1.1rem; max-width:min(88%, 760px); box-shadow:0 4px 14px rgba(7,139,62,.08); }
.ai-workspace-plan-card strong { display:block; color:#123c25; font-size:1rem; margin-bottom:.35rem; }
.ai-workspace-plan-card p { margin:0 0 .55rem; line-height:1.5; }
.ai-workspace-plan-status { color:#466755; }
.ai-workspace-plan-line { color:#234b31; }
.ai-workspace-plan-next { color:#123c25; font-weight:650; margin-bottom:0!important; }

/* ── Cards ───────────────────────────────────────── */
.card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(7,30,74,.06);
  overflow: hidden;
}
.card-body { padding: 1.25rem; }
.card-header {
  padding: 1rem 1.25rem;
  background: var(--white);
  border-bottom: 1px solid var(--border);
  font-weight: 600;
  color: var(--navy);
  font-size: 14px;
}
.card-header .card-title { font-weight: 600; font-size: 15px; margin: 0; }
.card-hover { transition: box-shadow .2s, transform .2s; }
.card-hover:hover { box-shadow: 0 4px 16px rgba(7,30,74,.1); transform: translateY(-2px); }

/* Stat cards */
.stat-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.1rem 1.25rem;
  box-shadow: 0 1px 4px rgba(7,30,74,.05);
}
.stat-card .stat-value { font-size: 28px; font-weight: 800; color: var(--navy); line-height: 1; }
.stat-card .stat-label { font-size: 12px; color: var(--muted); margin-top: .2rem; }
.stat-card .stat-icon  { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }

/* ── Badges ──────────────────────────────────────── */
.badge {
  font-weight: 600;
  font-size: 11.5px;
  padding: .3em .65em;
  border-radius: 6px;
}
.badge-primary-soft   { background: #EEF2FF; color: #3730A3; }
.badge-success-soft   { background: #D1FAE5; color: #065F46; }
.badge-warning-soft   { background: #FEF3C7; color: #92400E; }
.badge-danger-soft    { background: #FEE2E2; color: #991B1B; }
.badge-info-soft      { background: #DBEAFE; color: #1E40AF; }
.badge-secondary-soft { background: #F3F4F6; color: #374151; }
.bg-danger-soft       { background: #FEE2E2; }
.bg-warning-soft      { background: #FEF3C7; }
.bg-success-soft      { background: #D1FAE5; }

/* ── Ampel ───────────────────────────────────────── */
.ampel-dot {
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ampel-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 13.5px;
}
.ampel-row:last-child { border-bottom: none; }
.ampel-bereich { flex: 1; font-weight: 500; }
.ampel-status  { font-size: 12px; color: var(--muted); }

/* ── Forms ───────────────────────────────────────── */
.form-control, .form-select {
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 14px;
  padding: .55rem .85rem;
  color: var(--text);
  background: var(--white);
  transition: border-color .2s, box-shadow .2s;
}
.form-control:focus, .form-select:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(7,30,74,.1);
  outline: none;
}
.form-label { font-size: 13px; font-weight: 600; color: var(--navy); margin-bottom: .35rem; }
.input-group .form-control { border-radius: 8px; }

/* ── Tables ──────────────────────────────────────── */
.table { font-size: 13.5px; }
.table th { font-weight: 600; color: var(--navy); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; border-bottom: 2px solid var(--border); padding: .75rem 1rem; }
.table td { padding: .75rem 1rem; vertical-align: middle; border-bottom: 1px solid var(--border); color: var(--text); }
.table tbody tr:hover { background: var(--bg); }
.table-card { border-radius: 12px; overflow: hidden; border: 1px solid var(--border); box-shadow: 0 1px 4px rgba(7,30,74,.05); }
.table-card table { margin: 0; }

/* ── Progress ────────────────────────────────────── */
.progress {
  background: #EEF2FF;
  border-radius: 99px;
  overflow: hidden;
}
.progress-bar-green { background: var(--green); }
.progress-bar-navy  { background: var(--navy); }
.progress-bar-red   { background: var(--red); }
.progress-bar-yellow { background: var(--yellow); }

/* ── Score Circle ────────────────────────────────── */
.score-circle {
  position: relative;
  width: 90px; height: 90px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
  background: conic-gradient(var(--score-color, var(--green)) 0%, var(--score-color, var(--green)) var(--p, 0%), #E5EAF2 var(--p, 0%));
  flex-shrink: 0;
}
.score-circle::after {
  content: '';
  position: absolute;
  inset: 8px;
  background: var(--white);
  border-radius: 50%;
}
.score-circle .score-inner {
  position: relative; z-index: 1;
  text-align: center;
  line-height: 1.1;
}
.score-circle .score-value  { font-size: 20px; font-weight: 800; color: var(--navy); }
.score-circle .score-label  { font-size: 9px; color: var(--muted); font-weight: 600; }

/* Score circle large */
.score-circle-lg {
  width: 130px; height: 130px;
}
.score-circle-lg .score-value { font-size: 28px; }
.score-circle-lg .score-label { font-size: 11px; }
.score-circle-lg::after { inset: 12px; }

/* ── Public Navbar ───────────────────────────────── */
.pub-navbar {
  background: var(--navy);
  padding: 0;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
  box-shadow: 0 2px 8px rgba(7,30,74,.25);
}
.pub-navbar .navbar-brand { color: #fff !important; font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: .5rem; text-decoration: none; }
.pub-navbar .navbar-brand .brand-icon { width: 32px; height: 32px; background: var(--green); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; color: #fff; flex-shrink: 0; }
.pub-navbar .nav-link { color: rgba(255,255,255,.85) !important; font-size: 13.5px; font-weight: 500; padding: 1.1rem .75rem !important; transition: color .2s; }
.pub-navbar .nav-link:hover, .pub-navbar .nav-link.active { color: #fff !important; }
.pub-navbar .nav-cta { background: var(--green); color: #fff !important; border-radius: 8px; padding: .5rem 1.1rem !important; font-weight: 600 !important; margin-left: .5rem; transition: background .2s; }
.pub-navbar .navbar-collapse > .d-flex > .nav-cta:not(:first-child) { background:var(--green); }
.pub-navbar .nav-cta:hover { background: var(--green-hover) !important; }
.nav-dropdown-toggle { border:0; background:transparent; cursor:pointer; }
.public-industry-nav-control { display:flex; align-items:center; }
.public-industry-nav-control .nav-dropdown-toggle { cursor:pointer; padding-right:.15rem !important; }
.public-industry-nav-control { gap:.08rem; }
.public-industry-menu-toggle { display:inline-flex; flex:0 0 1.25rem; align-items:center; justify-content:center; border:0; background:transparent; cursor:pointer; padding:.1rem .05rem !important; }
.public-industry-menu-toggle i { margin-left:0; font-size:.7rem; transition:transform .2s ease; }
.nav-dropdown-toggle i { margin-left:.25rem; font-size:.7rem; transition:transform .2s ease; }
.nav-item--industries { position:relative; }
.public-industry-menu { position:absolute; top:calc(100% - .15rem); left:50%; z-index:1010; width:260px; padding:.45rem; border:1px solid rgba(255,255,255,.12); border-radius:10px; background:#fff; box-shadow:0 16px 36px rgba(2,13,37,.25); opacity:0; visibility:hidden; transform:translate(-50%, -.35rem); transition:opacity .18s ease, transform .18s ease, visibility .18s; }
.public-service-menu { width:380px; }
.public-service-menu .public-industry-grid { grid-template-columns:1fr; }
.public-service-menu .public-industry-child { gap:.65rem; white-space:nowrap; }
.public-service-menu .public-industry-child > i { flex:0 0 1.25rem; width:1.25rem; margin:0; }
.public-industry-grid { display:grid; grid-template-columns:1fr; }
.public-industry-entry { position:relative; min-width:0; }
.public-industry-parent-row { position:relative; min-width:0; }
.public-industry-submenu { position:absolute; top:-.45rem; left:100%; z-index:2; display:none; grid-auto-flow:column; grid-template-rows:repeat(12, minmax(0, auto)); grid-auto-columns:260px; width:max-content; max-width:min(780px, 70vw, calc(100vw - 16px)); padding:.45rem; border:1px solid rgba(7,139,62,.18); border-radius:10px; background:#fff; box-shadow:0 12px 28px rgba(2,13,37,.22); }
.public-industry-submenu.is-scrollable { max-height:calc(12 * 46px + .9rem); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(7,139,62,.45) transparent; }
.public-industry-entry.is-submenu-open > .public-industry-submenu { display:grid; }
.nav-item--industries.is-open .public-industry-menu { opacity:1; visibility:visible; transform:translate(-50%, 0); }
.public-industry-menu.is-edge-left { left:0; transform:translate(0, -.35rem); }
.nav-item--industries.is-open .public-industry-menu.is-edge-left { transform:translate(0, 0); }
.public-industry-menu.is-edge-right { left:auto; right:0; transform:translate(0, -.35rem); }
.nav-item--industries.is-open .public-industry-menu.is-edge-right { transform:translate(0, 0); }
.public-industry-submenu.is-open-left { left:auto; right:100%; }
.public-industry-menu-toggle i { transform:rotate(0deg) !important; }
.industry-child-toggle i { transform:none !important; }
.public-mobile-menu-back { display:none; }
.public-industry-link { display:flex; align-items:center; gap:.7rem; min-height:46px; padding:.65rem .75rem; border-radius:7px; color:var(--navy); font-size:13px; font-weight:650; text-decoration:none; }
.public-industry-link i { width:1.25rem; color:var(--green); font-size:1rem; text-align:center; }
.public-industry-link .industry-child-indicator { width:auto; margin-left:auto; font-size:.65rem; }
.public-industry-child { gap:0; }
.industry-child-toggle { position:absolute; top:.45rem; right:.45rem; display:block; border:0; padding:.35rem; color:var(--green); background:transparent; cursor:pointer; }
.industry-child-toggle i { display:block; width:auto; font-size:.65rem; transition:transform .18s ease; }
.public-industry-link:hover, .public-industry-link:focus-visible, .public-industry-link.is-current { background:var(--green-light); color:var(--navy); outline:none; }
.public-industry-text { cursor:default; }
.public-industry-text:hover { background:rgba(7,139,62,.14); color:var(--navy); }
.public-industry-text i { color:var(--green); }
@media (min-width:768px) and (max-width:900px) { .public-industry-menu { width:260px; } }
@media (min-width:992px) {
  .pub-navbar .navbar-nav { width:100%; justify-content:center; margin-left:0 !important; margin-right:0 !important; padding-right:6rem; box-sizing:border-box; }
  .pub-navbar .navbar-collapse { position:relative; }
  .pub-navbar .navbar-nav .public-mobile-auth-item { position:absolute; top:50%; right:0; width:auto; margin:0; transform:translateY(-50%); }
  .pub-navbar .navbar-nav .public-mobile-auth-item .nav-cta { margin-left:0; white-space:nowrap; }
}
@media (min-width:768px) {
  .nav-item--industries:hover .public-industry-menu,
  .nav-item--industries:focus-within .public-industry-menu { opacity:1; visibility:visible; transform:translate(-50%, 0); }
  .nav-item--industries:hover .public-industry-menu.is-edge-left,
  .nav-item--industries:focus-within .public-industry-menu.is-edge-left { transform:translate(0, 0); }
  .nav-item--industries:hover .public-industry-menu.is-edge-right,
  .nav-item--industries:focus-within .public-industry-menu.is-edge-right { transform:translate(0, 0); }
  .public-industry-entry.has-children:hover > .public-industry-submenu,
  .public-industry-entry.has-children:focus-within > .public-industry-submenu { display:grid; }
}
.public-industry-link:focus-visible, .nav-dropdown-toggle:focus-visible { outline:3px solid #8ee0ae; outline-offset:2px; }

/* ── Public Sections ─────────────────────────────── */
body.public-page { min-height:100vh; display:flex; flex-direction:column; background:var(--navy); }
body.public-page { padding-top:var(--public-nav-height, 57px); }
body.public-page > .pub-footer { margin-top:auto; flex:0 0 auto; }
.public-page--preise > .hero-section,
.public-page--preise > .price-selector-section,
.public-page--preise > .section-white { flex:0 0 auto; }
.hero-section { background: var(--white); padding: 5rem 0 3.5rem; }
.public-page:not(.public-page--home):not(.public-page--branchen):not(.public-page--leistungen) .hero-section { padding:2rem 0 .65rem !important; }
.public-page:not(.public-page--home) .hero-section + .section-white,
.public-page:not(.public-page--home) .hero-section + .section-light { padding-top:1.1rem !important; }
.public-page--ueber-uns .legal-page-hero,
.public-page--datenschutz .legal-page-hero,
.public-page--impressum .legal-page-hero { padding-bottom:.25rem !important; }
.public-page--ueber-uns .legal-page-content,
.public-page--datenschutz .legal-page-content,
.public-page--impressum .legal-page-content { padding-top:.55rem; }
.hero-title   { font-size: 2.85rem; font-weight: 800; line-height: 1.15; color: var(--navy); }
.hero-title .highlight { color: var(--green); }
.public-page h1 { font-weight:700 !important; }
.public-hero-heading { max-width:100%; margin:.35rem 0 1rem; color:var(--navy); font-size:clamp(1.55rem,3vw,3.2rem); font-weight:700; line-height:1.08; letter-spacing:-.02em; text-wrap:balance; }
.public-hero-heading > span { display:block; white-space:nowrap; }
.home-hero-title { font-size:clamp(1.55rem, 3vw, 3.2rem); }
.hero-sub     { font-size: 1.1rem; color: var(--muted); margin-top: .75rem; line-height: 1.6; }

.home-video-panel { width: 100%; border-radius: 14px; box-shadow: 0 10px 24px rgba(7,30,74,.14); }
.video-poster { aspect-ratio: 16 / 9; position: relative; overflow: hidden; border-radius: 14px; }
.video-element { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.home-video-preview { pointer-events: none; }
.video-play { width: 68px; height: 68px; border: 0; border-radius: 50%; background: rgba(255,255,255,.96); color: var(--green); display: flex; align-items: center; justify-content: center; font-size: 30px; padding-left: 3px; box-shadow: 0 5px 16px rgba(0,0,0,.2); }
.home-video-trigger { position: absolute; inset: 50% auto auto 50%; z-index: 1; transform: translate(-50%, -50%); cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.home-video-trigger::before, .home-video-trigger::after { position:absolute; inset:-8px; z-index:-1; border:2px solid rgba(114,213,155,.58); border-radius:50%; content:""; pointer-events:none; animation:home-video-play-wave 2.8s ease-out infinite; }
.home-video-trigger::after { animation-delay:1.4s; }
.home-video-trigger:hover, .home-video-trigger:focus-visible { transform: translate(-50%, -50%) scale(1.08); background: #fff; box-shadow: 0 7px 20px rgba(0,0,0,.24); outline: none; }
.home-video-trigger:hover::before, .home-video-trigger:hover::after, .home-video-trigger:focus-visible::before, .home-video-trigger:focus-visible::after { animation-play-state:paused; }
@keyframes home-video-play-wave { 0% { opacity:.58; transform:scale(.92); } 70%, 100% { opacity:0; transform:scale(1.28); } }
.video-play:disabled { opacity: .9; cursor: not-allowed; }
.home-video-lightbox { position: fixed; inset: 0; z-index: 2100; display: grid; place-items: center; padding: 2rem; }
.home-video-lightbox[hidden] { display: none; }
.home-video-lightbox-backdrop { position: absolute; inset: 0; background: rgba(2,10,25,.82); backdrop-filter: blur(5px); }
.home-video-lightbox-dialog { position: relative; z-index: 1; width: min(50vw, 900px); aspect-ratio: 16 / 9; overflow: visible; background: transparent; animation: home-video-lightbox-in .2s ease-out; }
.home-video-lightbox-close { position: absolute; top: .65rem; right: .65rem; z-index: 2; width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(2,10,25,.55); color: #fff; cursor: pointer; }
.home-video-lightbox-close:hover, .home-video-lightbox-close:focus-visible { background: rgba(255,255,255,.16); outline: 2px solid #72d59b; outline-offset: 2px; }
.home-video-lightbox-video { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; background: #000; object-fit: contain; }
@keyframes home-video-lightbox-in { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: scale(1); } }
.home-video-open { overflow: hidden; }
.home-trust-bar { position:relative; overflow:hidden; background:#fff; border-top:1px solid #e5eaf2; border-bottom:1px solid #e5eaf2; padding:1rem 0; }
.home-trust-bar::after { display:none; }
.home-trust-marquee { position:relative; z-index:1; overflow:hidden; }
.home-trust-track { display:flex; width:max-content; animation:home-trust-marquee 72s linear infinite; will-change:transform; }
.home-trust-items { display:flex; flex:0 0 auto; align-items:stretch; gap:.75rem; padding-right:.75rem; }
.home-trust-item { display:flex; align-items:center; justify-content:center; gap:.65rem; min-width:15.5rem; min-height:3.25rem; padding:.65rem 1rem; border:0; border-radius:0; color:#343a40; background:transparent; box-shadow:none; font-size:.82rem; font-weight:750; line-height:1.25; text-align:left; }
.home-trust-item > i { display:grid; flex:0 0 2rem; place-items:center; width:2rem; height:2rem; border:1px solid #cfd4da; border-radius:50%; color:#343a40; background:#f1f3f5; font-size:1rem; }
@keyframes home-trust-marquee { from { transform:translate3d(0,0,0); } to { transform:translate3d(-50%,0,0); } }
.home-trust-marquee:hover .home-trust-track { animation-play-state:paused; }
@media (min-width:768px) {
  .public-page--home .home-trust-bar > .container { width:100%; max-width:none; padding-left:0; padding-right:0; }
}

.section-title   { font-size: 1.7rem; font-weight: 800; color: var(--navy); }
.section-sub     { font-size: 1rem; color: var(--muted); margin-top: .4rem; }
.section-light   { background: var(--bg); padding: 4rem 0; }
.section-white   { background: var(--white); padding: 4rem 0; }
.section-navy    { background: var(--navy); padding: 4rem 0; color: #fff; }
.section-navy h2,
.section-navy h3 { color: #fff; }

/* ── Public auth surfaces ─────────────────────────── */
.auth-shell { min-height:100vh; display:flex; flex-direction:column; background:linear-gradient(135deg,#f6f8fb 0%,#edf5ef 100%); }
.auth-main { flex:1; display:flex; align-items:center; justify-content:center; padding:2rem 1rem; }
.auth-card { width:100%; max-width:450px; background:#fff; border:1px solid var(--border); border-radius:20px; box-shadow:0 18px 55px rgba(7,30,74,.11); padding:2rem; }
.auth-brand { width:58px; height:58px; border-radius:16px; background:var(--navy); display:flex; align-items:center; justify-content:center; color:var(--green); font-size:25px; margin:0 auto 1rem; }
.auth-steps { display:flex; gap:.5rem; margin:1.4rem 0 1.8rem; }
.auth-step { height:5px; flex:1; border-radius:99px; background:#e9eef4; }
.auth-step.active { background:var(--green); }
.code-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.55rem; min-width:0; }
.code-input { width:100%; min-width:0; max-width:100%; height:58px; box-sizing:border-box; text-align:center; font-size:1.45rem; font-weight:800; border:1px solid #cfd8e3; border-radius:10px; color:var(--navy); }
.code-input:focus { border-color:var(--green); box-shadow:0 0 0 .22rem rgba(7,139,62,.14); outline:0; }
.auth-muted { color:var(--muted); font-size:.88rem; }
.auth-email { font-weight:750; color:var(--navy); word-break:break-word; }
.auth-link-button { border:0; background:none; color:var(--navy); font-weight:700; padding:0; text-decoration:underline; }
.auth-link-button:disabled { opacity:.5; cursor:not-allowed; }
.check-consent { color:var(--muted); font-size:.78rem; line-height:1.45; padding-left:1.55rem; }
.check-consent .form-check-input { width:.9rem; height:.9rem; margin-left:-1.55rem; margin-top:.22rem; }
.check-consent a { color:var(--navy); font-weight:700; text-underline-offset:2px; }
.public-page--login { background:linear-gradient(135deg,#f6f8fb 0%,#edf5ef 100%) !important; }
.section-label {
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--green); margin-bottom: .5rem;
}

/* ── Homepage refresh: process, areas, industries and comparison ── */
.dad-home-process { padding: 5rem 0; }
.dad-process-track { display: flex; align-items: stretch; gap: 0; }
.dad-process-item { display: flex; align-items: center; flex: 1 1 0; min-width: 0; }
.dad-process-card { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 280px; padding: 1.75rem; background: #fff; border: 1px solid var(--border); border-top: 4px solid var(--green); border-radius: 14px; box-shadow: 0 8px 22px rgba(7,30,74,.07); transition: transform .2s, box-shadow .2s, border-color .2s; }
.dad-process-item:nth-child(2) .dad-process-card { border-top-color: var(--navy); }
.dad-process-item:nth-child(3) .dad-process-card { border-top-color: #3b82a0; }
.dad-process-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(7,30,74,.12); }
.dad-process-number { color: var(--navy); font-size: 3.4rem; font-weight: 850; line-height: .9; letter-spacing: .02em; margin-bottom: 1.25rem; }
.dad-process-topline { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:48px; margin-bottom:1.2rem; }
.dad-process-topline .dad-process-number { margin:0; }
.dad-process-topline .feature-icon { margin-bottom:0; }
.dad-process-card .feature-icon { width: 48px; height: 48px; margin-bottom: 1.2rem; }
.dad-process-card-body { margin-top: auto; }
.dad-process-card h3 { color: var(--navy); font-size: 1.05rem; font-weight: 800; margin: 0 0 .55rem; }
.dad-process-card p { color: #415064; font-size: .9rem; line-height: 1.6; margin: 0; }
.dad-process-connector { flex: 0 0 42px; color: var(--green); font-size: 1.35rem; text-align: center; }

.dad-home-areas { padding: 5rem 0; color: var(--navy); background: #f1f3f5; }
.dad-home-areas .section-title { color: var(--navy); }
.dad-home-areas .section-sub { color: var(--muted); }
.dad-home-areas .section-label { color: var(--green); }
.dad-home-areas .row { align-items:stretch; }
.dad-area-card { display: flex; flex-direction: column; align-items:center; flex: 1; height:100%; min-height:220px; padding:1.1rem; text-align:center; background: #fff; border: 1px solid #e1e5e9; border-radius: 14px; box-shadow: 0 10px 24px rgba(7,30,74,.08); transition: transform .2s, box-shadow .2s; }
.dad-area-card { color:var(--text); text-decoration:none; }
.dad-area-card { align-items:stretch; }
.dad-area-card:focus-visible { outline:3px solid #8ee0ae; outline-offset:3px; }
.dad-area-card:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(0,0,0,.2); }
.dad-area-icon { align-self:center; width:52px; height:52px; margin:0 auto .8rem; display:flex; align-items:center; justify-content:center; font-size:1.25rem; }
.dad-area-card h3 { color: var(--navy); font-size: .92rem; font-weight: 800; margin:0 0 .35rem; }
.dad-area-card p { color: #415064; font-size: .84rem; line-height: 1.55; margin: 0; }

.dad-home-industries { padding: 5rem 0; }
.dad-industry-card { display: flex; flex-direction: column; flex: 1; height: 100%; overflow: hidden; min-height: 310px; color: var(--text); text-decoration: none; background: #fff; border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 7px 18px rgba(7,30,74,.07); transition: transform .2s, box-shadow .2s, border-color .2s; }
.dad-industry-card:hover { color: var(--text); border-color: var(--green); box-shadow: 0 14px 28px rgba(7,139,62,.14); transform: translateY(-4px); }
.dad-industry-image { aspect-ratio: 16 / 10; overflow: hidden; background: #dfe8e4; }
.dad-industry-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.dad-industry-card:hover .dad-industry-image img { transform: scale(1.035); }
.dad-industry-content { display: flex; flex-direction: column; flex: 1; padding: 1.1rem 1.15rem 1.25rem; }
.dad-industry-content h3 { color: var(--navy); font-size: .98rem; font-weight: 800; margin: 0 0 .4rem; }
.dad-industry-content p { color: #4b5a6b; font-size: .83rem; line-height: 1.5; margin: 0; }

/* ── V3 SEO pages ─────────────────────────────────── */
.v3-seo-page { background:var(--white); color:var(--text); }
.v3-breadcrumb { display:flex; flex-wrap:wrap; gap:.55rem; padding:1.25rem 0; color:var(--muted); font-size:.82rem; }
.v3-breadcrumb a { color:var(--navy); font-weight:700; text-decoration:none; }
.v3-breadcrumb a:hover { color:var(--green); text-decoration:underline; }
.v3-seo-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px, .9fr); align-items:center; gap:3rem; padding:2rem 0 4rem; }
.v3-seo-hero-copy { min-width:0; }
.v3-seo-hero h1 { max-width:100%; margin:0 0 1rem; color:var(--navy); font-size:clamp(2rem,4vw,3.35rem); line-height:1.1; overflow-wrap:anywhere; word-break:normal; hyphens:auto; text-wrap:balance; }
.v3-seo-lead { max-width:65ch; color:var(--muted); font-size:1.08rem; line-height:1.7; }
.v3-seo-hero-media { margin:0; overflow:hidden; border-radius:16px; box-shadow:0 14px 30px rgba(7,30,74,.14); }
.v3-seo-hero-media .video-poster { border-radius:16px; }
.v3-seo-hero-media img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.v3-seo-benefits h2, .v3-seo-content h2 { margin:0 0 1.5rem; color:var(--navy); font-size:clamp(1.5rem,2.6vw,2.15rem); }
.v3-benefit-card { height:100%; padding:1.35rem; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:0 7px 18px rgba(7,30,74,.06); }
.v3-benefit-card i { color:var(--green); font-size:1.35rem; }
.v3-benefit-card h3 { margin:.7rem 0 0; color:var(--navy); font-size:1rem; line-height:1.45; }
.v3-subindustry-card { display:flex; height:100%; flex-direction:column; align-items:flex-start; padding:1.2rem; color:var(--text); text-decoration:none; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:0 7px 18px rgba(7,30,74,.06); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.v3-subindustry-card:hover { color:var(--text); border-color:var(--green); transform:translateY(-3px); box-shadow:0 12px 24px rgba(7,139,62,.12); }
.v3-subindustry-card:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:3px; }
.v3-subindustry-card > i { color:var(--green); font-size:1.25rem; }
.v3-subindustry-card h3 { margin:.75rem 0 .65rem; color:var(--navy); font-size:1rem; line-height:1.4; }
.v3-subindustry-card span { margin-top:auto; color:var(--green); font-size:.8rem; font-weight:800; }
.v3-related-links { margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--border); }
.v3-related-links h2 { margin:0 0 1rem; color:var(--navy); font-size:1.25rem; }
.v3-related-links-list { display:flex; flex-wrap:wrap; gap:.7rem; }
.v3-related-links-list a { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; padding:.65rem .85rem; border:1px solid #cfe6d6; border-radius:10px; background:#f6fbf7; color:var(--navy); font-size:.86rem; font-weight:750; text-decoration:none; }
.v3-related-links-list a:hover, .v3-related-links-list a:focus-visible { border-color:var(--green); background:var(--green-light); color:var(--green-hover); outline:none; }
.industry-inline-links { margin:1.1rem 0 0; padding-top:.8rem; border-top:1px solid var(--border); color:var(--muted); font-size:.9rem; line-height:1.65; }
.industry-inline-links a { color:var(--green); font-weight:750; text-decoration:underline; text-underline-offset:2px; }
.industry-inline-links a:hover, .industry-inline-links a:focus-visible { color:var(--green-hover); }
.v3-seo-accordion { max-width:900px; }
.v3-info-card { margin:.55rem 0; border:1px solid var(--border); border-radius:10px; background:#fff; box-shadow:0 4px 14px rgba(7,30,74,.045); overflow:hidden; transition:border-color .18s ease,box-shadow .18s ease; }
.v3-info-card:hover, .v3-info-card[open] { border-color:#b9d8c2; box-shadow:0 8px 20px rgba(7,30,74,.08); }
.v3-info-card summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:56px; padding:.85rem 1rem; color:var(--navy); font-size:.92rem; font-weight:700; line-height:1.45; cursor:pointer; list-style:none; }
.v3-info-card summary::-webkit-details-marker { display:none; }
.v3-info-card summary:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:-3px; }
.v3-info-card-title { flex:1; }
.v3-info-card-icon { flex:0 0 auto; color:var(--green); font-size:1rem; transition:transform .18s ease; }
.v3-info-card[open] .v3-info-card-icon { transform:rotate(45deg); }
.v3-seo-article { padding:0 1.2rem 1.25rem; color:#334155; line-height:1.75; }
.v3-service-featured-content .v3-seo-article { padding-left:0; padding-right:0; text-align:left; }
.v3-industry-seo-article { padding-left:0; padding-right:0; text-align:left; }
.v3-industry-seo-article > h2:first-child { margin-top:0; }
.v3-seo-article h2 { margin-top:2rem; font-size:1.4rem; }
.v3-seo-article h3 { margin-top:1.5rem; color:var(--navy); font-size:1.1rem; }
.v3-seo-article p { margin:0 0 1rem; }
.v3-seo-article ul { padding-left:1.35rem; }
.v3-inline-more-toggle { display:inline-flex; align-items:center; margin:.2rem 0 .85rem; padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--green-hover); font:inherit; font-weight:750; cursor:pointer; }
.v3-inline-more-toggle:hover { color:var(--navy); }
.v3-inline-more-toggle:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:3px; border-radius:3px; }
.v3-inline-more { margin-top:.25rem; }
.v3-source-note { max-width:900px; margin:1.5rem 0; color:var(--muted); font-size:.9rem; }
.v3-service-featured-content .v3-source-note { width:100%; max-width:none; margin:1.5rem 0; padding:0; box-sizing:border-box; text-align:left; }
.public-branch-card { overflow:hidden; }
.public-branch-card .card-body { display:flex; flex:1; padding:1rem !important; }
.public-branch-card-content { flex:1; flex-direction:column; align-items:stretch !important; gap:.7rem !important; }
.public-branch-card-content > .flex-grow-1 { width:100%; }
.public-branch-card-content h5 { min-height:2.55rem; }
.public-branch-card-content .d-flex.flex-wrap { min-height:3.1rem; align-content:flex-start; }
.public-branch-card-content p { min-height:3.4rem; }
.public-branch-card-cta { width:75%; align-self:flex-start; margin-top:.1rem; padding:.72rem 1rem; min-height:44px; text-align:center; }
.public-service-card { overflow:hidden; }
.public-service-card .dad-industry-image { aspect-ratio:16 / 8; }
.public-service-card:hover .dad-industry-image img { transform:scale(1.035); }

/* V3 service overview and branch cards */
.v3-services-hero-copy { max-width:680px; }
.section-heading-compact { max-width:760px; margin:0 auto 2.5rem; text-align:center; }
.section-heading-compact .section-label, .section-heading-compact h2, .section-heading-compact p { text-align:center; }
.section-heading-compact p { max-width:620px; margin:.7rem auto 0; color:var(--muted); line-height:1.65; }
.v3-services-overview { padding:5.5rem 0 6rem; }
.v3-service-card { display:flex; flex-direction:column; height:100%; overflow:hidden; color:var(--text); text-decoration:none; border:1px solid var(--border); border-radius:16px; background:#fff; box-shadow:0 7px 18px rgba(7,30,74,.065); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.v3-service-card:hover { color:var(--text); border-color:var(--green); transform:translateY(-4px); box-shadow:0 14px 28px rgba(7,139,62,.14); }
.v3-service-card-image { aspect-ratio:16/8.8; overflow:hidden; background:#e6eee9; }
.v3-service-card-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.v3-service-card:hover .v3-service-card-image img { transform:scale(1.035); }
.v3-service-card-body { display:flex; flex:1; flex-direction:column; padding:1.1rem 1.15rem 1.15rem; }
.v3-service-card-body h2 { margin:0 0 .55rem; color:var(--navy); font-size:1.03rem; line-height:1.35; }
.v3-service-card-body p { display:-webkit-box; overflow:hidden; margin:0; color:var(--muted); font-size:.86rem; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:4; }
.v3-service-card-actions { display:flex; margin-top:auto; padding-top:1rem; }
.v3-service-card-actions .btn-green { width:100%; min-height:44px; height:44px; padding:.6rem 1rem; }
.v3-process-card { height:100%; padding:1.1rem .8rem; text-align:center; border:1px solid var(--border); border-radius:14px; background:#fff; }
.v3-process-card > i { display:grid; place-items:center; width:42px; height:42px; margin:0 auto .7rem; border-radius:12px; background:var(--green-light); color:var(--green); font-size:1.15rem; }
.v3-process-card h3 { margin:0 0 .35rem; color:var(--navy); font-size:.9rem; line-height:1.35; }
.v3-process-card p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.45; }
.public-branch-v3-card { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid var(--border); border-radius:16px; background:#fff; box-shadow:0 7px 18px rgba(7,30,74,.065); }
.public-branch-v3-card > img { display:block; width:100%; height:142px; object-fit:cover; }
.public-branch-v3-card .card-body { padding:1rem 1.05rem 1.1rem !important; }
.public-branch-v3-card h2 { margin:0 0 .5rem; color:var(--navy); font-size:1.1rem; }
.public-branch-v3-card p { display:-webkit-box; overflow:hidden; min-height:3.9rem; margin:0 0 .9rem; color:var(--muted); font-size:.82rem; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.public-branch-v3-card-actions { display:flex; flex-direction:column; gap:.6rem; margin-top:auto; padding-top:1rem; }
.public-branch-v3-card-actions .btn-outline-navy { box-sizing:border-box; width:100%; min-width:0; min-height:44px; height:44px; padding:.6rem 1rem; justify-content:center; font-size:13px; }

.dad-home-comparison { position: relative; overflow: hidden; padding: clamp(6rem, 10vw, 10rem) 0; color: var(--navy); background: linear-gradient(180deg, #f7fbff 0%, #edf5ff 52%, #ffffff 100%); }
.dad-home-comparison::before, .dad-home-comparison::after { position:absolute; content:""; pointer-events:none; border-radius:50%; filter:blur(1px); }
.dad-home-comparison::before { width:560px; height:560px; top:-280px; right:-160px; background:rgba(64,146,229,.13); }
.dad-home-comparison::after { width:420px; height:420px; bottom:-260px; left:-150px; background:rgba(24,177,142,.1); }
.dad-comparison-intro, .dad-comparison-wrap, .comparison-proof, .dad-home-comparison .home-section-cta { position:relative; z-index:1; }
.dad-comparison-intro { max-width:760px; margin:0 auto 2.7rem; }
.comparison-kicker { display:inline-flex; align-items:center; gap:.45rem; margin-bottom:1rem; padding:.5rem .95rem; border:1px solid #b7d2f1; border-radius:999px; color:#15529a; background:#e7f1ff; font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.dad-home-comparison .section-title { color:var(--navy); font-size:clamp(2.2rem, 5vw, 4rem); letter-spacing:-.055em; }
.dad-home-comparison .section-sub { max-width:700px; margin:1rem auto 0; color:#52647a; font-size:1.12rem; }
.dad-comparison-wrap { max-width:1160px; margin:0 auto; padding:1.35rem; border:1px solid #d3e1f2; border-radius:30px; background:rgba(255,255,255,.82); box-shadow:0 28px 75px rgba(14,55,105,.14); }
.dad-comparison-head, .dad-comparison-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.dad-comparison-column { padding:1.6rem 1.8rem; border-radius:22px 22px 10px 10px; }
.dad-comparison-column span { display: block; font-size: 1.05rem; font-weight: 800; }
.dad-comparison-column small { display:block; margin-top:.35rem; font-size:.8rem; opacity:.8; }
.dad-comparison-column span i { margin-right:.4rem; }
.dad-comparison-positive { background:linear-gradient(135deg,#e5fff6,#c6f4e5); color:#075b4c; }
.dad-comparison-negative { background:#f0e2df; color:#5b3e3a; }
.dad-comparison-rows { padding-top: .75rem; }
.dad-comparison-row { padding:.45rem 0; }
.dad-comparison-cell { display:flex; align-items:center; gap:1rem; min-height:84px; padding:1.25rem 1.8rem; border-radius:17px; font-size:1.02rem; font-weight:750; transition:transform .22s ease, box-shadow .22s ease; }
.dad-comparison-row:hover .dad-comparison-cell { transform:translateY(-3px); box-shadow:0 14px 28px rgba(14,55,105,.12); }
.dad-comparison-cell i { flex:0 0 auto; font-size:1.25rem; }
.dad-comparison-cell.dad-comparison-positive { color:#075b4c; background:#e7faf2; border:1px solid #bce9d8; }
.dad-comparison-cell.dad-comparison-positive i { color:#07956f; }
.dad-comparison-cell.dad-comparison-negative { color:#5b3e3a; background:#ffe9e5; border:1px solid #e8bdb5; font-weight:600; }
.dad-comparison-cell.dad-comparison-negative i { color:#aa6d61; }
.dad-comparison-mobile { display:none; }
.comparison-proof { display:flex; justify-content:center; flex-wrap:wrap; gap:.7rem 2rem; margin:2.3rem auto 0; color:#355d8d; font-size:.9rem; font-weight:750; }
.comparison-proof span { display:inline-flex; align-items:center; gap:.4rem; }
.comparison-proof i { color:#159b78; }
.dad-home-comparison .home-section-cta { margin-top:2.2rem !important; }
.dad-home-comparison .home-section-cta .btn-green { box-shadow:0 12px 30px rgba(7,30,74,.18); }

@media (max-width: 767.98px) {
  body.public-page { --public-nav-height: 58px; }
  body.public-page { min-height:100dvh; }
  body.public-page > .pub-footer { padding-bottom:calc(1.5rem + env(safe-area-inset-bottom)); }
  .public-page,
  .public-page .container,
  .public-page .row { min-width: 0; }
  .public-page .container { padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5); }
  .public-page .btn-green,
  .public-page .btn-outline-navy,
  .public-page .btn-outline-green,
  .public-page .btn-navy,
  .public-page a[class*="btn-"],
  .public-page button[class*="btn-"],
  .public-page button[type="submit"] { width: 100%; justify-content: center; }
  .public-page--home .hero-section .row { display:grid; grid-template-columns:minmax(0,1fr); gap:0; align-items:stretch; margin:0; }
  .public-page--home .hero-section .row > .col-lg-6 { display:contents; }
  .public-page--home .hero-section .section-label { order:1; }
  .public-page--home .hero-section .home-hero-title { order:2; }
  .public-page--home .hero-section .home-hero-sub { order:3; }
  .public-page--home .hero-section .home-video-panel { order:4; margin-top:1rem; }
  .public-page--home .hero-section .home-hero-actions { order:5; }
  .public-page .home-hero-actions { display: flex; flex-wrap: nowrap; gap: .55rem !important; }
  .public-page .home-hero-actions > a { flex: 1 1 0; min-width: 0; width: auto; padding: .68rem .45rem !important; font-size: .78rem !important; white-space: nowrap; }
  .public-page .home-trust-bar { padding:.75rem 0; }
  .public-page .home-trust-track { animation-duration:62s; }
  .public-page .home-trust-items { gap:.55rem; padding-right:.55rem; }
  .public-page .home-trust-item { justify-content:flex-start; min-width:14rem; min-height:2.85rem; padding:.55rem .75rem; font-size:.8rem; }
  .public-page .dad-home-industries .row { --bs-gutter-x: .75rem; --bs-gutter-y: .75rem; }
  .public-page .dad-industry-card { min-height:0; height:100%; }
  .public-page .dad-industry-content { flex:0 0 auto; padding:.72rem .7rem .8rem; }
  .public-page .dad-industry-content h3 { font-size: .79rem; line-height: 1.3; margin-bottom: .28rem; }
  .public-page .dad-industry-content p { font-size: .7rem; line-height: 1.4; }
  .public-page--home .hero-section .home-video-panel { width: 100%; max-width: 100%; margin-left: 0; }
  .home-video-lightbox { padding: 0; }
  .home-video-lightbox-dialog { width: 100vw; max-width: none; }
  .home-video-lightbox-close { display: block; }
  .pub-navbar .navbar-collapse { max-height:none; overflow:visible; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:0; }
  .pub-navbar > .container { min-height:58px; }
  .pub-navbar .navbar-brand { min-height:38px; }
  .pub-navbar .navbar-toggler { padding:.5rem .35rem; }
  .pub-navbar .navbar-nav { align-items:stretch; text-align:right; width:100%; }
  .pub-navbar .navbar-nav .nav-item, .pub-navbar .navbar-nav .nav-link { width:100%; text-align:right; }
  .public-industry-nav-control { width:100%; min-width:0; box-sizing:border-box; justify-content:flex-end; }
  .pub-navbar .navbar-nav .nav-item--industries .public-industry-nav-control .nav-dropdown-toggle { width:auto !important; min-width:0; flex:0 0 auto; justify-content:flex-end; padding-right:.1rem !important; }
  .pub-navbar .navbar-nav .nav-item--industries .public-industry-nav-control .public-industry-menu-toggle { width:1.25rem !important; min-width:1.25rem; flex:0 0 1.25rem; justify-content:center; padding:.62rem .05rem !important; text-align:center; }
  .pub-navbar .navbar-nav .nav-item + .nav-item { border-top:0; }
  .pub-navbar .navbar-nav .nav-link { padding:.62rem .25rem !important; font-size:12.5px; line-height:1.25; }
  .pub-navbar .navbar-nav .public-mobile-auth-item { width:50%; min-width:0; margin:0; padding:0; }
  .pub-navbar .navbar-nav .public-mobile-auth-item .nav-cta { display:flex; align-items:center; justify-content:center; width:calc(100% - 1rem); min-height:52px; margin:0 0 0 1rem; padding:.85rem 1rem !important; border-radius:8px; font-size:15.3px; text-align:center; box-sizing:border-box; }
  .hero-section { padding-top:3.2rem; }
  .hero-title { font-size:2.35rem; }
  .public-hero-heading { font-size:clamp(1.2rem, 6vw, 1.75rem); line-height:1.08; letter-spacing:-.025em; }
  .public-page--home .hero-section .home-hero-title { font-size:clamp(1.4rem, 7vw, 2.1rem); font-weight:800 !important; margin-bottom:.35rem; }
  .public-page--home .hero-section .home-hero-sub { font-size:1rem; margin-top:.35rem; }
  .v3-seo-hero { grid-template-columns:1fr; gap:1.5rem; padding:1rem 0 2.5rem; }
  .v3-seo-hero-copy { order:1; }
  .v3-seo-hero-media { order:2; }
  .v3-seo-hero h1 { font-size:clamp(1.75rem,8vw,2.45rem); }
  .v3-seo-lead { font-size:1rem; }
  .v3-breadcrumb,
  .industry-breadcrumb { display:none; }
  .v3-seo-benefits, .v3-seo-content { padding:2.75rem 0; }
  .v3-breadcrumb { padding-top:.8rem; font-size:.76rem; }
  .v3-services-overview { padding:4rem 0 4.25rem; }
  .v3-service-card-image { aspect-ratio:16/9; }
  .v3-service-card-body { padding:.95rem; }
  .v3-service-card-body h2 { font-size:.95rem; }
  .v3-service-card-body p { font-size:.8rem; -webkit-line-clamp:5; }
  .public-branch-v3-card-image { aspect-ratio:16/9; }
  .public-branch-v3-card .card-body { padding:.85rem !important; }
  .shortcheck-welcome { min-height:360px; border-radius:16px; }
  .shortcheck-welcome-logo-wrap { width:150px; height:150px; }
  .shortcheck-welcome-button { width:auto !important; min-width:190px; }
  .dad-home-process, .dad-home-areas, .dad-home-industries { padding: 3.5rem 0; }
  .dad-home-comparison { padding: 4.5rem 0; }
  .dad-comparison-intro { margin-bottom:2rem; }
  .dad-home-comparison .section-title { font-size:clamp(1.8rem,8vw,2.5rem); }
  .dad-home-comparison .section-sub { font-size:.95rem; }
  .dad-process-track { display: block; }
  .dad-process-item { display: block; }
  .dad-process-card { min-height: 0; margin-bottom: .5rem; padding: 1.35rem 1.65rem; }
  .dad-process-number { font-size: 2.6rem; margin-bottom: 1rem; }
  .dad-process-connector { height: 28px; line-height: 28px; transform: rotate(90deg); }
  .dad-home-areas .row { display:block; }
  .dad-home-areas .row > [class*="col-"] { width:100%; margin-bottom:1rem; }
  .dad-area-card { min-height:0; height:auto; padding:1.1rem 1.2rem; }
  .dad-area-card h3 { font-size: .9rem; }
  .dad-area-card p { font-size: .78rem; }
  .dad-comparison-wrap { padding: .55rem; border-radius:20px; }
  .dad-comparison-head { display:none; }
  .dad-comparison-desktop { display:none; }
  .dad-comparison-mobile { display:block; }
  .dad-comparison-mobile-group { padding:1rem; border-radius:12px; }
  .dad-comparison-mobile-group + .dad-comparison-mobile-group { margin-top:.75rem; }
  .dad-comparison-mobile-group h3 { display:flex; align-items:center; gap:.55rem; margin:0 0 .7rem; font-size:1rem; }
  .dad-comparison-mobile-group h3 i { font-size:1.1rem; }
  .home-section-cta { margin-top: 2.25rem !important; }
  .home-section-cta > a { width: 100%; min-width: 0; min-height: 56px; padding: 1rem 1.25rem; font-size: 16px; }
  .dad-comparison-mobile-group.dad-comparison-positive h3 i { color:var(--green); }
  .dad-comparison-mobile-group.dad-comparison-negative h3 i { color:#aa6d61; }
  .dad-comparison-mobile-group.dad-comparison-positive { color:#075b4c; background:#e7faf2; border:1px solid #bce9d8; }
  .dad-comparison-mobile-group.dad-comparison-negative { color:#5b3e3a; background:#ffe9e5; border:1px solid #e8bdb5; }
  .dad-comparison-mobile-item { display:flex; align-items:flex-start; gap:.6rem; padding:.7rem 0; border-top:1px solid rgba(7,30,74,.1); font-size:.84rem; line-height:1.45; }
  .dad-comparison-mobile-item i { flex:0 0 auto; margin-top:.1rem; }
  .dad-comparison-positive .dad-comparison-mobile-item i { color:#07956f; }
  .dad-comparison-negative .dad-comparison-mobile-item i { color:#aa6d61; }
  .dad-comparison-head, .dad-comparison-row { grid-template-columns:1fr; gap:.4rem; }
  .dad-comparison-column { padding: .9rem 1rem; border-radius: 10px; }
  .dad-comparison-column small { font-size: .7rem; }
  .dad-comparison-row { padding: .35rem 0; }
  .footer-bottom { justify-content:center !important; text-align:center; }
  .footer-trust { width:100%; flex-wrap:wrap; }
  .public-page--leistungen .public-hero-actions { gap:.55rem !important; margin-bottom:1.5rem; }
  .public-page--leistungen .public-hero-actions > a { flex:1 1 0; width:auto; min-width:0; padding:.68rem .45rem !important; font-size:.78rem !important; white-space:nowrap; }
  .public-page--leistungen .section-white:has(.faq-item) .container,
  .public-page--preise .section-white:has(.faq-item) .container { padding-left:calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5); }
  .public-page--leistungen .section-white:has(.faq-item) { padding-top:2.25rem; }
  .public-page--leistungen .section-white:has(.faq-item) + .section-light { padding-top:3rem; }
  .public-page--branchen .section-light .row > .col-lg-6 { width:100%; }
  .public-page--branchen .section-light .card { height:100%; }
  .public-page--branchen .section-light .card-body { padding:1.1rem !important; }
  .public-page--branchen .section-light .card-body > .d-flex { flex-direction:column; align-items:stretch !important; gap:.75rem !important; }
  .public-page--branchen .section-light .card-body > .d-flex > span { align-self:flex-start; font-size:2rem !important; }
  .public-page--branchen .section-light .card-body .flex-grow-1 { width:100%; }
  .public-page--branchen .section-light .card-body .btn-green { width:100%; margin-top:.1rem; }
  .public-page--branchen .section-white .container { padding-left:calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5); }
  .public-page--branchen .section-white .row { align-items:stretch !important; }
  .public-page--branchen .section-white .row > .col-lg-5,
  .public-page--branchen .section-white .row > .col-lg-7 { width:100%; }
  .public-page--branchen .section-white .card { margin-top:.75rem; padding:1rem !important; border-radius:14px; }
  .public-page--branchen .section-white .stat-card { min-height:64px; padding:.7rem .35rem; }
  .public-page--branchen .section-white .ampel-row { padding:.65rem 0; }
  .public-page--faq .section-white[style*="padding-top"] .container { padding-left:calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5); }
  .public-page--faq .section-white[style*="padding-top"] .row { margin-left:0; margin-right:0; }
  .public-page--faq .section-white[style*="padding-top"] .col-lg-8,
  .public-page--faq .section-white[style*="padding-top"] .col-lg-4 { width:100%; padding-left:0; padding-right:0; }
  .public-page--faq .section-white[style*="padding-top"] .card { margin-left:0; margin-right:0; }
  .public-page--kontakt .section-white .container { padding-left:calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5); }
  .public-page--kontakt .section-white .row { margin-left:0; margin-right:0; }
  .public-page--kontakt .section-white .row > [class*="col-"] { padding-left:0; padding-right:0; }
  .public-page--kontakt .section-white .card { width:100%; }
  .public-page--ueber-uns .legal-page-hero { padding-bottom:.35rem !important; }
  .dad-comparison-cell { min-height: 48px; padding: .7rem .9rem; font-size: .82rem; }
  .footer-bottom { justify-content:center !important; text-align:center; }
  .footer-trust { width:100%; flex-wrap:wrap; }
}

@media (min-width:768px) {
  /* Public desktop rhythm: keep the existing sections/design, but give each
     major block enough breathing room below the sticky header and before the
     footer. The mobile rules above intentionally remain unchanged. */
  :root {
    --public-space-header: 3.5rem;
    --public-space-hero: 3.5rem;
    --public-space-section: 4.25rem;
    --public-space-between: 4rem;
    --public-space-footer: 3rem;
  }
  .public-page--faq > .hero-section {
    padding-top: var(--public-space-hero) !important;
    padding-bottom: var(--public-space-hero) !important;
  }
  .public-page--faq > .hero-section {
    border-top: var(--public-space-header) solid var(--bg);
    background-clip: padding-box;
  }
  .public-page--leistungen > .section-light,
  .public-page--leistungen > .section-white,
  .public-page--branchen > .section-light,
  .public-page--branchen > .section-white,
  .public-page--faq > .section-light,
  .public-page--faq > .section-white {
    padding-top: var(--public-space-section) !important;
    padding-bottom: var(--public-space-section) !important;
  }
  .public-page--leistungen > section + section,
  .public-page--branchen > section + section,
  .public-page--faq > section + section {
    border-top: var(--public-space-between) solid var(--bg);
    background-clip: padding-box;
  }
  .public-page--leistungen > .pub-footer,
  .public-page--branchen > .pub-footer,
  .public-page--faq > .pub-footer {
    border-top: var(--public-space-footer) solid var(--bg);
  }
  .public-page--login .auth-main {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }
}

@media (max-width:480px) {
  .auth-card { padding:1.35rem; border-radius:16px; }
  .code-grid { gap:.35rem; }
  .code-input { height:52px; font-size:1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .dad-process-card, .dad-area-card, .dad-industry-card, .dad-industry-image img, .home-video-trigger, .home-video-lightbox-dialog, .home-trust-track { transition: none; animation: none; }
}

.process-step { flex: 1 1 120px; min-width: 120px; text-align: center; position: relative; }
.process-step-number { width: 28px; height: 28px; border-radius: 50%; background: var(--green); color: #fff; display: flex; align-items: center; justify-content: center; margin: 0 auto .55rem; font-weight: 800; font-size: 12px; }
.process-step-icon { width: 48px; height: 48px; border-radius: 50%; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; margin: 0 auto; font-size: 18px; }
.process-step-title { font-size: 12px; font-weight: 700; color: var(--navy); margin-top: .55rem; }
.process-step-sub { font-size: 11px; color: var(--muted); line-height: 1.4; }
.process-arrow { flex: 0 0 28px; align-self: center; color: var(--border); font-size: 18px; }
.pricing-note { color: var(--muted); font-size: 12px; line-height: 1.45; margin: .5rem 0 1rem; }

.feature-icon {
  width: 52px; height: 52px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; flex-shrink: 0;
}
.icon-navy-soft  { background: #EEF2FF; color: var(--navy); }
.icon-green-soft { background: var(--green-light); color: var(--green); }
.icon-blue-soft  { background: #DBEAFE; color: #1D4ED8; }
.icon-red-soft   { background: #FEE2E2; color: #DC2626; }
.icon-yellow-soft { background: #FEF3C7; color: #D97706; }
.icon-purple-soft { background: #EDE9FE; color: #7C3AED; }

/* Industry cards */
.industry-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem;
  text-align: center;
  transition: all .2s;
  cursor: pointer;
  text-decoration: none;
  color: var(--text);
  display: block;
}
.industry-card:hover { border-color: var(--green); box-shadow: 0 4px 12px rgba(7,139,62,.12); transform: translateY(-2px); color: var(--text); }
.industry-card .ic-icon { font-size: 32px; margin-bottom: .5rem; display: block; }

/* Pricing cards */
.pricing-card {
  background: var(--white);
  border: 2px solid var(--border);
  border-radius: 16px;
  padding: 2rem 1.75rem;
  transition: all .2s;
  position: relative;
  overflow: hidden;
}
.price-switcher { display:flex; gap:.2rem; flex-wrap:wrap; }
.price-presentation-container { max-width:560px; }
.price-presentation-heading { margin-bottom:1rem; }
.price-presentation-heading h2 { color:var(--navy); font-size:2rem; font-weight:850; margin:0; }
.price-tabs-outside { width:fit-content; max-width:100%; justify-content:center; margin:0 auto .9rem; padding:.25rem; border:1px solid #d9dee5; border-radius:14px; background:#eef0f3; box-shadow:inset 0 1px 2px rgba(7,30,74,.06); }
.price-interval-button { flex:1 1 0; min-width:0; min-height:38px; border:1px solid #d9dee5; border-radius:9px; background:transparent; color:#667085; padding:.35rem .65rem; font-weight:650; font-size:15px; line-height:1.15; cursor:pointer; touch-action:manipulation; transition:background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease; }
.price-interval-button:hover { color:var(--navy); background:rgba(255,255,255,.58); }
.price-interval-button:focus-visible { outline:3px solid rgba(7,139,62,.28); outline-offset:2px; }
.price-interval-button.active { background:#fff; color:var(--navy); box-shadow:0 2px 7px rgba(7,30,74,.16), 0 1px 2px rgba(7,30,74,.08); }
.price-view-toggle { width:fit-content; max-width:100%; display:flex; gap:.15rem; justify-content:center; margin:1rem auto 0; padding:.2rem; border:1px solid #e1e5ea; border-radius:11px; background:#f3f4f6; }
.price-view-button { min-width:106px; min-height:34px; border:0; border-radius:8px; background:transparent; color:#7a8491; padding:.3rem .55rem; font:inherit; font-size:15px; font-weight:650; line-height:1.15; cursor:pointer; touch-action:manipulation; transition:background .2s ease, color .2s ease, box-shadow .2s ease; }
.price-view-button:hover { color:var(--navy); background:rgba(255,255,255,.65); }
.price-view-button:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:2px; }
.price-view-button.active { background:#fff; color:var(--navy); box-shadow:0 1px 4px rgba(7,30,74,.14); }
.billing-step-progress { display:none; }
.billing-step-progress span { padding:.35rem .55rem; border-radius:999px; background:#f1f3f5; }
.billing-step-progress span.is-active { color:var(--navy); background:#e7f3ea; font-weight:750; }
.price-configuration-form { display:grid; gap:1rem; }
@media (min-width:768px) { .public-page--preise .price-selector-section { padding-top:calc(1.5rem + 40px) !important; } }
html { scroll-behavior:smooth; }
.order-wizard-frame { width:100%; max-width:720px; margin:0 auto; padding:1.35rem; border:1px solid #e1e6e2; border-radius:18px; background:rgba(255,255,255,.72); box-shadow:0 8px 24px rgba(7,30,74,.05); }
.wizard-step-indicator { display:none; margin:0 0 1rem; color:var(--muted); font-size:.75rem; font-weight:700; text-align:center; }
.price-choice-group { min-width:0; margin:0; padding:0; border:0; text-align:center; }
.price-choice-group legend { margin:0 auto .35rem; color:var(--navy); font-size:.8rem; font-weight:800; }
.price-choice-group--billing legend { font-size:.75rem; }
.price-interval-button--small { min-height:32px; padding:.25rem .5rem; font-size:14px; }
.price-choice-group .price-tabs-outside { margin-bottom:0; }
.price-choice-help { max-width:460px; margin:.5rem auto 0; color:var(--muted); font-size:.76rem; line-height:1.5; }
.price-configuration-form .price-selector { width:100%; }
@media (max-width:575.98px) { .price-interval-button { min-width:0; }.billing-step-progress { justify-content:flex-start; }.billing-step-progress span { flex:1 1 calc(50% - .45rem); } }
.price-form-actions { display:flex; justify-content:center; align-items:center; gap:.65rem; flex-wrap:wrap; margin-top:1rem; }
.price-form-actions form { margin:0; }
.price-step-title { margin:0; color:var(--navy); font-size:1.35rem; font-weight:800; text-align:center; }
.fasi-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.fasi-choice-card { display:flex; min-width:0; padding:1rem; border:1px solid #d9e1db; border-radius:14px; background:#fff; cursor:pointer; text-align:left; transition:border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.fasi-choice-card:hover, .fasi-choice-card:has(input:focus-visible) { border-color:var(--green); box-shadow:0 5px 16px rgba(7,30,74,.08); }
.fasi-choice-card:has(input:checked), .fasi-choice-card.is-selected { border-color:var(--green); background:#f5fbf6; box-shadow:0 5px 16px rgba(7,139,62,.1); }
.fasi-choice-card input { position:absolute; opacity:0; pointer-events:none; }
.fasi-choice-card span { display:grid; gap:.35rem; min-width:0; }
.fasi-choice-card strong { color:var(--navy); font-size:.92rem; }
.fasi-choice-card small { color:var(--muted); font-size:.78rem; line-height:1.4; }
.order-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; max-width:640px; margin:1rem auto 0; }
.order-form-grid label { display:grid; gap:.3rem; color:var(--navy); font-size:.78rem; font-weight:700; text-align:left; }
.order-form-grid input { width:100%; min-height:40px; border:1px solid var(--border); border-radius:9px; padding:.55rem .65rem; font:inherit; font-size:.85rem; }
.order-form-grid input:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:1px; border-color:var(--green); }
.order-consent { display:flex; align-items:flex-start; gap:.5rem; max-width:640px; margin:1rem auto 0; color:var(--muted); font-size:.78rem; line-height:1.45; }
.order-consent a { color:var(--navy); font-weight:700; text-decoration:underline; }
.order-consent input { margin-top:.2rem; flex:0 0 auto; }
.order-verification-card, .order-summary-card { max-width:640px; margin:0 auto; padding:1.5rem; border:1px solid var(--border); border-radius:16px; background:#fff; text-align:center; }
.order-verification-card h2 { margin:0 0 .8rem; color:var(--navy); font-size:1.35rem; }
.order-verification-card p { color:var(--muted); font-size:.88rem; line-height:1.6; }
.order-verification-card--simple { padding:2rem 1.75rem; }
.order-verification-icon { display:grid; place-items:center; width:3.25rem; height:3.25rem; margin:0 auto 1rem; border-radius:50%; background:var(--green-light); color:var(--green); font-size:1.45rem; }
.order-verification-note { margin-top:1.1rem; color:var(--navy) !important; font-size:.8rem !important; font-weight:700; }
.order-masked-email { color:var(--navy) !important; }
.order-summary-list { display:grid; gap:.55rem; margin:1rem 0; text-align:left; }
.order-summary-list div { display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-bottom:1px solid #edf0f2; }
.order-summary-list dt { color:var(--muted); font-size:.8rem; }
.order-summary-list dd { margin:0; color:var(--navy); font-size:.8rem; font-weight:700; text-align:right; }
.order-summary-list .order-summary-total { border-top:2px solid var(--navy); border-bottom:0; margin-top:.35rem; padding-top:.8rem; }
@media (max-width:575.98px) { .fasi-choice-grid, .order-form-grid { grid-template-columns:1fr; }.order-summary-list div { align-items:flex-start; flex-direction:column; gap:.2rem; }.order-summary-list dd { text-align:left; } }
@media (max-width:575.98px) { .order-wizard-frame { padding:1rem .75rem; border-radius:14px; } }
.billing-widget { gap:.65rem; }
.billing-widget-term { order:0; }
.billing-widget .price-selector { order:1; }
.billing-widget .price-choice-group--billing { order:2; }
.billing-widget-actions { order:3; }
.billing-widget .price-tabs-outside { width:fit-content; max-width:100%; margin:.25rem auto 0; padding:.18rem; border-radius:10px; }
.billing-widget .price-choice-group--billing .price-tabs-outside { max-width:min(100%, 22rem); }
.billing-widget .price-choice-group--billing .price-interval-button { flex:0 0 auto; }
.billing-widget-term .price-switcher { max-width:430px; margin-inline:auto; }
.billing-widget .price-interval-button { min-height:30px; padding:.22rem .48rem; border-radius:7px; font-size:.78rem; line-height:1.1; white-space:nowrap; }
.billing-widget .price-interval-button--small { min-height:24px; padding:.16rem .36rem; border-radius:6px; font-size:.66rem; font-weight:700; }
.billing-widget .billing-widget-next { width:clamp(12rem, 52%, 22rem); min-height:44px; }
.billing-widget .price-selector { max-width:none; padding:1.3rem !important; }
.billing-widget .price-product-title { font-size:1.65rem; }
.billing-widget .price-choice-group--billing { margin-top:0; }
.fasi-choice-card { min-height:220px; align-items:stretch; }
.fasi-choice-card > span { display:flex; flex:1; flex-direction:column; gap:.55rem; }
.fasi-choice-card strong { font-size:1.05rem; }
.fasi-choice-card small { font-size:.82rem; line-height:1.5; }
.fasi-price { display:flex; flex-direction:column; justify-content:flex-end; flex:1; margin-top:1rem; color:var(--navy); font-size:1.3rem; font-style:normal; font-weight:850; line-height:1.1; }
.fasi-price b { display:block; margin-top:.3rem; color:var(--muted); font-size:.72rem; font-weight:700; }
.fasi-price--quiet { color:var(--muted); font-size:1rem; }
.fasi-choice-card.is-disabled { opacity:.62; cursor:not-allowed; }
.fasi-choice-card.is-disabled:hover { border-color:#d9e1db; box-shadow:none; }
.billing-widget-actions { flex-wrap:nowrap; justify-content:center; }
.billing-widget-actions > .wizard-button { flex:0 1 12rem; }
.billing-widget-actions--checkout > button { flex:0 0 32%; width:32%; }
.billing-widget-actions--checkout > form { flex:1 1 0; min-width:0; }
.billing-widget-actions--checkout > form > .wizard-button { width:100%; }
.billing-widget--step-one .billing-widget-actions { flex-wrap:nowrap; }
.order-details-form .price-form-actions, .order-verification-card .price-form-actions { flex-wrap:nowrap; }
.order-details-form .price-form-actions form, .order-verification-card .price-form-actions form { flex:1 1 0; min-width:0; }
.order-details-form .price-form-actions > button, .order-details-form .price-form-actions > form, .order-verification-card .price-form-actions > button, .order-verification-card .price-form-actions > form { min-width:0; }
.order-verification-card .price-form-actions { flex-wrap:nowrap; align-items:stretch; }
.order-verification-card .price-form-actions > button, .order-verification-card .price-form-actions > form { flex:1 1 0; width:auto; min-width:0; }
.order-verification-card .price-form-actions > form { display:flex; }
.order-verification-card .price-form-actions > form > button { width:100%; min-width:0; }
.billing-summary { text-align:left; }
.billing-summary .price-step-title, .billing-summary-intro { text-align:center; }
.billing-summary .price-step-title { margin-bottom:1.15rem; }
.billing-wizard-page-header { text-align:center; }
.billing-wizard-page-header .page-sub { margin-inline:auto; }
.billing-wizard-page-header--checkout { text-align:center; }
.billing-wizard-page-header--checkout .page-title, .billing-wizard-page-header--checkout .page-sub { margin-inline:auto; text-align:center; }
.app-shell-customer .order-wizard-frame { padding:1.75rem; }
.billing-widget .btn-green, .billing-widget .btn-outline-navy, .billing-summary + .billing-widget-actions .btn-green, .billing-summary + .billing-widget-actions .btn-outline-navy { justify-content:center; align-items:center; text-align:center; line-height:1.15; }
.billing-summary .price-step-title { margin-bottom:1.2rem; }
.billing-net-note, .billing-tax-note { margin:1rem 0 0; color:var(--navy); font-size:.8rem; line-height:1.55; }
.billing-tax-note { color:var(--muted); font-size:.76rem; }
@media (max-width:575.98px) { .wizard-button, .price-form-actions > .btn-green, .price-form-actions > .btn-outline-navy, .price-form-actions > form > button, .billing-widget .billing-widget-next { width:calc(50% - .25rem); min-width:0; padding-inline:.45rem; font-size:.78rem; }.billing-widget-actions { gap:.5rem; }.billing-summary { padding:1rem; } }
@media (max-width:575.98px) { .order-verification-card .price-form-actions { gap:.5rem; }.order-verification-card .price-form-actions > button, .order-verification-card .price-form-actions > form { flex:1 1 0; width:auto; }.order-verification-card .price-form-actions > form > button { width:100%; padding-inline:.35rem; font-size:.74rem; } }
@media (max-width:575.98px) { .billing-widget-actions--checkout > button { flex:0 0 33%; width:33%; }.billing-widget-actions--checkout > form { flex:1 1 0; }.billing-widget-actions--checkout > form > .wizard-button { width:100%; padding-inline:.3rem; font-size:.74rem; } }
.price-selector.price-view-contract .price-monthly-focus { opacity:.62; }
.price-selector.price-view-contract .price-payment-amount strong { color:var(--navy); font-size:1.2rem; }
.price-selector.price-view-monthly .price-payment-amount { opacity:.72; }
.price-selection-output { padding-top:.35rem; }
.price-product-title { color:var(--navy); font-size:2rem; font-weight:850; margin:0; }
.price-runtime-label { color:var(--green); font-size:1rem; font-weight:750; margin:.2rem 0 .55rem; }
.price-selector { text-align:center; max-width:420px; margin:0 auto; padding:1.1rem !important; }
.price-monthly-focus { margin:.8rem 0 .35rem; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.7rem; text-align:center; }
.price-monthly-line { display:flex; justify-content:center; align-items:baseline; gap:.35rem; flex-wrap:wrap; }
.price-monthly-value { color:var(--navy); font-size:clamp(2rem, 7vw, 3.15rem); font-weight:850; letter-spacing:-.045em; line-height:1; white-space:nowrap; }
.price-monthly-unit { color:var(--muted); font-size:.92rem; font-weight:650; line-height:1.2; }
.price-discount { color:var(--green-hover); font-weight:800; text-decoration:underline; text-decoration-thickness:.08em; text-underline-offset:.12em; }
.price-contract-detail { color:var(--muted); font-size:.82rem; font-weight:650; line-height:1.25; }
.price-payment-amount { display:flex; justify-content:center; flex-wrap:wrap; gap:.35rem; align-items:center; color:var(--muted); font-size:.76rem; }
.price-payment-amount strong { color:var(--navy); font-size:.88rem; }
.price-payment-amount span { padding-left:0; }
.price-benefits { width:fit-content; max-width:280px; margin:.45rem auto .25rem; padding:.1rem 0; text-align:left; }
.price-order-heading { margin:0; }
@media (max-width:767.98px) { .price-order-hero--verification { min-height:0; padding:.65rem 0 .5rem !important; }.price-order-heading--verification, .price-order-sub--verification { display:none !important; } }
.price-benefits-title { color:var(--navy); font-weight:800; font-size:.85rem; margin-bottom:.35rem; }
.price-benefit { display:flex; justify-content:flex-start; gap:.45rem; align-items:center; color:#415064; font-size:.78rem; padding:.16rem 0; white-space:nowrap; }
.price-benefit i { color:var(--green); }
.pricing-card.stripe-pricing-card { padding: 2rem 1.65rem 1.5rem; border-radius: 18px; }
.pricing-card.stripe-pricing-card:hover { border-color: var(--green); box-shadow: 0 12px 28px rgba(7,139,62,.14); transform: translateY(-3px); }
.stripe-price-kicker { color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.stripe-monthly-price { color: var(--navy); font-size: 2.7rem; font-weight: 850; letter-spacing: 0; line-height: 1; }
.stripe-monthly-price small { color: var(--muted); font-size: .95rem; font-weight: 600; }
.stripe-payment-total { color: #263445; font-size: 13px; font-weight: 700; margin-top: .7rem; }
.stripe-payment-note { color: #556273; font-size: 12px; line-height: 1.45; margin: .25rem 0 1.25rem; }
.stripe-plan-description { color: #263445; font-size: 14px; font-weight: 700; line-height: 1.4; min-height: 40px; }
.pricing-card.featured { border-color: var(--navy); }
.pricing-card.featured .featured-ribbon {
  position: absolute; top: 1.25rem; right: -2rem;
  background: var(--green); color: #fff;
  font-size: 11px; font-weight: 700;
  padding: .25rem 2.5rem;
  transform: rotate(45deg);
}
.pricing-price { font-size: 2.5rem; font-weight: 800; color: var(--navy); line-height: 1; }
.pricing-price sub { font-size: 1rem; font-weight: 500; color: var(--muted); }
.pricing-feature { display: flex; align-items: center; gap: .5rem; font-size: 13.5px; padding: .35rem 0; border-bottom: 1px solid var(--border); }
.pricing-feature:last-child { border-bottom: none; }
.pricing-feature .check { color: var(--green); font-weight: 700; font-size: 15px; }
.pricing-feature .cross { color: #D1D5DB; }

/* FAQ */
.faq-item { border-bottom: 1px solid var(--border); }
.faq-question {
  padding: 1.1rem 0;
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14.5px;
}
.faq-answer { padding-bottom: 1rem; color: var(--muted); font-size: 14px; line-height: 1.65; }

/* Steps */
.step-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 0; }
.step-num  { width: 36px; height: 36px; border-radius: 50%; background: var(--navy); color: #fff; font-weight: 700; font-size: 15px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: .1rem; }

/* CTA Banner */
.cta-banner { background: var(--navy); border-radius: 16px; padding: 2.5rem 2rem; color: #fff; }
.cta-banner h2, .cta-banner h3 { color: #fff; }

/* Footer */
.pub-footer { background: var(--navy); color: rgba(255,255,255,.7); padding: 3rem 0 1.5rem; }
.pub-footer > .container { width:100%; }
.pub-footer h5 { color: #fff; font-size: 14px; margin-bottom: 1rem; }
.pub-footer a  { color: rgba(255,255,255,.65); text-decoration: none; font-size: 13px; display: block; padding: .2rem 0; transition: color .2s; }
.pub-footer a:hover { color: #fff; }
.pub-footer-contact { display:block; padding:.2rem 0; color:rgba(255,255,255,.65); font-size:13px; }
.dad-cookie-consent { position:fixed; z-index:1080; inset:auto auto 1.25rem 1.25rem; width:min(460px,calc(100vw - 2.5rem)); opacity:0; transform:translateY(18px); pointer-events:none; transition:opacity .26s ease,transform .26s ease; }
.dad-cookie-consent.is-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.dad-cookie-consent.is-closing { opacity:0; transform:translateY(18px); pointer-events:none; }
.dad-cookie-panel { padding:1.35rem 1.4rem 1.15rem; border:1px solid rgba(7,139,62,.14); border-radius:18px; background:rgba(255,255,255,.98); box-shadow:0 18px 50px rgba(7,30,74,.16),0 3px 10px rgba(7,30,74,.06); }
.dad-cookie-kicker { display:flex; align-items:center; gap:.4rem; margin-bottom:.45rem; color:var(--green); font-size:.7rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.dad-cookie-panel h2 { margin:0 0 .5rem; color:var(--green); font-size:1.08rem; line-height:1.3; }
.dad-cookie-panel p { margin:0; color:var(--muted); font-size:.83rem; line-height:1.6; }
.dad-cookie-privacy-link,.dad-cookie-settings-link { display:inline-flex; align-items:center; gap:.3rem; border:0; background:transparent; color:var(--green); font-size:.78rem; font-weight:700; text-decoration:none; cursor:pointer; }
.dad-cookie-privacy-link { margin-top:.7rem; }
.dad-cookie-privacy-link:hover,.dad-cookie-settings-link:hover { color:var(--green-hover); text-decoration:underline; }
.dad-cookie-actions { display:grid; grid-template-columns:1fr 1fr 1fr; gap:.5rem; margin-top:1.05rem; }
.dad-cookie-button { min-height:40px; padding:.5rem .65rem; border-radius:9px; border:1px solid transparent; font:inherit; font-size:.75rem; font-weight:700; line-height:1.25; cursor:pointer; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.dad-cookie-button:hover { transform:translateY(-1px); }
.dad-cookie-button:focus-visible,.dad-cookie-settings-link:focus-visible,.dad-cookie-back:focus-visible,.dad-cookie-option input:focus-visible + .dad-cookie-switch { outline:3px solid rgba(7,139,62,.25); outline-offset:2px; }
.dad-cookie-button--secondary { border-color:#d9e3dc; background:#f5f8f6; color:var(--navy); }
.dad-cookie-button--secondary:hover { border-color:#afd4ba; background:#eaf5ed; }
.dad-cookie-button--primary { background:var(--green); color:#fff; box-shadow:0 5px 12px rgba(7,139,62,.18); }
.dad-cookie-button--primary:hover { background:var(--green-hover); }
.dad-cookie-settings-link { margin-top:.85rem; padding:0; }
.dad-cookie-settings-heading { display:flex; align-items:center; gap:.7rem; margin-bottom:.5rem; }
.dad-cookie-settings-heading .dad-cookie-kicker { margin:0; }
.dad-cookie-settings-heading h2 { margin:0; }
.dad-cookie-back { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--border); border-radius:9px; background:#f7faf8; color:var(--navy); cursor:pointer; }
.dad-cookie-settings-intro { margin-bottom:1rem !important; }
.dad-cookie-options { display:grid; gap:.45rem; }
.dad-cookie-option { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.75rem .7rem; border:1px solid #e1e9e3; border-radius:11px; background:#fbfdfb; cursor:pointer; }
.dad-cookie-option > span:first-child { display:grid; gap:.15rem; }
.dad-cookie-option strong { color:var(--navy); font-size:.8rem; }
.dad-cookie-option small { color:var(--muted); font-size:.7rem; line-height:1.35; }
.dad-cookie-option input { position:absolute; opacity:0; pointer-events:none; }
.dad-cookie-switch { position:relative; flex:0 0 38px; width:38px; height:22px; border:1px solid #ccd8cf; border-radius:999px; background:#dfe7e1; transition:background .18s ease,border-color .18s ease; }
.dad-cookie-switch::after { content:""; position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(7,30,74,.2); transition:transform .18s ease; }
.dad-cookie-option input:checked + .dad-cookie-switch { border-color:var(--green); background:var(--green); }
.dad-cookie-option input:checked + .dad-cookie-switch::after { transform:translateX(16px); }
.dad-cookie-option input:disabled + .dad-cookie-switch { border-color:#a9cfb3; background:#b9dec1; opacity:.85; }
.dad-cookie-save-settings { width:100%; margin-top:1rem; }
@media (max-width:767.98px) { .dad-cookie-consent { inset:auto .75rem .75rem; width:auto; }.dad-cookie-panel { padding:1.15rem 1rem .95rem; border-radius:15px; }.dad-cookie-actions { grid-template-columns:1fr; gap:.45rem; }.dad-cookie-button { min-height:42px; }.dad-cookie-panel h2 { font-size:1rem; } }
.pub-footer hr { border-color: rgba(255,255,255,.15); }
.pub-footer .footer-bottom { font-size: 12px; color: rgba(255,255,255,.4); }
.footer-trust { justify-content: center; }
.legal-page-content { min-height:360px; padding-top:1.1rem; }
.legal-page-content h1,.legal-page-content h2,.legal-page-content h3 { color:var(--navy); margin-top:1.5rem; }
.legal-page-content p,.legal-page-content li { color:var(--muted); line-height:1.7; }
.legal-page-content a { color:var(--green); }
.legal-page-content > .container { width:100%; }
.portal-setting-switch { min-height:38px; display:flex; align-items:center; gap:.55rem; padding-top:.35rem; }
.portal-setting-switch .form-check-input { width:2.65rem; height:1.45rem; margin:0; cursor:pointer; }
.portal-setting-switch .form-check-input:checked { background-color:var(--green); border-color:var(--green); }
.portal-setting-switch .form-check-label { cursor:pointer; font-weight:600; }
.about-page-content { background:linear-gradient(180deg,#f8fbf9 0%,#fff 52%); }
.about-intro-card { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:1.25rem; margin-top:2rem; margin-bottom:2.25rem; padding:clamp(1.25rem,3vw,2.25rem); border:1px solid #cfe6d6; border-radius:20px; background:linear-gradient(135deg,#e7f7ec 0%,#f7fbff 100%); box-shadow:0 14px 34px rgba(7,68,35,.08); }
.about-intro-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:17px; background:#078b3e; color:#fff; font-size:25px; box-shadow:0 8px 18px rgba(7,139,62,.22); }
.about-intro-copy h2 { margin:0 0 .65rem; color:var(--navy); font-size:clamp(1.35rem,2.5vw,2rem); }
.about-intro-copy p { max-width:720px; margin:0; color:#3f5c4a; font-size:1.05rem; line-height:1.7; }
.about-intro-copy p:last-child { margin-bottom:0; }
.about-story-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; width:100%; max-width:none; margin:0 auto 2rem; }
.about-story-card { min-width:0; padding:1.35rem 1.25rem; border:1px solid var(--border); border-radius:16px; background:#fff; box-shadow:0 7px 20px rgba(7,30,74,.055); }
.about-card-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:1rem; border-radius:12px; background:#e7f5eb; color:var(--green); font-size:18px; }
.about-card-eyebrow { color:var(--green); font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.about-story-card h2 { margin:.05rem 0 .75rem; font-size:1.08rem; line-height:1.3; }
.about-story-card p { margin:.45rem 0 0; }
.about-story-card-0 { border-top:4px solid #078b3e; background:#fbfffc; }
.about-story-card-1 { border-top:4px solid #1d4ed8; background:#fbfcff; }
.about-story-card-2 { border-top:4px solid #d97706; background:#fffdf8; }
.about-story-card-3 { border-top:4px solid #7c3aed; background:#fdfbff; }
.about-story-card-1 .about-card-icon { background:#e9efff; color:#1d4ed8; }.about-story-card-2 .about-card-icon { background:#fff3d9; color:#b96c00; }.about-story-card-3 .about-card-icon { background:#f0eaff; color:#7c3aed; }
.about-vision-card { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1rem; align-items:start; margin-top:2rem; padding:2.25rem 2.4rem; border-radius:16px; background:var(--navy); color:#fff; box-shadow:0 12px 28px rgba(7,30,74,.16); }.about-vision-mark { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:rgba(255,255,255,.14); color:#9ce4b3; font-size:20px; }.about-vision-card h2 { margin:0 0 .55rem; color:#fff; font-size:1.2rem; }.about-vision-card p { max-width:800px; margin:0; color:rgba(255,255,255,.75); line-height:1.7; }
.about-team-section { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:1.5rem; align-items:center; margin-top:1.25rem; padding:1rem; border:1px solid #dbe6e0; border-radius:18px; background:#fff; box-shadow:0 10px 26px rgba(7,30,74,.07); overflow:hidden; }.about-team-image-wrap { min-height:290px; border-radius:13px; overflow:hidden; background:#e9f0ec; }.about-team-image-wrap img { display:block; width:100%; height:100%; min-height:290px; object-fit:cover; }.about-team-copy { padding:1rem 1.25rem 1rem .5rem; }.about-team-copy h2 { margin:.1rem 0 .6rem; color:var(--navy); font-size:clamp(1.25rem,2vw,1.7rem); }.about-team-copy p { margin:0 0 1rem; color:var(--muted); line-height:1.7; }
@media (max-width:1100px) and (min-width:768px) { .about-story-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767.98px) { .about-intro-card { grid-template-columns:1fr; gap:.85rem; margin-top:1.25rem; margin-bottom:1.5rem; padding:1.15rem; border-radius:15px; }.about-intro-icon { width:48px; height:48px; border-radius:14px; font-size:21px; }.about-story-grid { grid-template-columns:1fr; gap:1.25rem; margin-bottom:1.5rem; }.about-story-card { padding:1.35rem; border-radius:13px; }.about-vision-card { margin-top:1.5rem; padding:1.5rem; grid-template-columns:1fr; border-radius:13px; }.about-team-section { margin-bottom:1.25rem; grid-template-columns:1fr; gap:.8rem; padding:.7rem; }.about-team-image-wrap,.about-team-image-wrap img { min-height:210px; }.about-team-copy { padding:.75rem; } }
.legal-editor { min-height:280px; padding:1rem; border:1px solid var(--border); border-radius:10px; background:#fff; outline:none; }
.legal-editor:focus { border-color:var(--green); box-shadow:0 0 0 .2rem rgba(7,139,62,.12); }
.legal-source { min-height:280px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.public-hero-actions .btn-green-lg { min-width:210px; justify-content:center; }
.home-secondary-cta { min-width:210px; display:inline-flex; justify-content:center; }
.faq-consultation-button { min-width:100%; justify-content:center; }

/* FAQ page uses the public design system, while keeping the large source content scoped. */
.faq-page .section-white { padding-top: 1.25rem; }
.faq-page .faq-tab { min-height: 44px; white-space: normal; display:inline-flex; align-items:center; justify-content:center; }
.faq-page .faq-search { max-width: 680px; margin: 0 auto 2rem; }
.faq-page .faq-search-field { position: relative; display: flex; align-items: center; border: 2px solid var(--navy); border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(7,30,74,.09); }
.faq-page .faq-search-field > i { margin-left: 1rem; color: var(--navy); font-size: 1rem; }
.faq-page .faq-search-field input { width: 100%; min-height: 48px; padding: .7rem 2.8rem .7rem .7rem; border: 0; outline: 0; background: transparent; color: var(--navy); font: inherit; }
.faq-page .faq-search-field:focus-within { border-color: #1d4ed8; box-shadow: 0 0 0 3px rgba(29,78,216,.16); }
.faq-page .faq-search-clear { position: absolute; right: .65rem; display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 50%; background: var(--green-light); color: var(--green); cursor: pointer; }
.faq-page .faq-search-clear:hover { background: var(--green); color: #fff; }
.faq-page .faq-search-status { min-height: 1.3rem; margin: .55rem 0 0; color: var(--muted); font-size: .82rem; text-align: center; }
.faq-page .as-faq-panel { margin: 0 0 2.25rem; }
.faq-page .as-faq-panel[hidden] { display: none !important; }
.faq-page .category-title { margin: 0 0 .45rem; font-size: 1.35rem; }
.faq-page .category-lead { margin: 0 0 1.4rem; color: var(--muted); line-height: 1.65; }
.faq-page .faq-section-title { margin: 1.75rem 0 .7rem; padding-top: .15rem; font-size: 1.05rem; }
.faq-page .faq-subsection-title { margin: 1.35rem 0 .5rem; font-size: .94rem; }
.faq-page .faq-item { margin: .55rem 0; border: 1px solid var(--border); border-radius: 10px; background: #fff; box-shadow: 0 4px 14px rgba(7,30,74,.045); overflow: hidden; transition: border-color .18s ease, box-shadow .18s ease; }
.faq-page .faq-item:hover, .faq-page .faq-item.open { border-color: #b9d8c2; box-shadow: 0 8px 20px rgba(7,30,74,.08); }
.faq-page .faq-question { width: 100%; min-height: 56px; padding: .85rem 1rem; border: 0; background: #fff; color: var(--navy); font: inherit; font-size: .88rem; font-weight: 700; line-height: 1.45; text-align: left; cursor: pointer; }
.faq-page .faq-question:hover, .faq-page .faq-question:focus-visible { background: #f8fcf9; color: var(--green-hover); outline: none; }
.faq-page .faq-question-text { flex: 1; }
.faq-page .faq-icon { display: grid; place-items: center; width: 24px; height: 24px; flex: 0 0 24px; margin-left: .75rem; border-radius: 50%; background: var(--green-light); color: var(--green); font-size: 1.1rem; font-weight: 500; line-height: 1; transition: transform .18s ease, background .18s ease; }
.faq-page .faq-item.open .faq-icon { background: var(--green); color: #fff; transform: rotate(45deg); }
.faq-page .faq-answer { padding: 0 1rem 1rem; border-top: 1px solid #edf2ee; color: var(--muted); font-size: .88rem; line-height: 1.7; }
.faq-page .faq-answer[hidden] { display: none !important; }
.faq-page .faq-answer p { margin: .85rem 0 0; }
.faq-page .card { border-color: var(--border); box-shadow: 0 7px 20px rgba(7,30,74,.055); }
@media (max-width: 767.98px) {
  .faq-page .faq-tab { flex: 1 1 calc(50% - .5rem); }
  .faq-page .faq-search { margin-bottom: 1.5rem; }
  .faq-page .faq-question { padding: .8rem .85rem; }
  .faq-page .faq-answer { padding-right: .85rem; padding-left: .85rem; }
}
@media (max-width: 479.98px) { .faq-page .faq-tab { flex-basis: 100%; } }

/* ── Full public FAQ ───────────────────────────── */
#arbeitsschutz-faq { max-width:1180px; margin:0 auto; padding:2.25rem 1.5rem 4rem; }
#arbeitsschutz-faq .faq-kicker { margin:0 0 .4rem; color:var(--green); font-size:.75rem; font-weight:800; letter-spacing:.05em; text-align:center; text-transform:uppercase; }
#arbeitsschutz-faq .faq-title { margin:0 0 .65rem; color:var(--navy); font-size:clamp(1.8rem,3vw,2.35rem); font-weight:800; line-height:1.1; text-align:center; }
#arbeitsschutz-faq .faq-subtitle { max-width:760px; margin:0 auto 1.7rem; color:var(--muted); font-size:1rem; text-align:center; }
#as-faq-tabs { display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap; margin:0 0 2.4rem; }
#as-faq-tabs .as-faq-tab { appearance:none; border:1px solid var(--navy); border-radius:7px; padding:.62rem 1rem; background:#fff; color:var(--navy); font:inherit; font-size:.82rem; font-weight:700; line-height:1.2; cursor:pointer; }
#as-faq-tabs .as-faq-tab:hover, #as-faq-tabs .as-faq-tab:focus-visible { background:#f4f8ff; outline:2px solid rgba(29,78,216,.18); outline-offset:2px; }
#as-faq-tabs .as-faq-tab.active { background:var(--navy); color:#fff; }
#arbeitsschutz-faq .as-faq-panel { margin:0 0 2.6rem; }
#arbeitsschutz-faq .as-faq-panel[hidden], #arbeitsschutz-faq .faq-answer[hidden] { display:none !important; }
#arbeitsschutz-faq .category-title { margin:0 0 .35rem; color:var(--navy); font-size:1.35rem; font-weight:800; }
#arbeitsschutz-faq .category-lead { margin:0 0 1.6rem; color:var(--muted); line-height:1.65; }
#arbeitsschutz-faq .faq-section-title { margin:1.9rem 0 .75rem; padding-top:.1rem; color:var(--navy); font-size:1.05rem; font-weight:800; }
#arbeitsschutz-faq .faq-subsection-title { margin:1.5rem 0 .45rem; color:var(--navy); font-size:.94rem; font-weight:800; }
#arbeitsschutz-faq .faq-item { border-bottom:1px solid var(--border); }
#arbeitsschutz-faq .faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.1rem; border:0; padding:1rem 0; background:transparent; color:var(--navy); font:inherit; font-size:.88rem; font-weight:700; line-height:1.45; text-align:left; cursor:pointer; }
#arbeitsschutz-faq .faq-question:hover, #arbeitsschutz-faq .faq-question:focus-visible { color:#173f80; outline:none; }
#arbeitsschutz-faq .faq-question-text { flex:1; }
#arbeitsschutz-faq .faq-icon { flex:0 0 auto; color:var(--muted); font-size:1.25rem; font-weight:400; line-height:1; transition:transform .15s ease; }
#arbeitsschutz-faq .faq-question[aria-expanded="true"] .faq-icon { transform:rotate(45deg); }
#arbeitsschutz-faq .faq-answer { padding:0 2.1rem 1rem 0; color:#34445f; font-size:.88rem; line-height:1.65; }
#arbeitsschutz-faq .faq-answer p { margin:0; }
#arbeitsschutz-faq .faq-status { display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap; margin:-.8rem 0 1.7rem; color:var(--muted); font-size:.75rem; }
#arbeitsschutz-faq .faq-status span { border-radius:999px; padding:.25rem .55rem; background:#f4f7fb; }
#arbeitsschutz-faq .faq-empty-note { color:var(--muted); font-style:italic; }
@media (max-width:767.98px) {
  #arbeitsschutz-faq { padding:1.75rem 1rem 3.1rem; }
  #arbeitsschutz-faq .faq-title { font-size:1.75rem; }
  #as-faq-tabs .as-faq-tab { flex:1 1 calc(50% - .5rem); min-width:0; }
}
@media (max-width:479.98px) { #as-faq-tabs .as-faq-tab { flex-basis:100%; } }

/* ── Industry landing page ──────────────────────── */
.industry-page { background:#fff; color:var(--text); }
.industry-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; padding:1.35rem 0 .25rem; color:var(--muted); font-size:.78rem; }
.industry-breadcrumb a { color:var(--green); text-decoration:none; font-weight:650; }
.industry-breadcrumb i { color:#9aa7b7; font-size:.65rem; }
.industry-hero { padding:calc(2.25rem + 30px) 0 5rem; background:linear-gradient(135deg,#f6fbf7 0%,#fff 65%); }
.industry-hero-grid { display:grid; grid-template-columns:minmax(0, .9fr) minmax(420px,1.1fr); align-items:center; gap:4rem; }
.industry-hero-copy { max-width:590px; min-width:0; }
.industry-hero h1 { max-width:100%; overflow-wrap:anywhere; word-break:normal; hyphens:auto; text-wrap:balance; }
.public-page--branchen-elektroinstallation-e-handwerk .industry-hero h1 > span { white-space:normal; overflow-wrap:anywhere; }
.industry-lead { max-width:570px; color:var(--muted); font-size:1.08rem; line-height:1.7; }
.industry-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.15rem; margin-top:1.6rem; }
.industry-hero-actions .btn-green-lg,
.industry-hero-actions .btn-white,
.industry-hero-actions .btn-outline-navy { box-sizing:border-box; min-height:48px; height:48px; }
.industry-text-link { color:var(--navy); font-size:.9rem; font-weight:700; text-decoration:none; }
.industry-text-link:hover { color:var(--green); }
.career-page { background:var(--white); color:var(--text); }
.career-hero { padding:clamp(1.25rem,3vw,2.6rem) 0 clamp(2rem,4vw,3.5rem); background:linear-gradient(135deg,#f5faf7 0%,#fff 72%); }
.career-hero-panel { position:relative; min-height:390px; overflow:hidden; isolation:isolate; border-radius:22px; background:#132b35; box-shadow:0 20px 44px rgba(7,30,74,.16); }
.career-hero-image, .career-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.career-hero-image { z-index:-2; display:block; object-fit:cover; object-position:center; }
.career-hero-shade { z-index:-1; background:linear-gradient(90deg,rgba(7,30,74,.96) 0%,rgba(7,30,74,.84) 34%,rgba(7,30,74,.26) 70%,rgba(7,30,74,.08) 100%),linear-gradient(0deg,rgba(7,30,74,.42),transparent 48%); }
.career-hero-content { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; box-sizing:border-box; width:min(58%,700px); min-height:390px; padding:clamp(1.5rem,3vw,2.75rem); color:#fff; }
.career-hero-kicker { display:flex; align-items:center; gap:.65rem; margin-bottom:.85rem; }
.career-hero-kicker .section-label { margin:0; color:#b9f0c9; }
.career-hero-rule { width:3rem; height:2px; background:var(--green); }
.career-hero h1 { max-width:12ch; margin:0 0 .8rem; color:#fff; font-size:clamp(2.25rem,4.3vw,4rem); line-height:.98; letter-spacing:-.055em; text-wrap:balance; }
.career-hero p { max-width:34rem; margin:0; color:rgba(255,255,255,.82); font-size:clamp(.92rem,1.2vw,1.05rem); line-height:1.55; }
.career-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:1.25rem; }
.career-hero-actions .btn-green-lg { min-height:46px; padding:.7rem 1rem; }
.career-hero-note { display:inline-flex; align-items:center; gap:.5rem; color:rgba(255,255,255,.78); font-size:.82rem; font-weight:700; }
.career-hero-note i { color:#aeeec0; font-size:1rem; }
.career-hero-badge { position:absolute; z-index:1; right:1.25rem; bottom:1.25rem; display:flex; align-items:center; gap:.55rem; max-width:14rem; padding:.65rem .75rem; border:1px solid rgba(255,255,255,.3); border-radius:10px; color:#fff; background:rgba(7,30,74,.65); box-shadow:0 10px 20px rgba(7,30,74,.14); backdrop-filter:blur(10px); font-size:.72rem; font-weight:700; line-height:1.35; }
.career-hero-badge i { flex:0 0 auto; color:#b9f0c9; font-size:1.2rem; }
.career-hero--split { background:linear-gradient(135deg,#f5faf7 0%,#fff 72%); }
.career-hero-split { display:grid; grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr); align-items:center; gap:clamp(2rem,5vw,5rem); }
.career-hero-split .career-hero-content { width:auto; min-height:0; padding:0; color:var(--text); }
.career-hero-split .career-hero-kicker .section-label { color:var(--green-hover); }
.career-hero-split h1 { color:var(--navy); }
.career-hero-split p { color:var(--muted); }
.career-hero-split .career-hero-note { color:var(--muted); }
.career-hero-split .career-hero-note i { color:var(--green); }
.career-hero-media { min-width:0; margin:0; overflow:hidden; border-radius:20px; background:#dfece3; box-shadow:0 20px 44px rgba(7,30,74,.14); }
.career-hero-media .career-hero-image { position:relative; inset:auto; z-index:auto; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; object-position:center; }
.career-roles { padding:5rem 0; }
.career-role-card { padding:1.5rem; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:0 8px 22px rgba(7,30,74,.05); }
.career-role-card > i { display:grid; place-items:center; width:46px; height:46px; margin-bottom:1rem; border-radius:12px; background:var(--green-light); color:var(--green); font-size:1.35rem; }
.career-role-card .section-label { margin-bottom:.45rem; color:var(--green-hover); font-size:.7rem; }
.career-role-card h3 { margin:0 0 .65rem; color:var(--navy); font-size:1.12rem; line-height:1.35; }
.career-role-card p { margin:0; color:var(--muted); font-size:.9rem; line-height:1.65; }
.career-contact { padding:5rem 0; }
.career-contact h2 { margin:.2rem 0 .75rem; color:var(--navy); font-size:clamp(1.6rem,3vw,2.2rem); }
.career-contact-copy { max-width:34rem; color:var(--muted); line-height:1.7; }
.career-contact-note { display:flex; align-items:center; gap:.6rem; margin-top:1.25rem; color:var(--green-hover); font-size:.85rem; font-weight:700; }
.career-contact-note i { font-size:1.1rem; }
.career-form-card { border:1px solid var(--border); box-shadow:0 8px 22px rgba(7,30,74,.06); }
.career-form-card h3 { margin:0 0 .25rem; color:var(--navy); font-size:1.2rem; }
.career-form-intro { margin:0 0 1.3rem; color:var(--muted); font-size:.85rem; }
.career-form-card .form-check-label { color:var(--muted); font-size:.78rem; line-height:1.45; }
.career-form-card .form-check-label a { color:var(--navy); font-weight:700; }
.industry-hero-media { min-width:0; margin:0; overflow:hidden; border-radius:20px; background:#dfece3; box-shadow:0 20px 44px rgba(7,30,74,.14); }
.industry-hero-media img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; object-position:center; }
.industry-hero-media-mobile { display:none; }
.about-hero-media-mobile { display:none; }
.industry-hero-media figcaption { padding:.55rem .75rem; color:#60736a; background:#f2f8f3; font-size:.69rem; line-height:1.4; }
.industry-section-heading { max-width:720px; margin:0 auto 2.25rem; text-align:center; }
.industry-section-heading h2 { margin:.2rem 0 .65rem; color:var(--navy); font-size:clamp(1.55rem,2.6vw,2.25rem); }
.industry-section-heading p, .industry-muted { color:var(--muted); line-height:1.7; }
.industry-overview { padding:5rem 0; }
.industry-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.industry-benefit { min-height:130px; padding:1.25rem; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(7,30,74,.045); }
.industry-benefit i { display:grid; place-items:center; width:40px; height:40px; margin-bottom:.85rem; border-radius:11px; background:var(--green-light); color:var(--green); font-size:1.15rem; }
.industry-benefit h3 { margin:0; color:var(--navy); font-size:.95rem; line-height:1.4; }
.industry-mid-cta { display:flex; width:max-content; margin:2rem auto 0; }
.industry-risks { padding:5rem 0; }
.industry-two-column { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:5rem; align-items:center; }
.industry-two-column h2 { margin:.25rem 0 .75rem; color:var(--navy); font-size:clamp(1.55rem,2.4vw,2.1rem); }
.industry-risk-list { display:grid; grid-template-columns:1fr; gap:.75rem; align-content:center; margin:0; padding:0; list-style:none; }
.industry-risk-list li { display:flex; gap:.6rem; align-items:flex-start; color:var(--text); font-size:.92rem; line-height:1.45; }
.industry-risk-list i { flex:0 0 auto; color:var(--green); font-size:1rem; }
.industry-content { padding:5rem 0; }
.industry-accordions { display:grid; gap:.8rem; max-width:900px; margin:0 auto; }
.industry-accordion { border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:0 5px 18px rgba(7,30,74,.04); }
.industry-accordion summary { display:flex; align-items:center; gap:.8rem; min-height:74px; padding:.85rem 1.1rem; color:var(--navy); font-weight:800; cursor:pointer; list-style:none; }
.industry-accordion summary::-webkit-details-marker { display:none; }
.industry-accordion summary:focus-visible { outline:3px solid rgba(7,139,62,.3); outline-offset:-3px; border-radius:12px; }
.industry-accordion-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:10px; background:var(--green-light); color:var(--green); }
.industry-accordion-chevron { margin-left:auto; color:var(--green); transition:transform .2s ease; }
.industry-accordion[open] .industry-accordion-chevron { transform:rotate(180deg); }
.industry-accordion-body { padding:0 1.1rem 1.1rem 4.75rem; }
.industry-accordion-body p { margin:.25rem 0 .85rem; color:var(--muted); line-height:1.7; }
.industry-accordion-body p:last-child { margin-bottom:0; }
.industry-doc-content { display:block; max-width:900px; }
.industry-doc-content h2 { margin:2rem 0 .65rem; color:var(--navy); font-size:clamp(1.35rem,2.2vw,1.85rem); line-height:1.25; }
.industry-doc-content h2:first-child { margin-top:0; }
.industry-doc-content h3 { margin:1.35rem 0 .45rem; color:var(--navy); font-size:1.05rem; line-height:1.4; }
.industry-doc-content p { margin:0 0 .9rem; color:var(--muted); line-height:1.7; }
.industry-doc-content strong { color:var(--navy); font-weight:800; }
.industry-doc-content em { color:var(--navy); }
.industry-boundary { padding:0 0 2rem; }
.industry-boundary-inner { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1rem; align-items:start; padding:1.35rem 1.5rem; border-left:4px solid var(--green); background:#f4faf6; }
.industry-boundary-inner > i { color:var(--green); font-size:1.3rem; }
.industry-boundary h2 { margin:0 0 .35rem; color:var(--navy); font-size:1.1rem; }
.industry-boundary p { margin:0; color:#526a5a; line-height:1.65; font-size:.88rem; }
.industry-final-cta { padding:2rem 0 5rem; }
.industry-final-cta .cta-banner { padding:3.5rem 1.5rem; }
.industry-final-cta h2 { color:#fff; }
.industry-final-cta p { max-width:630px; margin:0 auto 1.5rem; color:rgba(255,255,255,.75); line-height:1.6; }
@media (max-width:767.98px) {
  .pub-navbar .nav-item--industries { width:100%; align-self:stretch; }
  .pub-navbar .nav-item--industries .public-industry-nav-control { width:100%; justify-content:flex-end; }
  .nav-dropdown-toggle { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:0; width:auto; margin-left:0; padding-right:.1rem !important; }
  .public-industry-nav-control .nav-dropdown-toggle { padding-right:.1rem !important; }
  .pub-navbar .navbar-collapse { position:relative; max-height:none; overflow:visible; padding:0; }
  .pub-navbar .navbar-collapse.show,
  .pub-navbar .navbar-collapse.collapsing { position:fixed; top:var(--public-nav-height, 58px); right:0; bottom:0; left:0; z-index:1001; display:flex !important; flex-direction:column; width:100%; height:calc(100dvh - var(--public-nav-height, 58px)) !important; max-height:none; padding:0; overflow:hidden; background:var(--navy); }
  .pub-navbar .navbar-collapse.show { opacity:1; transform:translateY(0); }
  .pub-navbar .navbar-collapse.collapsing { opacity:1; transform:translateY(0); transition:height .3s ease, opacity .22s ease, transform .3s cubic-bezier(.22,.61,.36,1); }
  .pub-navbar .navbar-collapse.public-mobile-collapse-entering { opacity:0; transform:translateY(-12px); }
  .pub-navbar .navbar-collapse.public-mobile-collapse-open { opacity:1; transform:translateY(0); transition:opacity .24s ease, transform .32s cubic-bezier(.22,.61,.36,1); }
  .pub-navbar .navbar-collapse.public-mobile-collapse-leaving { opacity:0; transform:translateY(-12px); transition:opacity .2s ease, transform .26s cubic-bezier(.4,0,1,1); pointer-events:none; }
  .pub-navbar .navbar-collapse.show > .navbar-nav,
  .pub-navbar .navbar-collapse.collapsing > .navbar-nav { flex:1 1 auto; order:1; height:auto; min-height:0; overflow:visible; }
  body.public-mobile-menu-open { overflow:hidden; }
  .pub-navbar .navbar-collapse.public-mobile-drilldown-active { position:fixed; top:var(--public-nav-height, 58px); right:0; bottom:0; left:0; z-index:1001; width:100%; max-height:none; padding:0; overflow:hidden; background:var(--navy); }
  .pub-navbar .navbar-nav { position:relative; min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; transform:translateX(0); will-change:transform; transition:transform .32s cubic-bezier(.22,.61,.36,1); }
  .pub-navbar .navbar-nav.public-mobile-main-is-away { transform:translateX(-100%); }
  .pub-navbar .navbar-collapse.public-mobile-drilldown-active > .navbar-nav { overflow:visible; }
  .pub-navbar .navbar-nav .nav-item--industries .public-industry-menu { position:absolute; top:0; right:auto; bottom:0; left:100%; z-index:1011; display:block; grid-template-columns:1fr; align-self:stretch; width:100%; max-width:none; height:100%; min-height:0; max-height:none; box-sizing:border-box; overflow:hidden; margin:0; padding:0; border:0; border-left:1px solid rgba(142,224,174,.32); border-radius:0; background:var(--navy); box-shadow:none; opacity:0; visibility:hidden; transform:translateX(0); transition:transform .32s cubic-bezier(.22,.61,.36,1), opacity .2s ease, visibility 0s linear .32s; }
  .pub-navbar .navbar-nav .nav-item--industries.is-open .public-industry-menu { display:block; opacity:1; visibility:visible; transform:translateX(0); transition-delay:0s; }
  .pub-navbar .navbar-nav .nav-item--industries.is-child-menu-open .public-industry-menu { transform:translateX(-100%); }
  .pub-navbar .navbar-nav .nav-item--industries.is-child-menu-open .public-industry-menu,
  .pub-navbar .navbar-nav .nav-item--industries.is-child-menu-open .public-mobile-menu-scroll { overflow:visible; }
  .public-mobile-menu-back { position:relative; z-index:3; display:flex; align-items:center; gap:.65rem; flex:0 0 auto; width:100%; min-height:56px; margin:0; padding:.75rem 1rem; border:0; border-bottom:1px solid rgba(142,224,174,.22); color:#8ee0ae; background:var(--navy); font-size:14.4px; font-weight:750; line-height:1.25; text-align:left; cursor:pointer; }
  .public-mobile-menu-back i { font-size:1rem; }
  .public-mobile-menu-back:focus-visible { outline:3px solid #8ee0ae; outline-offset:-3px; }
  .public-mobile-menu-scroll { height:calc(100% - 56px); min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .public-industry-grid { display:grid; grid-template-columns:1fr; }
  .public-industry-submenu { position:absolute; top:0; right:auto; bottom:0; left:100%; z-index:1012; display:none; grid-auto-flow:row; grid-template-rows:none; grid-auto-columns:auto; width:100%; max-width:none; min-height:0; height:100%; max-height:none; margin:0; padding:0; border:0; border-left:1px solid rgba(142,224,174,.22); border-radius:0; background:var(--navy); box-shadow:none; overflow:hidden; visibility:hidden; transform:translateX(0); transition:transform .32s cubic-bezier(.22,.61,.36,1), opacity .2s ease, visibility 0s linear .32s; }
  .public-industry-submenu.is-scrollable { max-height:none; overflow:hidden; }
  .public-industry-entry { position:static; }
  .public-industry-parent-row { position:relative; min-height:52px; }
  .public-industry-entry.has-children > .public-industry-text,
  .public-industry-entry.has-children .public-industry-parent-row > .public-industry-text { padding-right:3.25rem; }
  .public-industry-entry.has-children.is-submenu-open > .public-industry-submenu { display:flex; flex-direction:column; opacity:1; visibility:visible; transform:translateX(0); transition-delay:0s; }
  .public-mobile-submenu-scroll { min-height:0; flex:1 1 auto; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .industry-child-toggle { top:0; right:0; z-index:4; display:flex; align-items:center; justify-content:center; min-width:52px; min-height:52px; padding:.75rem; color:#8ee0ae; background:transparent; pointer-events:auto; }
  .public-industry-link { min-height:52px; justify-content:flex-start; gap:.6rem; padding:.75rem 1rem; border-radius:0; border-bottom:1px solid rgba(142,224,174,.12); color:rgba(255,255,255,.88); font-size:14.4px; line-height:1.35; text-align:left; }
  .public-industry-link > i { display:none; }
  .public-service-menu .public-industry-link > i { display:block; flex:0 0 1.25rem; color:#8ee0ae; font-size:1rem; text-align:center; }
  .public-service-menu .public-industry-child { gap:.65rem; }
  .public-industry-link:hover, .public-industry-link:focus-visible, .public-industry-link.is-current { color:#fff; background:rgba(142,224,174,.08); }
  .public-industry-text:hover { background:transparent; }
  .pub-navbar .navbar-nav > .nav-item > .nav-link { min-height:52px; padding:.85rem 1rem !important; font-size:15.3px; line-height:1.25; text-align:left; justify-content:flex-start; }
  .pub-navbar .navbar-nav > .nav-item > .public-industry-nav-control { justify-content:space-between; gap:0; padding:0 .75rem 0 0; }
  .pub-navbar .navbar-nav > .nav-item > .public-industry-nav-control .nav-dropdown-toggle { flex:1 1 auto; width:auto !important; min-width:0; min-height:52px; padding:.85rem 1rem !important; font-size:15.3px; line-height:1.25; text-align:left; justify-content:flex-start; }
  .pub-navbar .navbar-nav > .nav-item + .nav-item { border-top:1px solid rgba(142,224,174,.12); }
  .pub-navbar .navbar-nav > .public-mobile-auth-item { border-top:0; }
  .pub-navbar .navbar-nav > .nav-item--industries { position:static; }
  .pub-navbar .navbar-nav > .nav-item--industries .public-industry-nav-control { min-height:52px; }
  .pub-navbar .navbar-nav > .nav-item--industries .public-industry-nav-control .public-industry-menu-toggle { display:inline-flex; flex:0 0 52px; width:52px !important; min-width:52px !important; min-height:52px; padding:.75rem !important; align-items:center; justify-content:center; text-align:center; }
  .pub-navbar .navbar-nav > .nav-item--industries .public-industry-nav-control .public-industry-menu-toggle i { display:block; margin:0; font-size:1rem; transform:rotate(-90deg) !important; }
  @media (prefers-reduced-motion: reduce) {
    .pub-navbar .navbar-nav,
    .pub-navbar .navbar-nav .nav-item--industries .public-industry-menu,
    .public-industry-submenu,
    .pub-navbar .navbar-collapse.collapsing,
    .pub-navbar .navbar-collapse.public-mobile-collapse-open,
    .pub-navbar .navbar-collapse.public-mobile-collapse-leaving { transition-duration:.01ms; }
  }
  .industry-breadcrumb { padding-top:1rem; font-size:.73rem; }
  .industry-hero { padding:1.75rem 0 3.25rem; }
  .industry-hero-grid, .industry-two-column { grid-template-columns:1fr; gap:2rem; }
  .industry-hero h1 { font-size:clamp(1.35rem,6vw,1.75rem); letter-spacing:-.025em; }
  .public-page--branchen-elektroinstallation-e-handwerk .industry-page h1,
  .public-page--branchen-elektroinstallation-e-handwerk .industry-page h2,
  .public-page--branchen-elektroinstallation-e-handwerk .industry-page h3,
  .public-page--branchen-elektroinstallation-e-handwerk .industry-section-heading,
  .public-page--branchen-elektroinstallation-e-handwerk .industry-final-cta .cta-banner { text-align:left !important; }
  .industry-lead { font-size:1rem; }
  .industry-hero-actions { align-items:stretch; flex-direction:column; gap:.85rem; }
  .industry-hero-actions .btn-green, .industry-hero-actions .btn-white, .industry-hero-actions .btn-outline-navy { width:100%; justify-content:center; min-height:48px; height:48px; }
  .industry-text-link { text-align:center; }
  .industry-hero-media { order:-1; border-radius:14px; }
  .industry-hero-media:not(.industry-hero-media-mobile) { display:none; }
  .industry-hero-media-mobile { display:block; order:0; margin:1.25rem 0 1.5rem; box-shadow:0 12px 26px rgba(7,30,74,.12); }
  .about-page-hero .about-hero-media-mobile { display:block; order:0; }
  .about-hero-media-desktop { display:none; }
  .about-hero-media-mobile { display:block; margin:1rem 0 1.25rem; box-shadow:0 12px 26px rgba(7,30,74,.12); }
  .industry-overview, .industry-risks, .industry-content { padding:3.25rem 0; }
  .industry-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(9.25rem,1fr)); gap:.75rem; }
  .industry-benefit { min-height:0; height:100%; padding:.9rem .75rem; display:flex; flex-direction:column; justify-content:flex-start; }
  .industry-benefit i { width:34px; height:34px; flex:0 0 34px; margin-bottom:.65rem; font-size:1rem; }
  .industry-benefit h3 { font-size:.78rem; line-height:1.3; }
  .industry-accordion summary { min-height:68px; padding:.8rem; font-size:.9rem; }
  .industry-accordion-body { padding:.1rem .9rem .95rem 1rem; }
  .industry-boundary-inner { padding:1.1rem; }
  .industry-final-cta { padding-bottom:3.25rem; }
}
@media (min-width:768px) and (max-width:1050px) { .industry-hero-grid { grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr); gap:2rem; } }
@media (prefers-reduced-motion: reduce) { .public-industry-menu, .nav-dropdown-toggle i, .industry-accordion-chevron { transition:none; } }

/* ── App Layout (Customer + Admin) ───────────────── */
.app-wrapper { display: flex; min-height: 100vh; }

/* Sidebar */
.sidebar {
  width: var(--sidebar-w);
  background: var(--navy);
  position: fixed;
  top: 0; left: 0;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .3s;
  z-index: 900;
}
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 2px; }
.sidebar { background: linear-gradient(180deg, #071E4A 0%, #0A2A60 100%); border-right: 1px solid rgba(255,255,255,.06); }
.sidebar-head { display: flex; align-items: center; gap: .25rem; padding-right: .55rem; border-bottom: 1px solid rgba(255,255,255,.08); flex-shrink: 0; }
.sidebar-logo { display: flex; align-items: center; gap: .7rem; min-width: 0; padding: 1.05rem 1.1rem; border-bottom: 1px solid rgba(255,255,255,.08); text-decoration: none; flex-shrink: 0; }
.sidebar-head .sidebar-logo { flex: 1; border-bottom: 0; }
.sidebar-logo .logo-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--green); color: #fff; font-size: 17px; flex-shrink: 0; box-shadow: 0 4px 12px rgba(7,139,62,.35); }
.sidebar-logo .logo-text-wrap { min-width: 0; }
.sidebar-logo .logo-text { color: #fff; font-weight: 700; font-size: 13.5px; line-height: 1.15; letter-spacing: -.01em; }
.sidebar-logo .logo-sub  { margin-top: .1rem; color: rgba(255,255,255,.55); font-size: 11px; }
.sidebar-collapse { display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: rgba(255,255,255,.5); font-size: 13px; cursor: pointer; transition: background .12s, color .12s; }
.sidebar-collapse:hover, .sidebar-collapse:focus-visible { background: rgba(255,255,255,.08); color: #fff; outline: none; }
.sidebar-collapse:focus-visible { box-shadow: inset 0 0 0 2px var(--sidebar-accent); }

.sidebar-nav { flex: 1; padding: .35rem 0 1rem; }
.sidebar-nav, .sidebar-nav button, .sidebar-nav a { font-family: 'Inter Tight', 'Inter', system-ui, sans-serif; }
.sidebar-section { margin: 1.15rem 1.4rem .35rem; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.45); white-space: nowrap; }
.sidebar-section:first-child { margin-top: .9rem; }

/* One row style for links and group headers. Only the current page is highlighted: a soft green tint and a bar at the edge. */
.sidebar-item, .sidebar-link { position: relative; display: flex; align-items: center; gap: .7rem; width: calc(100% - 1.2rem); min-height: 42px; margin: .12rem .6rem; padding: .4rem .55rem .4rem .5rem; border: 0; border-radius: 10px; background: transparent; color: rgba(255,255,255,.84); font: inherit; font-size: 14px; font-weight: 500; line-height: 1.3; text-align: left; text-decoration: none; cursor: pointer; transition: background .12s, color .12s; }
.sidebar-item > i, .sidebar-link > i { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 8px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.8); font-size: 14px; transition: background .12s, color .12s; }
.sidebar-item > span, .sidebar-link > span { flex: 1; min-width: 0; }
.sidebar-item:hover, .sidebar-link:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar-item:hover > i, .sidebar-link:hover > i { background: rgba(255,255,255,.12); color: #fff; }
.sidebar-item:focus-visible, .sidebar-link:focus-visible { outline: 2px solid var(--sidebar-accent); outline-offset: -2px; }
.sidebar-item.active, .sidebar-link.active { background: rgba(61,214,140,.14); color: #fff; font-weight: 600; }
.sidebar-item.active > i, .sidebar-link.active > i { background: rgba(61,214,140,.22); color: var(--sidebar-accent); }
.sidebar-item.active::before, .sidebar-link.active::before { content: ''; position: absolute; left: -.6rem; top: 50%; width: 3px; height: 22px; border-radius: 0 3px 3px 0; background: var(--sidebar-accent); transform: translateY(-50%); }
.sidebar-link-primary > i { background: rgba(61,214,140,.16); color: var(--sidebar-accent); }

/* Groups: a header row, then the pages indented on a guide line under the icon. The open group turns white, not filled. */
.sidebar-item > .sidebar-group-chevron { flex: 0 0 auto; width: auto; height: auto; margin-left: auto; margin-right: .2rem; background: transparent; font-size: 11px; color: rgba(255,255,255,.45); transition: transform .18s ease, color .12s; }
.sidebar-item:hover > .sidebar-group-chevron { background: transparent; color: #fff; }
.sidebar-group.is-active .sidebar-group-toggle { color: #fff; }
.sidebar-group.is-active .sidebar-group-toggle > i { background: rgba(255,255,255,.12); color: #fff; }
.sidebar-group.is-active .sidebar-item > .sidebar-group-chevron { transform: rotate(90deg); color: rgba(255,255,255,.8); background: transparent; }
.sidebar-group-panel { margin: .05rem .6rem .5rem calc(1.1rem + 15px); padding-left: .9rem; border-left: 1px solid rgba(255,255,255,.14); }
.sidebar-group-panel[hidden] { display: none; }
.sidebar-group-panel .sidebar-link { width: 100%; min-height: 36px; margin: .08rem 0; padding: .42rem .65rem; border-radius: 8px; color: rgba(255,255,255,.72); font-size: 13.5px; font-weight: 400; }
.sidebar-group-panel .sidebar-link:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar-group-panel .sidebar-link.active { background: rgba(61,214,140,.14); color: #fff; font-weight: 600; }
.sidebar-group-panel .sidebar-link.active::before { left: calc(-.9rem - 4px); width: 7px; height: 7px; border-radius: 50%; }
.sidebar-link .badge-count { flex: 0 0 auto; margin-left: auto; min-width: 22px; padding: .12rem .45rem; border-radius: 99px; background: rgba(255,255,255,.14); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.4; text-align: center; }
.sidebar-link.active .badge-count { background: rgba(61,214,140,.3); }

/* Collapsed to an icon rail (desktop only). Labels disappear, icons stay, the title attribute explains them. */
.sidebar-resizer { display: none; }
@media (min-width: 901px) {
  .sidebar-resizer { display: block; position: fixed; top: 0; left: calc(var(--sidebar-w) - 4px); width: 8px; height: 100vh; z-index: 901; cursor: col-resize; }
  .sidebar-resizer::after { content: ''; position: absolute; top: 0; bottom: 0; left: 3px; width: 2px; background: var(--sidebar-accent); opacity: 0; transition: opacity .15s; }
  .sidebar-resizer:hover::after, body.sidebar-resizing .sidebar-resizer::after { opacity: .9; }
  body.sidebar-resizing { cursor: col-resize; user-select: none; }
  body.sidebar-resizing .sidebar, body.sidebar-resizing .main-content { transition: none; }
  html.sidebar-collapsed { --sidebar-w: 78px; }
  html.sidebar-collapsed .sidebar-resizer { display: none; }
  html.sidebar-collapsed .sidebar-head { flex-direction: column; gap: .35rem; padding: .85rem 0 .6rem; }
  html.sidebar-collapsed .sidebar-head .sidebar-logo { padding: 0; }
  html.sidebar-collapsed .logo-text-wrap, html.sidebar-collapsed .sidebar-section, html.sidebar-collapsed .sidebar-item > span, html.sidebar-collapsed .sidebar-group-chevron, html.sidebar-collapsed .sidebar-group-panel, html.sidebar-collapsed .sidebar-user-text, html.sidebar-collapsed .sidebar-logout { display: none; }
  html.sidebar-collapsed .sidebar-collapse i { transform: rotate(180deg); }
  html.sidebar-collapsed .sidebar-nav { padding-top: .6rem; }
  html.sidebar-collapsed .sidebar-item, html.sidebar-collapsed .sidebar-link { justify-content: center; width: calc(100% - 1.1rem); margin: .2rem .55rem; padding: .35rem; }
  html.sidebar-collapsed .sidebar-item > i, html.sidebar-collapsed .sidebar-link > i { width: 34px; height: 34px; flex-basis: 34px; font-size: 16px; }
  html.sidebar-collapsed .sidebar-item.active::before, html.sidebar-collapsed .sidebar-link.active::before { left: -.55rem; }
  html.sidebar-collapsed .sidebar-bottom { padding: .75rem .5rem; }
  html.sidebar-collapsed .sidebar-user { justify-content: center; }
  html.sidebar-collapsed .sidebar-user-card { padding: .3rem; }
}
@media (max-width: 900px) { .sidebar-collapse { display: none; } }

/* Customer dashboard overview */
.dashboard-page { max-width: 1320px; margin: 0 auto; }
.dashboard-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; padding: .25rem 0 1.55rem; }
.dashboard-kicker,.dashboard-eyebrow { margin:0 0 .35rem; color:var(--green); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.dashboard-hero .page-sub { max-width:680px; font-size:14px; line-height:1.55; }
.dashboard-ai-link { white-space:nowrap; }
.dashboard-section { margin-top:1.8rem; }
.dashboard-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.dashboard-section-heading h2 { margin:0; color:var(--navy); font-size:1.12rem; font-weight:800; letter-spacing:-.01em; }
.dashboard-section-heading a { color:var(--green); font-size:12.5px; font-weight:700; text-decoration:none; }
.dashboard-section-heading a:hover { text-decoration:underline; }
.dashboard-alert-panel,.dashboard-list-panel { padding:1.15rem; border:1px solid var(--border); border-radius:14px; background:var(--white); box-shadow:0 5px 18px rgba(7,30,74,.055); }
.dashboard-alert-panel { border-left:4px solid var(--yellow); }
.dashboard-warning-count { display:grid; place-items:center; min-width:28px; height:28px; border-radius:50%; background:#FEF3C7; color:#92400E; font-size:12px; font-weight:800; }
.dashboard-warning-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.dashboard-warning { display:flex; align-items:center; gap:.7rem; min-width:0; padding:.7rem .75rem; border:1px solid #f1e7c8; border-radius:10px; color:var(--text); text-decoration:none; background:#fffcf4; }
.dashboard-warning:hover { border-color:#e2b94f; background:#fff8df; color:var(--text); }
.dashboard-warning-danger { border-color:#f2d1d1; background:#fff8f8; }.dashboard-warning-danger:hover { border-color:#df9292; background:#fff0f0; }
.dashboard-warning-icon { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border-radius:9px; background:#FEF3C7; color:#92400E; }.dashboard-warning-danger .dashboard-warning-icon { background:#FEE2E2; color:#991B1B; }
.dashboard-warning strong,.dashboard-warning small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dashboard-warning strong { font-size:13px; }.dashboard-warning small { margin-top:.12rem; color:var(--muted); font-size:11.5px; }.dashboard-warning-arrow { margin-left:auto; color:var(--muted); font-size:12px; }
.dashboard-clear-state { display:flex; align-items:center; gap:.8rem; margin-top:1rem; padding:1rem 1.1rem; border:1px solid #cde8d6; border-radius:13px; background:#f4fbf6; color:#176b3b; }.dashboard-clear-state > i { font-size:23px; }.dashboard-clear-state strong,.dashboard-clear-state span { display:block; }.dashboard-clear-state span { margin-top:.15rem; color:#537562; font-size:12.5px; }
 .dashboard-card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }.dashboard-stat-card { position:relative; min-height:120px; padding:.85rem; border:1px solid var(--border); border-radius:12px; background:var(--white); color:var(--text); text-decoration:none; overflow:hidden; box-shadow:0 4px 14px rgba(7,30,74,.045); transition:transform .18s,box-shadow .18s,border-color .18s; }.dashboard-stat-card:hover { color:var(--text); transform:translateY(-2px); border-color:#bed4c5; box-shadow:0 10px 24px rgba(7,30,74,.09); }.dashboard-stat-icon { display:grid; place-items:center; width:32px; height:32px; margin-bottom:.65rem; border-radius:9px; font-size:16px; }.dashboard-tone-blue .dashboard-stat-icon { background:#E0F2FE;color:#0369A1; }.dashboard-tone-green .dashboard-stat-icon { background:#DCFCE7;color:#15803D; }.dashboard-tone-purple .dashboard-stat-icon { background:#F3E8FF;color:#7E22CE; }.dashboard-tone-navy .dashboard-stat-icon { background:#E8EEF8;color:var(--navy); }.dashboard-stat-value,.dashboard-stat-label,.dashboard-card-link { display:block; }.dashboard-stat-value { color:var(--navy); font-size:24px; font-weight:850; line-height:1; }.dashboard-stat-label { margin-top:.3rem; font-size:12px; font-weight:700; }.dashboard-card-link { margin-top:.65rem; color:var(--green); font-size:11px; font-weight:750; }
.dashboard-action-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; }.dashboard-action-card { display:flex; align-items:center; gap:.7rem; min-width:0; padding:.85rem; border:1px solid var(--border); border-radius:12px; background:var(--white); color:var(--text); text-decoration:none; }.dashboard-action-card:hover { color:var(--text); border-color:#bfd8c7; box-shadow:0 5px 16px rgba(7,30,74,.06); }.dashboard-action-card > span:nth-child(2) { min-width:0; flex:1; }.dashboard-action-card strong,.dashboard-action-card small { display:block; }.dashboard-action-card strong { color:var(--navy); font-size:12.5px; }.dashboard-action-card small { margin-top:.2rem; color:var(--muted); font-size:11px; line-height:1.35; }.dashboard-action-card > i { color:var(--muted); }.dashboard-action-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:9px; }.dashboard-action-red { background:#FEE2E2;color:#B91C1C; }.dashboard-action-orange { background:#FEF3C7;color:#B45309; }.dashboard-action-blue { background:#DBEAFE;color:#1D4ED8; }.dashboard-action-purple { background:#F3E8FF;color:#7E22CE; }
.dashboard-action-grid-clear .dashboard-action-card { border-color:#dfe3e1; background:#f4f5f4; color:#7b8580; box-shadow:none; }.dashboard-action-grid-clear .dashboard-action-card:hover { border-color:#cbd1cd; background:#eef0ef; box-shadow:none; }.dashboard-action-grid-clear .dashboard-action-card strong,.dashboard-action-grid-clear .dashboard-action-card small,.dashboard-action-grid-clear .dashboard-action-card > i { color:#7b8580; }.dashboard-action-grid-clear .dashboard-action-icon { background:#e2e5e3; color:#87908b; }
.dashboard-lower-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1.8rem; }.dashboard-compact-list { display:grid; gap:.15rem; }.dashboard-compact-list > a { display:flex; align-items:center; gap:.65rem; padding:.65rem .2rem; border-bottom:1px solid #edf0f1; color:var(--text); text-decoration:none; }.dashboard-compact-list > a:last-child { border-bottom:0; }.dashboard-compact-list > a:hover { color:var(--green); }.dashboard-compact-list > a > span:nth-child(2) { min-width:0; flex:1; }.dashboard-compact-list strong,.dashboard-compact-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dashboard-compact-list strong { color:var(--navy); font-size:12.5px; }.dashboard-compact-list small { margin-top:.15rem; color:var(--muted); font-size:11px; }.dashboard-list-dot { width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:var(--yellow); }.dashboard-file-icon { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:8px; background:#EEF2FF; color:#3730A3; }.dashboard-compact-list > a > i { color:var(--muted); font-size:11px; }.dashboard-empty { display:flex; align-items:center; gap:.7rem; min-height:100px; color:var(--muted); font-size:12px; }.dashboard-empty > i { color:#91a49a; font-size:24px; }.dashboard-empty span { flex:1; }.dashboard-empty a { color:var(--green); font-weight:750; text-decoration:none; white-space:nowrap; }
@media (max-width:1000px) { .dashboard-card-grid,.dashboard-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:680px) { .dashboard-hero { align-items:flex-start; flex-direction:column; }.dashboard-ai-link { width:100%; justify-content:center; }.dashboard-warning-list,.dashboard-lower-grid { grid-template-columns:1fr; }.dashboard-card-grid,.dashboard-action-grid { grid-template-columns:1fr 1fr; gap:.65rem; }.dashboard-stat-card { min-height:112px; padding:.75rem; }.dashboard-stat-value { font-size:23px; }.dashboard-stat-label { font-size:11.5px; }.dashboard-action-card { align-items:flex-start; flex-wrap:wrap; }.dashboard-action-card > i { margin-left:auto; } }
@media (max-width:420px) { .dashboard-card-grid,.dashboard-action-grid { grid-template-columns:1fr; }.dashboard-section-heading h2 { font-size:1rem; } }

.sidebar-bottom { padding: .75rem .75rem; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-user { display: flex; align-items: center; gap: .3rem; min-width: 0; }
.sidebar-user-card { display: flex; align-items: center; gap: .65rem; flex: 1; min-width: 0; padding: .4rem .5rem; border-radius: 10px; text-decoration: none; transition: background .12s; }
a.sidebar-user-card:hover, a.sidebar-user-card:focus-visible { background: rgba(255,255,255,.07); }
a.sidebar-user-card:focus-visible, .sidebar-logout:focus-visible { outline: 2px solid var(--sidebar-accent); outline-offset: -2px; }
.sidebar-user-text { min-width: 0; }
.sidebar-avatar { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, #0FA85A, #078B3E); color: #fff; font-weight: 700; font-size: 13px; flex-shrink: 0; }
.sidebar-user-name, .sidebar-user-role { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-name  { font-size: 13.5px; font-weight: 600; color: #fff; }
.sidebar-user-role  { font-size: 11.5px; color: rgba(255,255,255,.55); }
.sidebar-logout { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 9px; color: rgba(255,255,255,.55); font-size: 16px; text-decoration: none; transition: background .12s, color .12s; }
.sidebar-logout:hover, .sidebar-logout:focus-visible { background: rgba(255,255,255,.08); color: #fff; }
@media (max-width: 900px) { .sidebar-logout { display: none; } }
.sidebar-impersonation-end { display:flex; align-items:center; justify-content:center; gap:.5rem; width:100%; padding:.7rem .8rem; border:1px solid #e0a800; border-radius:10px; background:#ffc107; color:#332701; font-size:12px; font-weight:700; text-decoration:none; transition:background .15s, border-color .15s, transform .15s; }
.sidebar-impersonation-end:hover, .sidebar-impersonation-end:focus-visible { background:#ffca2c; border-color:#c99700; color:#332701; transform:translateY(-1px); outline:none; }
.sidebar-impersonation-end:focus-visible { box-shadow:0 0 0 3px rgba(255,193,7,.28); }

/* Subscription overview */
.billing-status-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; margin-bottom:1.5rem; padding:1.25rem; border:1px solid #dfe4ea; border-radius:14px; background:#fff; box-shadow:0 5px 18px rgba(7,30,74,.045); }
.billing-status-card.is-active { border-color:#cfe4d5; background:#f5fbf6; }
.billing-status-card.is-ended, .billing-status-card.is-paused { background:#fafbfc; border-color:#d7dde5; }
.billing-status-card.is-pending { background:#fffaf2; border-color:#ead9b0; }
.billing-status-card.is-unavailable { background:#f7f8fa; border-color:#d7dde5; }
.billing-management-page-header { margin-bottom:1rem; }
.billing-management-card { max-width:980px; margin-bottom:0; }
.billing-status-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:#eef1f4; color:#667085; font-size:23px; }
.billing-status-card.is-active .billing-status-icon { background:#dff2e4; color:#18723d; }
.billing-status-main h2 { margin:.1rem 0 .25rem; color:var(--navy); font-size:1.15rem; }
.billing-status-main > strong { color:var(--text); font-size:1rem; }
.billing-status-card.is-active .billing-status-main > strong { color:#18723d; }
.billing-status-details { display:flex; flex-wrap:wrap; gap:.35rem 1rem; margin-top:.55rem; color:var(--muted); font-size:12px; }
.billing-status-details b { color:var(--text); font-weight:700; }
.billing-status-note { margin:.65rem 0 0; color:var(--muted); font-size:13px; }
.billing-status-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.billing-status-actions form { margin:0; }
.billing-status-actions small { display:block; max-width:230px; color:var(--muted); font-size:11px; line-height:1.4; }
.billing-status-actions button:disabled { cursor:not-allowed; opacity:.55; }
.billing-feedback { margin-bottom:1rem; padding:.75rem .9rem; border-radius:10px; font-size:13px; }
.billing-feedback.is-success { border:1px solid #b9dfc5; background:#effaf2; color:#18723d; }
.billing-feedback.is-error { border:1px solid #ead9b0; background:#fffaf0; color:#6b5a1d; }
.billing-feedback-loading { display:flex; align-items:center; gap:.45rem; border:1px solid #d8e4f2; background:#f7faff; color:var(--navy); }
.billing-feedback.is-info { border:1px solid #d7dde5; background:#f7f8fa; color:#596579; }
.billing-feedback-loading i { animation:billing-spin .8s linear infinite; }
@keyframes billing-spin { to { transform:rotate(360deg); } }
.billing-option-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:1rem; }
.billing-option-card { display:flex; flex-direction:column; min-width:0; min-height:245px; padding:1.1rem; border:1px solid var(--border); border-radius:13px; background:var(--white); box-shadow:0 4px 14px rgba(7,30,74,.04); transition:border-color .18s, box-shadow .18s, transform .18s; }
.billing-option-card:hover { border-color:#b9d8c2; box-shadow:0 8px 20px rgba(7,30,74,.08); transform:translateY(-2px); }
.billing-option-card.is-active { border:2px solid var(--green); background:#f6fcf7; box-shadow:0 8px 22px rgba(7,139,62,.12); }
.billing-option-card.is-unavailable { opacity:.68; }
.billing-option-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; min-height:44px; }
.billing-option-head h3 { margin:0; color:var(--navy); font-size:15px; line-height:1.3; }
.billing-active-badge { display:inline-flex; align-items:center; gap:.25rem; flex-shrink:0; padding:.2rem .45rem; border-radius:99px; background:#dff2e4; color:#18723d; font-size:10px; font-weight:800; }
.billing-option-price { display:block; margin-top:1rem; color:var(--navy); font-size:1.45rem; line-height:1.1; }
.billing-option-period { margin-top:.25rem; color:var(--muted); font-size:12px; }
.billing-option-note { flex:1; margin-top:1rem; color:var(--muted); font-size:12px; line-height:1.4; }
.billing-option-card form, .billing-option-card > button { margin-top:1rem; }
.billing-option-card button { width:100%; justify-content:center; }
.billing-option-card.is-active button:disabled { border-color:#9ac7a6; background:#eaf7ed; color:#18723d; opacity:1; }
@media (max-width:1000px) { .billing-option-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:680px) { .billing-status-card { grid-template-columns:auto minmax(0,1fr); }.billing-status-actions { grid-column:1/-1; justify-content:stretch; }.billing-status-actions button,.billing-status-actions form { flex:1; }.billing-status-actions form button { width:100%; justify-content:center; }.billing-option-grid { grid-template-columns:1fr; } }

/* Main content area */
.main-content {
  margin-left: var(--sidebar-w);
  flex: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Topbar */
.topbar {
  height: var(--topbar-h);
  background: var(--white);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 1.5rem;
  gap: 1rem;
  position: sticky;
  top: 0;
  z-index: 800;
  flex-shrink: 0;
}
.topbar-search {
  flex: 1;
  max-width: 380px;
  position: relative;
}
.topbar-search input {
  width: 100%;
  padding: .45rem .9rem .45rem 2.4rem;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 13.5px;
  background: var(--bg);
  color: var(--text);
}
.topbar-search input:focus { border-color: var(--navy); outline: none; background: var(--white); }
.topbar-search .search-icon { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 14px; }
.global-search-results { position:absolute; top:calc(100% + .45rem); left:0; right:0; z-index:1200; max-height:360px; overflow:auto; padding:.35rem; border:1px solid var(--border); border-radius:10px; background:#fff; box-shadow:0 12px 28px rgba(7,30,74,.14); }
.global-search-result { display:flex; align-items:flex-start; gap:.65rem; width:100%; padding:.65rem .7rem; border-radius:7px; color:var(--text); text-decoration:none; }
.global-search-result:hover,.global-search-result:focus { background:var(--green-light); color:var(--text); outline:none; }
.global-search-result i { flex:0 0 28px; width:28px; height:28px; display:grid; place-items:center; border-radius:7px; background:#eef5f0; color:var(--green); }
.global-search-result strong { display:block; font-size:12.5px; line-height:1.35; }
.global-search-result small { display:block; margin-top:.1rem; color:var(--muted); font-size:10.5px; }
.global-search-empty { padding:.7rem; color:var(--muted); font-size:12px; }
.topbar-right { display: flex; align-items: center; gap: .75rem; margin-left: auto; }
.topbar-bell {
  width: 36px; height: 36px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  color: var(--muted);
  cursor: pointer;
  font-size: 15px;
  position: relative;
  transition: border-color .2s, color .2s;
}
.topbar-bell:hover { border-color: var(--navy); color: var(--navy); }
.topbar-bell .notif-dot { position: absolute; top: 6px; right: 6px; width: 7px; height: 7px; background: var(--red); border-radius: 50%; border: 1.5px solid var(--white); }
.topbar-company { font-size: 13px; font-weight: 600; color: var(--navy); }
.topbar-user {
  display: flex; align-items: center; gap: .5rem;
  cursor: pointer;
  padding: .35rem .65rem;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: var(--bg);
  transition: border-color .2s;
}
.topbar-user:hover { border-color: var(--navy); }
.topbar-user .avatar { width: 28px; height: 28px; border-radius: 50%; background: var(--green); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.topbar-user .uname  { font-size: 13px; font-weight: 600; color: var(--navy); }

/* Page area */
.page-area { padding: 1.5rem; flex: 1; }
.page-header { margin-bottom: 1.25rem; }
.v12-form-page { max-width: 1320px; margin-inline:auto; padding-bottom:3rem; }
.v12-form-info { display:flex; align-items:flex-start; gap:.65rem; background:#DBEAFE; color:#1E40AF; border:0; border-radius:12px; }
.v12-record-card { min-height:260px; overflow:hidden; }
.v12-loading { display:grid; place-items:center; min-height:260px; color:var(--muted); }
.v12-empty-state { display:grid; place-items:center; text-align:center; min-height:260px; padding:2.5rem 1rem; }
.v12-empty-state > i { font-size:2.8rem; color:var(--muted); margin-bottom:.5rem; }
.v12-empty-state h2 { color:var(--navy); font-size:1.05rem; margin:.2rem 0 .35rem; }
.v12-empty-state p { max-width:560px; color:var(--muted); margin:0 0 1rem; }
.v12-record-table th { color:var(--navy); font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.v12-record-table td { vertical-align:middle; color:var(--text); }
.v12-live { min-height:1.4rem; margin-top:.7rem; color:var(--muted); }
.v12-field-error { min-height:1.1rem; margin-top:.25rem; color:#b42318; font-size:.82rem; }
.v12-form-page .form-control:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(7,139,62,.13); }
.v12-form-tabs { margin-inline:-.25rem; }
.v12-form-tablist { display:flex; gap:.35rem; overflow-x:auto; padding:.25rem .25rem .7rem; border-bottom:1px solid var(--border); scrollbar-width:thin; }
.v12-form-tab { flex:0 0 auto; min-height:44px; padding:.55rem .85rem; border:1px solid transparent; border-radius:8px 8px 0 0; background:transparent; color:var(--muted); font-weight:700; white-space:nowrap; }
.v12-form-tab:hover { color:var(--navy); background:#f4f8f5; }
.v12-form-tab.is-active { color:var(--navy); background:#eef7f0; border-color:var(--border); border-bottom-color:#eef7f0; margin-bottom:-1px; }
.v12-form-tab:focus-visible { outline:3px solid rgba(7,139,62,.28); outline-offset:2px; }
.v12-form-tabpanel { padding:.9rem .25rem .15rem; }
.v12-form-tabpanel[hidden] { display:none!important; }
@media (max-width:575.98px) {
  .v12-form-page { padding-inline:.15rem; }
  .v12-form-page .page-header { align-items:stretch!important; }
  .v12-form-page .page-header .btn-green { width:100%; justify-content:center; }
  .v12-record-table { min-width:620px; }
  .v12-record-card .table-responsive { overflow-x:auto; }
}
.page-title { font-size: 1.3rem; font-weight: 800; color: var(--navy); margin: 0; }
.page-sub   { font-size: 13px; color: var(--muted); margin-top: .15rem; }
.page-header .breadcrumb { font-size: 12px; }
.page-header .breadcrumb-item a { color: var(--muted); text-decoration: none; }
.page-header .breadcrumb-item.active { color: var(--navy); font-weight: 500; }

/* ── Pflichtencheck Wizard ────────────────────────── */
.wizard-layout { display: grid; grid-template-columns: 220px 1fr 280px; gap: 1.25rem; min-height: calc(100vh - 80px); align-items: start; }
@media (max-width: 1024px) {
  .wizard-layout { grid-template-columns: 1fr; }
  .wizard-steps, .wizard-sidebar { position: static; }
  .wizard-steps { order: -1; }
}

@media (max-width: 767.98px) {
  .check-progress-header { padding: .65rem .75rem !important; }
  .check-progress-header .container > .d-flex { display: flex !important; justify-content: center !important; }
  .check-progress-header .container > .d-flex > div:first-child { text-align: center; }
  .check-progress-header .container > .d-flex > div:first-child > div:first-child { display: none; }
  .check-progress-header .container > .d-flex > div:first-child > div:last-child { color: var(--navy) !important; font-size: 13px !important; line-height: 1.3; }
  .check-progress-header .container > .d-flex > div:last-child { display: none !important; }
  .wizard-main-card { padding: 1.1rem; border-radius: 10px; }
  .wizard-steps { display: none !important; }
  .wizard-sidebar { display: none; }
  .wizard-layout { gap: .25rem; }
  .wizard-main-card .row { --bs-gutter-x: .75rem; }
  .wizard-main-card .d-flex.justify-content-between.align-items-center.mt-4 { gap: .75rem; }
  .wizard-main-card .btn-green-lg,
  .wizard-main-card .btn-outline-navy { min-height: 46px; }
  .check-topbar { padding-left: .75rem !important; padding-right: .75rem !important; gap: .75rem; }
  .check-brand { white-space: nowrap; font-size: 11px !important; gap: .35rem !important; }
  .check-topbar > div { font-size: 10px !important; white-space: nowrap; }
  .video-panel-body { align-items: flex-start; flex-direction: column; }
  .video-panel-body .btn-green { width: 100%; justify-content: center; }
  .process-arrow { flex-basis: 100%; text-align: center; transform: rotate(90deg); height: 20px; }
  .process-step { flex-basis: 100%; }
}

.wizard-steps { background: var(--navy); border-radius: 14px; padding: 1.5rem 1rem; position: sticky; top: 70px; }
.wizard-step-item { display: flex; align-items: center; gap: .75rem; padding: .7rem .75rem; border-radius: 8px; margin-bottom: .25rem; transition: background .2s; }
.wizard-step-item.active   { background: rgba(255,255,255,.1); }
.wizard-step-item.done     { opacity: .7; }
.wizard-step-num { width: 28px; height: 28px; border-radius: 50%; border: 2px solid rgba(255,255,255,.3); color: rgba(255,255,255,.6); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wizard-step-item.active .wizard-step-num { border-color: var(--green); background: var(--green); color: #fff; }
.wizard-step-item.done   .wizard-step-num { border-color: var(--green); background: transparent; color: var(--green); }
.wizard-step-label { font-size: 13px; color: rgba(255,255,255,.75); font-weight: 500; }
.wizard-step-item.active .wizard-step-label { color: #fff; font-weight: 600; }

.wizard-main-card { background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 2rem; box-shadow: 0 1px 6px rgba(7,30,74,.07); }
.wizard-sidebar { background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 1.5rem; position: sticky; top: 70px; }
.check-result-layout { width: 100%; max-width: 760px; margin: 0 auto; }
.check-result-layout > div { text-align: center; }
.check-result-card { border: 0 !important; background: transparent; box-shadow: none !important; }
.check-result-layout .card-body { display: flex; flex-direction: column; align-items: center; gap: .75rem; padding: 2rem; }
.check-result-layout .d-flex.align-items-center.gap-4 { justify-content: center; text-align: center; }
.check-result-actions { margin: 1.6rem auto 0; max-width: 620px; padding: 1.15rem; border: 1px solid #dfe8e1; border-radius: 16px; background: linear-gradient(145deg,#fbfdfb 0%,#f2f8f3 100%); text-align: left; box-shadow: 0 10px 24px rgba(7,30,74,.06); }
.check-result-actions-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:.75rem; }
.check-result-actions-heading .section-label { margin-bottom:.25rem; }
.check-result-next-title { margin: 0; color:var(--navy); font-size:1.375rem; font-weight:800; }
.check-result-actions-count { flex:0 0 auto; padding:.3rem .55rem; border-radius:999px; background:#e3f1e6; color:#166534; font-size:.7rem; font-weight:800; }
.check-result-actions-list { display:grid; gap:.55rem; }
.check-result-next-item { display:flex; align-items:center; gap:.7rem; min-height:52px; padding:.7rem .75rem; border:1px solid #e3ebe5; border-radius:11px; background:#fff; box-shadow:0 3px 10px rgba(7,30,74,.035); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.check-result-next-item:hover { transform:translateY(-1px); border-color:#bfd8c4; box-shadow:0 7px 16px rgba(7,30,74,.08); }
.check-result-next-icon { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; flex:0 0 32px; border-radius:9px; font-size:15px; }
.check-result-next-icon-rot { background:#fee2e2; color:#b42318; }
.check-result-next-icon-gelb { background:#fef3c7; color:#a16207; }
.check-result-next-copy { flex:1; color:var(--navy); font-size:1.375rem; font-weight:700; line-height:1.35; }
.check-result-next-priority { flex:0 0 auto; padding:.22rem .45rem; border-radius:999px; font-size:.64rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.check-result-next-priority-rot { background:#fff0f0; color:#b42318; }
.check-result-next-priority-gelb { background:#fff8df; color:#9a6700; }
.check-result-registration { margin-top:2rem; }
.check-result-registration .btn-green-lg { padding:.75rem 2rem; font-size:15px; }
.check-result-consent { max-width:620px; margin-left:auto; margin-right:auto; text-align:left; }
.result-benefits { margin: 2.7rem auto 0; max-width: 620px; --bs-gutter-x: .5rem; }
.result-benefit-icon { width: 30px; height: 30px; margin-bottom: .35rem; font-size: 14px; }
.result-benefit-title { color: var(--navy); font-size: 11px; font-weight: 700; line-height: 1.2; }
.result-benefit-text { color: var(--muted); font-size: 10px; line-height: 1.25; margin-top: .15rem; }
@media (min-width: 768px) {
  .check-result-registration .btn-green-lg { padding:.9rem 2.4rem; font-size:18px; }
}
@media (max-width: 575.98px) {
  .check-result-layout .card-body { padding: .5rem 0; }
  .check-result-layout .d-flex.align-items-center.gap-4 { flex-direction: column; gap: .85rem !important; }
  .check-result-layout .score-circle-lg { width: 112px; height: 112px; }
  .check-result-layout .score-circle-lg .score-value { font-size: 25px; }
  .check-result-status-label { font-size: 11px !important; }
  .check-result-actions { padding:.9rem; }
  .check-result-actions-heading { align-items:flex-start; flex-direction:column; gap:.4rem; }
  .check-result-layout .check-result-next-item { font-size: 13px !important; }
  .check-result-next-copy { font-size:1rem; }
  .check-result-next-priority { display:none; }
  .check-result-registration { margin-top:1.65rem; }
  .result-benefits { margin-top: 1.4rem; }
  .result-benefit-title { font-size: 10px; }
  .result-benefit-text { font-size: 9px; }
}

@media (max-width: 1024px) {
  .wizard-layout .wizard-steps,
  .wizard-layout .wizard-sidebar { position: static; top: auto; }
  .wizard-layout .wizard-steps { z-index: auto; }
}

.check-option {
  border: 2px solid var(--border);
  border-radius: 10px;
  padding: .85rem 1rem;
  cursor: pointer;
  transition: all .2s;
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  user-select: none;
  height: 100%;
}
.check-option:hover  { border-color: var(--navy); background: var(--bg); }
.check-option.selected { border-color: var(--green); background: var(--green-light); color: var(--navy); }
.check-option input { display: none; }
.check-option .option-icon { font-size: 22px; flex-shrink: 0; }

.wizard-main-card .form-control,
.wizard-main-card .form-select { min-height: 46px; }
.wizard-main-card .yn-option { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: .6rem 1rem; }

.yn-option {
  border: 2px solid var(--border);
  border-radius: 8px;
  padding: .5rem 1.1rem;
  cursor: pointer;
  font-size: 13.5px;
  font-weight: 600;
  transition: all .15s;
}
.yn-option:hover   { border-color: var(--navy); background: var(--bg); }
.yn-option.yes.sel { border-color: var(--green); background: var(--green-light); color: var(--green); }
.yn-option.no.sel  { border-color: var(--red); background: #FEE2E2; color: var(--red); }
.yn-option input { display: none; }

/* ── Responsive ──────────────────────────────────── */
@media (max-width: 900px) {
  .sidebar { transform: translateX(-100%); }
  .sidebar.open { transform: translateX(0); }
  .main-content { margin-left: 0; }
  .hero-title { font-size: 1.8rem; }
  .public-hero-actions { flex-direction:column; }
  .public-hero-actions > a { width:100%; justify-content:center; }
  .wizard-layout { grid-template-columns: 1fr; }
}

/* ── Utilities ───────────────────────────────────── */
.border-top-green { border-top: 3px solid var(--green) !important; }
.border-top-navy  { border-top: 3px solid var(--navy) !important; }
.rounded-12 { border-radius: 12px !important; }
.rounded-14 { border-radius: 14px !important; }
.shadow-sm  { box-shadow: 0 1px 4px rgba(7,30,74,.07) !important; }
.shadow-md  { box-shadow: 0 4px 16px rgba(7,30,74,.1) !important; }
.gap-10 { gap: 10px; }
.hover-row tr:hover td { background: var(--bg); }
.cursor-pointer { cursor: pointer; }
.overflow-hidden { overflow: hidden; }

/* Score badge pill */
.score-pill { background: var(--green); color: #fff; font-weight: 700; font-size: 12px; padding: .2rem .6rem; border-radius: 99px; }

/* Notification dot */
.dot-red    { display:inline-block; width:8px; height:8px; border-radius:50%; background: var(--red); }
.dot-yellow { display:inline-block; width:8px; height:8px; border-radius:50%; background: var(--yellow); }
.dot-green  { display:inline-block; width:8px; height:8px; border-radius:50%; background: var(--green); }
.dot-grey   { display:inline-block; width:8px; height:8px; border-radius:50%; background: #9CA3AF; }

/* Dropdown overrides */
.dropdown-menu { border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 4px 16px rgba(7,30,74,.12); padding: .4rem; font-size: 13.5px; }
.user-row-actions-cell { min-width: 330px; white-space: normal; }
.user-row-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .35rem; min-width: 0; }
.user-row-actions form { display: inline-flex !important; margin: 0 !important; }
.customer-row-actions-cell { min-width: 210px; white-space: normal; }
.customer-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; min-width: 0; }
.customer-row-actions form { display: inline-flex !important; margin: 0 !important; }
@media (max-width: 991.98px) {
  .user-row-actions-cell { min-width: 260px; }
  .user-row-actions { justify-content: flex-start; }
  .customer-row-actions-cell { min-width: 180px; }
}

.portal-confirm-modal { display:none; position:fixed; inset:0; z-index:2000; align-items:center; justify-content:center; padding:1rem; }
.portal-confirm-modal.is-open { display:flex; }
.portal-confirm-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.48); backdrop-filter:blur(2px); }
.portal-confirm-dialog { position:relative; width:min(100%,420px); background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 20px 60px rgba(15,23,42,.24); padding:1.5rem; }
.portal-confirm-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#FEF3C7; color:#92400E; font-size:20px; margin-bottom:.85rem; }
.portal-confirm-dialog h2 { color:var(--navy); font-size:1.15rem; margin:0 0 .5rem; }
.portal-confirm-message { color:#253244; font-size:.92rem; line-height:1.55; margin:0; white-space:pre-line; }
.portal-confirm-actions { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1.35rem; }
@media (max-width:480px) { .portal-confirm-actions { flex-direction:column-reverse; } .portal-confirm-actions button { width:100%; justify-content:center; } }
.settings-context-card { background:linear-gradient(145deg,#f1f7ff,#fff); border-color:#dbe8f7; }
.settings-context-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--green-light); color:var(--green); font-size:20px; margin-bottom:.8rem; }
.settings-context-title { font-size:1rem; margin:0; }
.settings-context-company { color:var(--navy); font-weight:700; margin:.25rem 0; }
.settings-context-copy { color:var(--muted); font-size:12.5px; margin:0; }
.signature-workspace { display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:stretch; }
.signature-card { background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 8px 24px rgba(7,30,74,.05); padding:1.35rem; min-width:0; }
.signature-card-heading { display:flex; gap:.75rem; align-items:flex-start; margin-bottom:1.1rem; }
.signature-card-heading h2 { font-size:1.05rem; margin:0; }
.signature-card-heading p { color:var(--muted); font-size:12.5px; margin:.2rem 0 0; }
.signature-step { flex:0 0 34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--navy); color:#fff; font-size:12px; font-weight:800; }
.signature-help,.signature-empty-state { color:var(--muted); font-size:13px; }
#signaturePad,#confirmationSignaturePad { display:block; width:100%; height:220px; border:1px solid var(--border); border-radius:10px; touch-action:none; background:#fff; }
#confirmationSignaturePad { height:180px; }
.signature-actions { display:flex; justify-content:flex-end; gap:.55rem; margin-top:.65rem; }
.signature-upload { margin-top:1rem; border-top:1px solid var(--border); padding-top:.8rem; color:var(--navy); font-size:13px; }
.signature-upload summary { cursor:pointer; font-weight:600; }
.signature-saved-state { display:flex; gap:.7rem; align-items:center; padding:1rem; border:1px solid #b9dfc5; border-radius:12px; background:#effaf2; color:#18723d; }
.signature-saved-state strong,.signature-saved-state span { display:block; }
.signature-saved-state strong { font-size:13.5px; }
.signature-saved-state span { font-size:12px; margin-top:.15rem; }
.signature-state-icon { width:32px; height:32px; border-radius:50%; background:#d7f1df; display:grid; place-items:center; font-size:18px; }
.signature-restart { margin-top:1rem; }
.signature-global-action { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding:.85rem 1rem; border:1px solid #dbe8f7; border-radius:12px; background:#f7fbff; }
.signature-global-action strong,.signature-global-action span { display:block; }
.signature-global-action strong { color:var(--navy); font-size:13px; }
.signature-global-action span { color:var(--muted); font-size:12px; margin-top:.15rem; }
.company-context-card { background:linear-gradient(145deg,#f1f7ff,#fff); border-color:#dbe8f7; }
.company-context-status { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--border); padding-top:.65rem; margin-top:.65rem; color:var(--muted); font-size:12px; }
.signature-empty-state { min-height:220px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:.35rem; border:1px dashed #cbd8e8; border-radius:12px; background:var(--bg); }
.signature-empty-state i { font-size:2rem; color:var(--navy-mid); }
.consent-scrollbox { height:260px; overflow:auto; border:1px solid var(--border); border-radius:10px; padding:1rem; font-size:13px; line-height:1.65; background:var(--bg); }
.consent-scrollbox h3 { font-size:1rem; }
.signature-card-right.is-complete { border-color:#b9dfc5; }
.signature-card-right.is-signing { transform:translateX(-12px); transition:transform .25s ease-out; }
.subscription-blocked-page { position:relative; min-height:430px; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid var(--border); border-radius:16px; background:linear-gradient(135deg,#eef1f5,#dfe4ea); }
.subscription-blocked-page::before { content:''; position:absolute; inset:0; background:rgba(125,135,148,.48); backdrop-filter:grayscale(1) blur(1px); }
.subscription-blocked-veil { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(70,80,92,.28); font-size:7rem; }
.subscription-blocked-content { position:relative; z-index:1; width:min(100% - 2rem,560px); padding:2rem; text-align:center; border:1px solid rgba(255,255,255,.72); border-radius:16px; background:rgba(255,255,255,.9); box-shadow:0 18px 45px rgba(27,39,54,.16); }
.subscription-blocked-content h1 { margin:.35rem 0 .65rem; font-size:1.5rem; }
.subscription-blocked-content p { color:var(--muted); margin:0 auto 1.25rem; max-width:470px; }
.signature-flow.is-signing { animation:signature-step-in .25s ease-out; }
.signature-step-two-header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:.8rem; color:var(--navy); font-size:13px; }
@keyframes signature-step-in { from { opacity:.3; transform:translateX(-18px); } to { opacity:1; transform:translateX(0); } }
@media (max-width:767px) { .signature-workspace { grid-template-columns:1fr; } .signature-card-right { order:2; } .signature-card-right.is-signing { transform:none; } .signature-global-action { align-items:flex-start; flex-direction:column; } }
.ai-approval { display:flex; align-items:center; gap:.55rem; margin-top:.85rem; padding:.7rem .8rem; border:1px solid #eadfb7; border-radius:10px; background:#fffaf0; color:#6b5a1d; }
.ai-approval > strong { display:block; }
.ai-approval-summary { flex:1; color:var(--muted); font-size:12px; }
.ai-approval-confirm { margin-left:auto; white-space:nowrap; }
.ai-approval.is-confirmed { border-color:#b9dfc5; background:#effaf2; color:#18723d; font-weight:700; }
.ai-approval.is-confirmed i { color:#21894b; font-size:1.1rem; }
.ai-approval-link { margin-left:auto; color:#17633b; font-size:12px; font-weight:600; text-decoration:underline; white-space:nowrap; }
.ai-approval.has-form { flex-direction:column; align-items:stretch; gap:.65rem; }
.ai-approval-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem .75rem; }
.ai-approval-field { display:flex; flex-direction:column; gap:.25rem; min-width:0; }
.ai-approval-field.is-wide { grid-column:1 / -1; }
.ai-approval-field > label, .ai-approval-field > span { color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.02em; }
.ai-approval-field input, .ai-approval-field textarea { width:100%; padding:.45rem .6rem; border:1px solid #d6dfd9; border-radius:8px; background:#fff; color:var(--navy); font-size:13px; line-height:1.4; }
.ai-approval-field textarea { resize:vertical; min-height:58px; }
.ai-approval-field input:focus, .ai-approval-field textarea:focus { outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(7,139,62,.15); }
.ai-approval-choice { display:flex; flex-wrap:wrap; gap:.35rem; }
.ai-approval-choice-option { flex:1 1 0; min-height:36px; padding:.35rem .5rem; border:1px solid #d6dfd9; border-radius:8px; background:#fff; color:var(--navy); font-size:12px; font-weight:600; text-transform:capitalize; cursor:pointer; }
.ai-approval-choice-option:hover { background:#f3f8f5; }
.ai-approval-choice-option.is-selected { background:#eaf6ee; border-color:var(--green); color:#155b35; }
.ai-approval-choice-option:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:2px; }
.ai-approval-error { color:#a9443c; font-size:12px; font-weight:600; }
.ai-approval-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.ai-approval.has-form .ai-approval-confirm { margin-left:0; }
.ai-selection { margin-top:1rem; padding:.85rem; border:1px solid #d9e6dc; border-radius:13px; background:#f8fbf9; }
.ai-selection-question { margin-bottom:.7rem; color:var(--navy); font-size:12px; font-weight:750; line-height:1.45; }
.ai-selection-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:.5rem; }
.ai-selection-option,.ai-selection-confirm { width:100%; min-height:44px; padding:.65rem .75rem; border:1px solid #c9d9ce; border-radius:9px; background:#fff; color:var(--navy); font:inherit; font-size:13px; font-weight:600; line-height:1.45; text-align:left; overflow-wrap:anywhere; cursor:pointer; transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .12s ease; }
.ai-selection-option:hover,.ai-selection-option.is-selected { background:#eaf6ee; border-color:var(--green); color:#155b35; }
.ai-selection-option:active { transform:translateY(1px); }
.ai-selection-option:focus-visible,.ai-selection-confirm:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:2px; }
.ai-selection-option:disabled,.ai-selection-confirm:disabled { cursor:not-allowed; opacity:.58; transform:none; }
.ai-selection-confirm { width:auto; margin-top:.65rem; background:var(--green); border-color:var(--green); color:#fff; text-align:center; }
.ai-selection-confirm:hover:not(:disabled) { background:var(--green-hover); border-color:var(--green-hover); }
.ai-selection.is-answered { border-color:#dce5df; background:#fbfcfb; }
@media (max-width:767px) {
  .app-shell .customer-chat-layout .ai-approval { display:flex; flex-direction:column; align-items:stretch; gap:.55rem; margin-top:.8rem; padding:.85rem; border-radius:12px; }
  .app-shell .customer-chat-layout .ai-approval > strong { font-size:.92rem; line-height:1.35; }
  .app-shell .customer-chat-layout .ai-approval-summary { flex:none; font-size:.82rem; line-height:1.5; overflow-wrap:anywhere; }
  .app-shell .customer-chat-layout .ai-approval-confirm { width:100%; min-height:46px; margin:.15rem 0 0; justify-content:center; white-space:normal; }
  .app-shell .customer-chat-layout .ai-approval-form { grid-template-columns:1fr; }
  .app-shell .customer-chat-layout .ai-approval-actions { flex-direction:column-reverse; }
  .app-shell .customer-chat-layout .ai-approval-actions > .btn { width:100%; min-height:46px; }
  .app-shell .customer-chat-layout .ai-approval-link { margin-left:0; }
  .app-shell .customer-chat-layout .ai-approval.is-confirmed { flex-direction:row; align-items:flex-start; gap:.6rem; padding:.8rem .85rem; font-size:.88rem; line-height:1.45; }
  .app-shell .customer-chat-layout .ai-approval.is-confirmed i { flex:0 0 auto; margin-top:.1rem; }
  .app-shell .customer-chat-layout .ai-selection { margin-top:.75rem; padding:.7rem; }
  .app-shell .customer-chat-layout .ai-selection-options { grid-template-columns:1fr; }
  .app-shell .customer-chat-layout .ai-selection-option,.app-shell .customer-chat-layout .ai-selection-confirm { min-height:48px; font-size:14px; }
}
.dropdown-item { border-radius: 7px; padding: .5rem .85rem; color: var(--text); }
.dropdown-item:hover { background: var(--bg); color: var(--navy); }
.dropdown-item.text-danger:hover { background: #FEE2E2; }

/* Alert overrides */
.alert { border-radius: 10px; font-size: 13.5px; border: none; }
.alert-success  { background: #D1FAE5; color: #065F46; }
.alert-warning  { background: #FEF3C7; color: #92400E; }
.alert-danger   { background: #FEE2E2; color: #991B1B; }
.alert-info     { background: #DBEAFE; color: #1E40AF; }

/* Upload zone */
.upload-zone {
  border: 2px dashed var(--border);
  border-radius: 12px;
  padding: 2.5rem;
  text-align: center;
  cursor: pointer;
  transition: all .2s;
  background: var(--bg);
}
.upload-zone:hover { border-color: var(--navy); background: #EEF2FF; }
.upload-zone.dragging { border-color: var(--green); background: var(--green-light); }

/* Modal overrides */
.modal-content { border-radius: 14px; border: 1px solid var(--border); box-shadow: 0 8px 32px rgba(7,30,74,.15); }
.modal-header { border-bottom: 1px solid var(--border); padding: 1.1rem 1.5rem; }
.modal-title { font-weight: 700; color: var(--navy); font-size: 16px; }
.modal-footer { border-top: 1px solid var(--border); }

/* Tooltip */
[data-bs-toggle="tooltip"] { cursor: help; }

/* Mobile menu toggle */
.sidebar-toggle { display: none; }
@media (max-width: 900px) { .sidebar-toggle { display: flex; } }

/* ── Internal application UI contract ─────────────────────────────── */
.app-shell .app-button,
.app-shell a[class*="btn-"],
.app-shell button[class*="btn-"],
.app-shell input[type="submit"],
.app-shell input[type="button"] { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:.45rem; border-radius:8px; font:inherit; font-size:13px; font-weight:650; line-height:1.2; text-decoration:none; cursor:pointer; transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .12s ease; }
.app-shell .app-button:hover,
.app-shell a[class*="btn-"]:hover,
.app-shell button[class*="btn-"]:hover { transform:translateY(-1px); }
.app-shell .app-button:focus-visible,
.app-shell a[class*="btn-"]:focus-visible,
.app-shell button[class*="btn-"]:focus-visible,
.app-shell input[type="submit"]:focus-visible,
.app-shell input[type="button"]:focus-visible { outline:3px solid rgba(7,139,62,.25); outline-offset:2px; }
.app-shell .app-button:disabled,
.app-shell button:disabled,
.app-shell input:disabled { cursor:not-allowed; opacity:.58; transform:none; }
.app-shell .app-button--primary { background:var(--green); border:1px solid var(--green); color:#fff; }
.app-shell .app-button--primary:hover { background:var(--green-hover); border-color:var(--green-hover); color:#fff; }
.app-shell .app-button--secondary { background:#fff; border:1px solid var(--border); color:var(--navy); }
.app-shell .app-button--secondary:hover { background:var(--bg); border-color:#b9c9dc; color:var(--navy); }
.app-shell .app-button--save { background:var(--green); border:1px solid var(--green); color:#fff; }
.app-shell .app-button--edit { background:#eef2ff; border:1px solid #cbd7f3; color:#1d4ed8; }
.app-shell .app-button--delete { background:#fff5f5; border:1px solid #efb8bd; color:#b4232f; }
.app-shell .app-button--delete:hover { background:#fee2e2; border-color:#dc7d87; color:#991b1b; }
.app-shell .app-button--cancel { background:#f5f7fa; border:1px solid #d8dee8; color:#526174; }
.app-shell .app-button--upload { background:#eaf7ed; border:1px solid #b9dfc5; color:#17633b; }
.app-shell .app-button--icon { width:42px; min-width:42px; padding:0; }
.app-shell .app-button--compact { min-height:36px; padding:.45rem .75rem; font-size:12px; }
.app-shell .app-button--loading { position:relative; color:transparent !important; pointer-events:none; }
.app-shell .app-button--loading::after { content:""; position:absolute; width:1rem; height:1rem; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:app-button-spin .7s linear infinite; color:var(--green); }
@keyframes app-button-spin { to { transform:rotate(360deg); } }
.sidebar-mobile-logout { display:none; }
.app-shell .btn-green { min-height:42px; }
.app-shell .btn-green-sm { min-height:38px; }
.app-shell .btn-outline-navy,
.app-shell .btn-outline-green { min-height:42px; }
.app-shell .btn-outline-danger,
.app-shell .btn-outline-secondary,
.app-shell .btn-outline-success,
.app-shell .btn-outline-warning { min-height:38px; }
.app-shell .sidebar-toggle { width:44px; height:44px; min-height:44px; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:9px; background:#fff; color:var(--navy); font-size:20px !important; }
.app-shell .sidebar-toggle:hover { background:var(--bg); border-color:#b9c9dc; }
.sidebar-backdrop { display:none; }
.app-button--warning { background:#ffc107; border:1px solid #e0a800; color:#332701; }
.app-button--warning:hover { background:#ffca2c; border-color:#c99700; color:#332701; }
.app-shell .table-card { overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; }
.app-shell .table-card > table { min-width:680px; }
.app-shell .table-responsive { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.app-shell .table-responsive > table { min-width:680px; }
.inspection-worker-panel { border-color:#dbe7df; background:linear-gradient(135deg,#fbfefc 0%,#f3f8f4 100%); }
.inspection-worker-panel.is-running { border-color:#b9dfc5; box-shadow:0 0 0 3px rgba(7,139,62,.08); }
.inspection-worker-copy { min-width:240px; }
.inspection-worker-actions { min-height:38px; }
.inspection-worker-message { color:var(--muted); font-size:12px; }
.inspection-worker-spinner { width:17px; height:17px; border:2px solid #c9d8ce; border-top-color:var(--green); border-radius:50%; animation:inspection-worker-spin .75s linear infinite; }
.inspection-worker-spinner[hidden] { display:none; }
@keyframes inspection-worker-spin { to { transform:rotate(360deg); } }
.btn-inspection-worker { min-height:36px; padding:.42rem .8rem; font-size:12px; }
.btn-inspection-worker.is-loading { cursor:wait; }
.inspection-history-table { table-layout:fixed; }
.inspection-history-table th,.inspection-history-table td { padding:.48rem .65rem; font-size:12px; }
.inspection-history-table th:nth-child(1) { width:22%; }
.inspection-history-table th:nth-child(2) { width:14%; }
.inspection-history-table th:nth-child(3) { width:10%; }
.inspection-history-table th:nth-child(4) { width:17%; }
.inspection-history-table th:nth-child(5) { width:17%; }
.inspection-history-table th:nth-child(6) { width:20%; }
.inspection-history-table td { overflow-wrap:anywhere; }
.inspection-row-actions { display:inline-flex; gap:.25rem; flex-wrap:wrap; vertical-align:middle; }
.btn-inspection-action { min-height:28px; padding:.2rem .5rem; border-width:1px; border-radius:5px; font-size:11px; line-height:1.2; }
.btn-inspection-delete { min-height:28px; width:28px; padding:0; line-height:1; vertical-align:middle; }
.app-shell .modal-dialog { max-height:calc(100dvh - 2rem); margin:1rem auto; }
.app-shell .modal-content { max-height:calc(100dvh - 2rem); display:flex; }
.app-shell .modal-body { overflow-y:auto; }
.app-shell .form-control,
.app-shell .form-select,
.app-shell textarea { width:100%; max-width:100%; min-height:42px; }
.app-shell .upload-zone { min-height:150px; padding:1.5rem; }
.app-shell .upload-zone input[type="file"] { max-width:100%; }
.app-shell .upload-zone:focus-within { border-color:var(--green); box-shadow:0 0 0 3px rgba(7,139,62,.12); }

@media (max-width:900px) {
  .app-shell { overflow-x:hidden; }
  .app-shell .sidebar { width:min(88vw,310px); box-shadow:12px 0 32px rgba(7,30,74,.22); }
  .app-shell .sidebar-backdrop { display:block; position:fixed; inset:0; z-index:899; background:rgba(7,30,74,.38); opacity:0; pointer-events:none; transition:opacity .2s ease; }
  .app-shell .sidebar-backdrop.is-visible { opacity:1; pointer-events:auto; }
  .app-shell .main-content { width:100%; min-width:0; }
  .app-shell .topbar { min-height:60px; height:auto; padding:.55rem .75rem; gap:.55rem; }
  .app-shell .topbar-right { gap:.35rem; }
  .app-shell .topbar-user { min-width:44px; min-height:44px; justify-content:center; padding:.3rem; }
  .app-shell .topbar-bell { width:44px; height:44px; }
  .app-shell .page-area { min-width:0; padding:1rem .75rem calc(1.25rem + env(safe-area-inset-bottom)); }
  .app-shell .page-header { margin-bottom:1rem; }
  .app-shell .sidebar-mobile-logout { display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:44px; margin-top:.65rem; padding:.65rem .8rem; border:1px solid rgba(255,255,255,.2); border-radius:9px; color:#fff; background:rgba(255,255,255,.08); text-decoration:none; font-size:13px; font-weight:700; }
  .app-shell .sidebar-mobile-logout:hover,.app-shell .sidebar-mobile-logout:focus-visible { background:rgba(255,255,255,.16); color:#fff; outline:3px solid rgba(134,225,165,.45); outline-offset:2px; }
  .app-shell .app-button,
  .app-shell a[class*="btn-"],
  .app-shell button[class*="btn-"],
  .app-shell input[type="submit"],
  .app-shell input[type="button"] { min-height:44px; }
  .app-shell .btn-green-sm,
  .app-shell .btn-outline-danger,
  .app-shell .btn-outline-secondary,
  .app-shell .btn-outline-success,
  .app-shell .btn-outline-warning { min-height:42px; }
  .app-shell .btn-group { flex-wrap:wrap; gap:.4rem; }
  .app-shell .btn-group > .btn { border-radius:8px !important; margin:0 !important; }
  .app-shell .modal-dialog { width:calc(100% - 1rem); max-width:none; margin:.5rem auto; }
  .app-shell .modal-content { max-height:calc(100dvh - 1rem); }
  .app-shell .modal-footer { flex-wrap:wrap; gap:.5rem; }
  .app-shell .modal-footer > * { margin:0; flex:1 1 140px; }
  .app-shell .modal-footer .btn { width:100%; justify-content:center; }
  .app-shell .row { --bs-gutter-x:1rem; }
  .app-shell .row > [class*="col-"] { min-width:0; }
}

@media (max-width:680px) {
  .app-shell .billing-status-actions,
  .app-shell .billing-option-grid { width:100%; }
  .app-shell .billing-option-card { min-height:0; }
  .app-shell .table-card > table,
  .app-shell .table-responsive > table { min-width:620px; }
}

/* Internal chat: keep the composer visible while only messages/history scroll. */
.app-shell .customer-chat-layout { min-height:100dvh; }
.app-shell .customer-chat-layout .page-area { min-height:0; }
.app-shell .customer-chat-layout .ai-page { min-height:calc(100dvh - var(--topbar-h) - 3rem); }
.app-shell .customer-chat-layout .ai-messages { min-width:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
.app-shell .customer-chat-layout .ai-composer { padding-bottom:calc(.7rem + env(safe-area-inset-bottom)); }
@media (max-width:767px) {
  .app-shell .customer-chat-layout .page-area { height:calc(100dvh - 60px); flex:1 1 auto; padding:0 !important; overflow:hidden; }
  .app-shell .customer-chat-layout .ai-page { height:100% !important; min-height:0 !important; margin:0 !important; border:0; border-radius:0; box-shadow:none; overflow:hidden; }
  .app-shell .customer-chat-layout .ai-shell { position:relative; display:flex !important; height:100%; min-height:0; width:100%; overflow:hidden; }
  .app-shell .customer-chat-layout .ai-main { min-height:0; height:100%; width:100%; }
  .app-shell .customer-chat-layout .ai-chat-head { height:58px; min-height:58px; flex:0 0 58px; padding:.55rem .75rem; gap:.45rem; }
  .app-shell .customer-chat-layout .ai-chat-title { min-width:0; gap:.45rem; font-size:13px; }
  .app-shell .customer-chat-layout .ai-chat-title > i { width:30px; height:30px; flex:0 0 30px; font-size:16px; }
  .app-shell .customer-chat-layout .ai-chat-title > div { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .app-shell .customer-chat-layout .ai-chat-head-actions { flex:0 0 auto; gap:.2rem; }
  .app-shell .customer-chat-layout .ai-chat-head-actions > .ai-chat-sub { display:none; }
  .app-shell .customer-chat-layout .ai-history-toggle { display:inline-flex !important; align-items:center; justify-content:center; width:44px; height:44px; flex:0 0 44px; border:0; border-radius:9px; background:#f1f7f3; color:#17633b; }
  .app-shell .customer-chat-layout .ai-messages { flex:1 1 auto; min-height:0; max-height:none; padding:1rem .75rem 1.25rem; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .app-shell .customer-chat-layout .ai-message { width:100%; margin:0 0 .9rem; gap:.4rem; }
  .app-shell .customer-chat-layout .ai-bubble { max-width:calc(100% - 1.5rem); padding:.75rem .8rem; font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
  .app-shell .customer-chat-layout .ai-composer { flex:0 0 auto; padding:.55rem .65rem calc(.55rem + env(safe-area-inset-bottom)); border-top:1px solid #dfe8e2; background:#f8fbf9; }
  .app-shell .customer-chat-layout .ai-composer-inner { width:100% !important; max-width:none !important; padding:.45rem !important; border:1px solid #cbdacf; border-radius:13px; background:#fff; box-shadow:0 5px 18px rgba(29,61,42,.08); }
  .app-shell .customer-chat-layout .ai-composer-inner > #aiInput { width:100%; min-height:52px; max-height:26dvh; padding:.65rem .7rem; border:1px solid #e1eae3 !important; border-radius:9px; background:#fbfdfb; font-size:16px; line-height:1.4; resize:none; }
  .app-shell .customer-chat-layout .ai-composer-tools { display:flex; align-items:center; gap:.35rem; height:44px; margin-top:.35rem; }
  .app-shell .customer-chat-layout .ai-composer-tools button,
  .app-shell .customer-chat-layout .ai-composer-tools label { width:44px; min-width:44px; height:44px; min-height:44px; border-radius:9px !important; }
  .app-shell .customer-chat-layout .ai-composer-tools #aiSend { width:auto; min-width:86px; margin-left:auto; padding:0 .75rem; }
  .app-shell .customer-chat-layout .ai-status { max-width:100%; overflow-wrap:anywhere; font-size:11px; }
  .app-shell .customer-chat-layout .ai-history { position:absolute; z-index:12; inset:0 auto 0 0; width:min(86vw,310px); height:100%; transform:translateX(-105%); border-right:1px solid #dfe5e1; box-shadow:10px 0 30px rgba(7,30,74,.2); transition:transform .22s ease; }
  .app-shell .customer-chat-layout .ai-shell.history-open .ai-history { left:auto; transform:translateX(0); }
  .app-shell .customer-chat-layout .ai-shell::after { content:""; position:absolute; inset:0; z-index:11; background:rgba(7,30,74,.35); opacity:0; pointer-events:none; transition:opacity .22s ease; }
  .app-shell .customer-chat-layout .ai-shell.history-open::after { opacity:1; pointer-events:auto; }
  .app-shell .customer-chat-layout .ai-history { overflow-y:auto; -webkit-overflow-scrolling:touch; padding:1rem .7rem calc(1rem + env(safe-area-inset-bottom)); }
  .app-shell .customer-chat-layout .ai-history button { min-height:44px; }
  .app-shell .customer-chat-layout .ai-history .ai-new { min-height:46px; }
  .app-shell .customer-chat-layout .ai-native-welcome { width:100%; padding:1rem 0 1.5rem; }
  .app-shell .customer-chat-layout .ai-native-welcome h1 { font-size:1.3rem; }
  .app-shell .customer-chat-layout .ai-starters { grid-template-columns:1fr; gap:.5rem; }
  .app-shell .customer-chat-layout .ai-starter { min-height:50px; padding:.7rem; }
  .app-shell .customer-chat-layout .ai-files { max-width:100%; overflow-x:auto; }
  .app-shell .customer-chat-layout .ai-message img,
  .app-shell .customer-chat-layout .ai-message pre { max-width:100%; overflow:auto; }
  .app-shell .customer-chat-layout .ai-page { min-height:calc(100dvh - 60px - 1rem); }
  .app-shell .customer-chat-layout .ai-composer-inner { width:100% !important; max-width:none !important; }
  .app-shell .customer-chat-layout .ai-composer-tools { position:relative; z-index:1; }
  .app-shell .customer-chat-layout .ai-message { max-width:100%; overflow-wrap:anywhere; }
}

@media (max-width: 767.98px) {
  .career-hero { padding:1rem 0 2rem; }
  .career-hero-panel { min-height:0; border-radius:18px; }
  .career-hero-image { position:relative; inset:auto; height:220px; object-position:42% center; }
  .career-hero-shade { inset:0 0 auto; height:220px; background:linear-gradient(180deg,rgba(7,30,74,.08) 0%,rgba(7,30,74,.36) 100%); }
  .career-hero-content { display:block; width:100%; min-height:0; padding:1.5rem 1.1rem 1.5rem; background:#071e4a; }
  .career-hero-kicker { margin-bottom:.85rem; }
  .career-hero h1 { max-width:12ch; font-size:clamp(2.1rem,9vw,3rem); }
  .career-hero p { font-size:.98rem; line-height:1.6; }
  .career-hero-actions { align-items:stretch; flex-direction:column; gap:.75rem; margin-top:1.15rem; }
  .career-hero-actions .btn-green-lg { width:100%; justify-content:center; }
  .career-hero-note { justify-content:center; }
  .career-hero-badge { right:.75rem; bottom:auto; top:.75rem; max-width:12rem; padding:.55rem .65rem; font-size:.68rem; }
  .career-hero-split { grid-template-columns:1fr; gap:1.25rem; }
  .career-hero-split .career-hero-content { order:1; padding:0 .1rem; background:transparent; }
  .career-hero-media { order:0; border-radius:18px; }
  .career-hero-media .career-hero-image { aspect-ratio:16/10; object-position:center; }
}

/* Language switch (DE/EN) in the top bar: shows the language it switches to. */
.topbar-lang { display:inline-flex; align-items:center; height:32px; padding:0 .55rem; border:1px solid var(--border); border-radius:8px; color:var(--muted); font-size:11.5px; font-weight:700; letter-spacing:.06em; text-decoration:none; }
.topbar-lang:hover, .topbar-lang:focus-visible { color:var(--navy); border-color:#b9c9dc; background:var(--bg); outline:none; }
