/* _content/Kuramo.App/Components/Components/ProductionNoteReactionComponent.razor.rz.scp.css */
.production-reaction-unread[b-i8pnk2wwy3] {
    border-left: 3px solid var(--mud-palette-error);
}
/* _content/Kuramo.App/Components/Components/ViewRowButton.razor.rz.scp.css */
/* MudFab Size.Small is 40px; 32px keeps dense table rows as low as the old text button. */
.view-row-button[b-s6mn8s39ou]  .mud-fab {
    width: 32px;
    height: 32px;
    min-height: 32px;
}

.view-row-button[b-s6mn8s39ou]  .mud-fab .mud-icon-root {
    font-size: 1.125rem;
}
/* _content/Kuramo.App/Components/Pages/ChatBot/ChatBotPage.razor.rz.scp.css */
/* De inhoud van .chat-message-html komt uit @((MarkupString)message.Html) en wordt dus pas op
   runtime aangemaakt. Zulke elementen krijgen het scope-attribuut van Blazor niet, want dat wordt
   bij het compileren aan de markup van dit component toegevoegd. Zonder ::deep zou
   `.chat-message-html h1` compileren naar `.chat-message-html h1[b-<hash>]` en nooit matchen.
   Met ::deep verhuist het attribuut naar de container: `.chat-message-html[b-<hash>] h1`. */
.chat-message-html[b-37tl0kzfg1] {
    line-height: 1.5;
}

/* Lettergrootte-klassen die het model via <span class="..."> mag zetten. De allow-list is dezelfde
   als in ChatMessageHtmlSanitizer; houd de drie (sanitizer, deze CSS, systeemprompt) in sync. */
.chat-message-html[b-37tl0kzfg1]  .tekst-extraklein { font-size: 0.75em; }
.chat-message-html[b-37tl0kzfg1]  .tekst-klein { font-size: 0.85em; }
.chat-message-html[b-37tl0kzfg1]  .tekst-groot { font-size: 1.25em; }
.chat-message-html[b-37tl0kzfg1]  .tekst-extragroot { font-size: 1.5em; }

.chat-message-html[b-37tl0kzfg1]  h1,
.chat-message-html[b-37tl0kzfg1]  h2,
.chat-message-html[b-37tl0kzfg1]  h3,
.chat-message-html[b-37tl0kzfg1]  h4,
.chat-message-html[b-37tl0kzfg1]  h5,
.chat-message-html[b-37tl0kzfg1]  h6 {
    margin: 0.4em 0 0.2em;
    font-size: 1.05rem;
    font-weight: 600;
}

.chat-message-html[b-37tl0kzfg1]  p {
    margin: 0.3em 0;
}

.chat-message-html[b-37tl0kzfg1]  ul,
.chat-message-html[b-37tl0kzfg1]  ol {
    margin: 0.3em 0;
    padding-left: 1.4em;
}

.chat-message-html[b-37tl0kzfg1]  li {
    margin: 0.15em 0;
}

.chat-message-html[b-37tl0kzfg1]  pre,
.chat-message-html[b-37tl0kzfg1]  code {
    background-color: var(--mud-palette-background-grey);
    border-radius: 4px;
    padding: 0.1em 0.3em;
    font-family: monospace;
}

.chat-message-html[b-37tl0kzfg1]  pre {
    padding: 0.5em;
    overflow-x: auto;
}

.chat-message-html[b-37tl0kzfg1]  blockquote {
    margin: 0.3em 0;
    padding-left: 0.8em;
    border-left: 3px solid var(--mud-palette-lines-default);
}

.chat-message-html[b-37tl0kzfg1]  a {
    color: var(--mud-palette-primary);
}

/* Simple overview tables. The content is user-visible data (werkorders, statussen); it must stay
   readable and never push the chat column into horizontal page scroll, so the table can scroll
   inside its own box. Palette variables keep it correct in both light and dark themes. */
.chat-message-html[b-37tl0kzfg1]  table {
    border-collapse: collapse;
    margin: 0.4em 0;
    width: 100%;
    display: block;
    overflow-x: auto;
    font-size: 0.9rem;
}

.chat-message-html[b-37tl0kzfg1]  th,
.chat-message-html[b-37tl0kzfg1]  td {
    border: 1px solid var(--mud-palette-lines-default);
    padding: 0.3em 0.5em;
    text-align: left;
    vertical-align: top;
}

.chat-message-html[b-37tl0kzfg1]  th {
    background-color: var(--mud-palette-background-grey);
    font-weight: 600;
}

.chat-message-html[b-37tl0kzfg1]  caption {
    caption-side: top;
    padding: 0.2em 0;
    font-weight: 600;
    text-align: left;
}

/* Typing indicator shown while a turn is in flight (see the _isBusy block in the markup).
   Three dots fading in and out on a staggered delay — the conventional "still working" signal in a
   chat transcript, and the only feedback during the stretch where Claude is thinking or running
   tools and no text has arrived yet. */
.chat-typing-dots[b-37tl0kzfg1] {
    display: inline-flex;
    align-items: center;
    gap: 0.25em;
    line-height: 1;
}

.chat-typing-dots span[b-37tl0kzfg1] {
    width: 0.4em;
    height: 0.4em;
    border-radius: 50%;
    background-color: var(--mud-palette-text-secondary);
    animation: chat-typing-blink-b-37tl0kzfg1 1.2s infinite ease-in-out;
}

.chat-typing-dots span:nth-child(2)[b-37tl0kzfg1] {
    animation-delay: 0.2s;
}

.chat-typing-dots span:nth-child(3)[b-37tl0kzfg1] {
    animation-delay: 0.4s;
}

@keyframes chat-typing-blink-b-37tl0kzfg1 {
    0%, 80%, 100% {
        opacity: 0.25;
    }

    40% {
        opacity: 1;
    }
}

/* Motion is decoration here — the dots plus the label already say "busy" without it. */
@media (prefers-reduced-motion: reduce) {
    .chat-typing-dots span[b-37tl0kzfg1] {
        animation: none;
        opacity: 0.6;
    }
}
