@import '_content/LawFirm.DesignSystem/LawFirm.DesignSystem.u2vbadquvm.bundle.scp.css';

/* /Components/Assistant/AssistantChat.razor.rz.scp.css */
/* ADR-055 / ADR-065 the conversation: welcome, turns, cards and the chat box, on the Base tokens (DESIGN_GUIDELINES.md).
   The gold --lf-assistant-accent is decoration only (face rings, typing dots, chip hovers); it never carries text or a state.
   Two layouts: window (the floating chat) and page (the full assistant page: a centred reading column, as in ChatGPT). */
.lf-assistant-chat[b-wh8qaa1tbj] {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    position: relative;
}

/* column-reverse anchors the scroll at the newest message. */
.lf-assistant-chat__scroll[b-wh8qaa1tbj] {
    display: flex;
    flex: 1;
    flex-direction: column-reverse;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.lf-assistant-chat__disclaimer[b-wh8qaa1tbj] {
    color: var(--lf-muted);
    font-size: .75rem;
    margin: 0;
    text-align: center;
}

.lf-assistant[b-wh8qaa1tbj] {
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-3);
    padding: var(--lf-space-4);
}

/* Welcome: the full figure, a greeting, what it can do, and questions to start with. */
.lf-assistant__welcome[b-wh8qaa1tbj] {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-2);
    padding-block: var(--lf-space-2);
    text-align: center;
}

.lf-assistant__welcome h3[b-wh8qaa1tbj] {
    color: var(--lf-ink);
    font-size: 1.0625rem;
    font-weight: 700;
    margin: 0;
}

.lf-assistant__suggestions[b-wh8qaa1tbj] {
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-2);
    list-style: none;
    margin: var(--lf-space-2) 0 0;
    padding: 0;
    width: 100%;
}

.lf-assistant__suggestion[b-wh8qaa1tbj] {
    background: var(--lf-surface);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-md);
    color: var(--lf-ink);
    cursor: pointer;
    font: inherit;
    font-size: .8125rem;
    line-height: 1.4;
    min-height: 2.5rem;
    padding: var(--lf-space-2) var(--lf-space-3);
    text-align: start;
    transition: background-color var(--lf-motion-fast), border-color var(--lf-motion-fast);
    width: 100%;
}

.lf-assistant__suggestion:hover:not(:disabled)[b-wh8qaa1tbj] {
    background: var(--lf-assistant-accent-surface);
    border-color: var(--lf-assistant-accent);
}

.lf-assistant__suggestion:focus-visible[b-wh8qaa1tbj] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 2px;
}

.lf-assistant__suggestion:disabled[b-wh8qaa1tbj] {
    color: var(--lf-disabled);
    cursor: default;
}

.lf-assistant__hint[b-wh8qaa1tbj],
.lf-assistant__sources[b-wh8qaa1tbj],
.lf-assistant__notice[b-wh8qaa1tbj] {
    color: var(--lf-muted);
    font-size: .75rem;
    margin: 0;
}

/* Bubbles: the assistant on the muted surface at the inline start beside its face, the user in ink at the inline end. */
.lf-assistant__turn[b-wh8qaa1tbj] {
    align-self: flex-start;
    animation: lf-assistant-in-b-wh8qaa1tbj var(--lf-motion-standard) backwards;
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-1);
    max-width: 88%;
}

.lf-assistant__turn:not(.lf-assistant__turn--user)[b-wh8qaa1tbj] {
    column-gap: var(--lf-space-2);
    display: grid;
    grid-template-columns: 1.75rem minmax(0, 1fr);
    max-width: 94%;
    row-gap: var(--lf-space-1);
}

.lf-assistant__turn:not(.lf-assistant__turn--user) > :not(.lf-assistant__face-ring)[b-wh8qaa1tbj] {
    grid-column: 2;
}

.lf-assistant__face-ring[b-wh8qaa1tbj] {
    align-self: start;
    background: var(--lf-assistant-accent-surface);
    border-radius: var(--lf-radius-pill);
    box-shadow: 0 0 0 1.5px var(--lf-assistant-accent);
    display: block;
    flex: none;
    grid-column: 1;
    grid-row: 1 / span 12;
    height: 1.75rem;
    overflow: hidden;
    width: 1.75rem;
}

/* The stickers are the whole figure; the ring shows its head. */
.lf-assistant__face[b-wh8qaa1tbj] {
    display: block;
    height: 100%;
    object-fit: cover;
    scale: 1.7;
    transform-origin: 47% 20%;
    width: 100%;
}

.lf-assistant__turn--user[b-wh8qaa1tbj] {
    align-self: flex-end;
}

.lf-assistant__text[b-wh8qaa1tbj] {
    background: var(--lf-surface-muted);
    border-radius: var(--lf-radius-md);
    border-start-start-radius: var(--lf-radius-sm);
    color: var(--lf-ink);
    font-size: .875rem;
    line-height: 1.55;
    margin: 0;
    /* Long codes such as matter numbers break only when they cannot fit on a line of their own. */
    overflow-wrap: break-word;
    padding: var(--lf-space-2) var(--lf-space-3);
    white-space: pre-wrap;
}

.lf-assistant__turn--user .lf-assistant__text[b-wh8qaa1tbj] {
    background: var(--lf-cedar);
    border-start-start-radius: var(--lf-radius-md);
    border-start-end-radius: var(--lf-radius-sm);
    color: var(--lf-on-cedar);
}

/* Record links: the records the tools returned, each opening its own page. Gold only on hover, as decoration. */
.lf-assistant__links[b-wh8qaa1tbj] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lf-space-1);
}

.lf-assistant__link[b-wh8qaa1tbj] {
    align-items: center;
    background: var(--lf-surface);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-pill);
    color: var(--lf-ink);
    display: inline-flex;
    font-size: .75rem;
    gap: var(--lf-space-1);
    max-width: 100%;
    padding: .25rem .625rem;
    text-decoration: none;
    transition: background-color var(--lf-motion-fast), border-color var(--lf-motion-fast);
}

.lf-assistant__link span[b-wh8qaa1tbj] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lf-assistant__link:hover[b-wh8qaa1tbj] {
    background: var(--lf-assistant-accent-surface);
    border-color: var(--lf-assistant-accent);
}

.lf-assistant__link:focus-visible[b-wh8qaa1tbj] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 2px;
}

.lf-assistant__draft[b-wh8qaa1tbj] {
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-2);
    padding: var(--lf-space-3);
}

.lf-assistant__draft dl[b-wh8qaa1tbj] {
    display: grid;
    font-size: .8125rem;
    gap: var(--lf-space-1) var(--lf-space-3);
    grid-template-columns: max-content 1fr;
    margin: 0;
}

.lf-assistant__draft dt[b-wh8qaa1tbj] {
    color: var(--lf-muted);
}

.lf-assistant__draft dd[b-wh8qaa1tbj] {
    color: var(--lf-ink);
    margin: 0;
    overflow-wrap: anywhere;
}

.lf-assistant__actions[b-wh8qaa1tbj] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lf-space-2);
}

/* Working indicator: the thinking face beside three gold dots. */
.lf-assistant__typing[b-wh8qaa1tbj] {
    align-items: center;
    align-self: flex-start;
    animation: lf-assistant-in-b-wh8qaa1tbj var(--lf-motion-standard) backwards;
    display: flex;
    gap: var(--lf-space-2);
}

.lf-assistant__dots[b-wh8qaa1tbj] {
    background: var(--lf-surface-muted);
    border-radius: var(--lf-radius-md);
    display: flex;
    gap: var(--lf-space-1);
    padding: var(--lf-space-3);
}

.lf-assistant__dots span[b-wh8qaa1tbj] {
    animation: lf-assistant-dot-b-wh8qaa1tbj 1.2s infinite ease-in-out;
    background: var(--lf-assistant-accent);
    border-radius: var(--lf-radius-pill);
    height: .4375rem;
    width: .4375rem;
}

.lf-assistant__dots span:nth-child(2)[b-wh8qaa1tbj] { animation-delay: .15s; }
.lf-assistant__dots span:nth-child(3)[b-wh8qaa1tbj] { animation-delay: .3s; }

/* A failed reply: one compact line in the conversation, with a retry. */
.lf-assistant__error[b-wh8qaa1tbj] {
    align-items: center;
    align-self: stretch;
    background: var(--lf-danger-surface);
    border-radius: var(--lf-radius-sm);
    color: var(--lf-danger);
    display: flex;
    flex-wrap: wrap;
    font-size: .8125rem;
    gap: var(--lf-space-2);
    padding: var(--lf-space-2) var(--lf-space-3);
}

.lf-assistant__error p[b-wh8qaa1tbj] {
    color: var(--lf-ink);
    flex: 1;
    margin: 0;
    min-width: 10rem;
}

.lf-assistant__composer[b-wh8qaa1tbj] {
    align-items: flex-end;
    border-top: 1px solid var(--lf-rule);
    display: flex;
    gap: var(--lf-space-2);
    padding: var(--lf-space-3);
}

.lf-assistant__composer textarea[b-wh8qaa1tbj] {
    background: var(--lf-field);
    border: 2px solid transparent;
    border-radius: var(--lf-radius-sm);
    color: var(--lf-ink);
    flex: 1;
    font: inherit;
    font-size: .9375rem;
    max-height: 8rem;
    min-height: 2.5rem;
    min-width: 0;
    padding: var(--lf-space-2) var(--lf-space-3);
    resize: none;
    field-sizing: content;
}

.lf-assistant__composer textarea:hover[b-wh8qaa1tbj] {
    background: var(--lf-field-hover);
}

.lf-assistant__composer textarea:focus[b-wh8qaa1tbj] {
    border-color: var(--lf-ink);
    outline: none;
}

.lf-assistant__composer textarea[b-wh8qaa1tbj]::placeholder {
    color: var(--lf-placeholder);
}

.lf-assistant__composer[b-wh8qaa1tbj]  .lf-assistant__send {
    flex: none;
    height: 2.5rem;
    min-width: 2.5rem;
    padding-inline: 0;
    width: 2.5rem;
}

/* ADR-065 voice input: the microphone sits between the box and send, the same 40px square. While it listens it turns ink and
   pulses, so it reads as "on" without colour alone (aria-pressed says the same to screen readers). */
.lf-assistant__composer[b-wh8qaa1tbj]  .lf-assistant-voice {
    border-radius: var(--lf-radius-sm);
    flex: none;
    height: 2.5rem;
    width: 2.5rem;
}

.lf-assistant__composer[b-wh8qaa1tbj]  .lf-assistant-voice--listening {
    animation: lf-assistant-listen-b-wh8qaa1tbj 1.2s ease-in-out infinite;
    background: var(--lf-ink);
    color: var(--lf-surface);
}

.lf-assistant__composer[b-wh8qaa1tbj]  .lf-assistant-voice--transcribing {
    opacity: .6;
}

.lf-assistant__voice-error[b-wh8qaa1tbj] {
    background: var(--lf-danger-surface);
    color: var(--lf-ink);
    font-size: .8125rem;
    margin: 0;
    padding: var(--lf-space-2) var(--lf-space-3);
}

@keyframes lf-assistant-listen-b-wh8qaa1tbj {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--lf-ink) 35%, transparent); }
    50% { box-shadow: 0 0 0 .375rem transparent; }
}

@keyframes lf-assistant-in-b-wh8qaa1tbj {
    from { opacity: 0; transform: translateY(.375rem); }
    to { opacity: 1; transform: none; }
}

@keyframes lf-assistant-dot-b-wh8qaa1tbj {
    0%, 80%, 100% { opacity: .3; transform: translateY(0); }
    40% { opacity: 1; transform: translateY(-2px); }
}

/* Under each reply: the notice, and the read-aloud button at the inline end. */
.lf-assistant__meta[b-wh8qaa1tbj] {
    align-items: center;
    display: flex;
    gap: var(--lf-space-2);
    justify-content: space-between;
}

.lf-assistant__meta[b-wh8qaa1tbj]  .lf-assistant__read-aloud {
    flex: none;
    height: 2rem;
    width: 2rem;
}

.lf-assistant__meta[b-wh8qaa1tbj]  .lf-assistant__read-aloud[aria-pressed="true"] {
    background: var(--lf-ink);
    color: var(--lf-surface);
}

/* As in ChatGPT, the round ink button starts a voice conversation while the box is empty and sends once it has text. */
.lf-assistant__composer[b-wh8qaa1tbj]  .lf-assistant__send {
    border-radius: var(--lf-radius-pill);
}

/* The full assistant page: one centred reading column, a roomier chat box, as in ChatGPT's own page. */
.lf-assistant-chat--page .lf-assistant[b-wh8qaa1tbj] {
    gap: var(--lf-space-4);
    margin-inline: auto;
    max-width: 48rem;
    padding: var(--lf-space-5) var(--lf-space-4);
    width: 100%;
}

.lf-assistant-chat--page .lf-assistant__turn[b-wh8qaa1tbj] {
    max-width: 80%;
}

.lf-assistant-chat--page .lf-assistant__text[b-wh8qaa1tbj] {
    font-size: .9375rem;
}

.lf-assistant-chat--page .lf-assistant__suggestions[b-wh8qaa1tbj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    max-width: 40rem;
}

.lf-assistant-chat--page .lf-assistant__composer[b-wh8qaa1tbj] {
    background: var(--lf-surface);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-xl);
    box-shadow: var(--lf-shadow-md);
    margin: 0 auto var(--lf-space-4);
    max-width: 48rem;
    padding: var(--lf-space-2);
    width: calc(100% - var(--lf-space-4) * 2);
}

.lf-assistant-chat--page .lf-assistant__composer textarea[b-wh8qaa1tbj] {
    background: transparent;
    max-height: 12rem;
}

.lf-assistant-chat--page .lf-assistant__voice-error[b-wh8qaa1tbj] {
    margin: 0 auto var(--lf-space-2);
    max-width: 48rem;
    width: calc(100% - var(--lf-space-4) * 2);
}

/* Every movement stops for people who ask for less motion. */
@media (prefers-reduced-motion: reduce) {
    .lf-assistant__turn[b-wh8qaa1tbj],
    .lf-assistant__typing[b-wh8qaa1tbj],
    .lf-assistant__dots span[b-wh8qaa1tbj],
    .lf-assistant__composer[b-wh8qaa1tbj]  .lf-assistant-voice--listening {
        animation: none;
    }

    .lf-assistant__suggestion[b-wh8qaa1tbj] {
        transition: none;
    }

    .lf-assistant__dots span[b-wh8qaa1tbj] {
        opacity: .6;
    }
}
/* /Components/Assistant/AssistantPanel.razor.rz.scp.css */
/* ADR-055 / ADR-065 assistant: a compact floating chat on the Base tokens (DESIGN_GUIDELINES.md), tokens only.
   The one exception to monochrome is --lf-assistant-accent (gold), used as decoration on the assistant's own chrome:
   the avatar ring, the launcher, the typing dots and the suggestion chips. It never carries text or a state; errors
   stay danger-red. The robot artwork keeps its own colors. The widget sits at the physical bottom-right in both
   directions and never moves or resizes the page. */
.lf-assistant-widget[b-j3wq381ynp] {
    bottom: var(--lf-space-5);
    position: fixed;
    right: var(--lf-space-5);
    /* Above page content, below the top chrome and its menus, the navigation drawer and scrim, popovers and sheets. */
    z-index: calc(var(--lf-z-navigation) - 2);
}

/* Launcher: the avatar in a 56px circle with a gold ring that pulses while a reply is on its way. */
.lf-assistant-launcher[b-j3wq381ynp] {
    background: var(--lf-assistant-accent-surface);
    border: 0;
    border-radius: var(--lf-radius-pill);
    box-shadow: 0 0 0 2px var(--lf-assistant-accent), var(--lf-shadow-md);
    cursor: pointer;
    display: block;
    height: 3.5rem;
    overflow: hidden;
    padding: 0;
    /* The launcher can be dragged anywhere on screen (AssistantPanel.razor.js); touch moves it instead of scrolling the page. */
    touch-action: none;
    transition: transform var(--lf-motion-fast);
    width: 3.5rem;
}

.lf-assistant-launcher:hover[b-j3wq381ynp] {
    transform: scale(1.05);
}

.lf-assistant-widget.is-dragging .lf-assistant-launcher[b-j3wq381ynp] {
    animation: none;
    cursor: grabbing;
    transform: none;
    user-select: none;
}

.lf-assistant-launcher:focus-visible[b-j3wq381ynp] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 3px;
}

/* The image never starts the browser's own image drag, which would cancel the pointer stream the launcher drag uses. */
.lf-assistant-launcher img[b-j3wq381ynp] {
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    height: 100%;
    object-fit: cover;
    /* The stickers are the whole figure; the launcher shows its head. */
    scale: 1.7;
    transform-origin: 47% 20%;
    width: 100%;
}

.lf-assistant-launcher--working[b-j3wq381ynp] {
    animation: lf-assistant-ring-b-j3wq381ynp 1.4s ease-in-out infinite;
}

/* Window: 360 × up to 560, anchored above the launcher. */
.lf-assistant-window[b-j3wq381ynp] {
    background: var(--lf-surface);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-xl);
    bottom: calc(3.5rem + var(--lf-space-3));
    box-shadow: var(--lf-shadow-md);
    flex-direction: column;
    height: min(35rem, calc(100dvh - var(--lf-chrome-height) - 3.5rem - var(--lf-space-5) * 2 - var(--lf-space-3)));
    overflow: hidden;
    position: absolute;
    right: 0;
    width: min(22.5rem, calc(100vw - var(--lf-space-5) * 2));
}

.lf-assistant-window:not([hidden])[b-j3wq381ynp] {
    animation: lf-assistant-rise-b-j3wq381ynp var(--lf-motion-standard);
    display: flex;
}

.lf-assistant-window__header[b-j3wq381ynp] {
    align-items: center;
    border-bottom: 1px solid var(--lf-rule);
    display: flex;
    gap: var(--lf-space-3);
    padding-block: var(--lf-space-3);
    padding-inline: var(--lf-space-4) var(--lf-space-2);
}

.lf-assistant-window__heading[b-j3wq381ynp] {
    flex: 1;
    min-width: 0;
}

.lf-assistant-window__heading h2[b-j3wq381ynp] {
    color: var(--lf-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
}

.lf-assistant-window__status[b-j3wq381ynp] {
    color: var(--lf-muted);
    font-size: .75rem;
    margin: 0;
}

@keyframes lf-assistant-rise-b-j3wq381ynp {
    from { opacity: 0; transform: translateY(var(--lf-space-2)); }
    to { opacity: 1; transform: none; }
}

/* The gold ring breathes outward while a reply is on its way. */
@keyframes lf-assistant-ring-b-j3wq381ynp {
    0%, 100% { box-shadow: 0 0 0 2px var(--lf-assistant-accent); }
    50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--lf-assistant-accent) 45%, transparent); }
}

/* Phones: the window fills the screen below the top chrome, anchored to the viewport so it stays on screen
   wherever the launcher was dragged; the launcher's default spot is left clear under it. */
@media (max-width: 479.98px) {
    .lf-assistant-widget[b-j3wq381ynp] {
        bottom: var(--lf-space-4);
        right: var(--lf-space-4);
    }

    .lf-assistant-window[b-j3wq381ynp] {
        border-radius: var(--lf-radius-md);
        bottom: calc(var(--lf-space-4) + 3.5rem + var(--lf-space-2));
        height: auto;
        left: var(--lf-space-4);
        position: fixed;
        right: var(--lf-space-4);
        top: calc(var(--lf-chrome-height) + var(--lf-space-2));
        width: auto;
    }
}

/* Every movement stops for people who ask for less motion. */
@media (prefers-reduced-motion: reduce) {
    .lf-assistant-window:not([hidden])[b-j3wq381ynp],
    .lf-assistant-launcher--working[b-j3wq381ynp] {
        animation: none;
    }

    .lf-assistant-launcher[b-j3wq381ynp] {
        transition: none;
    }
}
/* /Components/Assistant/AssistantPortrait.razor.rz.scp.css */
/* ADR-065 step 5: the assistant's sticker for the current mood. Small portraits are circles with the gold ring, zoomed on the
   robot's head; the welcome hero is the full figure, unframed, standing on a soft shadow. Shared by the window header, the
   chat welcome and the full page. --lf-sticker-x/y (-1 to 1) is the pointer, set by AssistantPortrait.razor.js: the figure
   turns toward it in 3D. Tapping plays .is-hopping. */
.lf-assistant-portrait[b-r3fqby1jfe] {
    --lf-sticker-x: 0;
    --lf-sticker-y: 0;
    border-radius: var(--lf-radius-pill);
    box-shadow: 0 0 0 2px var(--lf-assistant-accent);
    display: block;
    flex: none;
    height: 2.75rem;
    overflow: hidden;
    position: relative;
    width: 2.75rem;
}

.lf-assistant-sticker[b-r3fqby1jfe] {
    display: block;
    height: 100%;
    transform: perspective(24rem) rotateY(calc(var(--lf-sticker-x) * 22deg)) rotateX(calc(var(--lf-sticker-y) * -16deg));
    transform-style: preserve-3d;
    transition: transform 180ms ease-out, scale 180ms ease-out;
    width: 100%;
}

.lf-assistant-avatar[b-r3fqby1jfe] {
    animation: lf-sticker-in-b-r3fqby1jfe .45s cubic-bezier(.2, .8, .2, 1.3);
    background: var(--lf-assistant-accent-surface);
    display: block;
    height: 100%;
    object-fit: cover;
    /* The stickers are the whole figure; the ring shows its head. */
    scale: 1.7;
    transform-origin: 47% 20%;
    user-select: none;
    width: 100%;
}

.lf-assistant-portrait--hero[b-r3fqby1jfe] {
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
    height: 8rem;
    overflow: visible;
    width: 8rem;
}

/* The floor shadow: it stays put while the figure floats, so the figure reads as lifted off the page. */
.lf-assistant-portrait--hero[b-r3fqby1jfe]::after {
    background: radial-gradient(closest-side, color-mix(in srgb, var(--lf-ink) 22%, transparent), transparent);
    content: "";
    height: .75rem;
    inset-block-end: -.25rem;
    inset-inline-start: 22%;
    position: absolute;
    translate: calc(var(--lf-sticker-x) * -6px) 0;
    transition: translate 180ms ease-out;
    width: 56%;
    z-index: -1;
}

.lf-assistant__hero[b-r3fqby1jfe] {
    animation: lf-sticker-in-b-r3fqby1jfe .5s cubic-bezier(.2, .8, .2, 1.3);
    display: block;
    /* The shadow falls away from the pointer, as from a light beside the viewer. */
    filter: drop-shadow(calc(var(--lf-sticker-x) * -6px) calc(6px - var(--lf-sticker-y) * 3px) 8px color-mix(in srgb, var(--lf-ink) 22%, transparent));
    height: 100%;
    object-fit: contain;
    transition: filter 180ms ease-out;
    user-select: none;
    width: 100%;
}

.lf-assistant-portrait:not(.lf-assistant-portrait--hero):hover .lf-assistant-sticker[b-r3fqby1jfe] {
    scale: 1.06;
}

/* A tap: the hero jumps and spins round; the small circle flips like a coin. */
.lf-assistant-portrait.is-hopping .lf-assistant-sticker[b-r3fqby1jfe] { animation: lf-sticker-flip-b-r3fqby1jfe .7s cubic-bezier(.3, .7, .3, 1); }
.lf-assistant-portrait--hero.is-hopping .lf-assistant-sticker[b-r3fqby1jfe] { animation: lf-sticker-hop-b-r3fqby1jfe .7s cubic-bezier(.3, .7, .3, 1); }

.lf-assistant-portrait--idle[b-r3fqby1jfe] { animation: lf-assistant-float-b-r3fqby1jfe 4s ease-in-out infinite; }
.lf-assistant-portrait--listening[b-r3fqby1jfe] { animation: lf-assistant-lean-b-r3fqby1jfe 1.8s ease-in-out infinite; }
.lf-assistant-portrait--thinking[b-r3fqby1jfe] { animation: lf-assistant-ring-b-r3fqby1jfe 1.4s ease-in-out infinite, lf-assistant-float-b-r3fqby1jfe 2.4s ease-in-out infinite; }
.lf-assistant-portrait--speaking[b-r3fqby1jfe] { animation: lf-assistant-nod-b-r3fqby1jfe .7s ease-in-out 3; }
.lf-assistant-portrait--error[b-r3fqby1jfe] { animation: lf-assistant-shake-b-r3fqby1jfe .45s ease-in-out 1; }
.lf-assistant-portrait--success[b-r3fqby1jfe] { animation: lf-assistant-pop-b-r3fqby1jfe .5s cubic-bezier(.2, .8, .2, 1.4) 1; }

/* The hero has no ring, so only its movement plays; it goes back to floating once a one-off reaction is over. */
.lf-assistant-portrait--hero.lf-assistant-portrait--thinking[b-r3fqby1jfe] { animation: lf-assistant-float-b-r3fqby1jfe 2.4s ease-in-out infinite; }
.lf-assistant-portrait--hero.lf-assistant-portrait--speaking[b-r3fqby1jfe] { animation: lf-assistant-nod-b-r3fqby1jfe .7s ease-in-out 3, lf-assistant-float-b-r3fqby1jfe 4s ease-in-out 2.1s infinite; }
.lf-assistant-portrait--hero.lf-assistant-portrait--success[b-r3fqby1jfe] { animation: lf-assistant-pop-b-r3fqby1jfe .5s cubic-bezier(.2, .8, .2, 1.4) 1, lf-assistant-float-b-r3fqby1jfe 4s ease-in-out .5s infinite; }

@keyframes lf-assistant-float-b-r3fqby1jfe {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

@keyframes lf-assistant-lean-b-r3fqby1jfe {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(-4deg); }
}

@keyframes lf-assistant-nod-b-r3fqby1jfe {
    0%, 100% { transform: translateY(0); }
    40% { transform: translateY(-2px) scale(1.03); }
}

@keyframes lf-assistant-shake-b-r3fqby1jfe {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-3px); }
    75% { transform: translateX(3px); }
}

@keyframes lf-assistant-pop-b-r3fqby1jfe {
    0% { transform: scale(.85); }
    60% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

/* The gold ring breathes outward while a reply is on its way. */
@keyframes lf-assistant-ring-b-r3fqby1jfe {
    0%, 100% { box-shadow: 0 0 0 2px var(--lf-assistant-accent); }
    50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--lf-assistant-accent) 45%, transparent); }
}

/* A new mood's sticker pops in. */
@keyframes lf-sticker-in-b-r3fqby1jfe {
    0% { opacity: 0; transform: scale(.8) translateY(4px); }
    100% { opacity: 1; transform: none; }
}

@keyframes lf-sticker-hop-b-r3fqby1jfe {
    0% { transform: perspective(24rem) translateY(0) rotateY(0); }
    35% { transform: perspective(24rem) translateY(-14%) rotateY(180deg) scale(1.04); }
    70% { transform: perspective(24rem) translateY(0) rotateY(360deg) scale(.97, 1.03); }
    100% { transform: perspective(24rem) translateY(0) rotateY(360deg); }
}

@keyframes lf-sticker-flip-b-r3fqby1jfe {
    0% { transform: perspective(24rem) rotateY(0); }
    100% { transform: perspective(24rem) rotateY(360deg); }
}

@media (max-width: 479.98px) {
    .lf-assistant-portrait--hero[b-r3fqby1jfe] {
        height: 6.5rem;
        width: 6.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lf-assistant-portrait[b-r3fqby1jfe],
    .lf-assistant-sticker[b-r3fqby1jfe],
    .lf-assistant-avatar[b-r3fqby1jfe],
    .lf-assistant__hero[b-r3fqby1jfe] {
        animation: none !important;
        transition: none;
    }

    .lf-assistant-sticker[b-r3fqby1jfe] {
        transform: none;
    }
}
/* /Components/Assistant/AssistantVoiceMode.razor.rz.scp.css */
/* ADR-065 voice mode, after ChatGPT's: the conversation gives way to one breathing orb, a line of status, the words being
   said, and two round controls. Base tokens only (DESIGN_GUIDELINES.md): the orb is a soft gold disc under the assistant's
   sticker; the gold assistant accent stays decoration. --lf-voice-level (0–1) is the live sound level, set by AssistantVoiceMode.razor.js. */
.lf-voice[b-7lqwv3kd6w] {
    --lf-voice-level: 0;
    align-items: center;
    animation: lf-voice-in-b-7lqwv3kd6w var(--lf-motion-standard);
    background: var(--lf-surface);
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: space-between;
    outline: none;
    padding: var(--lf-space-5) var(--lf-space-4) var(--lf-space-6);
    position: absolute;
    text-align: center;
    z-index: 2;
}

.lf-voice__header h2[b-7lqwv3kd6w] {
    color: var(--lf-ink);
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}

.lf-voice__header p[b-7lqwv3kd6w] {
    color: var(--lf-muted);
    font-size: .75rem;
    margin: var(--lf-space-1) 0 0;
}

.lf-voice__stage[b-7lqwv3kd6w] {
    align-items: center;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--lf-space-3);
    justify-content: center;
    max-width: 36rem;
    min-height: 0;
    width: 100%;
}

/* The orb: an ink sphere that swells with the voice it hears or speaks. */
.lf-voice__orb[b-7lqwv3kd6w] {
    background: none;
    border: 0;
    border-radius: var(--lf-radius-pill);
    cursor: pointer;
    display: grid;
    height: clamp(8rem, 30vmin, 12rem);
    padding: 0;
    place-items: center;
    position: relative;
    width: clamp(8rem, 30vmin, 12rem);
}

.lf-voice__orb:focus-visible[b-7lqwv3kd6w] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 6px;
}

.lf-voice__orb:disabled[b-7lqwv3kd6w] {
    cursor: default;
}

.lf-voice__core[b-7lqwv3kd6w],
.lf-voice__halo[b-7lqwv3kd6w] {
    border-radius: var(--lf-radius-pill);
    grid-area: 1 / 1;
    height: 100%;
    width: 100%;
}

.lf-voice__core[b-7lqwv3kd6w] {
    /* A soft gold disc for the sticker to stand on; it swells with the voice heard or spoken, and the figure on it turns in
       3D toward the pointer (--lf-voice-look-x/y, -1 to 1, set by the module). */
    background:
        radial-gradient(circle at 35% 25%, color-mix(in srgb, white 55%, transparent) 0, transparent 40%),
        radial-gradient(circle at 50% 60%, var(--lf-assistant-accent-surface) 0, color-mix(in srgb, var(--lf-assistant-accent) 28%, var(--lf-surface)) 100%);
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--lf-assistant-accent) 55%, transparent), var(--lf-shadow-md);
    display: grid;
    perspective: 32rem;
    place-items: center;
    position: relative;
    transform: scale(calc(.9 + var(--lf-voice-level) * .08));
    transition: transform 80ms linear;
}

:root[data-theme="dark"] .lf-voice__core[b-7lqwv3kd6w] {
    background:
        radial-gradient(circle at 35% 25%, color-mix(in srgb, white 14%, transparent) 0, transparent 40%),
        radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--lf-assistant-accent) 22%, var(--lf-surface)) 0, var(--lf-surface-muted) 100%);
}

/* Every mood's sticker sits in the same cell; only the current one shows, and a change of state cross-fades. */
.lf-voice__figure[b-7lqwv3kd6w] {
    display: block;
    grid-area: 1 / 1;
    filter: drop-shadow(calc(var(--lf-voice-look-x, 0) * -8px) calc(8px - var(--lf-voice-look-y, 0) * 4px) 10px color-mix(in srgb, black 28%, transparent));
    height: 92%;
    object-fit: contain;
    opacity: 0;
    pointer-events: none;
    transform:
        translateY(calc(var(--lf-voice-level) * -8%))
        rotateY(calc(var(--lf-voice-look-x, 0) * 24deg))
        rotateX(calc(var(--lf-voice-look-y, 0) * -14deg))
        rotate(var(--lf-voice-tilt, 0deg));
    transition: transform 160ms ease-out, filter 160ms ease-out, opacity 220ms ease-out;
    user-select: none;
    width: 92%;
}

.lf-voice__figure.is-current[b-7lqwv3kd6w] {
    opacity: 1;
}

/* Hearing: the figure leans in toward the speaker. */
.lf-voice--hearing .lf-voice__figure[b-7lqwv3kd6w] { --lf-voice-tilt: -5deg; }

/* Thinking: the figure sways while it works. */
.lf-voice--starting .lf-voice__figure.is-current[b-7lqwv3kd6w],
.lf-voice--transcribing .lf-voice__figure.is-current[b-7lqwv3kd6w],
.lf-voice--thinking .lf-voice__figure.is-current[b-7lqwv3kd6w] {
    animation: lf-voice-sway-b-7lqwv3kd6w 2.4s ease-in-out infinite;
}

/* Muted or unavailable: the figure rests in grey, and nothing glows. */
.lf-voice--muted .lf-voice__figure[b-7lqwv3kd6w],
.lf-voice--unavailable .lf-voice__figure[b-7lqwv3kd6w] {
    filter: grayscale(1);
}

.lf-voice--muted .lf-voice__figure.is-current[b-7lqwv3kd6w],
.lf-voice--unavailable .lf-voice__figure.is-current[b-7lqwv3kd6w] {
    opacity: .75;
}

.lf-voice__halo[b-7lqwv3kd6w] {
    box-shadow: 0 0 0 calc(var(--lf-voice-level) * 1.25rem) color-mix(in srgb, var(--lf-assistant-accent) 30%, transparent);
    transition: box-shadow 80ms linear;
}

.lf-voice--starting .lf-voice__core[b-7lqwv3kd6w],
.lf-voice--transcribing .lf-voice__core[b-7lqwv3kd6w],
.lf-voice--thinking .lf-voice__core[b-7lqwv3kd6w] {
    animation: lf-voice-breathe-b-7lqwv3kd6w 1.6s ease-in-out infinite;
}

.lf-voice--transcribing .lf-voice__halo[b-7lqwv3kd6w],
.lf-voice--thinking .lf-voice__halo[b-7lqwv3kd6w] {
    animation: lf-voice-ring-b-7lqwv3kd6w 1.6s ease-in-out infinite;
}

.lf-voice--muted .lf-voice__core[b-7lqwv3kd6w],
.lf-voice--unavailable .lf-voice__core[b-7lqwv3kd6w] {
    filter: grayscale(1);
    transform: scale(.8);
}

.lf-voice__state[b-7lqwv3kd6w] {
    color: var(--lf-ink);
    font-size: .9375rem;
    font-weight: 600;
    margin: var(--lf-space-2) 0 0;
}

/* What was heard, or the reply being read: a few lines, the newest words in view. */
.lf-voice__caption[b-7lqwv3kd6w] {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    color: var(--lf-muted);
    display: -webkit-box;
    font-size: .875rem;
    line-height: 1.55;
    margin: 0;
    overflow: hidden;
}

.lf-voice__hint[b-7lqwv3kd6w],
.lf-voice__problem[b-7lqwv3kd6w] {
    border-radius: var(--lf-radius-sm);
    font-size: .8125rem;
    margin: 0;
    padding: var(--lf-space-2) var(--lf-space-3);
}

.lf-voice__hint[b-7lqwv3kd6w] {
    background: var(--lf-assistant-accent-surface);
    color: var(--lf-ink);
}

.lf-voice__problem[b-7lqwv3kd6w] {
    background: var(--lf-danger-surface);
    color: var(--lf-ink);
}

.lf-voice__controls[b-7lqwv3kd6w] {
    display: flex;
    gap: var(--lf-space-6);
    justify-content: center;
}

.lf-voice__control[b-7lqwv3kd6w] {
    align-items: center;
    background: var(--lf-surface-muted);
    border: 0;
    border-radius: var(--lf-radius-pill);
    color: var(--lf-ink);
    cursor: pointer;
    display: inline-flex;
    height: 3.5rem;
    justify-content: center;
    transition: background-color var(--lf-motion-fast);
    width: 3.5rem;
}

.lf-voice__control:hover:not(:disabled)[b-7lqwv3kd6w] {
    background: var(--lf-field-hover);
}

.lf-voice__control:focus-visible[b-7lqwv3kd6w] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 3px;
}

.lf-voice__control:disabled[b-7lqwv3kd6w] {
    color: var(--lf-disabled);
    cursor: default;
}

/* Muted reads as "on" by shape and fill, not colour alone; aria-pressed says the same. */
.lf-voice__control.is-on[b-7lqwv3kd6w] {
    background: var(--lf-ink);
    color: var(--lf-surface);
}

.lf-voice__control--end[b-7lqwv3kd6w] {
    background: var(--lf-ink);
    color: var(--lf-surface);
}

.lf-voice__control--end:hover:not(:disabled)[b-7lqwv3kd6w] {
    background: color-mix(in srgb, var(--lf-ink) 85%, var(--lf-surface));
}

@keyframes lf-voice-in-b-7lqwv3kd6w {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes lf-voice-breathe-b-7lqwv3kd6w {
    0%, 100% { transform: scale(.84); }
    50% { transform: scale(.94); }
}

@keyframes lf-voice-ring-b-7lqwv3kd6w {
    0%, 100% { box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--lf-assistant-accent) 30%, transparent); }
    50% { box-shadow: 0 0 0 1rem color-mix(in srgb, var(--lf-assistant-accent) 10%, transparent); }
}

@keyframes lf-voice-sway-b-7lqwv3kd6w {
    0%, 100% { rotate: 0deg; }
    30% { rotate: -4deg; }
    65% { rotate: 4deg; }
}

@media (prefers-reduced-motion: reduce) {
    .lf-voice[b-7lqwv3kd6w],
    .lf-voice__core[b-7lqwv3kd6w],
    .lf-voice__halo[b-7lqwv3kd6w],
    .lf-voice__figure[b-7lqwv3kd6w] {
        animation: none !important;
        transition: none;
    }

    .lf-voice__core[b-7lqwv3kd6w] {
        transform: scale(.9);
    }

    .lf-voice__halo[b-7lqwv3kd6w] {
        box-shadow: 0 0 0 calc(var(--lf-voice-level) * .5rem) color-mix(in srgb, var(--lf-assistant-accent) 30%, transparent);
    }
}
/* /Components/Documents/DocumentFilePicker.razor.rz.scp.css */
.doc-picker[b-hb8dao7lx3] {
    display: grid;
    gap: .5rem;
    min-width: 0;
}

.doc-picker__zone[b-hb8dao7lx3] {
    margin: 0;
    min-height: 8.5rem;
    transition: border-color var(--lf-motion-fast, 120ms) ease-out, background-color var(--lf-motion-fast, 120ms) ease-out;
}

.doc-picker__zone--over[b-hb8dao7lx3] {
    border-color: var(--lf-cedar);
    border-style: solid;
    background: var(--lf-surface-selected);
}

.doc-picker__zone--invalid[b-hb8dao7lx3] {
    border-color: var(--lf-danger);
}

.lf-dropzone--filled.doc-picker__zone[b-hb8dao7lx3] {
    min-height: 0;
    align-items: stretch;
    padding: 1rem;
}

.doc-picker__file[b-hb8dao7lx3] {
    display: flex;
    align-items: center;
    gap: .875rem;
    min-width: 0;
    text-align: start;
}

.doc-picker__glyph[b-hb8dao7lx3] {
    display: grid;
    place-items: center;
    flex: none;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface);
    color: var(--lf-cedar-dark);
}

.doc-picker__file-text[b-hb8dao7lx3] {
    display: grid;
    gap: .125rem;
    min-width: 0;
}

.doc-picker__name[b-hb8dao7lx3] {
    overflow: hidden;
    font-weight: 700;
    color: var(--lf-ink);
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: start;
}

[dir="rtl"] .doc-picker__name[b-hb8dao7lx3] {
    text-align: right;
}

.doc-picker__error[b-hb8dao7lx3] {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin: 0;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--lf-danger);
}

@media (prefers-reduced-motion: reduce) {
    .doc-picker__zone[b-hb8dao7lx3] {
        transition: none;
    }
}
/* /Components/Documents/DocumentManagePanel.razor.rz.scp.css */
/* Governed document controls. The panel lays out by its own width (container query), not the
   viewport's, because it lives both in a narrow viewer side panel and in a wide drawer. */
.doc-manage[b-7hh6h7gzg0] {
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-4);
    min-width: 0;
}

/* Summary: file icon, name and status on one line. */
.doc-manage__summary[b-7hh6h7gzg0] {
    display: flex;
    align-items: flex-start;
    gap: var(--lf-space-3);
    padding-bottom: var(--lf-space-4);
    border-bottom: 1px solid var(--lf-rule);
}

.doc-manage__summary-icon[b-7hh6h7gzg0] {
    display: grid;
    flex: 0 0 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: var(--lf-radius-md);
    background: var(--lf-info-surface);
    color: var(--lf-info);
}

.doc-manage__summary-text[b-7hh6h7gzg0] {
    flex: 1 1 auto;
    min-width: 0;
}

.doc-manage__summary-text h3[b-7hh6h7gzg0] {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--lf-ink);
    overflow-wrap: anywhere;
}

.doc-manage__summary-text p[b-7hh6h7gzg0] {
    margin: 2px 0 0;
    font-size: 0.8125rem;
    color: var(--lf-muted);
}

.doc-manage__hold[b-7hh6h7gzg0] {
    display: flex;
    align-items: center;
    gap: var(--lf-space-2);
    margin: 0;
    padding: var(--lf-space-2) var(--lf-space-3);
    border-radius: var(--lf-radius-md);
    background: var(--lf-warning-surface);
    color: var(--lf-ink);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.doc-manage__section[b-7hh6h7gzg0] {
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-2);
}

.doc-manage__section h4[b-7hh6h7gzg0] {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--lf-muted);
}

/* Facts: label and value side by side, compact rows. */
.doc-manage__facts[b-7hh6h7gzg0] {
    margin: 0;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-md);
    overflow: hidden;
}

.doc-manage__facts > div[b-7hh6h7gzg0] {
    display: flex;
    justify-content: space-between;
    gap: var(--lf-space-3);
    padding: var(--lf-space-2) var(--lf-space-3);
    font-size: 0.875rem;
}

.doc-manage__facts > div + div[b-7hh6h7gzg0] {
    border-top: 1px solid var(--lf-rule);
}

.doc-manage__facts dt[b-7hh6h7gzg0] {
    flex: 0 0 auto;
    color: var(--lf-muted);
}

.doc-manage__facts dd[b-7hh6h7gzg0] {
    margin: 0;
    min-width: 0;
    font-weight: 600;
    color: var(--lf-ink);
    text-align: end;
    overflow-wrap: anywhere;
}

.doc-manage__description[b-7hh6h7gzg0] {
    margin: 0;
    padding: var(--lf-space-3);
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface-muted);
    font-size: 0.875rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

/* Actions: one column of compact rows; two columns once the panel is wide enough. */
.doc-manage__action-list[b-7hh6h7gzg0] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--lf-space-2);
}

@container (min-width: 34rem) {
    .doc-manage__action-list[b-7hh6h7gzg0] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.doc-manage__action-list[b-7hh6h7gzg0]  .lf-tile {
    align-items: center;
    height: 100%;
    padding: var(--lf-space-3);
    border-radius: var(--lf-radius-md);
}

.doc-manage__action-list[b-7hh6h7gzg0]  .lf-tile:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.doc-manage__danger[b-7hh6h7gzg0] {
    display: contents;
}

.doc-manage__danger[b-7hh6h7gzg0]  .lf-tile__icon {
    background: var(--lf-danger-surface);
    color: var(--lf-danger);
}

.doc-manage__danger[b-7hh6h7gzg0]  .lf-tile:not(:disabled):hover {
    border-color: var(--lf-danger);
    background: var(--lf-danger-surface);
}

/* An action's own buttons sit at its end. */
.doc-manage__actions[b-7hh6h7gzg0] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--lf-space-2);
    padding-top: var(--lf-space-3);
    border-top: 1px solid var(--lf-rule);
}
/* /Components/Documents/DocumentRecord.razor.rz.scp.css */
/* Document record sheet: one quiet file plate, then ruled ledgers. No tiles, no nested cards. */
.doc-record[b-wgy1n5yp21] {
    display: grid;
    gap: 1.75rem;
    min-width: 0;
}

/* File plate ------------------------------------------------------------------------- */
.doc-plate[b-wgy1n5yp21] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .875rem 1rem;
    padding: 1rem;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-lg);
    background: var(--lf-surface-muted);
}

.doc-plate__glyph[b-wgy1n5yp21] {
    display: grid;
    place-items: center;
    flex: none;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface-selected);
    color: var(--lf-cedar-dark);
}

.doc-plate__body[b-wgy1n5yp21] {
    display: grid;
    gap: .5rem;
    flex: 1 1 12rem;
    min-width: 0;
}

.doc-plate__badges[b-wgy1n5yp21] {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
}

.doc-plate__facts[b-wgy1n5yp21],
.doc-version__meta[b-wgy1n5yp21] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
    margin: 0;
    font-size: .8125rem;
    color: var(--lf-muted);
    font-variant-numeric: tabular-nums;
}

.doc-plate__facts > span + span[b-wgy1n5yp21]::before,
.doc-version__meta > span + span[b-wgy1n5yp21]::before {
    content: "·";
    margin-inline-end: .25rem;
    color: var(--lf-muted);
}

.doc-plate[b-wgy1n5yp21]  .doc-plate__download {
    flex: none;
    margin-inline-start: auto;
}

/* Record facts ----------------------------------------------------------------------- */
.doc-facts__matter[b-wgy1n5yp21] {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .375rem;
    color: var(--lf-cedar-dark);
    text-decoration: none;
    text-underline-offset: .2em;
}

.doc-facts__matter:hover[b-wgy1n5yp21],
.doc-facts__matter:focus-visible[b-wgy1n5yp21] {
    text-decoration: underline;
}

.doc-facts__matter span[aria-hidden][b-wgy1n5yp21] {
    color: var(--lf-muted);
}

/* Sections --------------------------------------------------------------------------- */
.doc-section[b-wgy1n5yp21] {
    display: grid;
    gap: .625rem;
    min-width: 0;
}

.doc-section__head[b-wgy1n5yp21] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.doc-section__title[b-wgy1n5yp21] {
    margin: 0;
    font-size: .875rem;
    font-weight: 700;
    color: var(--lf-ink);
}

.doc-description[b-wgy1n5yp21] {
    margin: 0;
    max-width: 68ch;
    font-size: .875rem;
    line-height: 1.75;
    color: var(--lf-ink);
    white-space: pre-line;
}

/* Governed states: state and its action share one row ----------------------------- */
.doc-states[b-wgy1n5yp21] {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-lg);
    background: var(--lf-surface);
    overflow: hidden;
}

.doc-state[b-wgy1n5yp21] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .875rem;
    min-height: 3.75rem;
    padding-block: .5rem;
    padding-inline: 1rem .5rem;
    transition: background-color var(--lf-motion-standard, 200ms) ease-out;
}

.doc-state + .doc-state[b-wgy1n5yp21] {
    border-top: 1px solid var(--lf-rule);
}

.doc-state[b-wgy1n5yp21]  .doc-state__icon {
    color: var(--lf-muted);
}

.doc-state__text[b-wgy1n5yp21] {
    display: grid;
    gap: .125rem;
    min-width: 0;
}

.doc-state__label[b-wgy1n5yp21] {
    font-size: .75rem;
    color: var(--lf-muted);
}

.doc-state__value[b-wgy1n5yp21] {
    font-size: .875rem;
    font-weight: 700;
    color: var(--lf-ink);
}

.doc-state--hold[b-wgy1n5yp21] {
    background: var(--lf-warning-surface);
}

.doc-state--hold[b-wgy1n5yp21]  .doc-state__icon,
.doc-state--hold .doc-state__value[b-wgy1n5yp21] {
    color: var(--lf-warning);
}

/* Versions: a short rail of immutable entries, newest first ------------------------- */
.doc-versions[b-wgy1n5yp21] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.doc-version[b-wgy1n5yp21] {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .875rem;
    padding-block: .625rem;
}

.doc-version + .doc-version[b-wgy1n5yp21]::before {
    content: "";
    position: absolute;
    inset-block-start: -.625rem;
    inset-inline-start: 1.1875rem;
    height: 1.25rem;
    border-inline-start: 1px solid var(--lf-rule);
}

.doc-version__number[b-wgy1n5yp21] {
    display: grid;
    place-items: center;
    width: 2.375rem;
    height: 2.375rem;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-pill);
    background: var(--lf-surface);
    font-size: .75rem;
    font-weight: 700;
    color: var(--lf-muted);
    font-variant-numeric: tabular-nums;
}

.doc-version--current .doc-version__number[b-wgy1n5yp21] {
    border-color: var(--lf-cedar);
    background: var(--lf-cedar);
    color: var(--lf-on-cedar);
}

.doc-version__text[b-wgy1n5yp21] {
    display: grid;
    gap: .125rem;
    min-width: 0;
}

.doc-version__when[b-wgy1n5yp21] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    font-weight: 700;
    color: var(--lf-ink);
    font-variant-numeric: tabular-nums;
}

.doc-version__current[b-wgy1n5yp21] {
    padding: .125rem .5rem;
    border-radius: var(--lf-radius-pill);
    background: var(--lf-surface-selected);
    font-size: .6875rem;
    font-weight: 700;
    color: var(--lf-cedar-dark);
}

/* Disposal: present, governed, and visually last ---------------------------------- */
.doc-disposal[b-wgy1n5yp21] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    padding-block-start: 1.25rem;
    border-top: 1px solid var(--lf-rule);
}

.doc-disposal__text[b-wgy1n5yp21] {
    display: grid;
    gap: .25rem;
    flex: 1 1 14rem;
    min-width: 0;
}

.doc-disposal__text p[b-wgy1n5yp21] {
    margin: 0;
    font-size: .8125rem;
    color: var(--lf-muted);
}

/* 44px targets for every control on the sheet. */
.doc-record[b-wgy1n5yp21]  .lf-button--sm {
    min-height: 2.75rem;
    padding-inline: .875rem;
    font-size: .8125rem;
}

.doc-record[b-wgy1n5yp21]  .lf-icon-button {
    width: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
}

@media (prefers-reduced-motion: reduce) {
    .doc-state[b-wgy1n5yp21] {
        transition: none;
    }
}
/* /Components/Documents/DocumentUploadQueue.razor.rz.scp.css */
.doc-queue[b-dl5703e672] {
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.doc-queue__zone[b-dl5703e672] {
    margin: 0;
    min-height: 8rem;
}

.doc-queue__zone--over[b-dl5703e672] {
    border-color: var(--lf-cedar);
    border-style: solid;
    background: var(--lf-surface-selected);
}

.doc-queue__zone--disabled[b-dl5703e672] {
    opacity: .6;
    cursor: progress;
}

.doc-queue__pickers[b-dl5703e672] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.doc-queue__folder-button[b-dl5703e672] {
    position: relative;
    cursor: pointer;
}

.doc-queue__folder-button.is-disabled[b-dl5703e672] {
    pointer-events: none;
    opacity: .6;
}

.doc-queue__summary[b-dl5703e672] {
    font-size: .8125rem;
    color: var(--lf-muted);
}

.doc-queue__apply[b-dl5703e672] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 0;
    padding: .75rem;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-md);
}

.doc-queue__apply legend[b-dl5703e672] {
    padding: 0 .25rem;
    font-size: .75rem;
    font-weight: 700;
    color: var(--lf-muted);
}

.doc-queue__body[b-dl5703e672] {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

@media (max-width: 760px) {
    .doc-queue__body[b-dl5703e672] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.doc-queue__list[b-dl5703e672] {
    display: grid;
    gap: .25rem;
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 32rem;
    overflow-y: auto;
}

.doc-queue__item[b-dl5703e672] {
    display: flex;
    align-items: center;
    gap: .25rem;
    border-radius: var(--lf-radius-md);
}

.doc-queue__item.is-selected[b-dl5703e672] {
    background: var(--lf-surface-selected);
}

.doc-queue__item-button[b-dl5703e672] {
    display: flex;
    flex: 1;
    align-items: center;
    gap: .5rem;
    min-width: 0;
    padding: .5rem;
    border: 0;
    background: none;
    color: var(--lf-ink);
    text-align: start;
    cursor: pointer;
}

.doc-queue__item-button:disabled[b-dl5703e672] {
    cursor: default;
}

.doc-queue__item-text[b-dl5703e672] {
    display: grid;
    min-width: 0;
}

.doc-queue__item-name[b-dl5703e672] {
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.doc-queue__item-meta[b-dl5703e672] {
    font-size: .75rem;
    color: var(--lf-muted);
}

.doc-queue__item[data-state="rejected"] .doc-queue__item-meta[b-dl5703e672],
.doc-queue__item[data-state="failed"] .doc-queue__item-meta[b-dl5703e672] {
    color: var(--lf-danger);
}

.doc-queue__item[data-state="saved"] .doc-queue__item-meta[b-dl5703e672] {
    color: var(--lf-success, var(--lf-cedar));
}

.doc-queue__review[b-dl5703e672] {
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.doc-queue__preview[b-dl5703e672] {
    display: grid;
    place-items: center;
    min-height: 16rem;
    max-height: 28rem;
    overflow: auto;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface-muted);
}

.doc-queue__preview img[b-dl5703e672] {
    max-width: 100%;
    max-height: 27rem;
    object-fit: contain;
}

.doc-queue__preview iframe[b-dl5703e672] {
    width: 100%;
    height: 27rem;
    border: 0;
}

.doc-queue__facts[b-dl5703e672] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 0;
    font-size: .8125rem;
}

.doc-queue__check[b-dl5703e672] {
    margin: 0;
    font-size: .8125rem;
    color: var(--lf-muted);
}

.doc-queue__portal[b-dl5703e672] {
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    gap: .625rem;
    font-size: .875rem;
}

.doc-queue__actions[b-dl5703e672] {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
}

.doc-picker__error[b-dl5703e672] {
    display: flex;
    align-items: center;
    gap: .375rem;
    margin: 0;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--lf-danger);
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* The shell itself is styled by the design system (lawfirm.tokens.css, "Shell"). Only the
   framework's connection-error strip is local to this layout. */
#blazor-error-ui[b-s9e010aslo] {
    background: var(--lf-danger-surface);
    border-top: 1px solid var(--lf-danger);
    bottom: 0;
    box-sizing: border-box;
    color: var(--lf-ink);
    display: none;
    inset-inline-start: 0;
    padding-block: .75rem;
    padding-inline: 1.25rem 3rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-s9e010aslo] {
    cursor: pointer;
    position: absolute;
    inset-inline-end: .75rem;
    top: .5rem;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-cbd19s8ooi],
.components-reconnect-repeated-attempt-visible[b-cbd19s8ooi],
.components-reconnect-failed-visible[b-cbd19s8ooi],
.components-pause-visible[b-cbd19s8ooi],
.components-resume-failed-visible[b-cbd19s8ooi],
.components-rejoining-animation[b-cbd19s8ooi]{display:none}
#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-retrying[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-failed[b-cbd19s8ooi],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-cbd19s8ooi]{display:block}
#components-reconnect-modal[b-cbd19s8ooi]{width:min(calc(100% - 2rem),25rem);margin:18vh auto;padding:1.5rem;border:1px solid var(--lf-rule);border-radius:var(--lf-radius-lg);background:var(--lf-surface);color:var(--lf-ink);box-shadow:var(--lf-shadow-md);opacity:0;animation:lf-reconnect-out-b-cbd19s8ooi var(--lf-motion-standard) both}
#components-reconnect-modal[open][b-cbd19s8ooi]{animation:lf-reconnect-in-b-cbd19s8ooi var(--lf-motion-standard) both}
#components-reconnect-modal[b-cbd19s8ooi]::backdrop{background:var(--lf-scrim);backdrop-filter:blur(5px)}
.components-reconnect-container[b-cbd19s8ooi]{display:flex;flex-direction:column;align-items:center;gap:.85rem}.components-reconnect-container strong[b-cbd19s8ooi]{font:600 1.45rem/1.15 var(--lf-font-display)}
#components-reconnect-modal p[b-cbd19s8ooi]{margin:0;color:var(--lf-muted);line-height:1.55;text-align:center}
#components-reconnect-modal button[b-cbd19s8ooi]{min-height:var(--lf-control-height);padding:.7rem 1rem;border:0;border-radius:var(--lf-radius-sm);background:var(--lf-cedar-dark);color:var(--lf-on-cedar);font:inherit;font-weight:700}
.components-rejoining-animation[b-cbd19s8ooi]{position:relative;width:2.5rem;height:2.5rem}.components-rejoining-animation div[b-cbd19s8ooi]{position:absolute;inset:0;border:2px solid var(--lf-cedar);border-inline-end-color:transparent;border-radius:50%;animation:lf-reconnect-spin-b-cbd19s8ooi .85s linear infinite}.components-rejoining-animation div:nth-child(2)[b-cbd19s8ooi]{inset:.5rem;animation-direction:reverse}
@keyframes lf-reconnect-spin-b-cbd19s8ooi{to{transform:rotate(1turn)}}@keyframes lf-reconnect-in-b-cbd19s8ooi{from{opacity:0;transform:translateY(1rem) scale(.98)}to{opacity:1;transform:none}}@keyframes lf-reconnect-out-b-cbd19s8ooi{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#components-reconnect-modal[b-cbd19s8ooi],.components-rejoining-animation div[b-cbd19s8ooi]{animation-duration:.01ms;animation-iteration-count:1}}
/* /Components/Layout/SectionWorkspace.razor.rz.scp.css */
.section-workspace[b-x8s15sxfai] {
    align-items: start;
    gap: 1.25rem 1.5rem;
    min-width: 0;
    display: grid;
}

@media (min-width: 48rem) {
    .section-workspace[b-x8s15sxfai] {
        grid-template-columns: 12.5rem minmax(0, 1fr);
    }
}

.section-workspace__nav[b-x8s15sxfai] {
    min-width: 0;
}

@media (min-width: 48rem) {
    .section-workspace__nav[b-x8s15sxfai] {
        position: sticky;
        top: 5rem;
    }
}

.section-workspace__main[b-x8s15sxfai],
.section-workspace__body[b-x8s15sxfai] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
}

.section-workspace__main[b-x8s15sxfai]  .lf-tabs--underline {
    min-width: 0;
}
/* /Components/Overview/AdvancesPanel.razor.rz.scp.css */
.advances[b-pmh1y1cifw] {
    display: flex;
    flex-direction: column;
}

.advances__balance[b-pmh1y1cifw] {
    margin: 0;
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    color: var(--lf-ink);
}

.advances__flow[b-pmh1y1cifw] {
    display: grid;
    margin: 1.25rem 0 0;
    border-block: 1px solid var(--lf-rule);
}

.advances__flow div[b-pmh1y1cifw] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-block: .55rem;
    font-size: .875rem;
}

.advances__flow div + div[b-pmh1y1cifw] { border-block-start: 1px solid var(--lf-rule); }
.advances__flow dt[b-pmh1y1cifw] { color: var(--lf-muted); }
.advances__flow dd[b-pmh1y1cifw] { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--lf-ink); }

.advances__heading[b-pmh1y1cifw] {
    margin: 1.5rem 0 .5rem;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--lf-muted);
}

.advances__list[b-pmh1y1cifw] {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
}

.advances__list li[b-pmh1y1cifw] {
    animation: lf-rise 450ms cubic-bezier(.2, .8, .2, 1) backwards;
    animation-delay: calc(var(--lf-i, 0) * 60ms + 500ms);
}

.advances__row[b-pmh1y1cifw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: .75rem;
    row-gap: .15rem;
    min-height: 2.75rem;
    margin-inline: -.5rem;
    padding: .55rem .5rem;
    border-radius: var(--lf-radius-sm);
    color: var(--lf-ink);
    text-decoration: none;
    transition: background-color var(--lf-motion-fast);
}

.advances__row:hover[b-pmh1y1cifw] { background: var(--lf-surface-muted); }
.advances__row:focus-visible[b-pmh1y1cifw] { outline: 2px solid var(--lf-focus); outline-offset: 0; }

.advances__holder[b-pmh1y1cifw] {
    overflow: hidden;
    font-size: .875rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.advances__amount[b-pmh1y1cifw] {
    font-size: .875rem;
    font-weight: 700;
    text-align: end;
    font-variant-numeric: tabular-nums;
}

.advances__subject[b-pmh1y1cifw],
.advances__age[b-pmh1y1cifw] {
    overflow: hidden;
    font-size: .75rem;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--lf-muted);
}

.advances__age[b-pmh1y1cifw] { text-align: end; }

/* What is still held of everything issued on this advance. */
.advances__track[b-pmh1y1cifw] {
    grid-column: 1 / -1;
    height: 4px;
    margin-block-start: .3rem;
    overflow: hidden;
    border-radius: var(--lf-radius-pill);
    background: var(--lf-surface-muted);
}

.advances__track span[b-pmh1y1cifw] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--lf-chart-seq-3);
}

@media (prefers-reduced-motion: reduce) {
    .advances__list li[b-pmh1y1cifw] { animation: none; }
    .advances__row[b-pmh1y1cifw] { transition: none; }
}

@media (forced-colors: active) {
    .advances__track span[b-pmh1y1cifw] { forced-color-adjust: none; background: CanvasText; }
}
/* /Components/Overview/CashFlowChart.razor.rz.scp.css */
/* The zero line is the baseline wherever it falls; the lowest gridline is ordinary grid. */
.cashflow__grid span:first-child[b-5ik42mwk3v] { background: var(--lf-chart-grid); }
.cashflow__grid span.cashflow__zero[b-5ik42mwk3v] { height: 2px; background: var(--lf-chart-baseline); }

.cashflow__lane[b-5ik42mwk3v] {
    position: relative;
    width: 100%;
    height: var(--lf-colchart-height);
    border-radius: var(--lf-radius-sm);
    transition: background-color var(--lf-motion-fast);
}

.cashflow__group:hover .cashflow__lane[b-5ik42mwk3v],
.cashflow__group:focus-visible .cashflow__lane[b-5ik42mwk3v] { background: var(--lf-surface-muted); }

.cashflow__bar[b-5ik42mwk3v] {
    position: absolute;
    inset-inline-start: 50%;
    width: min(1.5rem, 56%);
    translate: -50% 0;
}

[dir="rtl"] .cashflow__bar[b-5ik42mwk3v] { translate: 50% 0; }

/* Data ends are rounded; the end on the zero line stays square so the two sides meet it cleanly. */
.cashflow__bar--in[b-5ik42mwk3v] {
    border-radius: 4px 4px 0 0;
    transform-origin: bottom;
    animation: cashflow-grow-b-5ik42mwk3v 700ms cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--lf-i, 0) * 40ms + 200ms);
}

.cashflow__bar--out[b-5ik42mwk3v] {
    border-radius: 0 0 4px 4px;
    transform-origin: top;
    animation: cashflow-grow-b-5ik42mwk3v 700ms cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--lf-i, 0) * 40ms + 280ms);
}

@keyframes cashflow-grow-b-5ik42mwk3v {
    from { scale: 1 0; }
}

/* The net line sits over the columns' lane, never over the month labels. */
.cashflow__net[b-5ik42mwk3v] {
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    z-index: 1;
    width: 100%;
    height: var(--lf-colchart-height);
    overflow: visible;
    pointer-events: none;
    animation: cashflow-fade-b-5ik42mwk3v 500ms ease both;
    animation-delay: 700ms;
}

/* Columns flow right to left in Arabic; the line's x axis follows them. */
[dir="rtl"] .cashflow__net[b-5ik42mwk3v] { transform: scaleX(-1); }

.cashflow__net polyline[b-5ik42mwk3v] {
    fill: none;
    stroke: var(--lf-ink);
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.cashflow__dot[b-5ik42mwk3v] {
    position: absolute;
    inset-inline-start: 50%;
    z-index: 2;
    width: .625rem;
    height: .625rem;
    border: 2px solid var(--lf-surface);
    border-radius: 50%;
    background: var(--lf-ink);
    translate: -50% 50%;
    animation: cashflow-fade-b-5ik42mwk3v 400ms ease both;
    animation-delay: calc(var(--lf-i, 0) * 40ms + 700ms);
}

[dir="rtl"] .cashflow__dot[b-5ik42mwk3v] { translate: 50% 50%; }

.cashflow__group:hover .cashflow__dot[b-5ik42mwk3v],
.cashflow__group:focus-visible .cashflow__dot[b-5ik42mwk3v] { scale: 1.3; }

@keyframes cashflow-fade-b-5ik42mwk3v {
    from { opacity: 0; }
}

.cashflow__net-key[b-5ik42mwk3v] {
    display: inline-block;
    width: .875rem;
    height: 2px;
    border-radius: 1px;
    background: var(--lf-ink);
}

.cashflow__tip-net[b-5ik42mwk3v] {
    padding-block-start: .3rem;
    border-block-start: 1px solid var(--lf-rule);
}

/* Narrow cards keep every other month label (counted from the latest), so labels never collide. */
.cashflow[b-5ik42mwk3v] { container-type: inline-size; }

@container (max-width: 36rem) {
    .cashflow__group:nth-last-child(even) .lf-colchart__label[b-5ik42mwk3v] { visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
    .cashflow__bar--in[b-5ik42mwk3v],
    .cashflow__bar--out[b-5ik42mwk3v],
    .cashflow__net[b-5ik42mwk3v],
    .cashflow__dot[b-5ik42mwk3v] { animation: none; }
}

@media (forced-colors: active) {
    .cashflow__bar[b-5ik42mwk3v],
    .cashflow__dot[b-5ik42mwk3v],
    .cashflow__net-key[b-5ik42mwk3v] { forced-color-adjust: none; border: 1px solid CanvasText; }

    .cashflow__net polyline[b-5ik42mwk3v] { stroke: CanvasText; }
}
/* /Components/Overview/OverviewSkeleton.razor.rz.scp.css */
.overview-skeleton__columns[b-gqqb2ntvhm] {
    display: flex;
    height: 12.5rem;
    align-items: flex-end;
    gap: .5rem;
    margin-block-start: 1.25rem;
    padding-block-end: .25rem;
    border-block-end: 1px solid var(--lf-rule);
}

.overview-skeleton__columns .lf-skeleton[b-gqqb2ntvhm] {
    display: block;
    flex: 1 1 0;
    max-width: 2.5rem;
    margin: 0;
    border-radius: .35rem .35rem 0 0;
}

/* The placeholder fades in after a beat, so fast loads never flash it. */
.overview-skeleton[b-gqqb2ntvhm] {
    animation: overview-skeleton-in-b-gqqb2ntvhm 300ms ease 150ms backwards;
}

@keyframes overview-skeleton-in-b-gqqb2ntvhm {
    from { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .overview-skeleton[b-gqqb2ntvhm] { animation: none; }
}
/* /Components/Pages/AssistantPage.razor.rz.scp.css */
/* ADR-055 / ADR-065 the full assistant page: a quiet header and the conversation filling the rest of the screen, so the
   chat box stays at the bottom like ChatGPT's own page. Base tokens only (DESIGN_GUIDELINES.md). */
.lf-assistant-page[b-n3mv4xqwq8] {
    background: var(--lf-surface);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-xl);
    display: flex;
    flex-direction: column;
    /* The screen below the top chrome, less the page padding and the breadcrumbs above. */
    height: max(28rem, calc(100dvh - var(--lf-chrome-height) - 8rem));
    overflow: hidden;
}

.lf-assistant-page__header[b-n3mv4xqwq8] {
    align-items: center;
    border-bottom: 1px solid var(--lf-rule);
    display: flex;
    gap: var(--lf-space-3);
    padding: var(--lf-space-3) var(--lf-space-4);
}

.lf-assistant-page__heading[b-n3mv4xqwq8] {
    flex: 1;
    min-width: 0;
}

.lf-assistant-page__heading h1[b-n3mv4xqwq8] {
    color: var(--lf-ink);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
}

.lf-assistant-page__heading p[b-n3mv4xqwq8] {
    color: var(--lf-muted);
    font-size: .75rem;
    margin: 0;
}

@media (max-width: 479.98px) {
    .lf-assistant-page[b-n3mv4xqwq8] {
        border-radius: var(--lf-radius-md);
        height: max(24rem, calc(100dvh - var(--lf-chrome-height) - 6rem));
    }
}
/* /Components/Pages/AssistantPermissions.razor.rz.scp.css */
/* ADR-090: the assistant permissions page. The tool rows, group toggles and save bar reuse the role access styles in app.css
   so this page reads like Administration › Roles; only the role list beside them is its own. */
.assistant-access[b-9frdj09cp4] {
    display: grid;
    gap: 1.25rem;
    min-width: 0;
}

.assistant-access__intro h2[b-9frdj09cp4] {
    margin: 0;
    color: var(--lf-ink);
    font-size: 1.125rem;
    font-weight: 700;
}

.assistant-access__intro p[b-9frdj09cp4] {
    margin: .35rem 0 0;
    max-width: 52rem;
    line-height: 1.6;
}

.assistant-access__layout[b-9frdj09cp4] {
    display: grid;
    align-items: start;
    gap: 1.25rem;
    min-width: 0;
}

/* Narrow screens: the roles scroll sideways above the abilities, inside the page's width. */
.assistant-access__roles[b-9frdj09cp4] {
    min-width: 0;
}

.assistant-access__roles ul[b-9frdj09cp4] {
    display: flex;
    gap: .375rem;
    margin: 0;
    padding: 0 0 .25rem;
    overflow-x: auto;
    list-style: none;
}

.assistant-access__role[b-9frdj09cp4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    min-height: 2.5rem;
    padding: .4rem .75rem;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-sm);
    background: var(--lf-surface);
    color: var(--lf-muted);
    font: inherit;
    font-size: .875rem;
    font-weight: 600;
    text-align: start;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--lf-motion-fast, 150ms) ease-out, border-color var(--lf-motion-fast, 150ms) ease-out;
}

.assistant-access__role:hover[b-9frdj09cp4] {
    background: var(--lf-surface-muted);
    color: var(--lf-ink);
}

.assistant-access__role:focus-visible[b-9frdj09cp4] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 2px;
}

.assistant-access__role[aria-current="true"][b-9frdj09cp4] {
    border-color: var(--lf-ink);
    background: var(--lf-surface-selected);
    color: var(--lf-ink);
}

.assistant-access__role-name[b-9frdj09cp4] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.assistant-access__dot[b-9frdj09cp4] {
    width: .45rem;
    height: .45rem;
    border-radius: var(--lf-radius-pill);
    background: var(--lf-migaro);
}

.assistant-access__role-count[b-9frdj09cp4] {
    color: var(--lf-muted);
    font-size: .75rem;
    font-variant-numeric: tabular-nums;
}

@media (min-width: 64rem) {
    .assistant-access__layout[b-9frdj09cp4] {
        grid-template-columns: 14rem minmax(0, 1fr);
    }

    .assistant-access__roles[b-9frdj09cp4] {
        position: sticky;
        top: 5rem;
    }

    .assistant-access__roles ul[b-9frdj09cp4] {
        display: grid;
        gap: .25rem;
        overflow: visible;
    }

    .assistant-access__role[b-9frdj09cp4] {
        white-space: normal;
    }
}

.assistant-access__panel[b-9frdj09cp4] {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.assistant-access__role-head[b-9frdj09cp4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.assistant-access__role-head h3[b-9frdj09cp4] {
    margin: 0;
    color: var(--lf-ink);
    font-size: 1rem;
    font-weight: 700;
}

.assistant-access__kind-note[b-9frdj09cp4] {
    margin: 0;
    padding: 0 1rem .65rem;
    color: var(--lf-muted);
    font-size: .8125rem;
}

.assistant-access__needs[b-9frdj09cp4] {
    color: var(--lf-muted);
    font-size: .75rem;
}
/* /Components/Pages/AssistantSettings.razor.rz.scp.css */
/* ADR-065: the AI assistant settings. Flat cards on the Base tokens (DESIGN_GUIDELINES.md §6.8); color only for state. */
.assistant-settings[b-kstl0nwgwl] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.assistant-settings__intro h2[b-kstl0nwgwl] {
    margin: 0 0 0.375rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--lf-ink);
}

.assistant-settings__intro p[b-kstl0nwgwl] {
    margin: 0;
    max-width: 72ch;
    line-height: 1.6;
}

.assistant-settings__providers[b-kstl0nwgwl] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr));
    gap: 1rem;
}

.assistant-provider__status[b-kstl0nwgwl] {
    margin-block-end: 1rem;
}

.assistant-provider__facts[b-kstl0nwgwl] {
    display: grid;
    gap: 0.75rem;
    margin: 0;
}

.assistant-provider__facts > div[b-kstl0nwgwl] {
    display: grid;
    grid-template-columns: minmax(8rem, 40%) minmax(0, 1fr);
    gap: 0.75rem;
    padding-block-start: 0.75rem;
    border-block-start: 1px solid var(--lf-rule);
}

.assistant-provider__facts dt[b-kstl0nwgwl] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--lf-muted);
}

.assistant-provider__facts dd[b-kstl0nwgwl] {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--lf-ink);
}

.assistant-settings__note[b-kstl0nwgwl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    color: var(--lf-ink);
}

/* ADR-078: the voice card's facts read as two columns on wide screens; the editor groups input and replies. */
@media (min-width: 48rem) {
    .assistant-voice__facts[b-kstl0nwgwl] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 2rem;
    }
}

.assistant-voice__group[b-kstl0nwgwl] {
    margin: 0.5rem 0 0;
    padding-block-start: 0.75rem;
    border-block-start: 1px solid var(--lf-rule);
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--lf-ink);
}

.assistant-voice__group:first-of-type[b-kstl0nwgwl] {
    margin-block-start: 0;
    padding-block-start: 0;
    border-block-start: 0;
}

@media (max-width: 30rem) {
    .assistant-provider__facts > div[b-kstl0nwgwl] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.25rem;
    }
}
/* /Components/Pages/Documents.razor.rz.scp.css */
/* File-explorer layout for the documents screen: toolbar + address bar, command row,
   a folder/file pane (large icons or details), and a status bar. */
.doc-explorer[b-trpabtce7h] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-lg);
    background: var(--lf-surface);
    box-shadow: var(--lf-shadow-sm);
    overflow: hidden;
    min-height: 32rem;
}

.doc-explorer__toolbar[b-trpabtce7h] {
    display: flex;
    align-items: center;
    gap: var(--lf-space-2);
    padding: var(--lf-space-2) var(--lf-space-3);
    background: var(--lf-surface-muted);
    border-bottom: 1px solid var(--lf-rule);
}

.doc-explorer__address[b-trpabtce7h] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--lf-space-1);
    height: var(--lf-control-height, 2.5rem);
    padding-inline: var(--lf-space-3);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-sm);
    background: var(--lf-surface);
    overflow-x: auto;
    white-space: nowrap;
}

.doc-explorer__address[b-trpabtce7h]  .doc-explorer__address-icon {
    color: var(--lf-brass);
}

.doc-explorer__crumb[b-trpabtce7h] {
    border: 0;
    background: transparent;
    padding: 2px 6px;
    border-radius: var(--lf-radius-sm);
    color: var(--lf-ink);
    font: inherit;
    font-size: 0.875rem;
    cursor: pointer;
}

.doc-explorer__crumb:hover[b-trpabtce7h],
.doc-explorer__crumb:focus-visible[b-trpabtce7h] {
    background: var(--lf-surface-selected);
}

.doc-explorer__crumb[aria-current="page"][b-trpabtce7h],
.doc-explorer__crumb--current[b-trpabtce7h] {
    font-weight: 600;
    cursor: default;
}

.doc-explorer__sep[b-trpabtce7h] {
    color: var(--lf-placeholder);
}

.doc-explorer__search[b-trpabtce7h] {
    flex: 0 1 16rem;
    min-width: 8rem;
    height: var(--lf-control-height, 2.5rem);
    padding-inline: var(--lf-space-3);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-sm);
    background: var(--lf-surface);
    color: var(--lf-ink);
    font: inherit;
    font-size: 0.875rem;
}

.doc-explorer__commands[b-trpabtce7h] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--lf-space-2);
    padding: var(--lf-space-2) var(--lf-space-3);
    border-bottom: 1px solid var(--lf-rule);
}

.doc-explorer__spacer[b-trpabtce7h] {
    flex: 1 1 auto;
}

.doc-explorer__views[b-trpabtce7h] {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-sm);
}

.doc-explorer__views[b-trpabtce7h]  .is-active {
    background: var(--lf-surface-selected);
    color: var(--lf-cedar);
}

.doc-explorer__pane[b-trpabtce7h] {
    flex: 1 1 auto;
    padding: var(--lf-space-4);
    overflow: auto;
}

/* Large icons view */
.doc-explorer__grid[b-trpabtce7h] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    gap: var(--lf-space-2);
}

.doc-explorer__item[b-trpabtce7h] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: var(--lf-space-3) var(--lf-space-2);
    border: 1px solid transparent;
    border-radius: var(--lf-radius-md);
    background: transparent;
    color: var(--lf-ink);
    font: inherit;
    text-align: center;
    cursor: pointer;
    transition: background var(--lf-motion-fast, 120ms) ease, border-color var(--lf-motion-fast, 120ms) ease;
}

.doc-explorer__item:hover[b-trpabtce7h] {
    background: var(--lf-surface-selected);
}

.doc-explorer__item:focus-visible[b-trpabtce7h] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 1px;
    background: var(--lf-surface-selected);
    border-color: var(--lf-cedar);
}

.doc-explorer__glyph[b-trpabtce7h] {
    position: relative;
    display: inline-flex;
    line-height: 1;
}

.doc-explorer__item[data-kind="folder"] .doc-explorer__glyph[b-trpabtce7h],
tr[data-kind="folder"][b-trpabtce7h]  .doc-explorer__row-icon {
    color: var(--lf-brass);
}

.doc-explorer__item[data-kind="document"] .doc-explorer__glyph[b-trpabtce7h],
tr[data-kind="document"][b-trpabtce7h]  .doc-explorer__row-icon {
    color: var(--lf-info);
}

.doc-explorer__item[data-kind="agreement"] .doc-explorer__glyph[b-trpabtce7h],
tr[data-kind="agreement"][b-trpabtce7h]  .doc-explorer__row-icon {
    color: var(--lf-cedar);
}

.doc-explorer__item[data-kind="powerofattorney"] .doc-explorer__glyph[b-trpabtce7h],
tr[data-kind="powerofattorney"][b-trpabtce7h]  .doc-explorer__row-icon {
    color: var(--lf-success);
}

.doc-explorer__badge[b-trpabtce7h] {
    position: absolute;
    inset-block-end: 6px;
    inset-inline-end: -4px;
    min-width: 1.25rem;
    padding: 0 5px;
    border-radius: var(--lf-radius-pill);
    background: var(--lf-surface);
    border: 1px solid var(--lf-rule);
    color: var(--lf-ink);
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.25rem;
}

.doc-explorer__name[b-trpabtce7h] {
    max-width: 100%;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.3;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.doc-explorer__caption[b-trpabtce7h] {
    max-width: 100%;
    color: var(--lf-muted);
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Details view */
.doc-explorer__details[b-trpabtce7h] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.doc-explorer__details th[b-trpabtce7h] {
    text-align: start;
    font-weight: 500;
    color: var(--lf-muted);
    padding: var(--lf-space-2) var(--lf-space-3);
    border-bottom: 1px solid var(--lf-rule);
}

.doc-explorer__details td[b-trpabtce7h] {
    padding: var(--lf-space-2) var(--lf-space-3);
    color: var(--lf-ink);
}

.doc-explorer__details tbody tr[b-trpabtce7h] {
    cursor: pointer;
}

.doc-explorer__details tbody tr:hover[b-trpabtce7h],
.doc-explorer__details tbody tr:focus-visible[b-trpabtce7h] {
    background: var(--lf-surface-selected);
    outline: none;
}

.doc-explorer__row-name[b-trpabtce7h] {
    display: inline-flex;
    align-items: center;
    gap: var(--lf-space-2);
}

.doc-explorer__num[b-trpabtce7h] {
    text-align: end !important;
}

.doc-explorer__status[b-trpabtce7h] {
    padding: var(--lf-space-1) var(--lf-space-3);
    border-top: 1px solid var(--lf-rule);
    background: var(--lf-surface-muted);
    color: var(--lf-muted);
    font-size: 0.75rem;
}

@media (max-width: 640px) {
    .doc-explorer__toolbar[b-trpabtce7h] {
        flex-wrap: wrap;
    }

    .doc-explorer__address[b-trpabtce7h] {
        order: 3;
        flex-basis: 100%;
    }

    .doc-explorer__search[b-trpabtce7h] {
        flex: 1 1 auto;
    }

    .doc-explorer__details th:nth-child(n+3)[b-trpabtce7h],
    .doc-explorer__details td:nth-child(n+3)[b-trpabtce7h] {
        display: none;
    }
}
/* /Components/Pages/DocumentViewer.razor.rz.scp.css */
/* Document viewer: a toolbar, a reading stage that fills the remaining height, and an
   optional info panel on the inline-end side. */
.doc-viewer[b-5q3jknagqp] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 13rem);
    min-height: 28rem;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-lg);
    background: var(--lf-surface);
    box-shadow: var(--lf-shadow-sm);
    overflow: hidden;
}

.doc-viewer__bar[b-5q3jknagqp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--lf-space-2);
    padding: var(--lf-space-2) var(--lf-space-3);
    background: var(--lf-surface-muted);
    border-bottom: 1px solid var(--lf-rule);
}

.doc-viewer__file-icon[b-5q3jknagqp] {
    display: inline-flex;
    color: var(--lf-info);
}

.doc-viewer__title[b-5q3jknagqp] {
    flex: 1 1 12rem;
    min-width: 0;
}

.doc-viewer__title h1[b-5q3jknagqp] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--lf-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.doc-viewer__title p[b-5q3jknagqp] {
    margin: 0;
    font-size: 0.75rem;
    color: var(--lf-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.doc-viewer__version[b-5q3jknagqp] {
    width: 9rem;
}

.doc-viewer__zoom[b-5q3jknagqp] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-sm);
    background: var(--lf-surface);
}

.doc-viewer__zoom-value[b-5q3jknagqp] {
    min-width: 3.5rem;
    border: 0;
    background: transparent;
    color: var(--lf-ink);
    font: inherit;
    font-size: 0.8125rem;
    cursor: pointer;
}

.doc-viewer__bar[b-5q3jknagqp]  .is-active {
    background: var(--lf-surface-selected);
    color: var(--lf-cedar);
}

.doc-viewer__body[b-5q3jknagqp] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
}

.doc-viewer__stage[b-5q3jknagqp] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lf-ground);
    overflow: hidden;
}

.doc-viewer__frame[b-5q3jknagqp] {
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--lf-surface);
}

.doc-viewer__image[b-5q3jknagqp] {
    width: 100%;
    height: 100%;
    overflow: auto;
    padding: var(--lf-space-4);
    text-align: center;
}

.doc-viewer__image img[b-5q3jknagqp] {
    max-width: none;
    box-shadow: var(--lf-shadow-md);
    background: var(--lf-surface);
}

.doc-viewer__image.is-fit[b-5q3jknagqp] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.doc-viewer__image.is-fit img[b-5q3jknagqp] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.doc-viewer__info[b-5q3jknagqp] {
    flex: 0 0 18rem;
    display: flex;
    flex-direction: column;
    gap: var(--lf-space-3);
    padding: var(--lf-space-4);
    border-inline-start: 1px solid var(--lf-rule);
    overflow: auto;
}

.doc-viewer__info--manage[b-5q3jknagqp] {
    flex-basis: 26rem;
}

.doc-viewer__bar[b-5q3jknagqp]  .lf-button.is-active {
    background: var(--lf-surface-selected);
    border-color: var(--lf-cedar);
}

.doc-viewer__description[b-5q3jknagqp] {
    margin: 0;
    padding: var(--lf-space-3);
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface-muted);
    font-size: 0.875rem;
    line-height: 1.6;
}

@media (max-width: 900px) {
    .doc-viewer[b-5q3jknagqp] {
        height: auto;
    }

    .doc-viewer__body[b-5q3jknagqp] {
        flex-direction: column;
    }

    .doc-viewer__stage[b-5q3jknagqp] {
        height: 70vh;
    }

    .doc-viewer__info[b-5q3jknagqp] {
        flex-basis: auto;
        border-inline-start: 0;
        border-top: 1px solid var(--lf-rule);
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Three short period options always fit on one row, even on a phone. */
.overview-period[b-ttyafwalk5]  .lf-segment {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Entrance: cards rise row by row, then left to right within a row. The keyframes live in
   the design system (lf-rise). "backwards" releases the end state so hover can lift the card. */
.overview-row[b-ttyafwalk5]  .lf-card {
    animation: lf-rise 550ms cubic-bezier(.2, .8, .2, 1) backwards;
    animation-delay: calc(var(--lf-row, 0) * 110ms + 150ms);
    transition: border-color var(--lf-motion-fast);
}

.overview-row[b-ttyafwalk5]  .lf-card:nth-child(2) { animation-delay: calc(var(--lf-row, 0) * 110ms + 230ms); }
.overview-row[b-ttyafwalk5]  .lf-card:nth-child(3) { animation-delay: calc(var(--lf-row, 0) * 110ms + 310ms); }

/* Cards stay flat (DESIGN_GUIDELINES.md §1.6): hover only darkens the rule. */
.overview-row[b-ttyafwalk5]  .lf-card:hover {
    border-color: var(--lf-border-strong);
}

.overview-hero[b-ttyafwalk5] {
    animation: lf-rise 600ms cubic-bezier(.2, .8, .2, 1) backwards;
    animation-delay: 450ms;
}

.overview-next li[b-ttyafwalk5] {
    animation: lf-rise 450ms cubic-bezier(.2, .8, .2, 1) backwards;
    animation-delay: calc(var(--lf-i, 0) * 70ms + 600ms);
}

.overview-next a[b-ttyafwalk5] {
    min-height: 2.75rem;
    background-color: var(--lf-surface-muted);
    color: var(--lf-ink);
    transition: background-color var(--lf-motion-fast);
}

.overview-next a:hover[b-ttyafwalk5] {
    background-color: var(--lf-surface-selected);
}

/* Changing the period keeps the current figures, dimmed and still, until the new ones arrive. */
.overview-content[b-ttyafwalk5] {
    transition: opacity 250ms ease, filter 250ms ease;
}

.overview-content.is-refreshing[b-ttyafwalk5] {
    opacity: .55;
    filter: saturate(.6);
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .overview-row[b-ttyafwalk5]  .lf-card,
    .overview-hero[b-ttyafwalk5],
    .overview-next li[b-ttyafwalk5] {
        animation: none;
    }

    .overview-row[b-ttyafwalk5]  .lf-card,
    .overview-next a[b-ttyafwalk5],
    .overview-content[b-ttyafwalk5] {
        transition: none;
    }

}
/* /Components/Pages/OperationalWorkspace.razor.rz.scp.css */
/* Open tasks without a due date, listed under the calendar so they stay reachable. */
.lf-unscheduled__list[b-k49wsq33zo] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: var(--lf-space-2);
}

.lf-unscheduled__item[b-k49wsq33zo] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: var(--lf-space-3);
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface);
    color: var(--lf-ink);
    font: inherit;
    text-align: start;
    cursor: pointer;
    transition: background var(--lf-motion-fast, 120ms) ease, border-color var(--lf-motion-fast, 120ms) ease;
}

.lf-unscheduled__item:hover[b-k49wsq33zo],
.lf-unscheduled__item:focus-visible[b-k49wsq33zo] {
    background: var(--lf-surface-selected);
    border-color: var(--lf-cedar);
}

.lf-unscheduled__title[b-k49wsq33zo] {
    font-size: 0.875rem;
    font-weight: 600;
}
/* /Components/Secrets/ClientSecretsPanel.razor.rz.scp.css */
.client-secrets[b-l0nwtw2bf2] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.client-secrets__toolbar[b-l0nwtw2bf2] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.client-secrets__filters[b-l0nwtw2bf2] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.client-secrets__grid[b-l0nwtw2bf2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.secret-card[b-l0nwtw2bf2] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 168px;
    padding: 20px;
    border: 1px solid var(--lf-rule);
    border-radius: 12px;
    background: var(--lf-surface);
}

.secret-card:not(.is-locked):hover[b-l0nwtw2bf2] {
    border-color: var(--lf-ink);
}

.secret-card.is-locked[b-l0nwtw2bf2] {
    background: var(--lf-surface-muted);
}

.secret-card__open[b-l0nwtw2bf2] {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
}

/* The whole card opens the file. */
.secret-card__open[b-l0nwtw2bf2]::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 12px;
}

.secret-card__open:focus-visible[b-l0nwtw2bf2] {
    outline: none;
}

.secret-card__open:focus-visible[b-l0nwtw2bf2]::after {
    outline: 2px solid var(--lf-focus);
    outline-offset: 2px;
}

.secret-card__open:disabled[b-l0nwtw2bf2] {
    cursor: default;
}

.secret-card__icon[b-l0nwtw2bf2] {
    display: inline-grid;
    place-items: center;
    inline-size: 40px;
    block-size: 40px;
    border-radius: 8px;
    background: var(--lf-surface-selected);
}

.secret-card__title[b-l0nwtw2bf2] {
    font-size: 18px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.secret-card__owner[b-l0nwtw2bf2],
.secret-card__meta[b-l0nwtw2bf2] {
    font-size: 13px;
    color: var(--lf-muted);
}

.secret-card__meta[b-l0nwtw2bf2] {
    margin-block-start: auto;
    padding-block-start: 8px;
    border-block-start: 1px solid var(--lf-rule);
    inline-size: 100%;
}

.secret-card__actions[b-l0nwtw2bf2] {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.secret-card__actions .lf-muted[b-l0nwtw2bf2] {
    flex-basis: 100%;
    font-size: 12px;
}
/* /Components/Secrets/SecretAccessDialog.razor.rz.scp.css */
.secret-access__list[b-j4edpgrl4m] {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--lf-rule);
    border-radius: 12px;
}

.secret-access__list:empty[b-j4edpgrl4m] {
    display: none;
}

.secret-access__row[b-j4edpgrl4m] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    min-height: 52px;
    padding-block: 6px;
    padding-inline: 16px 8px;
}

.secret-access__row + .secret-access__row[b-j4edpgrl4m] {
    border-block-start: 1px solid var(--lf-rule);
}

.secret-access__name[b-j4edpgrl4m] {
    flex: 1;
    min-width: 120px;
    font-weight: 600;
}

.secret-access__flag[b-j4edpgrl4m] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    cursor: pointer;
}

.secret-access__flag input[b-j4edpgrl4m] {
    inline-size: 18px;
    block-size: 18px;
    accent-color: var(--lf-ink);
}
/* /Components/Secrets/SecretFieldListEditor.razor.rz.scp.css */
.secret-fields[b-4tel05s2mx] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.secret-fields__head[b-4tel05s2mx] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 12px;
}

.secret-fields__head h3[b-4tel05s2mx] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--lf-muted);
}

.secret-fields__head .lf-muted[b-4tel05s2mx] {
    font-size: 12px;
}

.secret-fields__empty[b-4tel05s2mx] {
    margin: 0;
    padding: 16px;
    border: 1.5px dashed var(--lf-border-strong);
    border-radius: 12px;
    color: var(--lf-muted);
    text-align: center;
}

.secret-fields__list[b-4tel05s2mx] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.secret-field[b-4tel05s2mx] {
    border: 1px solid var(--lf-rule);
    border-radius: 12px;
    background: var(--lf-surface);
}

.secret-field__bar[b-4tel05s2mx] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 52px;
    padding-block: 6px;
    padding-inline: 16px 8px;
    border-block-end: 1px solid var(--lf-rule);
}

.secret-field__title[b-4tel05s2mx] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.secret-field__tools[b-4tel05s2mx] {
    display: inline-flex;
    align-items: center;
    margin-inline-start: auto;
}

.secret-field__grid[b-4tel05s2mx] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
    padding: 16px;
}

.secret-field__flags[b-4tel05s2mx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
    padding-block-start: 22px;
}

.secret-field__flag[b-4tel05s2mx] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.secret-field__flag input[b-4tel05s2mx] {
    inline-size: 18px;
    block-size: 18px;
    accent-color: var(--lf-ink);
}

.secret-field__flag:has(input:disabled)[b-4tel05s2mx] {
    cursor: not-allowed;
    color: var(--lf-muted);
}

.secret-fields__add[b-4tel05s2mx] {
    display: flex;
}

@media (max-width: 860px) {
    .secret-field__grid[b-4tel05s2mx] {
        grid-template-columns: minmax(0, 1fr);
    }

    .secret-field__flags[b-4tel05s2mx] {
        padding-block-start: 0;
    }
}
/* /Components/Secrets/SecretFileDialog.razor.rz.scp.css */
.secret-values[b-und2dpln5i] {
    display: flex;
    flex-direction: column;
    margin: 0;
    border: 1px solid var(--lf-rule);
    border-radius: 12px;
}

.secret-values__row[b-und2dpln5i] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding-block: 8px;
    padding-inline: 16px 8px;
}

.secret-values__row + .secret-values__row[b-und2dpln5i] {
    border-block-start: 1px solid var(--lf-rule);
}

.secret-values__row dt[b-und2dpln5i] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    min-width: 0;
}

.secret-values__row dd[b-und2dpln5i] {
    margin: 0;
    min-width: 0;
}

.secret-values__plain[b-und2dpln5i] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.secret-values__note[b-und2dpln5i] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 12px;
}

@media (max-width: 860px) {
    .secret-values__row[b-und2dpln5i] {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }
}
/* /Components/Secrets/SecretFileEditor.razor.rz.scp.css */
.secret-editor__values[b-piyrj9zzx4] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-block-start: 8px;
    border-block-start: 1px solid var(--lf-rule);
}

.secret-editor__values-head[b-piyrj9zzx4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.secret-editor__values-head h3[b-piyrj9zzx4] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--lf-muted);
}

.secret-editor__input[b-piyrj9zzx4] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.secret-editor__input > input[b-piyrj9zzx4],
.secret-editor__input > textarea[b-piyrj9zzx4] {
    flex: 1;
    min-width: 0;
}
/* /Components/Settings/FirmProfileSettings.razor.rz.scp.css */
/* Settings › General (ADR-072): the form on the main side, the logo and a live invoice-header preview beside it on wide screens. */
.firm-settings[b-l2bplqoxhb] {
    display: grid;
    gap: 1rem;
    align-items: start;
}

@media (min-width: 1100px) {
    .firm-settings[b-l2bplqoxhb] {
        grid-template-columns: minmax(0, 1fr) 20rem;
    }

    .firm-settings__aside[b-l2bplqoxhb] {
        position: sticky;
        top: 1rem;
    }
}

.firm-settings__main[b-l2bplqoxhb],
.firm-settings__aside[b-l2bplqoxhb] {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.firm-settings__actions[b-l2bplqoxhb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
}

.firm-settings__logo[b-l2bplqoxhb] {
    display: grid;
    place-items: center;
    min-height: 7.5rem;
    padding: 1rem;
    border: 1px dashed var(--lf-border-strong);
    border-radius: var(--lf-radius-md);
    background: var(--lf-surface-muted);
}

.firm-settings__logo-image[b-l2bplqoxhb] {
    max-width: 100%;
    max-height: 6rem;
    object-fit: contain;
}

.firm-settings__logo-empty[b-l2bplqoxhb] {
    display: grid;
    justify-items: center;
    gap: .25rem;
    color: var(--lf-muted);
    font-size: .875rem;
}

.firm-settings__logo-actions[b-l2bplqoxhb] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-block: .75rem .25rem;
}

.firm-settings__logo-actions label[b-l2bplqoxhb] {
    cursor: pointer;
}

.firm-settings__logo-actions label:focus-within[b-l2bplqoxhb] {
    outline: 2px solid var(--lf-focus);
    outline-offset: 2px;
}

.firm-settings__preview[b-l2bplqoxhb] {
    display: grid;
    gap: .375rem;
    padding: 1rem;
    border: 1px solid var(--lf-rule);
    border-radius: var(--lf-radius-sm);
    background: var(--lf-surface);
    font-size: .8125rem;
}

.firm-settings__preview-head[b-l2bplqoxhb] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--lf-ink);
}

.firm-settings__preview-logo[b-l2bplqoxhb] {
    max-width: 4.5rem;
    max-height: 3rem;
    object-fit: contain;
}

.firm-settings__preview-line[b-l2bplqoxhb] {
    color: var(--lf-muted);
}

.firm-settings__preview-footer[b-l2bplqoxhb] {
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px solid var(--lf-rule);
    color: var(--lf-muted);
    white-space: pre-line;
}
