.regie-assistant { position: fixed; z-index: 90; width: 320px; box-sizing: border-box; overflow: auto; border: 1px solid #a9b9ae; border-radius: 12px; background: rgba(247, 251, 248, .73); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); color: #153d2c; box-shadow: 0 3px 12px #173b2a20; font-size: 14px; touch-action: auto; -webkit-touch-callout: none; user-select: none; -webkit-user-select: none; }
.regie-assistant[hidden], .regie-assistant [hidden] { display: none !important; }
.assistant-heading { display: flex; align-items: center; gap: 4px; padding: 4px 6px; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.assistant-heading strong { display: block; font-size: 14px; line-height: 1.3; }
.assistant-portrait { display: block; width: 55px; height: 55px; flex: 0 0 55px; border-radius: 50%; object-fit: contain; }
.assistant-identity { flex: 1; min-width: 0; }
.regie-assistant button, .regie-assistant a { min-height: 44px; border: 1px solid #afc2b7; border-radius: 8px; padding: 6px 10px; background: #fff; color: #174d35; font: inherit; cursor: pointer; text-align: center; text-decoration: none; }
.regie-assistant button:focus-visible, .regie-assistant a:focus-visible { outline: 3px solid #bb791e; outline-offset: -3px; }
#assistantCollapse, #assistantMenuButton { flex: 0 0 44px; min-width: 44px; padding: 0; border: 0; background: transparent; box-shadow: none; font-size: 18px; color: #254d38; }
#assistantMenu { display: grid; gap: 4px; padding: 4px 8px 8px; }
#assistantMenu > * { text-align: left; }
.regie-assistant.is-dragging { outline: 2px solid #175b3f; cursor: grabbing; user-select: none; -webkit-user-select: none; }
#assistantBody { padding: 0 10px 10px; }
.assistant-subtitle { display: block; margin-top: 2px; font-size: 11px; line-height: 1.4; color: #153d2c; }
#assistantTopics { display: block; width: 100%; min-height: 44px; margin-top: 4px; color: #193e2c; background: #fff; border: 1px solid #afc2b7; border-radius: 8px; }
#assistantProgress { font-weight: 600; font-size: 13px; margin: 4px 0; }
#assistantProgress:empty { display: none; }
#assistantInstruction { font-size: 15px; line-height: 1.4; margin: 8px 0; }
#assistantAvailability, #helpSettingsStatus { font-size: 13px; line-height: 1.4; margin: 6px 0; }
#assistantAvailability:empty, #helpSettingsStatus:empty { display: none; }
.assistant-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.assistant-actions > * { flex: 1 1 auto; }
#assistantLocate, #assistantNavigate, #assistantMore { background: #175b3f; color: white; }
.assistant-target { outline: 3px solid #b77317 !important; outline-offset: 4px; }
/* The compact header sizes itself around the original portrait and two controls.
   Only the expanded guide is a scroll container. */
.regie-assistant.is-collapsed { width: max-content; min-height: 65px; max-height: none !important; overflow: visible; }
#assistantCompactLabel { display: none; }
.regie-assistant.is-collapsed .assistant-identity,
.regie-assistant.is-collapsed #assistantMenuButton,
.regie-assistant.is-collapsed #assistantMenu,
.regie-assistant.is-collapsed #assistantBody { display: none; }
.regie-assistant.is-collapsed #assistantCompactLabel { display: block; min-width: 0; padding: 0 4px; border: 0; background: transparent; font-weight: 600; white-space: nowrap; }
.regie-assistant.is-collapsed .assistant-portrait { border-radius: 0; }
.regie-assistant.is-collapsed .assistant-heading { gap: 4px; }
.assistant-personal { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.assistant-personal input { width: 22px; height: 22px; flex: 0 0 auto; }
.app-header-company { flex: 1; }
.app-header-company .company-header-logo { min-width: 0; flex-shrink: 1; }
@media (max-width: 480px) { .regie-assistant { width: 290px; } }
@media (prefers-reduced-transparency: reduce) { .regie-assistant { background: #f7fbf8; } }

.assistant-sr-only { position: absolute; top: 0; left: 0; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.account-footer:has(.assistant-settings-link) { flex-wrap: wrap; box-sizing: border-box; }
.assistant-settings-link { min-width: 0; max-width: 100%; overflow-wrap: anywhere; color: var(--green); font-weight: 750; }

body:has(.assistant-settings-link) .page { padding-bottom: max(120px, var(--assistant-account-clearance, 200px)); }

.assistant-settings-icon { width: 16px; height: 16px; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; }

/* Keep report submission in normal form flow. Sticky positioning can keep this
   bar behind the independently fixed navigation in mobile WebKit. The measured
   page clearance leaves space to scroll the final controls above that chrome. */
body.layout-reports .submit-wrap { position: static; }

.regie-assistant { --assistant-safe-top: env(safe-area-inset-top, 8px); --assistant-safe-right: env(safe-area-inset-right, 8px); --assistant-safe-bottom: env(safe-area-inset-bottom, 8px); --assistant-safe-left: env(safe-area-inset-left, 8px); }

@media print { #regieAssistant { display: none !important; } }

#assistantOnboarding { margin: 8px 0; padding: 8px; border: 1px solid #afc2b7; border-radius: 8px; font-size: 12px; }
#assistantOnboardingItems { list-style: none; padding: 0; margin: 4px 0; }
#assistantOnboardingStatus:empty { display: none; }
#assistantFollowups { display: contents; }
#assistantOnboarding button { font-size: 12px; }
/* A backdrop filter creates a containing block for fixed descendants. Keep
   Marleen anchored to the viewport while these existing dialogs scroll. */
.modal:has(> #regieAssistant), .email-modal:has(> #regieAssistant) { backdrop-filter: none; -webkit-backdrop-filter: none; }
#companiesModal:has(> #regieAssistant), #usersModal:has(> #regieAssistant) {
  padding-bottom: max(180px, var(--assistant-account-clearance, 180px));
  scroll-padding-bottom: 120px;
}

#assistantOnboarding { padding: 0; }
#assistantOnboardingToggle { width: 100%; border: 0; background: transparent; text-align: left; padding: 4px 6px; }
#assistantOnboardingDetails { padding: 0 8px 8px; }
#assistantSuccess { display: flex; align-items: start; gap: 4px; margin: 6px 0; }
#assistantSuccessMessage { margin: 4px 0; line-height: 1.4; flex: 1; }
#assistantDismissSuccess { flex: 0 0 44px; padding: 0; }

#assistantAccessibility summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; }


/* Native buttons preserve Enter, Space, touch and screen-reader behaviour. */
#assistantTopics { display: grid; gap: 4px; }
#assistantTopics button { width: 100%; min-height: 44px; text-align: left; white-space: normal; }
#assistantTopics > [role="group"] { display: grid; gap: 3px; padding: 3px 0 6px 10px; }
#assistantTopics > [role="group"][hidden] { display: none; }
#assistantTopics .assistant-category { display: flex; align-items: center; justify-content: space-between; font-weight: 600; }
#assistantTopics .assistant-category::after { content: "▸"; font-size: .8em; margin-left: 8px; }
#assistantTopics .assistant-category[aria-expanded="true"]::after { content: "▾"; }
#assistantTopics button:disabled { opacity: .65; cursor: default; }
#assistantTopics { max-height: min(42vh, 320px); overflow-y: auto; overscroll-behavior: contain; }
