/* /Components/Account/Pages/Login.razor.rz.scp.css */
/*
 * The login page intentionally contains no page-specific visual rules.
 * Its complete visual language is provided by /css/archex-components.css.
 * This keeps the approved login page as the reusable ArchEx UI standard.
 */
/* /Components/Account/Pages/Manage/EnableAuthenticator.razor.rz.scp.css */
/* THE QR IS THE POINT OF THIS PAGE, SO IT IS THE BIGGEST THING ON IT.

   Adam Deane, looking at the stock page: "I need this to be simple you have made it so complex."
   The template's own layout buries a placeholder between two paragraphs of Microsoft links. The
   code is now rendered as an SVG and given room to be scanned from a phone held at arm's length. */
.ax-authqr[b-sodqz06x5e] {
    display: inline-block;
    padding: 12px;
    margin: 8px 0 12px;
    background: #fff;
    border: 1px solid var(--color-divider, #d8dbd9);
    border-radius: 10px;
    line-height: 0;
}

    .ax-authqr svg[b-sodqz06x5e] {
        display: block;
        width: 210px;
        height: 210px;
    }

/* The fallback, for a phone that will not scan. Deliberately quieter than the code above it. */
.ax-authqr-key[b-sodqz06x5e] {
    font-size: .85rem;
    line-height: 1.5;
    color: var(--color-gunmetal, #5a615d);
    max-width: 52ch;
}

    .ax-authqr-key kbd[b-sodqz06x5e] {
        display: inline-block;
        margin-top: 4px;
        padding: 4px 8px;
        font-size: .95rem;
        letter-spacing: .06em;
        background: var(--color-hairline, #eceeed);
        border-radius: 6px;
        color: var(--color-ink, #111);
    }
/* /Components/Account/Shared/LoginLayout.razor.rz.scp.css */
.login-layout[b-zcv242fj8s] {
    min-height: 100dvh;
    background: var(--archex-bg, #090d0b);
}

[b-zcv242fj8s] #blazor-error-ui {
    z-index: 1000;
}
/* /Components/Communications/CommunicationSummaryPanel.razor.rz.scp.css */
.communication-summary[b-isk7h9dqq3] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.communication-summary article[b-isk7h9dqq3] { padding:1rem; border:1px solid var(--color-divider); border-radius:var(--archex-radius-medium); background:#fff; }
.communication-summary span[b-isk7h9dqq3],.communication-summary small[b-isk7h9dqq3] { display:block; color:var(--color-gunmetal); }
.communication-summary strong[b-isk7h9dqq3] { display:block; margin:.25rem 0; font-size:1.8rem; color:#263229; }
.communication-summary span[b-isk7h9dqq3] { font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.communication-summary small[b-isk7h9dqq3] { font-size:.78rem; }
@media (max-width:1000px){.communication-summary[b-isk7h9dqq3]{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.communication-summary[b-isk7h9dqq3]{grid-template-columns:1fr}}
/* /Components/Communications/EmailCard.razor.rz.scp.css */
.email-card[b-hgpyrpaeki] {
    padding: 1rem;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
    min-width: 0;
}

.email-card.requires-review[b-hgpyrpaeki] { border-left: 4px solid var(--color-primary); }

.email-card-header[b-hgpyrpaeki] { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.email-card h3[b-hgpyrpaeki] { margin: .2rem 0; font-size: 1rem; }

.email-card time[b-hgpyrpaeki],
.sender[b-hgpyrpaeki],
.email-card p[b-hgpyrpaeki],
.email-card footer[b-hgpyrpaeki] { color: var(--color-gunmetal); }

.direction[b-hgpyrpaeki] {
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-primary-dark);
}

/* Three lines of the message, so a list of twenty stays a list rather than twenty essays. The full
   text is on the message itself. */
.email-body[b-hgpyrpaeki] {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: .45rem 0 0;
    color: var(--color-charcoal);
    line-height: 1.5;
}

.email-provenance[b-hgpyrpaeki] { margin-top: .55rem; }

.email-provenance > summary[b-hgpyrpaeki] {
    cursor: pointer;
    color: var(--color-gunmetal);
    font-size: .74rem;
    font-weight: 700;
}

.email-provenance > summary:hover[b-hgpyrpaeki] { color: var(--color-primary-dark); }

.email-provenance p[b-hgpyrpaeki] {
    margin: .4rem 0 0;
    font-size: .76rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.email-card footer[b-hgpyrpaeki] {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: .7rem;
    padding-top: .7rem;
    border-top: 1px solid var(--color-divider);
    font-size: .78rem;
}

.email-card footer strong[b-hgpyrpaeki] { color: var(--color-primary-dark); }

@media (max-width: 650px) {
    .email-card-header[b-hgpyrpaeki] { display: block; }
    .email-card time[b-hgpyrpaeki] { display: block; margin-top: .3rem; }
}
/* /Components/Communications/EmailComposer.razor.rz.scp.css */
/* The one email form. A card: fields stacked, a real message box, the signature as it will be sent,
   the quoted original folded away, and the two buttons where every mail program puts them. */

.ax-composer[b-dk5u692z0f] {
    display: grid;
    gap: 14px;
    padding: 20px 22px;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    box-shadow: var(--archex-shadow);
}

.ax-composer-head[b-dk5u692z0f] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 16px;
}

.ax-composer .ax-composer-title[b-dk5u692z0f] {
    margin: 0;
}

.ax-composer-from[b-dk5u692z0f] {
    margin: 0;
    font-size: var(--archex-text-sm);
    color: var(--archex-muted);
}

/* To, Cc and Subject: one row each, the label beside its box. The boxes keep the shared input look
   (archex-components.css forces it with !important), so this form matches every other form in
   ArchEx rather than arguing with it. */
.ax-composer-fields[b-dk5u692z0f] {
    display: grid;
    gap: 8px;
}

.ax-composer-field[b-dk5u692z0f] {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    margin: 0;
}

.ax-composer-field > span[b-dk5u692z0f] {
    font-size: var(--archex-text-sm);
    font-weight: 700;
    color: var(--archex-muted);
    text-align: right;
}

.ax-composer-field input[b-dk5u692z0f] {
    width: 100%;
    min-width: 0;
    margin: 0;
}

.ax-composer textarea.ax-composer-body[b-dk5u692z0f] {
    width: 100%;
    min-height: 240px;
    margin: 0;
    line-height: 1.55;
    resize: vertical;
}

/* ---- Writing help from the local AI ---- */
.ax-composer-ai[b-dk5u692z0f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.ax-composer-ai-busy[b-dk5u692z0f] {
    font-size: var(--archex-text-sm);
    color: var(--archex-muted);
    font-style: italic;
}

.ax-composer-ai-ask[b-dk5u692z0f] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ax-composer-ai-ask input[b-dk5u692z0f] {
    flex: 1 1 18rem;
    min-width: 0;
    margin: 0;
}

.ax-composer-ai-warning[b-dk5u692z0f] {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #B91C1C;
    border-left-width: 4px;
    border-radius: 8px;
    background: #FEF2F2;
    color: #7F1D1D;
    font-size: var(--archex-text-sm);
    overflow-wrap: anywhere;
}

/* ---- Files ---- */
.ax-composer-files[b-dk5u692z0f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.ax-composer-attach[b-dk5u692z0f] {
    position: relative;
    cursor: pointer;
}

/* The native file box stays in the page, reachable from the keyboard, but the label is what shows. */
/* ---- Attaching the job's own paperwork ------------------------------------
   Adam Deane: "a smart attachment part like servicem8 that allows you to simple
   click on the attached files on the right of the email and its attachs it." */
.ax-composer-jobfiles[b-dk5u692z0f] { width: 100%; margin-top: 8px; }

.ax-composer-jobfiles-open[b-dk5u692z0f] {
    border: 0;
    background: none;
    padding: 2px 0;
    font: 700 .76rem var(--font-body);
    color: var(--color-primary-dark);
    text-decoration: underline;
    cursor: pointer;
}

.ax-composer-jobfiles-find[b-dk5u692z0f] {
    width: 100%;
    margin: 8px 0 6px;
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid #ddd;
    border-radius: var(--archex-radius-small);
    font-size: .82rem;
}

.ax-composer-jobfiles-list[b-dk5u692z0f] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: #fff;
}

.ax-composer-jobfile[b-dk5u692z0f] {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 10px;
    border: 0;
    border-bottom: 1px solid var(--color-divider);
    background: none;
    text-align: left;
    font: 400 .8rem var(--font-body);
    color: var(--color-charcoal);
    cursor: pointer;
}

    .ax-composer-jobfile:hover[b-dk5u692z0f] { background: var(--color-panel); }

    /* ALREADY ON THE EMAIL. Said with a tick and a colour, never colour alone. */
    .ax-composer-jobfile.on[b-dk5u692z0f] { background: #fff6ef; color: var(--color-primary-dark); font-weight: 700; }

    .ax-composer-jobfile-tick[b-dk5u692z0f] { font-weight: 700; color: var(--color-primary); }

    .ax-composer-jobfile-name[b-dk5u692z0f] {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .ax-composer-jobfile small[b-dk5u692z0f] { color: var(--color-gunmetal); white-space: nowrap; }

.ax-composer-attach[b-dk5u692z0f]  .ax-composer-file-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.ax-composer-file-list[b-dk5u692z0f] {
    display: flex;
    flex-basis: 100%;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ax-composer-file-list li[b-dk5u692z0f] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid var(--archex-border-soft, #E6E3DE);
    border-radius: 10px;
    background: #FAF8F5;
    font-size: var(--archex-text-sm);
}

.ax-composer-file-name[b-dk5u692z0f] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ax-composer-file-list small[b-dk5u692z0f] {
    color: var(--archex-muted);
    font-size: var(--archex-text-xs);
}

.ax-page .ax-composer .ax-composer-file-list button.ax-composer-file-remove[b-dk5u692z0f] {
    padding: 0;
    border: 0;
    background: transparent;
    color: #8A2F2F;
    font-size: var(--archex-text-xs);
    font-weight: 700;
    text-decoration: underline;
}

/* ---- The job this email is filed to ---- */
.ax-composer-job[b-dk5u692z0f] {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    margin: 0;
}

.ax-composer-job > span[b-dk5u692z0f] {
    font-size: var(--archex-text-sm);
    font-weight: 700;
    color: var(--archex-muted);
}

.ax-composer-job select[b-dk5u692z0f] {
    width: 100%;
    min-width: 0;
    margin: 0;
}

.ax-composer-signature[b-dk5u692z0f] {
    padding: 12px 14px;
    border: 1px dashed var(--archex-border);
    border-radius: 10px;
    background: #FAF8F5;
}

.ax-composer-note[b-dk5u692z0f] {
    margin: 0 0 8px;
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
}

.ax-composer-signature-preview[b-dk5u692z0f] {
    overflow-x: auto;
}

.ax-composer-quote[b-dk5u692z0f] {
    padding: 10px 14px;
    border-left: 3px solid var(--archex-border);
    background: #FAF8F5;
    border-radius: 0 10px 10px 0;
    font-size: var(--archex-text-sm);
    color: var(--archex-muted);
}

.ax-composer-quote summary[b-dk5u692z0f] {
    cursor: pointer;
}

.ax-composer-quote-body[b-dk5u692z0f] {
    max-height: 320px;
    margin-top: 10px;
    overflow: auto;
    overflow-wrap: anywhere;
}

.ax-composer-quote-body pre[b-dk5u692z0f] {
    margin: 0;
    font-family: inherit;
    white-space: pre-wrap;
}

.ax-composer-actions[b-dk5u692z0f] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

@media (max-width: 600px) {
    .ax-composer[b-dk5u692z0f] {
        padding: 16px;
    }

    .ax-composer-field[b-dk5u692z0f] {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }

    .ax-composer-field > span[b-dk5u692z0f] {
        text-align: left;
    }

    .ax-composer-job[b-dk5u692z0f] {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }

    .ax-composer-actions > *[b-dk5u692z0f] {
        flex: 1 1 auto;
    }
}
/* /Components/Communications/EmailList.razor.rz.scp.css */
.email-list[b-4v12ye6vbl]{display:grid;gap:.75rem}.empty-list[b-4v12ye6vbl]{text-align:center;padding:2.5rem 1rem;border:1px dashed var(--color-divider);border-radius:var(--archex-radius-medium);background:var(--color-panel)}.empty-list h3[b-4v12ye6vbl]{margin-top:0}
/* /Components/External/PublicPortalLayout.razor.rz.scp.css */
/* The public shell.

   THE SECOND ATTEMPT (24 September 2026). The first drew a stratigraphic section across the bottom
   of the page - soil horizons, an excavation grid. Adam Deane: "the background looks shit, not
   professional at all, just shit." He was right. A drawn illustration behind a business form reads
   as a template, and a diagram of dirt does not say "these people know what they are doing" - it
   says somebody wanted the page to be interesting.

   A heritage consultancy's front door should look expensive and calm. So: no illustration at all.
   A dark ground with some depth in it, the card floating on it, and nothing competing with the
   questions somebody has to answer. Restraint is the professional choice, and the honest one until
   there is a real photograph worth using - which is Adam's to choose, not mine. */

.public-portal[b-jutmsztvky] {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    color: #f7f2e8;

    /* Two very soft pools of warmth on near-black: one behind the mark, one low and to the right.
       It reads as a lit room rather than a flat fill, and you would have to look for it to see it. */
    background:
        radial-gradient(1200px 620px at 12% -8%, #1d1a17 0%, rgba(29, 26, 23, 0) 62%),
        radial-gradient(900px 700px at 96% 108%, #1a1815 0%, rgba(26, 24, 21, 0) 60%),
        #0c0e0d;
    background-attachment: fixed;
}

/* ---- the shell ------------------------------------------------------------ */
.public-portal-header[b-jutmsztvky],
.public-portal-body[b-jutmsztvky],
.public-portal-footer[b-jutmsztvky] { position: relative; z-index: 1; }

.public-portal-header[b-jutmsztvky] { padding: 34px 28px 4px; }

/* The mark sits on a light plate, because the only transparent logo file carries the practice's
   ochre and dark type - see the note in the layout. The plate echoes the card below it. */
.logo-plate[b-jutmsztvky] {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 12px;
    background: #fbf8f2;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

.public-portal-header img[b-jutmsztvky] {
    width: 190px;
    max-width: 52vw;
    height: auto;
    display: block;
}

.public-portal-body[b-jutmsztvky] {
    flex: 1;
    display: flex;
    justify-content: center;
    padding: 26px 16px 56px;
}

.public-portal-footer[b-jutmsztvky] {
    text-align: center;
    padding: 18px 16px 30px;
    color: #7f877e;
    letter-spacing: .04em;
}

@media (max-width: 640px) {
    .public-portal-header[b-jutmsztvky] { padding: 22px 18px 4px; }
    .public-portal-header img[b-jutmsztvky] { width: 150px; }
}
/* /Components/Feedback/FeedbackWidget.razor.rz.scp.css */
/* Above the pop-ups (1 October 2026). At 850 it sat under the job diary, which opens as a pop-up at
   900 - Adam Deane: "it isnt within a job diary so that is hard" - and under the enquiry pop-up the
   same way. 950 clears both; it stays under Blazor's error bar (1000), whose close button sits in
   this same corner, and under its own dialog (1200). */
.feedback-fab[b-ce7gx9121l] {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 950;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-family:var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    box-shadow:var(--archex-shadow);
    cursor: pointer;
}
.feedback-fab:hover[b-ce7gx9121l] { background: var(--color-primary-dark); }
.feedback-fab > span:first-child[b-ce7gx9121l] { font-size: 20px; line-height: 1; }
.feedback-backdrop[b-ce7gx9121l] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 16px;
    background: rgba(18,18,18,.58);
}
.feedback-dialog[b-ce7gx9121l] {
    width: min(560px, 100%);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    border-radius:var(--archex-radius-small);
    background: #fff;
    color: var(--color-charcoal);
    box-shadow:var(--archex-shadow-hover);
}
.feedback-dialog-header[b-ce7gx9121l] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    padding: 24px 24px 16px;
    border-bottom: 1px solid var(--color-divider);
}
.feedback-kicker[b-ce7gx9121l] { margin: 0 0 6px; color: var(--color-primary-dark); font:700 11px/1.3 var(--font-heading); letter-spacing: .14em; }
.feedback-dialog h2[b-ce7gx9121l] { margin: 0; font:700 24px/1.2 var(--font-heading); }
.feedback-close[b-ce7gx9121l] { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); background:#fff; font-size: 28px; cursor:pointer; }
.feedback-location[b-ce7gx9121l] { margin: 20px 24px 16px; padding: 14px 16px; border-radius:var(--archex-radius-small); background:#f2ede6; display:grid; gap:3px; }
.feedback-location strong[b-ce7gx9121l] { font:700 12px var(--font-heading); text-transform: uppercase; letter-spacing:.08em; color:var(--color-primary-dark); }
.feedback-location span[b-ce7gx9121l] { font:700 15px var(--font-body); }
.feedback-location small[b-ce7gx9121l] { overflow-wrap:anywhere; color:var(--color-gunmetal); }
.feedback-label[b-ce7gx9121l] { display:block; margin: 0 24px 8px; font:700 13px var(--font-heading); }
.feedback-textarea[b-ce7gx9121l] { box-sizing:border-box; display:block; width:calc(100% - 48px); min-height:150px; margin:0 24px; padding:14px; border:1px solid var(--color-divider); border-radius:var(--archex-radius-small); font:400 16px/1.45 var(--font-body); resize:vertical; }
.feedback-textarea:focus[b-ce7gx9121l] { outline:2px solid var(--color-primary); outline-offset:1px; border-color:var(--color-primary); }
.feedback-character-count[b-ce7gx9121l] { margin:6px 24px 0; text-align:right; color:var(--color-gunmetal); font:400 12px var(--font-body); }
.feedback-gps[b-ce7gx9121l] { margin:12px 24px 0; color:var(--color-charcoal); font:400 13px/1.4 var(--font-body); }
.feedback-gps.muted[b-ce7gx9121l] { color:var(--color-gunmetal); }
.feedback-message[b-ce7gx9121l] { margin:12px 24px 0; padding:10px 12px; border-radius:var(--archex-radius-small); font:700 13px var(--font-body); }
.feedback-message.error[b-ce7gx9121l] { background:#fdeaea; color:#a51f1f; }
.feedback-message.success[b-ce7gx9121l] { background:#edf7ed; color:#2e7d32; }
.feedback-actions[b-ce7gx9121l] { display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:20px 24px 24px; }
.feedback-review-link[b-ce7gx9121l] { margin-right:auto; color:var(--color-primary-dark); font:700 13px var(--font-body); text-decoration:none; }
.feedback-cancel[b-ce7gx9121l],.feedback-submit[b-ce7gx9121l] { min-height:44px; padding:0 16px; border-radius:var(--archex-radius-small); font:700 14px var(--font-heading); cursor:pointer; }
.feedback-cancel[b-ce7gx9121l] { border:1px solid #3b3b3b; background:#fff; color:var(--color-charcoal); }
.feedback-submit[b-ce7gx9121l] { border:1px solid var(--color-primary); background:var(--color-primary); color:#fff; }
.feedback-submit:disabled[b-ce7gx9121l] { opacity:.55; cursor:not-allowed; }
@media(max-width:600px){
    .feedback-fab[b-ce7gx9121l] { right:14px; bottom:82px; width:48px; padding:0; justify-content:center; }
    .feedback-fab-label[b-ce7gx9121l] { display:none; }
    .feedback-backdrop[b-ce7gx9121l] { align-items:end; padding:0; }
    .feedback-dialog[b-ce7gx9121l] { width:100%; max-height:92dvh; border-radius:16px 16px 0 0; }
    .feedback-dialog-header[b-ce7gx9121l] { padding:20px 18px 14px; }
    .feedback-location[b-ce7gx9121l] { margin:16px 18px 14px; }
    .feedback-label[b-ce7gx9121l] { margin-left:18px; margin-right:18px; }
    .feedback-textarea[b-ce7gx9121l] { width:calc(100% - 36px); margin:0 18px; min-height:180px; }
    .feedback-character-count[b-ce7gx9121l],.feedback-gps[b-ce7gx9121l],.feedback-message[b-ce7gx9121l] { margin-left:18px; margin-right:18px; }
    .feedback-actions[b-ce7gx9121l] { display:grid; grid-template-columns:1fr 1fr; padding:16px 18px calc(18px + env(safe-area-inset-bottom)); }
    .feedback-review-link[b-ce7gx9121l] { grid-column:1 / -1; margin:0 0 4px; text-align:center; }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.archex-layout[b-ey5xlsi213] {
    box-sizing: border-box;
    min-height: 100vh;
    width: 100%;
    overflow-x: clip;
    background: #f5f1eb;
}

.archex-header[b-ey5xlsi213] {
    box-sizing: border-box;
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
    background: #151615;
    color: #fff;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 8px 24px rgba(0, 0, 0, .16);
}

.archex-main[b-ey5xlsi213] {
    min-width: 0;
    min-height: calc(100vh - 76px);
    width: 100%;
    overflow-x: hidden;
    background: #f5f1eb;
}

#blazor-error-ui[b-ey5xlsi213] {
    display: none;
    position: fixed;
    right: 20px;
    bottom: 20px;
    left: 20px;
    z-index: 1000;
    padding: 16px 20px;
    border-radius:var(--archex-radius-small);
    background: #fff3cd;
    color: #4b3c00;
    box-shadow:var(--archex-shadow-hover);
}

#blazor-error-ui .dismiss[b-ey5xlsi213] {
    position: absolute;
    right: 14px;
    cursor: pointer;
}

@media (max-width: 850px) {
    .archex-header[b-ey5xlsi213] { position: relative; }
    .archex-main[b-ey5xlsi213] { min-height: 100dvh; }
}

/* The approved landing-page shell uses the light ArchEx top bar. */
.archex-header[b-ey5xlsi213] {
    background: var(--color-surface);
    color: var(--color-charcoal);
    box-shadow:var(--archex-shadow);
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-198yajfe3t],
.components-reconnect-repeated-attempt-visible[b-198yajfe3t],
.components-reconnect-failed-visible[b-198yajfe3t],
.components-pause-visible[b-198yajfe3t],
.components-resume-failed-visible[b-198yajfe3t],
.components-rejoining-animation[b-198yajfe3t] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-retrying[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-failed[b-198yajfe3t],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-198yajfe3t] {
    display: block;
}


#components-reconnect-modal[b-198yajfe3t] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow:var(--archex-shadow);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-198yajfe3t 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-198yajfe3t 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-198yajfe3t 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-198yajfe3t]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-198yajfe3t 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-198yajfe3t {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-198yajfe3t {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-198yajfe3t {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-198yajfe3t] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-198yajfe3t] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-198yajfe3t] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-198yajfe3t] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-198yajfe3t] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-198yajfe3t] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-198yajfe3t] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-198yajfe3t 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-198yajfe3t] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-198yajfe3t {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}

/* ================================================================================================
   ARCHEX BRANDING (20 September 2026)
   ------------------------------------------------------------------------------------------------
   Everything above this line is the stock Blazor template: a white box with generic text. It is
   also the ONLY screen a person sees when the connection drops, which makes it the worst possible
   moment for the application to stop looking like itself - that is exactly when somebody decides
   whether the thing is trustworthy or broken.

   Overrides only. The template's show/hide logic and its state classes are untouched, so a future
   framework update still drives it correctly.
   ============================================================================================== */

#components-reconnect-modal[b-198yajfe3t] {
    width: min(23rem, calc(100vw - 2rem));
    padding: var(--space-5, 32px);
    border-radius: var(--radius-component, 8px);
    background-color: var(--color-surface, #fff);
    box-shadow: var(--shadow-dialog, 0 10px 30px rgba(0, 0, 0, .15));
    color: var(--color-charcoal, #1F1F1F);
    font-family: var(--font-body, Lato, Arial, sans-serif);
    text-align: center;
    /* The brand edge, so it reads as ArchEx at a glance rather than as a browser dialog. */
    border-top: 4px solid var(--color-primary, var(--color-primary));
}

#components-reconnect-modal p[b-198yajfe3t] {
    margin: 0 0 var(--space-3, 16px);
    font-size: var(--archex-text-base, 15px);
    line-height: 1.5;
}

#components-reconnect-modal[b-198yajfe3t]::backdrop {
    /* Deeper than the stock 0.4, so the page behind reads as genuinely out of reach. */
    background-color: rgba(18, 18, 18, .55);
    backdrop-filter: blur(2px);
}

/* The stock "rejoining" indicator is two bare divs. Banded like the range pole used everywhere
   else in ArchEx for something in progress, so the visual language holds even here. */
.components-rejoining-animation[b-198yajfe3t] {
    position: relative;
    width: 100%;
    height: 10px;
    margin: 0 0 var(--space-4, 24px);
    overflow: hidden;
    border-radius: 5px;
    background: var(--color-panel, #F2EDE6);
}

.components-rejoining-animation > div[b-198yajfe3t] {
    position: absolute;
    inset: 0 -36px;
    border-radius: 0;
    background: repeating-linear-gradient(
        90deg,
        var(--color-primary-dark, var(--color-primary-dark)) 0 14px,
        var(--color-surface, #fff) 14px 28px);
    animation: ax-reconnect-march-b-198yajfe3t 1s linear infinite;
}

/* The template ships two of them; the second would sit exactly on the first. */
.components-rejoining-animation > div:nth-child(2)[b-198yajfe3t] { display: none; }

@keyframes ax-reconnect-march-b-198yajfe3t {
    to { transform: translateX(-28px); }
}

#components-reconnect-modal button[b-198yajfe3t] {
    min-height: 44px;                       /* a real touch target */
    padding: .7rem 1.2rem;
    border: 0;
    border-radius:var(--archex-radius-small);
    background: var(--color-primary, var(--color-primary));
    color: var(--color-surface, #fff);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

#components-reconnect-modal button:hover[b-198yajfe3t] { background: var(--color-primary-dark, var(--color-primary-dark)); }

#components-reconnect-modal button:focus-visible[b-198yajfe3t] {
    outline: 3px solid var(--color-primary, var(--color-primary));
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .components-rejoining-animation > div[b-198yajfe3t] {
        animation: ax-reconnect-breathe-b-198yajfe3t 1.6s ease-in-out infinite;
        background: var(--color-primary-dark, var(--color-primary-dark));
    }

    @keyframes ax-reconnect-breathe-b-198yajfe3t {
        0%, 100% { opacity: .35; }
        50%      { opacity: 1; }
    }
}
/* /Components/Layout/SheetLayout.razor.rz.scp.css */
/* The whole viewport, nothing else. A neutral grey behind the sheet so the white of the paper is
   obvious on screen, and pure white when it actually prints. */
.ax-sheet-host[b-73rboshvk0] {
    min-height: 100vh;
    background: #e9eae8;
}

@media print {
    .ax-sheet-host[b-73rboshvk0] { background: #fff; min-height: 0; }
}
/* /Components/Pages/AchrisEvidenceWorkspace.razor.rz.scp.css */
/* ACHRIS evidence intake.
   One long column: obtain, drop, read what arrived, then what is still open. */

.aei[b-8p9voo1spu] { display: flex; flex-direction: column; gap: 22px; }

.aei-head[b-8p9voo1spu] { display: flex; flex-direction: column; gap: 2px; }
.aei-head h1[b-8p9voo1spu] { margin: 2px 0 0; font-size: 1.5rem; }

.aei-gate[b-8p9voo1spu],
.aei-guide[b-8p9voo1spu],
.aei-drop[b-8p9voo1spu],
.aei-results[b-8p9voo1spu],
.aei-checklist[b-8p9voo1spu] {
    border: 1px solid var(--ax-border, var(--color-divider));
    border-radius:var(--archex-radius-small);
    padding: 16px 18px;
    background: var(--ax-surface, #fff);
}

.aei-gate h2[b-8p9voo1spu],
.aei-guide h2[b-8p9voo1spu],
.aei-drop h2[b-8p9voo1spu],
.aei-results h2[b-8p9voo1spu],
.aei-checklist h2[b-8p9voo1spu] {
    margin: 0 0 10px;
    font-size: 1.05rem;
}

/* The gate is the precondition, not a warning to skim past. */
.aei-gate[b-8p9voo1spu] { border-left: 4px solid var(--ax-warn, #b06a00); }

.aei-steps[b-8p9voo1spu] { margin: 8px 0 0; padding-left: 20px; display: grid; gap: 10px; }
.aei-steps li[b-8p9voo1spu] { line-height: 1.45; }
.aei-steps li strong[b-8p9voo1spu] { display: block; }

.aei-drop input[type="file"][b-8p9voo1spu] {
    display: block;
    width: 100%;
    padding: 22px;
    margin-top: 10px;
    border: 2px dashed var(--ax-border, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--ax-surface-2, var(--color-panel));
    cursor: pointer;
}

.aei-results table[b-8p9voo1spu] { width: 100%; }

/* Three parallel questions - what is missing, what cannot be had, what is unclear -
   so none of them hides behind the others. */
.aei-columns[b-8p9voo1spu] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
    align-items: start;
}

.aei-columns h3[b-8p9voo1spu] { margin: 0 0 6px; font-size: 0.95rem; }
.aei-columns ul[b-8p9voo1spu] { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 8px; }
.aei-columns li[b-8p9voo1spu] { line-height: 1.4; }
.aei-columns li span[b-8p9voo1spu] { display: block; }

/* Reading progress. Stated as arithmetic rather than a bar: a bar at 90% tells you
   nothing about whether the missing 10% was attempted. */
.aei-reading[b-8p9voo1spu] {
    border: 1px solid var(--ax-border, #d8d8d4);
    border-radius:var(--archex-radius-small);
    padding: 16px 18px;
    background: var(--ax-surface, #fff);
}

.aei-reading h2[b-8p9voo1spu] { margin: 0 0 10px; font-size: 1.05rem; }

.aei-blockers[b-8p9voo1spu] { margin: 8px 0; padding-left: 18px; display: grid; gap: 6px; }
.aei-blockers li[b-8p9voo1spu] { line-height: 1.4; }
/* /Components/Pages/ActivityAreaReview.razor.rz.scp.css */

/* What the property comparison covers, and the frontages held (17 September 2026). */
.comparison[b-mv9vddq0i1] { margin-top: 1rem; border-top: 1px solid var(--ax-rule, var(--color-divider)); padding-top: 0.9rem; }
.comparison h3[b-mv9vddq0i1] { margin: 0 0 0.4rem; font-size: 1rem; }
.comparison-note[b-mv9vddq0i1] { font-size: 0.88rem; color: var(--ax-ink-muted, var(--color-gunmetal)); margin: 0.4rem 0; }
.comparison-parcels[b-mv9vddq0i1] { margin: 0.3rem 0 0.6rem 1.1rem; font-size: 0.88rem; display: grid; gap: 0.25rem; }
/* /Components/Pages/ActivityFacts.razor.rz.scp.css */
/* WR-67 — the shared activity-facts workspace.

   The visual job here is to make three distinctions impossible to miss, because all
   three are ways a determination goes quietly wrong:

     * ANSWERED vs UNANSWERED. An unanswered question is marked, not left blank, so a
       page that looks finished is finished.
     * UNKNOWN vs NO. They are different answers with opposite consequences, so the
       chips never look alike.
     * SUGGESTED vs ESTABLISHED. An AI suggestion is styled as an open question with
       an action attached, never as a recorded fact.

   Everything else is ordinary form styling and stays quiet, because a wall of
   emphasis is the same as none. */

.activity-facts .hint[b-1m4imnn5wd] {
    font-size: .84rem;
    color: var(--color-gunmetal);
    line-height: 1.6;
    margin: 6px 0 0;
}

.activity-facts .hint.inline[b-1m4imnn5wd] { display: inline-block; margin: 8px 0 0 4px; }
.activity-facts .muted[b-1m4imnn5wd] { color: var(--color-gunmetal); font-size: .84rem; }

.activity-facts .head-row[b-1m4imnn5wd] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.activity-facts .head-row .ax-h2[b-1m4imnn5wd] { margin: 0; }

.activity-facts .quoted[b-1m4imnn5wd] {
    margin: 10px 0 0;
    padding: 12px 14px;
    background: var(--color-panel);
    border-left: 3px solid #7a6a55;
    border-radius: 0 8px 8px 0;
    font-size: .9rem;
    line-height: 1.65;
    color: #3a342c;
}

/* ---- Provenance, matched to the determination page ------------------- */

.activity-facts .prov[b-1m4imnn5wd] {
    display: inline-block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 3px;
    white-space: nowrap;
}

.activity-facts .prov-staff[b-1m4imnn5wd] { background: #e8eef6; color: #2c4a72; }
.activity-facts .prov-client[b-1m4imnn5wd] { background: #eceaf6; color: #3d3470; }
.activity-facts .prov-document[b-1m4imnn5wd] { background: #f1eee7; color: #5c5040; }
.activity-facts .prov-provider[b-1m4imnn5wd] { background: #e6f1e9; color: #245c36; }
.activity-facts .prov-rule[b-1m4imnn5wd] { background: #efe9f6; color: #4a3070; }

/* The one badge that means "not yet evidence". Dashed, so it never reads as a
   recorded fact even at a glance. */
.activity-facts .prov-ai[b-1m4imnn5wd] {
    background: #fdf0d5;
    color: #7a5710;
    border: 1px dashed #c8862a;
}

/* ---- Completion summary ---------------------------------------------- */

.activity-facts .summary-card[b-1m4imnn5wd] { border-left: 5px solid #7a6a55; }

.activity-facts .progress-row[b-1m4imnn5wd] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 12px 0 0;
}

.activity-facts .progress-track[b-1m4imnn5wd] {
    flex: 1;
    height: 10px;
    background: #ece5db;
    border-radius: 5px;
    overflow: hidden;
}

.activity-facts .progress-fill[b-1m4imnn5wd] {
    height: 100%;
    background: #2f7d47;
    transition: width .2s ease;
}

.activity-facts .progress-label[b-1m4imnn5wd] { font-size: .85rem; color: #4a4238; white-space: nowrap; }

.activity-facts .summary-grid[b-1m4imnn5wd] {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    font-size: .87rem;
    color: #4a4238;
}

.activity-facts .summary-grid strong[b-1m4imnn5wd] { font-size: 1.1rem; margin-right: 4px; }

/* Something waiting on a person is not a statistic. */
.activity-facts .summary-grid .needs-action[b-1m4imnn5wd] {
    color: #7a5710;
    font-weight: 600;
}

/* ---- Scope ------------------------------------------------------------- */

.activity-facts .scope-list[b-1m4imnn5wd] { margin: 14px 0 0; }

.activity-facts .scope[b-1m4imnn5wd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 0;
    border-top: 1px solid var(--color-divider);
    flex-wrap: wrap;
}

.activity-facts .scope-open[b-1m4imnn5wd] { background: var(--color-panel); }

.activity-facts .scope-text[b-1m4imnn5wd] { flex: 1; min-width: 260px; }
.activity-facts .scope-text strong[b-1m4imnn5wd] { display: block; font-size: .92rem; }

.activity-facts .scope-answers[b-1m4imnn5wd],
.activity-facts .answers[b-1m4imnn5wd],
.activity-facts .number-row[b-1m4imnn5wd] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.activity-facts .number-row[b-1m4imnn5wd] { margin: 8px 0 0; }
.activity-facts .ax-input.number[b-1m4imnn5wd] { max-width: 180px; }

/* ---- Answer chips ------------------------------------------------------ */

.activity-facts .chip[b-1m4imnn5wd] {
    border: 1px solid var(--color-divider);
    background: #fff;
    color: #4a4238;
    border-radius: 999px;
    padding: 5px 14px;
    font-size: .84rem;
    cursor: pointer;
}

.activity-facts .chip:disabled[b-1m4imnn5wd] { opacity: .55; cursor: default; }
.activity-facts .chip-on[b-1m4imnn5wd] { background: #2f2a24; border-color: #2f2a24; color: #fff; }

/* Unknown selected is amber, never green and never grey: it is an admitted gap
   that will stop a determination concluding, and it should look like one. */
.activity-facts .chip-on:nth-child(3)[b-1m4imnn5wd] { background: #b3760f; border-color: #b3760f; }

/* ---- Questions --------------------------------------------------------- */

.activity-facts .question[b-1m4imnn5wd] {
    padding: 16px 0;
    border-top: 1px solid var(--color-divider);
}

.activity-facts .question:first-of-type[b-1m4imnn5wd] { border-top: none; }

/* Unanswered is marked rather than blank. A page of blanks looks the same whether
   nobody has started or somebody has finished. */
.activity-facts .question.unanswered[b-1m4imnn5wd] {
    border-left: 3px solid #c8862a;
    padding-left: 12px;
    background: var(--color-surface);
}

.activity-facts .question-text[b-1m4imnn5wd] { font-size: .95rem; }
.activity-facts .question-text strong[b-1m4imnn5wd] { color: #2f2a24; }

.activity-facts .why[b-1m4imnn5wd] {
    font-size: .83rem;
    color: var(--color-gunmetal);
    line-height: 1.6;
    margin: 6px 0 10px;
    max-width: 68ch;
}

.activity-facts .provisions[b-1m4imnn5wd] {
    display: inline-block;
    margin-left: 6px;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .74rem;
    color: #7a6a55;
    background: #f4f1ec;
    padding: 1px 6px;
    border-radius: 3px;
}

.activity-facts .attribution[b-1m4imnn5wd] {
    font-size: .78rem;
    color: var(--color-gunmetal);
    margin: 9px 0 0;
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

/* ---- Suggestions -------------------------------------------------------- */

.activity-facts .suggestions[b-1m4imnn5wd] {
    margin: 16px 0 0;
    padding: 14px 16px;
    background: var(--color-surface);
    border: 1px dashed #c8862a;
    border-radius:var(--archex-radius-small);
}

.activity-facts .suggestions .ax-h3[b-1m4imnn5wd] {
    margin: 0 0 4px;
    font-size: .95rem;
    display: flex;
    align-items: center;
    gap: 9px;
}

.activity-facts .suggestion[b-1m4imnn5wd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 0;
    border-top: 1px solid var(--color-divider);
    flex-wrap: wrap;
}

.activity-facts .answer-chip[b-1m4imnn5wd] {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 9px;
    background: #f4f1ec;
    border-radius: 999px;
    font-size: .8rem;
    color: #4a4238;
}

/* ---- Confirmation -------------------------------------------------------- */

.activity-facts .confirm-card[b-1m4imnn5wd] { border-left: 5px solid #c8862a; }
.activity-facts .confirmed-card[b-1m4imnn5wd] { border-left: 5px solid #2f7d47; }

.activity-facts .fact-grid[b-1m4imnn5wd] {
    display: grid;
    grid-template-columns: minmax(140px, 220px) 1fr;
    gap: 6px 18px;
    margin: 12px 0 0;
    font-size: .9rem;
}

.activity-facts .fact-grid dt[b-1m4imnn5wd] { color: var(--color-gunmetal); font-weight: 600; }
.activity-facts .fact-grid dd[b-1m4imnn5wd] { margin: 0; }

.activity-facts code[b-1m4imnn5wd] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .76rem;
    word-break: break-all;
    color: #4a4238;
}

.activity-facts .ax-label[b-1m4imnn5wd] {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: #4a4238;
    margin: 14px 0 5px;
}

.activity-facts .button-row[b-1m4imnn5wd] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin: 16px 0 0;
}

.activity-facts .button-row.tight[b-1m4imnn5wd] { margin: 0; }
/* /Components/Pages/Administration/Appearance.razor.rz.scp.css */
/* Tokens only. This page is about colour, so hard-coding one here would be its own joke. */

.appearance-card[b-kvg9h9kxbx] {
    max-width: 640px;
}

.appearance-note[b-kvg9h9kxbx] {
    margin: 0 0 var(--space-4, 24px);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    line-height: 1.55;
}

.appearance-row[b-kvg9h9kxbx] {
    display: flex;
    align-items: flex-end;
    gap: var(--space-4, 24px);
    margin-bottom: var(--space-4, 24px);
}

/* The swatch is the control. A 44px native colour input is a small grey square in most browsers;
   this makes the colour itself the thing you click. */
.appearance-swatch-label input[type="color"][b-kvg9h9kxbx] {
    width: 86px;
    height: 86px;
    padding: 0;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-large);
    background: none;
    cursor: pointer;
}

.appearance-swatch-label input[type="color"][b-kvg9h9kxbx]::-webkit-color-swatch-wrapper { padding: 4px; }
.appearance-swatch-label input[type="color"][b-kvg9h9kxbx]::-webkit-color-swatch { border: 0; border-radius:var(--archex-radius-medium); }

.appearance-hex[b-kvg9h9kxbx] {
    display: grid;
    gap: 6px;
}

.appearance-hex label[b-kvg9h9kxbx] {
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.appearance-hex input[b-kvg9h9kxbx] {
    width: 150px;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font-family: var(--font-body);
    font-size: var(--archex-text-md, 17px);
    font-weight: 700;
    /* Tabular figures so the field does not reflow as the digits change under the picker. */
    font-variant-numeric: tabular-nums;
    text-transform: uppercase;
}

.appearance-hex input:focus-visible[b-kvg9h9kxbx] {
    border-color: var(--preview, var(--color-primary));
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

/* ---- preview -------------------------------------------------------------------------------- */
/*
   Driven by the DRAFT colour, set inline by the page, so what is on screen is what Apply will do.
   Seeing the three shades together is the point: it is the only way to tell before committing that
   a chosen colour still leaves readable white text on the pressed state.
*/
.appearance-preview[b-kvg9h9kxbx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3, 16px);
    padding: var(--space-4, 24px);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component, 8px);
    background: var(--color-panel);
}

.preview-chip[b-kvg9h9kxbx] {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    color: var(--color-surface);
    font-size: var(--archex-text-sm, 13.5px);
    font-weight: 800;
}

.preview-primary[b-kvg9h9kxbx] { background: var(--preview, var(--color-primary)); }
.preview-dark[b-kvg9h9kxbx]    { background: var(--preview-dark, var(--color-primary-dark)); }

/* The soft shade carries charcoal rather than white: that is the whole reason it exists, and
   showing it with white text would hide the one thing worth checking about it. */
.preview-light[b-kvg9h9kxbx] {
    background: var(--preview-light, var(--color-primary-light));
    color: var(--color-charcoal);
}

.preview-button[b-kvg9h9kxbx] {
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-radius:var(--archex-radius-small);
    background: var(--preview, var(--color-primary));
    color: var(--color-surface);
    font-family: var(--font-body);
    font-size: var(--archex-text-base, 15px);
    font-weight: 800;
    cursor: pointer;
}

.preview-button:active[b-kvg9h9kxbx] { background: var(--preview-dark, var(--color-primary-dark)); }

.appearance-actions[b-kvg9h9kxbx] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3, 16px);
    margin-top: var(--space-4, 24px);
}

.appearance-applied[b-kvg9h9kxbx] {
    margin: var(--space-4, 24px) 0 0;
    color: var(--archex-faint, var(--color-gunmetal));
    font-size: var(--archex-text-xs, 12px);
}

.ax-visually-hidden[b-kvg9h9kxbx] {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

@media (max-width: 620px) {
    .appearance-row[b-kvg9h9kxbx] { flex-direction: column; align-items: stretch; }
    .appearance-hex input[b-kvg9h9kxbx] { width: 100%; }
}
/* /Components/Pages/Administration/PageAccess.razor.rz.scp.css */
/* Tokens only. */

.access-intro p[b-p5q00t24xh] {
    margin: 0 0 var(--space-3, 16px);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    line-height: 1.6;
    max-width: 78ch;
}

.access-ceiling[b-p5q00t24xh] {
    padding-left: 14px;
    border-left: 3px solid var(--color-primary);
}

.access-count[b-p5q00t24xh] {
    margin: 0 !important;
    color: var(--archex-faint, var(--color-gunmetal));
    font-size: var(--archex-text-xs, 12px);
    font-weight: 700;
}

.access-area[b-p5q00t24xh] { margin-top: var(--space-4, 24px); }

/* The table scrolls inside its own card rather than the page scrolling sideways. Four role
   columns plus a page name is wider than a laptop once the sidebar is out. */
.access-table-wrap[b-p5q00t24xh] {
    overflow-x: auto;
}

.access-table[b-p5q00t24xh] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--archex-text-sm, 13.5px);
}

.access-table th[b-p5q00t24xh],
.access-table td[b-p5q00t24xh] {
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-divider);
    text-align: center;
}

.access-table thead th[b-p5q00t24xh] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--color-surface);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.access-page-col[b-p5q00t24xh],
.access-table tbody th[b-p5q00t24xh] {
    min-width: 230px;
    text-align: left;
}

.access-table tbody th[b-p5q00t24xh] {
    display: table-cell;
    font-weight: 400;
}

.access-table tbody th strong[b-p5q00t24xh] {
    display: block;
    color: var(--color-charcoal);
    font-size: var(--archex-text-base, 15px);
    font-weight: 700;
}

.access-table tbody th small[b-p5q00t24xh] {
    display: block;
    margin-top: 2px;
    color: var(--archex-faint, var(--color-gunmetal));
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: var(--archex-text-xs, 12px);
}

.access-table tbody tr:hover[b-p5q00t24xh] { background: var(--color-panel); }

/* A real target. A 13px checkbox in a dense table is a page taken away by accident. */
.access-toggle[b-p5q00t24xh] {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    cursor: pointer;
}

.access-toggle input[b-p5q00t24xh] {
    width: 20px;
    height: 20px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.access-toggle input:disabled[b-p5q00t24xh] { cursor: wait; opacity: .5; }

/* Not a choice, and it should not look like one. */
/* "Not applicable", eighty-three times on this page. It was --color-divider on white, which is a
   1.43:1 dash: present, meaningful, and not visible. A reader has to be able to tell the difference
   between a cell that says nothing applies and a cell that failed to render. */
.access-na[b-p5q00t24xh] {
    color: var(--color-gunmetal);
    font-weight: 700;
    cursor: help;
}

.ax-visually-hidden[b-p5q00t24xh] {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
/* /Components/Pages/Administration/UserEdit.razor.rz.scp.css */
.edit-user-page[b-et7zjsuoz1]{max-width:1320px;margin:0 auto;padding:clamp(1.5rem,3vw,3rem) clamp(1rem,3vw,3rem) 4rem;color:var(--color-charcoal)}.page-header[b-et7zjsuoz1]{margin-bottom:1.5rem}.back-link[b-et7zjsuoz1]{display:inline-flex;align-items:center;margin-bottom:1.2rem;color:var(--color-primary-dark);font-weight:800;text-decoration:none}.eyebrow[b-et7zjsuoz1]{margin:0 0 .55rem;color:var(--archex-orange,var(--color-primary));font-size:.7rem;font-weight:850;letter-spacing:.18em}.page-header h1[b-et7zjsuoz1]{margin:0;font-size:var(--archex-text-2xl);line-height:.98;letter-spacing:-.035em}.page-header p:last-child[b-et7zjsuoz1]{margin:.7rem 0 0;color:var(--color-gunmetal)}.edit-grid[b-et7zjsuoz1]{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr);gap:1.25rem;align-items:start}.content-card[b-et7zjsuoz1]{padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);background:#fff;box-shadow:var(--archex-shadow-hover)}.card-header[b-et7zjsuoz1]{margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid var(--color-divider)}.card-header h2[b-et7zjsuoz1]{margin:0;font-size:1.35rem;letter-spacing:-.015em}.card-header p[b-et7zjsuoz1]{margin:.4rem 0 0;color:var(--color-gunmetal);font-size:.9rem}form[b-et7zjsuoz1],label[b-et7zjsuoz1]{display:grid;gap:.42rem}form[b-et7zjsuoz1]{gap:1rem}label[b-et7zjsuoz1]{color:var(--color-charcoal);font-size:.8rem;font-weight:800}input[b-et7zjsuoz1],select[b-et7zjsuoz1]{width:100%;min-height:42px;padding:.72rem .85rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-surface);color:var(--color-charcoal);font:inherit}input:focus[b-et7zjsuoz1],select:focus[b-et7zjsuoz1]{border-color:var(--archex-orange,var(--color-primary));outline:3px solid rgba(217,101,40,.12)}.form-grid[b-et7zjsuoz1]{display:grid;gap:1rem}.form-grid.two-column[b-et7zjsuoz1]{grid-template-columns:repeat(2,minmax(0,1fr))}.account-meta[b-et7zjsuoz1]{display:flex;justify-content:space-between;gap:1rem;padding:.95rem 1rem;border-radius:var(--archex-radius-small);background:#f2efe7;color:var(--color-gunmetal)}.account-meta strong[b-et7zjsuoz1]{color:var(--color-charcoal)}.form-actions[b-et7zjsuoz1]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.45rem;padding-top:1.2rem;border-top:1px solid var(--color-divider)}.primary-button[b-et7zjsuoz1],.secondary-button[b-et7zjsuoz1]{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1rem;border-radius:var(--archex-radius-small);font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.primary-button[b-et7zjsuoz1]{border:0;background:var(--archex-orange,var(--color-primary));color:#fff;box-shadow:var(--archex-shadow)}.secondary-button[b-et7zjsuoz1]{border:1px solid var(--color-divider);background:#fff;color:var(--color-charcoal)}.primary-button:disabled[b-et7zjsuoz1]{opacity:.55;cursor:not-allowed}.full-width[b-et7zjsuoz1]{width:100%}.password-card[b-et7zjsuoz1]{position:sticky;top:96px}.password-card[b-et7zjsuoz1]::before{display:block;width:42px;height:4px;margin-bottom:1rem;border-radius:4px;background:var(--archex-orange,var(--color-primary));content:""}.security-note[b-et7zjsuoz1]{margin-top:1.4rem;padding:1rem;border-radius:var(--archex-radius-small);background:#f2efe7}.security-note strong[b-et7zjsuoz1]{color:var(--color-charcoal)}.security-note p[b-et7zjsuoz1]{margin:.35rem 0 0;color:var(--color-gunmetal);font-size:.86rem}.validation-summary[b-et7zjsuoz1]{color:#8a2e24}@media(max-width:920px){.edit-grid[b-et7zjsuoz1],.form-grid.two-column[b-et7zjsuoz1]{grid-template-columns:1fr}.password-card[b-et7zjsuoz1]{position:static}}@media(max-width:620px){.form-actions[b-et7zjsuoz1]{flex-direction:column-reverse}.form-actions>*[b-et7zjsuoz1]{width:100%}}

/* A dark override used to sit here, added under the note "carry the finished ArchEx dark visual
   language into Administration". It was applied to these two pages and no others, so Administration
   rendered near-black while the other 56 pages rendered on the light background the design tokens
   define (--color-background: var(--color-background)). Opening Users straight after Today looked like leaving one
   application and arriving in a different one, which is most of what "every page is different"
   meant.

   It worked by painting the whole viewport from inside a scoped component style:

       box-shadow: 0 0 0 100vmax #0b0e0d;
       clip-path:  inset(0 -100vmax);

   That is a page reaching outside its own box to repaint the application around it. Removed on
   19 September 2026: the block set nothing but background, color, border-color and box-shadow,
   plus the min-height and clip-path the hack itself needed, so removing it restores the light
   design already present on line 1 and changes no layout.

   If ArchEx is to be dark, that is a decision for the whole application - tokens redefined in
   archex-design-system.css, once - and not a block appended to whichever pages somebody reached. */
/* /Components/Pages/Administration/Users.razor.rz.scp.css */
.users-page[b-9e5zm3n5vp]{max-width:1440px;margin:0 auto;padding:clamp(1.5rem,3vw,3rem) clamp(1rem,3vw,3rem) 4rem;color:var(--color-charcoal)}.page-header[b-9e5zm3n5vp]{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.6rem}.header-copy[b-9e5zm3n5vp]{max-width:780px}.eyebrow[b-9e5zm3n5vp]{margin:0 0 .55rem;color:var(--archex-orange,var(--color-primary));font-size:.7rem;font-weight:850;letter-spacing:.18em}.page-header h1[b-9e5zm3n5vp]{margin:0;font-size:var(--archex-text-2xl);line-height:.98;letter-spacing:-.035em}.page-header p:last-child[b-9e5zm3n5vp]{margin:.85rem 0 0;color:var(--color-gunmetal);font-size:1rem}.primary-button[b-9e5zm3n5vp],.secondary-button[b-9e5zm3n5vp],.text-button[b-9e5zm3n5vp],.close-button[b-9e5zm3n5vp]{font:inherit;font-weight:800;cursor:pointer}.primary-button[b-9e5zm3n5vp]{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.72rem 1.05rem;border:0;border-radius:var(--archex-radius-small);background:var(--archex-orange,var(--color-primary));color:#fff;text-decoration:none;box-shadow:var(--archex-shadow)}.primary-button:hover[b-9e5zm3n5vp]{filter:brightness(.95)}.secondary-button[b-9e5zm3n5vp]{display:inline-flex;align-items:center;justify-content:center;padding:.62rem .9rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;color:var(--color-charcoal);text-decoration:none}.text-button[b-9e5zm3n5vp]{padding:.55rem .25rem;border:0;background:transparent;color:var(--color-primary-dark)}.primary-button:disabled[b-9e5zm3n5vp],.secondary-button:disabled[b-9e5zm3n5vp]{opacity:.55;cursor:not-allowed}.summary-strip[b-9e5zm3n5vp]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1.4rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow-hover);overflow:hidden}.summary-strip>div[b-9e5zm3n5vp]{display:grid;gap:.25rem;padding:1.15rem 1.3rem;border-right:1px solid var(--color-divider)}.summary-strip>div:last-child[b-9e5zm3n5vp]{border-right:0}.summary-strip strong[b-9e5zm3n5vp]{font-size:1.65rem;line-height:1}.summary-strip span[b-9e5zm3n5vp]{color:var(--color-gunmetal);font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.toolbar[b-9e5zm3n5vp]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.search-box[b-9e5zm3n5vp]{display:flex;align-items:center;width:min(520px,100%);height:46px;padding:0 .85rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow)}.search-box:focus-within[b-9e5zm3n5vp]{border-color:var(--archex-orange,var(--color-primary));box-shadow:0 0 0 3px rgba(217,101,40,.12)}.search-box svg[b-9e5zm3n5vp]{width:18px;height:18px;fill:none;stroke:#777d77;stroke-width:1.8}.search-box input[b-9e5zm3n5vp]{width:100%;height:100%;padding:0 0 0 .7rem;border:0;outline:0;background:transparent;color:var(--color-charcoal);font:inherit}.user-count[b-9e5zm3n5vp]{color:var(--color-gunmetal);font-size:.83rem;font-weight:750}.user-grid[b-9e5zm3n5vp]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.user-card[b-9e5zm3n5vp]{position:relative;padding:1.25rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow-hover);transition:transform .15s ease,box-shadow .15s ease}.user-card:hover[b-9e5zm3n5vp]{transform:translateY(-2px);box-shadow:var(--archex-shadow-hover)}.user-card.is-inactive[b-9e5zm3n5vp]{opacity:.78}.user-card-top[b-9e5zm3n5vp]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;padding-bottom:1rem;border-bottom:1px solid var(--color-divider)}.avatar[b-9e5zm3n5vp]{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--archex-radius-medium);background:#202522;color:#fff;font-size:.82rem;font-weight:900;letter-spacing:.05em}.identity[b-9e5zm3n5vp]{min-width:0}.identity h2[b-9e5zm3n5vp]{margin:0 0 .25rem;font-size:1.08rem}.identity a[b-9e5zm3n5vp]{display:block;overflow:hidden;color:var(--color-gunmetal);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-pill[b-9e5zm3n5vp]{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:999px;font-size:.72rem;font-weight:850}.status-pill.active[b-9e5zm3n5vp]{background:#e7f4ea;color:#246335}.status-pill.inactive[b-9e5zm3n5vp]{background:#f2e8e6;color:#8c352b}.status-dot[b-9e5zm3n5vp]{width:7px;height:7px;border-radius:50%;background:currentColor}.user-details[b-9e5zm3n5vp]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem 0}.user-details div[b-9e5zm3n5vp]{display:grid;gap:.25rem}.user-details span[b-9e5zm3n5vp]{color:var(--color-gunmetal);font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.user-details strong[b-9e5zm3n5vp]{font-size:.86rem}.role-badge[b-9e5zm3n5vp]{width:max-content;max-width:100%;padding:.22rem .48rem;border-radius:var(--archex-radius-small);background:#f4eee7;color:var(--color-primary-dark)}.user-card footer[b-9e5zm3n5vp]{display:flex;align-items:center;justify-content:space-between;padding-top:.9rem;border-top:1px solid var(--color-divider)}.panel-backdrop[b-9e5zm3n5vp]{position:fixed;inset:0;z-index:2000;display:flex;justify-content:flex-end;background:rgba(8,10,9,.66);backdrop-filter:blur(3px)}.editor-panel[b-9e5zm3n5vp]{width:min(700px,100%);height:100%;overflow-y:auto;padding:clamp(1.4rem,4vw,2.4rem);background:#f6f4ee;box-shadow:-18px 0 50px rgba(0,0,0,.28)}.editor-panel>header[b-9e5zm3n5vp]{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.editor-panel h2[b-9e5zm3n5vp],.invite-panel h2[b-9e5zm3n5vp]{margin:0;font-size:2rem;letter-spacing:-.025em}.editor-panel>header p:last-child[b-9e5zm3n5vp]{margin:.55rem 0 0;color:var(--color-gunmetal)}.close-button[b-9e5zm3n5vp]{flex:0 0 42px;width:42px;height:42px;border:0;border-radius:var(--archex-radius-small);background:#202522;color:#fff;font-size:1.45rem}.editor-panel form[b-9e5zm3n5vp]{display:grid;gap:1rem}.form-section[b-9e5zm3n5vp]{display:grid;gap:1rem;padding:1.2rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff}.form-section h3[b-9e5zm3n5vp]{margin:0;font-size:1rem}.editor-panel label[b-9e5zm3n5vp],.invite-link-label[b-9e5zm3n5vp]{display:grid;gap:.42rem;color:var(--color-charcoal);font-size:.8rem;font-weight:800}.editor-panel input[b-9e5zm3n5vp],.editor-panel select[b-9e5zm3n5vp],.invite-panel textarea[b-9e5zm3n5vp]{width:100%;min-height:40px;padding:.7rem .82rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;color:var(--color-charcoal);font:inherit}.editor-panel input:focus[b-9e5zm3n5vp],.editor-panel select:focus[b-9e5zm3n5vp],.invite-panel textarea:focus[b-9e5zm3n5vp]{border-color:var(--archex-orange,var(--color-primary));outline:3px solid rgba(217,101,40,.12)}.form-grid[b-9e5zm3n5vp]{display:grid;gap:1rem}.form-grid.two-column[b-9e5zm3n5vp]{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-row[b-9e5zm3n5vp]{display:grid!important;grid-template-columns:auto 1fr;align-items:center}.checkbox-row input[b-9e5zm3n5vp]{width:18px;min-height:14px}.checkbox-row span[b-9e5zm3n5vp]{display:grid;gap:.15rem}.checkbox-row small[b-9e5zm3n5vp]{color:var(--color-gunmetal);font-weight:500}.panel-actions[b-9e5zm3n5vp]{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.validation-summary[b-9e5zm3n5vp]{color:#8a2e24}.invite-backdrop[b-9e5zm3n5vp]{align-items:center;justify-content:center;padding:1rem}.invite-panel[b-9e5zm3n5vp]{position:relative;width:min(620px,100%);padding:2.1rem;border:1px solid rgba(217,101,40,.2);border-radius:var(--archex-radius-large);background:var(--color-panel);box-shadow:var(--archex-shadow-hover);text-align:center}.invite-panel>.close-button[b-9e5zm3n5vp]{position:absolute;top:1rem;right:1rem}.invite-icon[b-9e5zm3n5vp]{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 1rem;border-radius:var(--archex-radius-medium);background:#202522;color:#fff;font-size:1.55rem}.invite-panel>p:not(.eyebrow)[b-9e5zm3n5vp]{max-width:500px;margin:.75rem auto 1.25rem;color:var(--color-gunmetal)}.invite-email[b-9e5zm3n5vp]{display:grid;gap:.2rem;margin-bottom:1rem;padding:.85rem;border-radius:var(--archex-radius-small);background:#eeeae1}.invite-email span[b-9e5zm3n5vp]{color:var(--color-gunmetal);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.invite-link-label[b-9e5zm3n5vp]{text-align:left}.invite-panel textarea[b-9e5zm3n5vp]{resize:none;font-size:.78rem;line-height:1.45}.invite-actions[b-9e5zm3n5vp]{display:flex;justify-content:center;gap:.7rem;margin-top:1rem}.invite-note[b-9e5zm3n5vp]{display:block;margin-top:1rem;color:var(--color-gunmetal)}.visually-hidden[b-9e5zm3n5vp]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:980px){.user-grid[b-9e5zm3n5vp]{grid-template-columns:1fr}.summary-strip[b-9e5zm3n5vp]{grid-template-columns:repeat(2,1fr)}.summary-strip>div:nth-child(2)[b-9e5zm3n5vp]{border-right:0}.summary-strip>div:nth-child(-n+2)[b-9e5zm3n5vp]{border-bottom:1px solid var(--color-divider)}}@media(max-width:680px){.page-header[b-9e5zm3n5vp],.toolbar[b-9e5zm3n5vp]{align-items:stretch;flex-direction:column}.header-action[b-9e5zm3n5vp]{width:100%}.summary-strip[b-9e5zm3n5vp]{grid-template-columns:1fr}.summary-strip>div[b-9e5zm3n5vp]{border-right:0;border-bottom:1px solid var(--color-divider)}.summary-strip>div:last-child[b-9e5zm3n5vp]{border-bottom:0}.user-card-top[b-9e5zm3n5vp]{grid-template-columns:auto minmax(0,1fr)}.status-pill[b-9e5zm3n5vp]{grid-column:2}.user-details[b-9e5zm3n5vp],.form-grid.two-column[b-9e5zm3n5vp]{grid-template-columns:1fr}.invite-actions[b-9e5zm3n5vp]{flex-direction:column}}

/* A dark override used to sit here, added under the note "carry the finished ArchEx dark visual
   language into Administration". It was applied to these two pages and no others, so Administration
   rendered near-black while the other 56 pages rendered on the light background the design tokens
   define (--color-background: var(--color-background)). Opening Users straight after Today looked like leaving one
   application and arriving in a different one, which is most of what "every page is different"
   meant.

   It worked by painting the whole viewport from inside a scoped component style:

       box-shadow: 0 0 0 100vmax #0b0e0d;
       clip-path:  inset(0 -100vmax);

   That is a page reaching outside its own box to repaint the application around it. Removed on
   19 September 2026: the block set nothing but background, color, border-color and box-shadow,
   plus the min-height and clip-path the hack itself needed, so removing it restores the light
   design already present on line 1 and changes no layout.

   If ArchEx is to be dark, that is a decision for the whole application - tokens redefined in
   archex-design-system.css, once - and not a block appended to whichever pages somebody reached. */

/* Says plainly that an Administrator never sees anybody's password. Worth stating on the screen
   rather than only in the code: the commonest request an administrator gets is "just set it to
   something and tell me", and the answer needs to be visible at the moment it is asked. */
.invite-privacy[b-9e5zm3n5vp] {
    margin: 0 0 var(--space-3, 16px) !important;
    padding: 10px 14px;
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    text-align: left;
}

/* The result of "Send to their phone", said on the card that sent it rather than in a banner at
   the top of the page where it would be read as being about somebody else. */
.user-invite-result[b-9e5zm3n5vp] {
    margin: 8px 0 0;
    padding: 8px 11px;
    border-radius: 8px;
    font-size: .82rem;
    line-height: 1.4;
}

.user-invite-result.is-good[b-9e5zm3n5vp] { background: rgba(46, 125, 91, .10); border: 1px solid #2e7d5b; }
.user-invite-result.is-bad[b-9e5zm3n5vp] { background: rgba(180, 35, 24, .08); border: 1px solid #b42318; color: #6b1b12; }
/* /Components/Pages/AiAssistant.razor.rz.scp.css */
.assistant-page[b-dcsz0shtor]{padding:32px;display:grid;gap:24px}.assistant-header[b-dcsz0shtor]{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.eyebrow[b-dcsz0shtor]{margin:0 0 7px;font-size:.72rem;font-weight:800;letter-spacing:.16em;color:var(--color-gunmetal)}.assistant-header h1[b-dcsz0shtor],.output-toolbar h2[b-dcsz0shtor]{margin:0;color:#18241d}.intro[b-dcsz0shtor]{max-width:780px;margin:10px 0 0;color:var(--color-gunmetal);line-height:1.55}.grounding-badge[b-dcsz0shtor]{display:grid;gap:3px;padding:12px 15px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:var(--color-panel);min-width:190px}.grounding-badge span[b-dcsz0shtor]{font-size:.78rem;color:var(--color-gunmetal)}.assistant-grid[b-dcsz0shtor]{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:20px;align-items:start}.control-panel[b-dcsz0shtor],.output-panel[b-dcsz0shtor],.context-strip[b-dcsz0shtor]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);box-shadow:var(--archex-shadow)}.control-panel[b-dcsz0shtor]{padding:20px;display:grid;gap:20px}.field-group[b-dcsz0shtor]{display:grid;gap:8px}.field-group label[b-dcsz0shtor]{font-size:.78rem;font-weight:800;color:var(--color-charcoal);text-transform:uppercase;letter-spacing:.06em}.field-group select[b-dcsz0shtor],.field-group textarea[b-dcsz0shtor]{width:100%;box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:11px 12px;background:#fff;font:inherit;color:#243129}.field-group textarea[b-dcsz0shtor]{resize:vertical;line-height:1.45}.mode-list[b-dcsz0shtor]{display:grid;gap:8px}.mode-button[b-dcsz0shtor]{display:grid;text-align:left;gap:3px;border:1px solid var(--color-divider);background:var(--color-surface);border-radius:var(--archex-radius-small);padding:11px 12px;cursor:pointer;color:#28362d}.mode-button span[b-dcsz0shtor]{font-size:.78rem;color:var(--color-gunmetal);line-height:1.35}.mode-button.active[b-dcsz0shtor]{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, white);box-shadow:inset 3px 0 var(--color-primary)}.generate-button[b-dcsz0shtor]{border:0;border-radius:var(--archex-radius-small);padding:13px 18px;background:var(--color-primary);color:#fff;font-weight:800;cursor:pointer}.generate-button:disabled[b-dcsz0shtor]{opacity:.55}.output-panel[b-dcsz0shtor]{padding:22px;display:grid;gap:18px;min-height:620px}.output-toolbar[b-dcsz0shtor],.section-heading[b-dcsz0shtor]{display:flex;justify-content:space-between;gap:16px;align-items:center}.toolbar-actions[b-dcsz0shtor]{display:flex;gap:8px}.secondary-button[b-dcsz0shtor]{border:1px solid var(--color-divider);background:#fff;color:#35453b;border-radius:var(--archex-radius-small);padding:9px 12px;font-weight:700;cursor:pointer}.secondary-button:disabled[b-dcsz0shtor]{opacity:.45}.empty-state[b-dcsz0shtor]{min-height:340px;place-content:center}.draft-editor[b-dcsz0shtor]{width:100%;min-height:390px;box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:18px;resize:vertical;font:inherit;line-height:1.55;color:#202c24;background:var(--color-surface)}.source-panel[b-dcsz0shtor]{border-top:1px solid var(--color-divider);padding-top:18px}.section-heading h3[b-dcsz0shtor]{margin:0;color:#29372e}.section-heading span[b-dcsz0shtor],.muted[b-dcsz0shtor]{color:var(--color-gunmetal);font-size:.82rem}.source-list[b-dcsz0shtor]{display:grid;gap:7px;margin-top:12px}.source-row[b-dcsz0shtor]{display:grid;grid-template-columns:110px 1fr;gap:12px;text-align:left;align-items:center;border:1px solid var(--color-divider);background:var(--color-surface);border-radius:var(--archex-radius-small);padding:9px 11px;cursor:pointer}.source-type[b-dcsz0shtor]{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-gunmetal)}.context-strip[b-dcsz0shtor]{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}.context-strip div[b-dcsz0shtor]{padding:17px 20px;border-right:1px solid var(--color-divider);display:grid;gap:2px}.context-strip div:last-child[b-dcsz0shtor]{border-right:0}.context-strip strong[b-dcsz0shtor]{font-size:1.35rem;color:#213e2c}.context-strip span[b-dcsz0shtor]{font-size:.79rem;color:var(--color-gunmetal)}@media(max-width:980px){.assistant-grid[b-dcsz0shtor]{grid-template-columns:1fr}.assistant-header[b-dcsz0shtor]{display:grid}.context-strip[b-dcsz0shtor]{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.assistant-page[b-dcsz0shtor]{padding:18px}.output-toolbar[b-dcsz0shtor]{align-items:flex-start;display:grid}.context-strip[b-dcsz0shtor]{grid-template-columns:1fr}.context-strip div[b-dcsz0shtor]{border-right:0;border-bottom:1px solid var(--color-divider)}.source-row[b-dcsz0shtor]{grid-template-columns:1fr}.toolbar-actions[b-dcsz0shtor]{flex-wrap:wrap}}
/* /Components/Pages/Communications/AssignmentReview.razor.rz.scp.css */
/* Assignment Review.

   TRAP 4.21: there is no global box-sizing reset in this application. Every box here
   that carries padding AND a width states its own box-sizing, or its border box grows
   past its container and the whole page scrolls sideways.

   TRAP 4.9: no percentage height on the page container. The app chrome measures 85-88px
   on desktop but 125px at 375px where the nav wraps, so the subtraction GROWS as the
   viewport narrows. It never shrinks. */

.ax-ar[b-9irv81t4oq] {
    box-sizing: border-box;
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding: 24px 24px 48px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ax-ar *[b-9irv81t4oq],
.ax-ar *[b-9irv81t4oq]::before,
.ax-ar *[b-9irv81t4oq]::after { box-sizing: border-box; }

.ax-ar-quiet[b-9irv81t4oq] { color: var(--archex-muted); font-size: 0.86rem; }

.ax-ar-head[b-9irv81t4oq] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.ax-ar-title[b-9irv81t4oq] { margin: 0.1rem 0 0.2rem; font-size: 1.3rem; line-height: 1.25; }

.ax-ar-sub[b-9irv81t4oq] { margin: 0; color: var(--archex-muted); font-size: 0.86rem; }

.ax-ar-status[b-9irv81t4oq] {
    margin: 0;
    padding: 0.6rem 0.75rem;
    border-radius: var(--archex-radius-small);
    font-size: 0.84rem;
    border-left: 3px solid;
}

.ax-ar-status.ok[b-9irv81t4oq] { background: #f0f7f4; border-left-color: #2c7a7b; color: #1f5f60; }

.ax-ar-status.err[b-9irv81t4oq] { background: var(--color-panel); border-left-color: #c05050; color: #8a2f2f; }

/* ---- Filters ---------------------------------------------------------- */

.ax-ar-filters[b-9irv81t4oq] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-surface, var(--color-surface));
}

.ax-ar-chips[b-9irv81t4oq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
    margin: 0;
    padding: 0;
    border: 0;
}

.ax-ar-chips legend[b-9irv81t4oq] {
    padding: 0;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--archex-muted);
}

.ax-ar-chip[b-9irv81t4oq] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.6rem;
    border: 1px solid var(--archex-border);
    border-radius: 999px;
    background: var(--archex-white, #fff);
    font-size: 0.78rem;
    cursor: pointer;
}

.ax-ar-chip .n[b-9irv81t4oq] { font-weight: 700; }

.ax-ar-chip.on[b-9irv81t4oq] { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }

.ax-ar-selects[b-9irv81t4oq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: end;
}

.ax-ar-selects label[b-9irv81t4oq],
.ax-ar-inline[b-9irv81t4oq],
.ax-ar-reason[b-9irv81t4oq],
.ax-ar-knownwork label[b-9irv81t4oq] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.76rem;
    color: var(--archex-muted);
}

.ax-ar-check[b-9irv81t4oq] {
    flex-direction: row !important;
    align-items: center;
    gap: 0.4rem !important;
}

.ax-ar select[b-9irv81t4oq],
.ax-ar input[type="text"][b-9irv81t4oq] {
    box-sizing: border-box;
    max-width: 100%;
    padding: 0.32rem 0.45rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white, #fff);
    font-size: 0.82rem;
    color: inherit;
}

/* ---- Batches ---------------------------------------------------------- */

.ax-ar-batches[b-9irv81t4oq] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.ax-ar-batch[b-9irv81t4oq] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.9rem;
    border: 1px solid var(--archex-border);
    border-left-width: 4px;
    border-radius: var(--archex-radius-small);
    background: var(--archex-white, #fff);
}

.ax-ar-batch.k-suggest[b-9irv81t4oq] { border-left-color: #2c7a7b; }
.ax-ar-batch.k-unmapped[b-9irv81t4oq] { border-left-color: #b7791f; }
.ax-ar-batch.k-conflict[b-9irv81t4oq] { border-left-color: var(--color-primary-dark); }
.ax-ar-batch.k-system[b-9irv81t4oq] { border-left-color: #4a5568; }
.ax-ar-batch.k-none[b-9irv81t4oq] { border-left-color: #a0aec0; }

.ax-ar-batch-head[b-9irv81t4oq] { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: baseline; }

.ax-ar-kind[b-9irv81t4oq] {
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--archex-muted);
}

.ax-ar-batch-title[b-9irv81t4oq] { margin: 0; font-size: 1rem; line-height: 1.3; }

.ax-ar-why[b-9irv81t4oq] { margin: 0; font-size: 0.78rem; color: var(--archex-muted); line-height: 1.4; }

.ax-ar-guard[b-9irv81t4oq] {
    margin: 0;
    padding: 0.4rem 0.55rem;
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
    font-size: 0.76rem;
    color: #4a5568;
}

.ax-ar-actions[b-9irv81t4oq] { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: end; }

.ax-ar-btn[b-9irv81t4oq] {
    padding: 0.36rem 0.7rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white, #fff);
    font-size: 0.8rem;
    cursor: pointer;
    color: inherit;
}

.ax-ar-btn.primary[b-9irv81t4oq] { background: var(--color-primary); border-color: var(--color-primary); color: #fff; font-weight: 600; }

.ax-ar-btn.ghost[b-9irv81t4oq] { background: transparent; }

.ax-ar-btn.small[b-9irv81t4oq] { padding: 0.22rem 0.5rem; font-size: 0.74rem; }

.ax-ar-btn:disabled[b-9irv81t4oq] { opacity: 0.5; cursor: not-allowed; }

.ax-ar-toggle[b-9irv81t4oq] {
    align-self: flex-start;
    padding: 0.2rem 0;
    border: 0;
    background: none;
    font-size: 0.78rem;
    text-decoration: underline;
    cursor: pointer;
    color: inherit;
}

.ax-ar-knownwork[b-9irv81t4oq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: end;
    padding: 0.7rem;
    border: 1px dashed var(--archex-border);
    border-radius: var(--archex-radius-small);
}

.ax-ar-knownwork .ax-ar-why[b-9irv81t4oq] { flex-basis: 100%; }

/* KEYBOARD. Every control here is a native button, select or input, so tab order is
   DOM order and needs no tabindex. What it does need is a focus ring that is visible
   against both the white card and the dark primary button. */
.ax-ar :is(button, select, input):focus-visible[b-9irv81t4oq] {
    outline: 3px solid #2b6cb0;
    outline-offset: 2px;
}

/* ---- The email table -------------------------------------------------- */

/* Wide content scrolls INSIDE its own container. The page body never scrolls
   sideways — trap 4.21's symptom, arrived at from a different direction. */
.ax-ar-emails[b-9irv81t4oq] { overflow-x: auto; }

.ax-ar-table[b-9irv81t4oq] { width: 100%; border-collapse: collapse; font-size: 0.78rem; }

.ax-ar-caption[b-9irv81t4oq] {
    text-align: left;
    padding-bottom: 0.3rem;
    font-size: 0.72rem;
    color: var(--archex-muted);
}

.ax-ar-table th[b-9irv81t4oq],
.ax-ar-table td[b-9irv81t4oq] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--archex-border);
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

.ax-ar-table td.subj[b-9irv81t4oq] {
    white-space: normal;
    min-width: 16rem;
    max-width: 30rem;
}

/* ---- Narrow widths ---------------------------------------------------- */

@media (max-width: 768px) {
    .ax-ar[b-9irv81t4oq] { padding: 18px 16px 40px; }
    .ax-ar-title[b-9irv81t4oq] { font-size: 1.15rem; }
    .ax-ar-selects[b-9irv81t4oq] { flex-direction: column; align-items: stretch; }
    .ax-ar-selects label[b-9irv81t4oq] { width: 100%; }
}

@media (max-width: 480px) {
    .ax-ar[b-9irv81t4oq] { padding: 14px 12px 36px; gap: 0.8rem; }

    /* One action per row at this width. Two buttons side by side at 375px produce
       labels of three words on four lines, which is harder to read than a list. */
    .ax-ar-actions[b-9irv81t4oq] { flex-direction: column; align-items: stretch; }
    .ax-ar-actions .ax-ar-btn[b-9irv81t4oq] { width: 100%; }
    .ax-ar-inline[b-9irv81t4oq] { width: 100%; }
    .ax-ar-knownwork[b-9irv81t4oq] { flex-direction: column; align-items: stretch; }
    .ax-ar-table td.subj[b-9irv81t4oq] { min-width: 12rem; }
}
/* /Components/Pages/Communications/Communications.razor.rz.scp.css */
.communications-page[b-zp135iwr6e]{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem}.communications-header[b-zp135iwr6e],.section-heading[b-zp135iwr6e]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.communications-header h1[b-zp135iwr6e],.section-heading h2[b-zp135iwr6e]{margin:.15rem 0}.communications-header p[b-zp135iwr6e]{max-width:780px;color:var(--color-gunmetal)}.eyebrow[b-zp135iwr6e]{margin:0;font-size:.72rem;font-weight:850;letter-spacing:.08em;color:var(--color-gunmetal)}.communications-grid[b-zp135iwr6e]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.module-card[b-zp135iwr6e]{text-align:left;padding:1.1rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;cursor:pointer}.module-card:hover[b-zp135iwr6e]{border-color:#8e9a8e}.module-card span[b-zp135iwr6e],.module-card strong[b-zp135iwr6e],.module-card small[b-zp135iwr6e]{display:block}.module-card span[b-zp135iwr6e]{font-weight:800;color:var(--color-charcoal)}.module-card strong[b-zp135iwr6e]{margin:.3rem 0;font-size:1.8rem;color:#263229}.module-card small[b-zp135iwr6e]{color:var(--color-gunmetal)}.module-card.attention[b-zp135iwr6e]{background:#fff8ec;border-color:#e4c58f}.recent-section[b-zp135iwr6e]{display:grid;gap:.8rem}.primary-button[b-zp135iwr6e],.secondary-button[b-zp135iwr6e]{border-radius:var(--archex-radius-small);padding:.65rem .9rem;font-weight:750;cursor:pointer}.primary-button[b-zp135iwr6e]{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.secondary-button[b-zp135iwr6e]{border:1px solid var(--color-divider);background:#fff;color:var(--color-charcoal)}@media(max-width:950px){.communications-grid[b-zp135iwr6e]{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.communications-header[b-zp135iwr6e],.section-heading[b-zp135iwr6e]{display:grid}.communications-grid[b-zp135iwr6e]{grid-template-columns:1fr}}

/* Parked mail: said, not asked. Quiet type, no control, nothing to press. */
.parked-note[b-zp135iwr6e] { margin: 0 0 var(--space-4); padding: var(--space-3); border-left: 3px solid var(--archex-border); color: var(--color-gunmetal); font-size: var(--archex-text-sm); line-height: 1.5; }
/* /Components/Pages/Communications/EmailHistoryProcessing.razor.rz.scp.css */
/* Process email history — results-focused, full desktop width.
   Scoped to this page only. */

.ax-eh[b-ulea0o5s3t] {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 1.25rem 1.5rem;
    max-width: 100%;
}

.ax-eh *[b-ulea0o5s3t], .ax-eh *[b-ulea0o5s3t]::before, .ax-eh *[b-ulea0o5s3t]::after { box-sizing: inherit; }

.ax-eh-quiet[b-ulea0o5s3t] { color: var(--archex-muted); font-size: 0.85rem; line-height: 1.55; margin: 0.4rem 0 0; max-width: 78ch; }
.ax-eh-quiet a[b-ulea0o5s3t] { color: var(--archex-copper); }

.ax-eh-eyebrow[b-ulea0o5s3t] {
    margin: 0;
    font-size: 0.64rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--archex-muted);
}

/* ---- Header ------------------------------------------------------------ */

.ax-eh-head[b-ulea0o5s3t] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    align-items: flex-end;
    justify-content: space-between;
}

.ax-eh-head h1[b-ulea0o5s3t] { margin: 0.1rem 0 0.3rem; font-size: 1.4rem; line-height: 1.2; }

.ax-eh-sub[b-ulea0o5s3t] { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.45rem; min-width: 0; }

.ax-eh-badge[b-ulea0o5s3t] {
    padding: 0.05rem 0.45rem;
    border: 1px solid var(--archex-copper);
    border-radius: 999px;
    font-size: 0.62rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--archex-copper);
    white-space: nowrap;
}

.ax-eh-path[b-ulea0o5s3t] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 0.72rem;
    color: var(--archex-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.ax-eh-headnums[b-ulea0o5s3t] { display: flex; gap: 1rem; flex-wrap: wrap; }
.ax-eh-stat[b-ulea0o5s3t] { font-size: 0.82rem; color: var(--archex-muted); }
.ax-eh-stat strong[b-ulea0o5s3t] { font-size: 1.05rem; color: var(--archex-text); font-variant-numeric: tabular-nums; }

/* ---- Cards ------------------------------------------------------------- */

.ax-eh-card[b-ulea0o5s3t] {
    padding: 1rem 1.15rem 1.15rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-medium);
    background: var(--archex-white);
    box-shadow: var(--archex-shadow);
}

.ax-eh-card h1[b-ulea0o5s3t] { margin: 0 0 0.4rem; font-size: 1.25rem; }
.ax-eh-card h2[b-ulea0o5s3t] { margin: 0 0 0.5rem; font-size: 1.02rem; }
.ax-eh-denied[b-ulea0o5s3t] { max-width: 46rem; }

.ax-eh-status[b-ulea0o5s3t] {
    margin: 0;
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--archex-border);
    border-left: 3px solid var(--archex-eucalyptus);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    font-size: 0.88rem;
}

.ax-eh-status.error[b-ulea0o5s3t] { border-left-color: var(--archex-copper); }

/* ---- Job card ---------------------------------------------------------- */

.ax-eh-card-fields[b-ulea0o5s3t] {
    display: grid;
    grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr);
    gap: 0.3rem 1rem;
    margin: 0.7rem 0 0;
    font-size: 0.86rem;
}

.ax-eh-card-fields dt[b-ulea0o5s3t] { font-weight: 600; color: var(--archex-muted); padding-top: 0.15rem; }

.ax-eh-card-fields dd[b-ulea0o5s3t] {
    margin: 0;
    min-width: 0;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--archex-border);
}

.ax-eh-card-fields dd .v[b-ulea0o5s3t] { display: block; overflow-wrap: anywhere; }
.ax-eh-card-fields dd.missing .v[b-ulea0o5s3t] { color: var(--archex-muted); font-style: italic; }
.ax-eh-card-fields dd.conflict .v[b-ulea0o5s3t] { color: var(--archex-copper); font-weight: 600; }

.ax-eh-card-fields .ev[b-ulea0o5s3t] { display: block; margin-top: 0.15rem; font-size: 0.72rem; color: var(--archex-muted); }
.ax-eh-card-fields .ev .one[b-ulea0o5s3t] { display: block; overflow-wrap: anywhere; }
.ax-eh-card-fields .ev em[b-ulea0o5s3t] { font-style: normal; font-weight: 600; }
.ax-eh-card-fields .ev .subj[b-ulea0o5s3t] { }

.ax-eh-pick[b-ulea0o5s3t] {
    margin-right: 0.35rem;
    padding: 0.08rem 0.4rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    font-size: 0.7rem;
    cursor: pointer;
}

.ax-eh-pick.on[b-ulea0o5s3t] { border-color: var(--archex-ochre); color: var(--archex-copper); font-weight: 600; }

/* ---- The single approval ----------------------------------------------- */

.ax-eh-approve[b-ulea0o5s3t] {
    margin-top: 1rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--archex-border);
}

.ax-eh-btn[b-ulea0o5s3t] {
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: 0.82rem;
    cursor: pointer;
    white-space: nowrap;
}

.ax-eh-btn:hover:not(:disabled)[b-ulea0o5s3t] { border-color: var(--archex-eucalyptus); }
.ax-eh-btn:disabled[b-ulea0o5s3t] { opacity: 0.55; cursor: not-allowed; }

.ax-eh-btn.primary[b-ulea0o5s3t] {
    background: var(--archex-ochre);
    border-color: var(--archex-ochre);
    color: var(--archex-white);
}

.ax-eh-btn.primary:hover:not(:disabled)[b-ulea0o5s3t] { background: var(--archex-copper); border-color: var(--archex-copper); }

.ax-eh-btn.big[b-ulea0o5s3t] {
    padding: 0.65rem 1.3rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: var(--archex-radius-small);
    white-space: normal;
}

/* ---- Results ------------------------------------------------------------ */

.ax-eh-results[b-ulea0o5s3t] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.75rem;
}

.ax-eh-tile[b-ulea0o5s3t] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-medium);
    background: var(--archex-white);
    box-shadow: var(--archex-shadow);
}

.ax-eh-tile .n[b-ulea0o5s3t] { font-size: 2rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.ax-eh-tile .l[b-ulea0o5s3t] { font-size: 0.72rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--archex-muted); }

.ax-eh-tile.filed[b-ulea0o5s3t] { border-left: 4px solid var(--archex-eucalyptus); }
.ax-eh-tile.docs[b-ulea0o5s3t] { border-left: 4px solid var(--archex-ochre); }
.ax-eh-tile.attention[b-ulea0o5s3t] { border-left: 4px solid var(--archex-border); }
.ax-eh-tile.attention.live[b-ulea0o5s3t] { border-left-color: var(--archex-copper); }
.ax-eh-tile.attention.live .n[b-ulea0o5s3t] { color: var(--archex-copper); }
.ax-eh-tile.failed[b-ulea0o5s3t] { border-left: 4px solid var(--archex-border); }
.ax-eh-tile.failed.live[b-ulea0o5s3t] { border-left-color: var(--archex-copper); }
.ax-eh-tile.failed.live .n[b-ulea0o5s3t] { color: var(--archex-copper); }

.ax-eh-counts[b-ulea0o5s3t] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 1rem;
    margin: 0.5rem 0 0;
    font-size: 0.86rem;
    max-width: 44rem;
}

.ax-eh-counts dt[b-ulea0o5s3t] { color: var(--archex-muted); }
.ax-eh-counts dd[b-ulea0o5s3t] { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }

/* ---- Exceptions --------------------------------------------------------- */

.ax-eh-exceptions[b-ulea0o5s3t] { list-style: none; margin: 0.6rem 0 0; padding: 0; }

.ax-eh-exceptions li[b-ulea0o5s3t] {
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--archex-border);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ax-eh-exceptions li:last-child[b-ulea0o5s3t] { border-bottom: none; }

.ax-eh-ex-main[b-ulea0o5s3t] { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: baseline; min-width: 0; }
.ax-eh-ex-when[b-ulea0o5s3t] { font-size: 0.75rem; color: var(--archex-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ax-eh-ex-who[b-ulea0o5s3t] { font-weight: 600; font-size: 0.85rem; max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ax-eh-ex-subj[b-ulea0o5s3t] { font-size: 0.85rem; flex: 1 1 14rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ax-eh-ex-att[b-ulea0o5s3t] { font-size: 0.75rem; color: var(--archex-muted); white-space: nowrap; }
.ax-eh-ex-why[b-ulea0o5s3t] { font-size: 0.76rem; color: var(--archex-muted); font-style: italic; }

.ax-eh-ex-act[b-ulea0o5s3t] { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }

.ax-eh select[b-ulea0o5s3t] {
    padding: 0.28rem 0.45rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: 0.82rem;
    max-width: 22rem;
    min-width: 0;
}

/* ---- Responsive --------------------------------------------------------- */

@media (max-width: 1024px) {
    .ax-eh[b-ulea0o5s3t] { padding: 0.8rem 0.9rem 1.2rem; }
    .ax-eh-card-fields[b-ulea0o5s3t] { grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr); }
}

@media (max-width: 820px) {
    .ax-eh-head[b-ulea0o5s3t] { align-items: flex-start; }
    .ax-eh-results[b-ulea0o5s3t] { grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
    .ax-eh-tile .n[b-ulea0o5s3t] { font-size: 1.6rem; }
}

@media (max-width: 560px) {
    .ax-eh[b-ulea0o5s3t] { padding: 0.7rem 0.7rem 1.2rem; }
    .ax-eh-card-fields[b-ulea0o5s3t] { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
    .ax-eh-card-fields dt[b-ulea0o5s3t] { padding-top: 0.45rem; }
    .ax-eh-counts[b-ulea0o5s3t] { grid-template-columns: minmax(0, 1fr) auto; }
    .ax-eh-btn.big[b-ulea0o5s3t] { width: 100%; }
    .ax-eh select[b-ulea0o5s3t] { max-width: none; flex: 1 1 auto; }
}

/* Registered-place evidence on an unresolved email.

   An UNMAPPED place is the important state: the place is real and on record, nobody
   has mapped it to a project, and a person has to decide. It is given the warning
   treatment because it is a call to act, not a failure — the alternative reading,
   "no evidence", is what left these emails invisible in the first place. */
.ax-eh-ex-place[b-ulea0o5s3t] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-top: 0.3rem;
    padding: 0.35rem 0.5rem;
    border-left: 3px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-surface, #f7f7f8);
}

.ax-eh-ex-place.unmapped[b-ulea0o5s3t] { border-left-color: #b7791f; }

.ax-eh-ex-place.mapped[b-ulea0o5s3t] { border-left-color: #2c7a7b; }

.ax-eh-ex-place-tag[b-ulea0o5s3t] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
}

.ax-eh-ex-place.unmapped .ax-eh-ex-place-tag[b-ulea0o5s3t] { color: #8a5a12; }

.ax-eh-ex-place.mapped .ax-eh-ex-place-tag[b-ulea0o5s3t] { color: #1f5f60; }

.ax-eh-ex-place-why[b-ulea0o5s3t] {
    font-size: 0.72rem;
    color: var(--archex-muted);
    font-style: normal;
    line-height: 1.35;
}

/* People and organisations involved: everyone kept, never "choose one" (22 September 2026). */
.ax-eh-people-title[b-ulea0o5s3t] { margin: 1.4rem 0 0.2rem; font-size: 1.02rem; }
.ax-eh-people[b-ulea0o5s3t] { width: 100%; margin-top: 0.7rem; border-collapse: collapse; font-size: 0.86rem; }
.ax-eh-people th[b-ulea0o5s3t], .ax-eh-people td[b-ulea0o5s3t] { padding: 0.45rem 0.6rem; text-align: left; vertical-align: top; border-top: 1px solid rgba(0, 0, 0, 0.08); }
.ax-eh-people thead th[b-ulea0o5s3t] { border-top: none; font-size: 0.74rem; font-weight: 600; color: var(--archex-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.ax-eh-people tbody th[b-ulea0o5s3t] { font-weight: 600; overflow-wrap: anywhere; }
.ax-eh-people .num[b-ulea0o5s3t] { text-align: right; white-space: nowrap; }
.ax-eh-people small[b-ulea0o5s3t] { display: block; font-size: 0.74rem; font-weight: 400; color: var(--archex-muted); overflow-wrap: anywhere; }
.ax-eh-person[b-ulea0o5s3t] { display: block; margin-bottom: 0.3rem; overflow-wrap: anywhere; }
.ax-eh-unset[b-ulea0o5s3t] { color: var(--archex-muted); font-style: italic; }
@media (max-width: 640px) {
    .ax-eh-people thead[b-ulea0o5s3t] { display: none; }
    .ax-eh-people[b-ulea0o5s3t], .ax-eh-people tbody[b-ulea0o5s3t], .ax-eh-people tr[b-ulea0o5s3t], .ax-eh-people th[b-ulea0o5s3t], .ax-eh-people td[b-ulea0o5s3t] { display: block; width: 100%; }
    .ax-eh-people tr[b-ulea0o5s3t] { padding: 0.5rem 0; border-top: 1px solid rgba(0, 0, 0, 0.08); }
    .ax-eh-people th[b-ulea0o5s3t], .ax-eh-people td[b-ulea0o5s3t] { border-top: none; padding: 0.15rem 0; }
    .ax-eh-people .num[b-ulea0o5s3t] { text-align: left; }
}
/* /Components/Pages/Communications/HistoricalReview.razor.rz.scp.css */
/* Historical Email Review — a genuine Outlook-style workspace.
   Scoped to this page only; nothing here can reach Today, Projects or the Diary.

   The whole screen is sized to the VIEWPORT, and the two panes scroll independently,
   so reaching the Save control never means scrolling past 422 rows. */

.ax-hr[b-x4qriwcak2] {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    /* Fill the viewport below the app chrome, which measures 85-88px.
       height:100% is NOT usable here: the layout's <main> has no definite height for a
       percentage to resolve against, so the container grew to its content (26,777px)
       and every pane stopped scrolling internally. dvh keeps this correct when mobile
       browser chrome hides. The subtraction is deliberately the SAME at every width -
       the chrome does not shrink at narrow widths, and reducing it there pushed the
       sticky Save control past the bottom of the screen.
       min-height:0 lets the inner panes scroll rather than stretching the page. */
    height: calc(100vh - 5.5rem);
    height: calc(100dvh - 5.5rem);
    min-height: 24rem;
    padding: 0.75rem 1rem 0.85rem;
    overflow: hidden;
}

.ax-hr *[b-x4qriwcak2],
.ax-hr *[b-x4qriwcak2]::before,
.ax-hr *[b-x4qriwcak2]::after { box-sizing: inherit; }

.ax-hr-empty[b-x4qriwcak2] { color: var(--archex-muted); }

.ax-hr-denied[b-x4qriwcak2] {
    padding: 1.15rem 1.25rem 1.3rem;
    max-width: 46rem;
}

/* ---- 1. Compact header ------------------------------------------------- */

.ax-hr-head[b-x4qriwcak2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
}

.ax-hr-ident[b-x4qriwcak2] { min-width: 0; flex: 1 1 22rem; }

.ax-hr-ident .eyebrow[b-x4qriwcak2] {
    margin: 0;
    font-size: 0.62rem;
    letter-spacing: 0.09em;
}

.ax-hr-title[b-x4qriwcak2] {
    margin: 0.05rem 0 0.15rem;
    font-size: 1.15rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ax-hr-evidence[b-x4qriwcak2] {
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    min-width: 0;
}

.ax-hr-flag[b-x4qriwcak2] {
    flex: 0 0 auto;
    padding: 0.05rem 0.4rem;
    border: 1px solid var(--archex-copper);
    border-radius: 999px;
    font-size: 0.62rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--archex-copper);
    white-space: nowrap;
}

.ax-hr-path[b-x4qriwcak2] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 0.72rem;
    color: var(--archex-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.ax-hr-counts[b-x4qriwcak2] {
    display: flex;
    gap: 0.35rem;
    flex: 0 0 auto;
    flex-wrap: wrap;
}

.ax-hr-count[b-x4qriwcak2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.05rem;
    min-width: 4.6rem;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    cursor: pointer;
    line-height: 1.1;
}

.ax-hr-count:hover[b-x4qriwcak2] { border-color: var(--archex-eucalyptus); }

.ax-hr-count.on[b-x4qriwcak2] {
    border-color: var(--archex-ochre);
    box-shadow: inset 0 0 0 1px var(--archex-ochre);
}

.ax-hr-count .n[b-x4qriwcak2] {
    font-size: 1.05rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ax-hr-count .l[b-x4qriwcak2] {
    font-size: 0.6rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--archex-muted);
    white-space: nowrap;
}

/* ---- 2. Compact action bar --------------------------------------------- */

.ax-hr-bar[b-x4qriwcak2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.9rem;
    align-items: center;
    padding: 0.4rem 0.55rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    flex: 0 0 auto;
}

.ax-hr-group[b-x4qriwcak2] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}

.ax-hr-group.grow[b-x4qriwcak2] { flex: 1 1 14rem; justify-content: flex-end; }
.ax-hr-group.muted .ax-hr-glabel[b-x4qriwcak2] { opacity: 0.55; }

.ax-hr-glabel[b-x4qriwcak2] {
    font-size: 0.66rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--archex-muted);
    white-space: nowrap;
}

.ax-hr select[b-x4qriwcak2],
.ax-hr input[type="search"][b-x4qriwcak2],
.ax-hr input[type="date"][b-x4qriwcak2] {
    padding: 0.25rem 0.4rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: 0.8rem;
    font-weight: 400;
    max-width: 13rem;
    min-width: 0;
}

.ax-hr-search[b-x4qriwcak2] { flex: 1 1 10rem; max-width: 22rem !important; }

.ax-hr-btn[b-x4qriwcak2] {
    padding: 0.28rem 0.6rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: 0.78rem;
    cursor: pointer;
    white-space: nowrap;
}

.ax-hr-btn:hover:not(:disabled)[b-x4qriwcak2] { border-color: var(--archex-eucalyptus); }
.ax-hr-btn:disabled[b-x4qriwcak2] { opacity: 0.5; cursor: not-allowed; }

.ax-hr-btn.primary[b-x4qriwcak2] {
    background: var(--archex-ochre);
    border-color: var(--archex-ochre);
    color: var(--archex-white);
}

.ax-hr-btn.primary:hover:not(:disabled)[b-x4qriwcak2] {
    background: var(--archex-copper);
    border-color: var(--archex-copper);
}

.ax-hr-btn.on[b-x4qriwcak2] { border-color: var(--archex-ochre); box-shadow: inset 0 0 0 1px var(--archex-ochre); }

/* ---- 7. Filters and chips ---------------------------------------------- */

.ax-hr-filters[b-x4qriwcak2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 0.5rem;
    padding: 0.55rem 0.6rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    flex: 0 0 auto;
}

.ax-hr-filters label[b-x4qriwcak2] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--archex-muted);
    min-width: 0;
}

.ax-hr-filters input[b-x4qriwcak2],
.ax-hr-filters select[b-x4qriwcak2] { max-width: 100%; }

.ax-hr-fbtns[b-x4qriwcak2] { display: flex; align-items: flex-end; gap: 0.4rem; }

.ax-hr-chips[b-x4qriwcak2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    flex: 0 0 auto;
}

.ax-hr-chip[b-x4qriwcak2] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: 18rem;
    padding: 0.15rem 0.45rem;
    border: 1px solid var(--archex-border);
    border-radius: 999px;
    background: var(--archex-white);
    font-size: 0.72rem;
    cursor: pointer;
}

.ax-hr-chip span:first-child[b-x4qriwcak2] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ax-hr-chip .x[b-x4qriwcak2] { color: var(--archex-copper); font-weight: 700; }
.ax-hr-chip:hover[b-x4qriwcak2] { border-color: var(--archex-copper); }

.ax-hr-status[b-x4qriwcak2] {
    margin: 0;
    padding: 0.35rem 0.65rem;
    border: 1px solid var(--archex-border);
    border-left: 3px solid var(--archex-eucalyptus);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    font-size: 0.8rem;
    flex: 0 0 auto;
}

.ax-hr-status.error[b-x4qriwcak2] { border-left-color: var(--archex-copper); }

/* ---- 3. Two-pane workspace --------------------------------------------- */

.ax-hr-work[b-x4qriwcak2] {
    display: grid;
    grid-template-columns: minmax(0, 40fr) minmax(0, 60fr);
    gap: 0.6rem;
    /* THE KEY LINE: the workspace takes the remaining height and min-height:0 lets
       the panes overflow internally instead of stretching the page. */
    flex: 1 1 auto;
    min-height: 0;
}

.ax-hr-pane[b-x4qriwcak2] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-medium);
    background: var(--archex-white);
    overflow: hidden;
}

/* ---- Left pane: list ---------------------------------------------------- */

.ax-hr-listhead[b-x4qriwcak2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--archex-border);
    background: var(--archex-white);
    flex: 0 0 auto;
}

.ax-hr-all[b-x4qriwcak2] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    color: var(--archex-muted);
}

.ax-hr-listmeta[b-x4qriwcak2] { font-size: 0.72rem; color: var(--archex-muted); }

.ax-hr-rows[b-x4qriwcak2] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

.ax-hr-row[b-x4qriwcak2] {
    display: flex;
    gap: 0.4rem;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--archex-border);
    cursor: pointer;
    min-width: 0;
}

.ax-hr-row:hover[b-x4qriwcak2] { background: rgba(96, 120, 107, 0.06); }

.ax-hr-row.current[b-x4qriwcak2] {
    background: rgba(96, 120, 107, 0.13);
    box-shadow: inset 3px 0 0 var(--archex-eucalyptus);
}

.ax-hr-tick[b-x4qriwcak2] { flex: 0 0 auto; padding-top: 0.1rem; }

.ax-hr-rowmain[b-x4qriwcak2] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

/* Every line truncates rather than wrapping into unreadable fragments. */
.ax-hr-line1[b-x4qriwcak2],
.ax-hr-line2[b-x4qriwcak2],
.ax-hr-line3[b-x4qriwcak2] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    min-width: 0;
}

.ax-hr-line1 .who[b-x4qriwcak2] {
    font-weight: 600;
    font-size: 0.84rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.ax-hr-line1 .when[b-x4qriwcak2] {
    flex: 0 0 auto;
    font-size: 0.72rem;
    color: var(--archex-muted);
    font-variant-numeric: tabular-nums;
}

.ax-hr-line2 .subj[b-x4qriwcak2] {
    font-size: 0.82rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.ax-hr-line3 .to[b-x4qriwcak2] {
    font-size: 0.72rem;
    color: var(--archex-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.ax-hr-line3 .marks[b-x4qriwcak2] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.ax-hr .ico[b-x4qriwcak2] { flex: 0 0 auto; font-size: 0.72rem; line-height: 1; }
.ax-hr .ico.dir[b-x4qriwcak2] { color: var(--archex-muted); font-weight: 700; }
.ax-hr .ico.warn[b-x4qriwcak2] { color: var(--archex-copper); font-weight: 700; }
.ax-hr .ico.att[b-x4qriwcak2] { color: var(--archex-muted); white-space: nowrap; }

.ax-hr-state[b-x4qriwcak2] {
    display: inline-block;
    padding: 0.02rem 0.35rem;
    border: 1px solid var(--archex-border);
    border-radius: 999px;
    font-size: 0.64rem;
    white-space: nowrap;
    color: var(--archex-muted);
}

.ax-hr-state.s2[b-x4qriwcak2] { border-color: var(--archex-eucalyptus); color: var(--archex-eucalyptus); }
.ax-hr-state.s3[b-x4qriwcak2] { border-color: var(--archex-ochre); color: var(--archex-copper); }

/* ---- Right pane: detail ------------------------------------------------- */

.ax-hr-dhead[b-x4qriwcak2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.6rem 0;
    border-bottom: 1px solid var(--archex-border);
    flex: 0 0 auto;
}

/* The Back control only exists in the stacked layout. */
.ax-hr-back[b-x4qriwcak2] { display: none; }

.ax-hr-tabs[b-x4qriwcak2] { display: flex; gap: 0.15rem; }

.ax-hr-tabs button[b-x4qriwcak2] {
    padding: 0.35rem 0.7rem;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: var(--archex-radius-small) var(--archex-radius-small) 0 0;
    background: transparent;
    color: var(--archex-muted);
    font-size: 0.8rem;
    cursor: pointer;
    white-space: nowrap;
}

.ax-hr-tabs button:hover[b-x4qriwcak2] { color: var(--archex-text); }

.ax-hr-tabs button.on[b-x4qriwcak2] {
    border-color: var(--archex-border);
    background: var(--archex-white);
    color: var(--archex-text);
    font-weight: 600;
    margin-bottom: -1px;
}

.ax-hr-dbody[b-x4qriwcak2] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.7rem 0.9rem 0.9rem;
}

.ax-hr-blank[b-x4qriwcak2] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--archex-muted);
    font-size: 0.9rem;
}

.ax-hr-subject[b-x4qriwcak2] {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    line-height: 1.35;
    /* Requirement 5: the subject is FULLY readable, so it wraps rather than truncates. */
    overflow-wrap: anywhere;
}

.ax-hr-meta[b-x4qriwcak2] {
    display: grid;
    grid-template-columns: 4.6rem minmax(0, 1fr);
    gap: 0.1rem 0.6rem;
    margin: 0 0 0.6rem;
    font-size: 0.8rem;
}

.ax-hr-meta dt[b-x4qriwcak2] { font-weight: 600; color: var(--archex-muted); }

.ax-hr-meta dd[b-x4qriwcak2] {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ax-hr-meta dd.ax-hr-path[b-x4qriwcak2] { font-size: 0.72rem; }
.ax-hr-meta dd em[b-x4qriwcak2] { color: var(--archex-muted); font-size: 0.7rem; }

.ax-hr-warning[b-x4qriwcak2] {
    margin: 0 0 0.6rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--archex-copper);
    border-left-width: 3px;
    border-radius: var(--archex-radius-small);
    background: rgba(180, 95, 40, 0.06);
    font-size: 0.8rem;
    line-height: 1.45;
}

.ax-hr-note[b-x4qriwcak2] {
    margin: 0 0 0.6rem;
    max-width: 72ch;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--archex-muted);
}

/* The body is sanitised at import, but still foreign content: boxed, and never
   allowed to push the pane sideways. Capped at a practical reading width. */
.ax-hr-message[b-x4qriwcak2] { max-width: 78ch; }

.ax-hr-html[b-x4qriwcak2],
.ax-hr-plain[b-x4qriwcak2] {
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    font-size: 0.85rem;
    line-height: 1.55;
    overflow-x: auto;
}

.ax-hr-plain[b-x4qriwcak2] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-family: inherit;
    margin: 0;
}

.ax-hr-html[b-x4qriwcak2]  img { max-width: 100%; height: auto; }
.ax-hr-html[b-x4qriwcak2]  table { max-width: 100%; display: block; overflow-x: auto; }
.ax-hr-html[b-x4qriwcak2]  * { max-width: 100%; }

.ax-hr-atts[b-x4qriwcak2] { margin: 0; padding: 0; list-style: none; }

.ax-hr-atts li[b-x4qriwcak2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 0.6rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--archex-border);
    font-size: 0.82rem;
}

.ax-hr-atts .n[b-x4qriwcak2] { overflow-wrap: anywhere; font-weight: 500; }
.ax-hr-atts .m[b-x4qriwcak2] { color: var(--archex-muted); font-size: 0.75rem; }

/* ---- Proposed job card -------------------------------------------------- */

.ax-hr-card[b-x4qriwcak2] {
    display: grid;
    grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr);
    gap: 0.35rem 0.8rem;
    margin: 0;
    font-size: 0.82rem;
}

.ax-hr-card dt[b-x4qriwcak2] {
    font-weight: 600;
    color: var(--archex-muted);
    padding-top: 0.1rem;
}

.ax-hr-card dd[b-x4qriwcak2] {
    margin: 0;
    min-width: 0;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--archex-border);
}

.ax-hr-card dd .v[b-x4qriwcak2] { display: block; overflow-wrap: anywhere; }
.ax-hr-card dd.missing .v[b-x4qriwcak2] { color: var(--archex-muted); font-style: italic; }
.ax-hr-card dd.conflict .v[b-x4qriwcak2] { color: var(--archex-copper); font-weight: 600; }

.ax-hr-card .src[b-x4qriwcak2] {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.7rem;
    line-height: 1.4;
    color: var(--archex-muted);
    overflow-wrap: anywhere;
}

.ax-hr-card .src em[b-x4qriwcak2] { font-style: normal; font-weight: 600; }
.ax-hr-card .src .note[b-x4qriwcak2] { display: block; }

.ax-hr-pick[b-x4qriwcak2] {
    display: inline-block;
    margin-right: 0.35rem;
    padding: 0.1rem 0.4rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    font-size: 0.7rem;
    cursor: pointer;
}

.ax-hr-pick.on[b-x4qriwcak2] { border-color: var(--archex-ochre); color: var(--archex-copper); font-weight: 600; }

/* ---- 5. Sticky assignment footer ---------------------------------------- */

.ax-hr-assign[b-x4qriwcak2] {
    flex: 0 0 auto;
    padding: 0.5rem 0.9rem 0.6rem;
    border-top: 1px solid var(--archex-border);
    background: var(--archex-white);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ax-hr-states[b-x4qriwcak2] { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.ax-hr-choice[b-x4qriwcak2] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.5rem;
    border: 1px solid var(--archex-border);
    border-radius: 999px;
    font-size: 0.76rem;
    cursor: pointer;
    white-space: nowrap;
}

.ax-hr-choice.on[b-x4qriwcak2] {
    border-color: var(--archex-ochre);
    box-shadow: inset 0 0 0 1px var(--archex-ochre);
    font-weight: 600;
}

.ax-hr-assignrow[b-x4qriwcak2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.ax-hr-assignrow select[b-x4qriwcak2] { flex: 1 1 12rem; max-width: 26rem; }

.ax-hr-assignnote[b-x4qriwcak2] {
    flex: 1 1 12rem;
    font-size: 0.74rem;
    color: var(--archex-muted);
}

.ax-hr-saved[b-x4qriwcak2] { margin: 0; font-size: 0.7rem; color: var(--archex-muted); }

/* ---- 8. Responsive ------------------------------------------------------ */

/* 1024: narrower two-pane. The list gets a little more room proportionally. */
@media (max-width: 1200px) {
    .ax-hr[b-x4qriwcak2] { padding: 0.6rem 0.7rem 0.7rem; }
    .ax-hr-work[b-x4qriwcak2] { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); }
    .ax-hr-title[b-x4qriwcak2] { font-size: 1.05rem; }
    .ax-hr-count[b-x4qriwcak2] { min-width: 4.1rem; }
}

/* Below ~850: stacked. The list fills the screen; selecting opens the message as
   its own view with a Back control. */
@media (max-width: 850px) {
    .ax-hr[b-x4qriwcak2] {
        padding: 0.5rem 0.6rem 0.6rem;
        /* Measured: the nav is a little taller at tablet widths too. */
        height: calc(100vh - 6rem);
        height: calc(100dvh - 6rem);
    }

    .ax-hr-work[b-x4qriwcak2] { grid-template-columns: minmax(0, 1fr); }

    .ax-hr-work.list .ax-hr-detailpane[b-x4qriwcak2] { display: none; }
    .ax-hr-work.detail .ax-hr-listpane[b-x4qriwcak2] { display: none; }

    .ax-hr-back[b-x4qriwcak2] { display: inline-block; }

    .ax-hr-counts[b-x4qriwcak2] { width: 100%; }
    .ax-hr-count[b-x4qriwcak2] { flex: 1 1 0; min-width: 0; }

    .ax-hr-group.grow[b-x4qriwcak2] { flex: 1 1 100%; justify-content: flex-start; }
    .ax-hr-search[b-x4qriwcak2] { max-width: none !important; }

    .ax-hr-meta[b-x4qriwcak2] { grid-template-columns: 4rem minmax(0, 1fr); }
}

@media (max-width: 560px) {
    /* The app's navigation wraps to two rows at phone widths, so the chrome above is
       125px here rather than the ~88px it measures on desktop. Measured, not guessed:
       using the desktop figure pushed the sticky Save control 37px off-screen. */
    .ax-hr[b-x4qriwcak2] {
        height: calc(100vh - 8rem);
        height: calc(100dvh - 8rem);
    }

    /* The tab row is wider than a phone screen, and the pane clips it — which hid the
       "Proposed job card" tab entirely. It now wraps and scrolls, so every tab stays
       reachable. */
    .ax-hr-dhead[b-x4qriwcak2] { flex-wrap: wrap; row-gap: 0.25rem; }

    .ax-hr-tabs[b-x4qriwcak2] {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .ax-hr-tabs button[b-x4qriwcak2] { flex: 0 0 auto; }

    .ax-hr-bar[b-x4qriwcak2] { gap: 0.35rem 0.5rem; }
    .ax-hr-group[b-x4qriwcak2] { flex: 1 1 100%; }
    .ax-hr select[b-x4qriwcak2] { max-width: none; flex: 1 1 auto; }
    .ax-hr-count .l[b-x4qriwcak2] { font-size: 0.55rem; }
    .ax-hr-tabs button[b-x4qriwcak2] { padding: 0.3rem 0.45rem; font-size: 0.74rem; }
    .ax-hr-card[b-x4qriwcak2] { grid-template-columns: minmax(0, 1fr); gap: 0.15rem; }
    .ax-hr-card dt[b-x4qriwcak2] { padding-top: 0.4rem; }
}
/* /Components/Pages/Communications/JobRecovery.razor.rz.scp.css */
/* Recover old jobs (22 September 2026). */
.ax-jobrec-page[b-s79p8xfnlm] { display: grid; gap: 1rem; }
.ax-jobrec-quiet[b-s79p8xfnlm] { color: var(--archex-muted); font-size: 0.88rem; line-height: 1.55; max-width: 80ch; margin: 0.3rem 0 0.8rem; }

.ax-jobrec-step h2[b-s79p8xfnlm] { margin: 0 0 0.3rem; font-size: 1.05rem; }

.ax-jobrec-progress[b-s79p8xfnlm] { border-left: 4px solid var(--archex-copper); }
.ax-jobrec-progress p[b-s79p8xfnlm] { margin: 0 0 0.4rem; }
.ax-jobrec-progress-title[b-s79p8xfnlm] { font-weight: 600; }
.ax-jobrec-progress-title small[b-s79p8xfnlm] { display: block; font-weight: 400; color: var(--archex-muted); overflow-wrap: anywhere; }
.ax-jobrec-meter[b-s79p8xfnlm] { height: 8px; border-radius: 999px; background: rgba(0, 0, 0, 0.08); overflow: hidden; margin: 0.3rem 0 0.6rem; }
.ax-jobrec-meter span[b-s79p8xfnlm] { display: block; height: 100%; background: var(--archex-copper); transition: width 0.4s ease; }
.ax-jobrec-problems summary[b-s79p8xfnlm] { cursor: pointer; font-size: 0.86rem; }
.ax-jobrec-problems ul[b-s79p8xfnlm] { margin: 0.4rem 0 0; padding-left: 1.2rem; font-size: 0.82rem; }

.ax-jobrec-bar[b-s79p8xfnlm] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem; margin-bottom: 0.6rem; }
.ax-jobrec-all[b-s79p8xfnlm] { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.88rem; }

/* The table scrolls inside itself on a narrow screen; the page never does. */
.ax-jobrec-scroll[b-s79p8xfnlm] { width: 100%; overflow-x: auto; }
.ax-jobrec-table[b-s79p8xfnlm] { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 0.86rem; }
.ax-jobrec-table th[b-s79p8xfnlm], .ax-jobrec-table td[b-s79p8xfnlm] { padding: 0.45rem 0.55rem; text-align: left; vertical-align: top; border-top: 1px solid rgba(0, 0, 0, 0.08); }
.ax-jobrec-table thead th[b-s79p8xfnlm] { border-top: none; font-size: 0.72rem; font-weight: 600; color: var(--archex-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.ax-jobrec-table tbody th[b-s79p8xfnlm] { font-weight: 600; overflow-wrap: anywhere; }
.ax-jobrec-table small[b-s79p8xfnlm] { display: block; font-size: 0.74rem; font-weight: 400; color: var(--archex-muted); }
.ax-jobrec-table .num[b-s79p8xfnlm] { text-align: right; white-space: nowrap; }
.ax-jobrec-table tr.is-done th[b-s79p8xfnlm], .ax-jobrec-table tr.is-done td[b-s79p8xfnlm] { color: var(--archex-muted); }
.ax-jobrec-table .ax-jobrec-flag[b-s79p8xfnlm] { color: var(--archex-copper); font-weight: 600; }

/* Steps 3 and 4: finishing and the map-file check (22 September 2026). */
.ax-jobrec-decision[b-s79p8xfnlm] { margin: 0 0 0.8rem; padding: 0.55rem 0.75rem; border-left: 4px solid var(--archex-copper); background: rgba(0, 0, 0, 0.03); font-size: 0.88rem; }
.ax-jobrec-checks[b-s79p8xfnlm] { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.ax-jobrec-checks > li[b-s79p8xfnlm] { border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var(--archex-radius-medium, 10px); padding: 0.7rem 0.8rem; }
.ax-jobrec-checks > li.is-open[b-s79p8xfnlm] { border-color: var(--archex-copper); }
.ax-jobrec-check-head[b-s79p8xfnlm] { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.6rem; }
.ax-jobrec-check-head > span[b-s79p8xfnlm] { display: grid; gap: 0.15rem; min-width: 0; }
.ax-jobrec-check-head small[b-s79p8xfnlm] { color: var(--archex-muted); font-size: 0.78rem; overflow-wrap: anywhere; }
.ax-jobrec-map-frame[b-s79p8xfnlm] { position: relative; margin: 0.7rem 0 0.4rem; }
.ax-jobrec-map[b-s79p8xfnlm] { width: 100%; height: 380px; border-radius: var(--archex-radius-small, 6px); overflow: hidden; background: var(--archex-panel, #f3f1ec); }
.ax-jobrec-map-error[b-s79p8xfnlm] { position: absolute; left: 0.6rem; right: 0.6rem; top: 0.6rem; padding: 0.5rem 0.7rem; background: #fff; border: 1px solid var(--archex-warning, #b7791f); border-radius: 6px; font-size: 0.82rem; }
.ax-jobrec-map-error[hidden][b-s79p8xfnlm] { display: none; }
.map-popup[b-s79p8xfnlm] { display: grid; gap: 0.15rem; max-width: 260px; background: #fff; border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 6px; padding: 0.5rem 0.65rem; font-size: 0.78rem; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12); }
.map-popup[hidden][b-s79p8xfnlm] { display: none; }
@media (max-width: 650px) { .ax-jobrec-map[b-s79p8xfnlm] { height: 300px; } }
/* /Components/Pages/Communications/MailboxAdministration.razor.rz.scp.css */
/* WHO SEES WHAT. One row per person, so the page answers the question somebody came to it with
   rather than asking them to build a permission record out of three dropdowns. */

.ax-mailadmin-pick[b-e9mrzh3ear] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-3);
    font-size: var(--archex-text-sm);
    font-weight: 700;
    color: var(--color-gunmetal);
}

.ax-access-table[b-e9mrzh3ear] {
    display: grid;
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
    overflow: hidden;
}

.ax-access-head[b-e9mrzh3ear],
.ax-access-row[b-e9mrzh3ear] {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, .6fr);
    gap: var(--space-3);
    align-items: center;
    padding: 12px 14px;
}

.ax-access-head[b-e9mrzh3ear] {
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ax-access-row[b-e9mrzh3ear] { border-top: 1px solid var(--color-divider); background: var(--color-surface); }

.ax-access-who[b-e9mrzh3ear] { display: grid; gap: 2px; min-width: 0; }
.ax-access-who small[b-e9mrzh3ear] { color: var(--color-gunmetal); font-size: var(--archex-text-xs); }

.ax-access-sees[b-e9mrzh3ear] { display: grid; gap: 4px; min-width: 0; }
.ax-access-sees select[b-e9mrzh3ear] { width: 100%; }
.ax-access-sees small[b-e9mrzh3ear] { color: var(--color-gunmetal); font-size: var(--archex-text-xs); line-height: 1.4; }

.ax-access-toggle[b-e9mrzh3ear] { display: inline-flex; align-items: center; gap: 8px; font-size: var(--archex-text-sm); }

@media (max-width: 720px) {
    /* Three columns do not fit in a hand. Stacked, each row is still one person and the labels
       that were column headings move onto the controls, where they read the same. */
    .ax-access-head[b-e9mrzh3ear] { display: none; }
    .ax-access-row[b-e9mrzh3ear] { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
    .ax-access-config[b-e9mrzh3ear]::before { content: "Can configure mailboxes"; display: block; margin-bottom: 4px; color: var(--color-gunmetal); font-size: var(--archex-text-xs); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
}

/* ArchEx's own identity, set apart from the people above it: it is the same kind of grant, but it
   is not a person, and a row in the people table would say it was. */
.ax-mailadmin-system[b-e9mrzh3ear] { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-divider); }
.ax-mailadmin-system h3[b-e9mrzh3ear] { margin: 0 0 var(--space-2); font-size: var(--archex-text-sm); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--color-gunmetal); }
/* /Components/Pages/Communications/MailboxWorkspace.razor.rz.scp.css */
/* THE MAILBOX: folders | emails | the email being read.

   Rebuilt 21 September 2026. The page always named three panes, but no stylesheet ever laid them
   out, so the browser stacked them and every one of 169 Outlook folders rendered as a bordered
   button across the top of the page.

   THREE SHARED RULES THIS SHEET WORKS WITH, and why the selectors below are longer than they look:
   - THE HAMMER in archex-components.css boxes every button with a border and a radius, with
     !important. The emails, folders and conversation items are rows, not controls, so they carry
     .ax-list-button, which the hammer excludes - the exception is stated there, where the rule is.
   - `.ax-page button:not(.action-button):not(.primary-button):not(.axcal-day)` (0,4,1) gives every
     plain button a border, padding and a panel background. Every button rule here is written with
     at least five classes, so it wins on specificity rather than on load order.
   - `.ax-page:not(.activity-page) button.active` paints any button with class "active" solid orange
     with !important. So the current folder, email and conversation item are marked with
     aria-current="true", never with a class of that name.
   And the catch-all `[class*="pill"|"badge"|"-tag"|"chip"]` repaints anything so named with
   !important; no class here contains those words. */

/* ---- The frame ------------------------------------------------------------------------------ */
.ax-mail-page .ax-mailbox[b-nz6pwyv4ny] {
    --ax-mailbox-line: var(--archex-border-soft, #E6E3DE);
    --ax-mailbox-tint: #FDF1E8;
    --ax-mailbox-hover: #F7F4F0;
    display: grid;
    grid-template-columns: minmax(210px, 260px) minmax(280px, 400px) minmax(0, 1fr);
    height: calc(100vh - var(--archex-topbar-h, 64px) - 222px);
    min-height: 480px;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    box-shadow: var(--archex-shadow);
    overflow: hidden;
}

.ax-mail-page .ax-mailbox-loading[b-nz6pwyv4ny] {
    color: var(--archex-muted);
}

/* ---- Pane 1: folders ------------------------------------------------------------------------ */
.ax-mail-page .ax-mailbox .ax-mailbox-folders[b-nz6pwyv4ny] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 14px 8px 10px;
    border-right: 1px solid var(--ax-mailbox-line);
    background: #FAF8F5;
    overflow-y: auto;
}

.ax-mail-page .ax-mailbox .ax-mailbox-pane-head[b-nz6pwyv4ny] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-pane-title[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-group[b-nz6pwyv4ny] {
    margin: 0;
    font-size: var(--archex-text-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-group[b-nz6pwyv4ny] {
    padding: 4px 8px 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-switch[b-nz6pwyv4ny] {
    display: grid;
    gap: 2px;
    padding: 0 4px 6px;
    border-bottom: 1px solid var(--ax-mailbox-line);
}

.ax-mail-page .ax-mailbox .ax-mailbox-switch a[b-nz6pwyv4ny] {
    padding: 6px 8px;
    border-radius: 8px;
    color: var(--archex-text);
    text-decoration: none;
    font-weight: 600;
}

.ax-mail-page .ax-mailbox .ax-mailbox-switch a[aria-current="true"][b-nz6pwyv4ny] {
    background: var(--ax-mailbox-tint);
    color: var(--color-primary-dark);
}

.ax-mail-page .ax-mailbox input.ax-mailbox-find[b-nz6pwyv4ny] {
    width: auto;
    margin: 0 4px;
    height: 34px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-pill);
    background: var(--archex-white);
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .ax-mailbox-tree[b-nz6pwyv4ny] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-tree li[b-nz6pwyv4ny] {
    margin: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-node-row[b-nz6pwyv4ny] {
    display: flex;
    align-items: center;
    padding-left: calc(var(--depth, 0) * 14px);
}

.ax-mail-page .ax-mailbox .ax-mailbox-twisty-space[b-nz6pwyv4ny] {
    flex: 0 0 22px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-twisty[b-nz6pwyv4ny] {
    flex: 0 0 22px;
    width: 22px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--archex-muted);
    font-size: 12px;
    line-height: 1;
}

.ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-twisty:hover[b-nz6pwyv4ny] {
    background: var(--ax-mailbox-hover);
    color: var(--archex-text);
}

.ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-node[b-nz6pwyv4ny] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 5px 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--archex-text);
    font-size: 14px;
    font-weight: 500;
    text-align: left;
}

.ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-node:hover[b-nz6pwyv4ny] {
    background: var(--ax-mailbox-hover);
    color: var(--archex-text);
}

.ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-node[aria-current="true"][b-nz6pwyv4ny] {
    background: var(--ax-mailbox-tint);
    color: var(--color-primary-dark);
    font-weight: 700;
}

.ax-mail-page .ax-mailbox .ax-mailbox-node-name[b-nz6pwyv4ny] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ax-mail-page .ax-mailbox .ax-mailbox-node-name small[b-nz6pwyv4ny] {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 11.5px;
    font-weight: 400;
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-count[b-nz6pwyv4ny] {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    color: var(--color-primary-dark);
}

.ax-mail-page .ax-mailbox .ax-mailbox-none[b-nz6pwyv4ny] {
    padding: 6px 12px;
    color: var(--archex-muted);
    font-size: var(--archex-text-sm);
}

/* Sync status: kept, folded away at the foot of the folder pane. */
.ax-mail-page .ax-mailbox .ax-mailbox-sync[b-nz6pwyv4ny] {
    margin-top: auto;
    padding: 8px 8px 0;
    border-top: 1px solid var(--ax-mailbox-line);
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-sync summary[b-nz6pwyv4ny] {
    cursor: pointer;
    padding: 4px 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-sync-total[b-nz6pwyv4ny] {
    margin: 6px 0 0;
}

/* ---- Pane 2: the emails ----------------------------------------------------------------------- */
.ax-mail-page .ax-mailbox .ax-mailbox-list[b-nz6pwyv4ny] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    border-right: 1px solid var(--ax-mailbox-line);
}

.ax-mail-page .ax-mailbox .ax-mailbox-list-head[b-nz6pwyv4ny] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 14px 16px 6px;
}

.ax-mail-page .ax-mailbox h2.ax-mailbox-list-title[b-nz6pwyv4ny] {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ax-mail-page .ax-mailbox .ax-mailbox-list-count[b-nz6pwyv4ny] {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox input.ax-mailbox-search[b-nz6pwyv4ny] {
    width: auto;
    margin: 4px 16px 10px;
    height: 36px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-pill);
    background: #FAF8F5;
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .ax-mailbox-rows[b-nz6pwyv4ny] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    border-top: 1px solid var(--ax-mailbox-line);
}

.ax-mail-page .ax-mailbox .ax-mailbox-rows button.ax-mailbox-row[b-nz6pwyv4ny] {
    position: relative;
    display: grid;
    gap: 2px;
    width: 100%;
    padding: 10px 14px 11px 22px;
    border: 0;
    border-bottom: 1px solid var(--ax-mailbox-line);
    border-radius: 0;
    background: transparent;
    color: var(--archex-text);
    font-size: 14px;
    text-align: left;
}

.ax-mail-page .ax-mailbox .ax-mailbox-rows button.ax-mailbox-row:hover[b-nz6pwyv4ny] {
    background: var(--ax-mailbox-hover);
    color: var(--archex-text);
}

.ax-mail-page .ax-mailbox .ax-mailbox-rows button.ax-mailbox-row[aria-current="true"][b-nz6pwyv4ny] {
    background: var(--ax-mailbox-tint);
    box-shadow: inset 3px 0 0 var(--color-primary);
}

/* Unread: a dot and bold text, the way every mail program marks it. */
.ax-mail-page .ax-mailbox .ax-mailbox-rows button.ax-mailbox-row.is-unread[b-nz6pwyv4ny]::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 17px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-primary);
}

.ax-mail-page .ax-mailbox .ax-mailbox-row-top[b-nz6pwyv4ny] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-row-party[b-nz6pwyv4ny] {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-weight: 600;
}

.ax-mail-page .ax-mailbox .ax-mailbox-row-when[b-nz6pwyv4ny] {
    flex: 0 0 auto;
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-row-subject[b-nz6pwyv4ny] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .is-unread .ax-mailbox-row-party[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .is-unread .ax-mailbox-row-subject[b-nz6pwyv4ny] {
    font-weight: 800;
}

.ax-mail-page .ax-mailbox .ax-mailbox-row-preview[b-nz6pwyv4ny] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 12.5px;
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-row-marks[b-nz6pwyv4ny] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 3px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-mark[b-nz6pwyv4ny] {
    padding: 1px 8px;
    border-radius: var(--archex-radius-pill);
    background: #F1EEEA;
    color: var(--archex-muted);
    font-size: 11px;
    font-weight: 600;
}

.ax-mail-page .ax-mailbox .ax-mailbox-mark.is-suggested[b-nz6pwyv4ny] { background: #FFF3E0; color: #8A5A12; }
.ax-mail-page .ax-mailbox .ax-mailbox-mark.is-filed[b-nz6pwyv4ny] { background: #E7F2EC; color: #2F6B4F; }
.ax-mail-page .ax-mailbox .ax-mailbox-mark.is-flag[b-nz6pwyv4ny] { background: #FCEBEB; color: #8A2F2F; }
.ax-mail-page .ax-mailbox .ax-mailbox-mark.is-unsent[b-nz6pwyv4ny] { background: #B3261E; color: #FFFFFF; }

.ax-mail-page .ax-mailbox .ax-mailbox-rows button.ax-mailbox-more[b-nz6pwyv4ny] {
    display: block;
    width: calc(100% - 32px);
    margin: 12px 16px 16px;
    padding: 8px 12px;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-pill);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: var(--archex-text-sm);
    font-weight: 600;
}

.ax-mail-page .ax-mailbox .ax-mailbox-empty[b-nz6pwyv4ny] {
    margin: 0;
    padding: 18px 16px;
    color: var(--archex-muted);
    font-size: var(--archex-text-sm);
}

/* ---- Pane 3: the email being read ----------------------------------------------------------- */
.ax-mail-page .ax-mailbox .ax-mailbox-reader[b-nz6pwyv4ny] {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    padding: 22px 28px 28px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-nothing[b-nz6pwyv4ny] {
    display: grid;
    place-items: center;
    height: 100%;
    min-height: 200px;
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-reader-head[b-nz6pwyv4ny] {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ax-mailbox-line);
}

/* The shared sheet forces every h2 in a page to 1.05rem with !important; an email's subject is
   the heading of the pane and has to read as one. */
.ax-mail-page .ax-mailbox .ax-mailbox-reader h2.ax-mailbox-subject[b-nz6pwyv4ny] {
    margin: 0 0 14px;
    font-size: 1.35rem !important;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.ax-mail-page .ax-mailbox .ax-mailbox-sender[b-nz6pwyv4ny] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-avatar[b-nz6pwyv4ny] {
    display: grid;
    flex: 0 0 40px;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--ax-mailbox-tint);
    color: var(--color-primary-dark);
    font-size: 14px;
    font-weight: 800;
}

.ax-mail-page .ax-mailbox .ax-mailbox-sender-lines[b-nz6pwyv4ny] {
    display: grid;
    min-width: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-sender-lines strong[b-nz6pwyv4ny] {
    overflow-wrap: anywhere;
}

.ax-mail-page .ax-mailbox .ax-mailbox-sender-lines span[b-nz6pwyv4ny] {
    font-size: var(--archex-text-sm);
    color: var(--archex-muted);
    overflow-wrap: anywhere;
}

.ax-mail-page .ax-mailbox .ax-mailbox-reader-when[b-nz6pwyv4ny] {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
    white-space: nowrap;
}

.ax-mail-page .ax-mailbox .ax-mailbox-meta[b-nz6pwyv4ny] {
    display: grid;
    gap: 2px;
    margin: 10px 0 0 52px;
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .ax-mailbox-meta div[b-nz6pwyv4ny] {
    display: flex;
    gap: 8px;
    min-width: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-meta dt[b-nz6pwyv4ny] {
    flex: 0 0 22px;
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-meta dd[b-nz6pwyv4ny] {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Reply and Reply all, under the sender, where a mail program puts them. */
.ax-mail-page .ax-mailbox .ax-mailbox-reply-bar[b-nz6pwyv4ny] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 0 52px;
}

/* The email form in the reading pane: the pane is already the card, so the form drops its own. */
.ax-mail-page .ax-mailbox .ax-mailbox-reader[b-nz6pwyv4ny]  .ax-composer {
    padding: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
}

.ax-mail-page .ax-mailbox .ax-mailbox-job[b-nz6pwyv4ny] {
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid var(--ax-mailbox-line);
    border-radius: 10px;
    background: #FAF8F5;
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .ax-mailbox-job p[b-nz6pwyv4ny] {
    margin: 0;
}

.ax-mail-page .ax-mailbox .ax-mailbox-job-evidence[b-nz6pwyv4ny] {
    margin-top: 4px !important;
    color: var(--archex-muted);
    font-size: var(--archex-text-xs);
}

.ax-mail-page .ax-mailbox .ax-mailbox-job-filed a[b-nz6pwyv4ny] {
    margin-left: 6px;
    font-weight: 700;
}

.ax-mail-page .ax-mailbox .ax-mailbox-job-controls[b-nz6pwyv4ny] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-job-controls select[b-nz6pwyv4ny] {
    flex: 1 1 16rem;
    min-width: 0;
}

/* The shared .primary-button supplies the look; this only keeps it from stretching. */
.ax-mail-page .ax-mailbox .ax-mailbox-job button.ax-mailbox-file[b-nz6pwyv4ny] {
    flex: 0 0 auto;
}

.ax-mail-page .ax-mailbox .ax-mailbox-notice[b-nz6pwyv4ny] {
    margin: 0 0 14px;
    padding: 8px 12px;
    border-radius: 8px;
    background: #F1EEEA;
    color: var(--archex-muted);
    font-size: var(--archex-text-xs);
}

/* The email itself. Its HTML arrives sanitised and carries no scope attribute, so it is reached
   with ::deep. */
.ax-mail-page .ax-mailbox .ax-mailbox-body[b-nz6pwyv4ny] {
    max-width: 78ch;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--archex-text);
    overflow-wrap: anywhere;
    overflow-x: auto;
}

.ax-mail-page .ax-mailbox .ax-mailbox-body[b-nz6pwyv4ny]  p { margin: 0 0 .8em; }
.ax-mail-page .ax-mailbox .ax-mailbox-body[b-nz6pwyv4ny]  img,
.ax-mail-page .ax-mailbox .ax-mailbox-body[b-nz6pwyv4ny]  table { max-width: 100%; }
.ax-mail-page .ax-mailbox .ax-mailbox-body[b-nz6pwyv4ny]  blockquote {
    margin: .6em 0;
    padding-left: 12px;
    border-left: 3px solid var(--ax-mailbox-line);
    color: var(--archex-muted);
}

.ax-mail-page .ax-mailbox .ax-mailbox-plain[b-nz6pwyv4ny] {
    margin: 0;
    font-family: inherit;
    white-space: pre-wrap;
}

.ax-mail-page .ax-mailbox .ax-mailbox-attachments[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-thread[b-nz6pwyv4ny] {
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid var(--ax-mailbox-line);
}

.ax-mail-page .ax-mailbox .ax-mailbox-attachments h3[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-thread h3[b-nz6pwyv4ny] {
    margin: 0 0 8px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-attachments ul[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-thread ul[b-nz6pwyv4ny] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ax-mail-page .ax-mailbox .ax-mailbox-thread ul[b-nz6pwyv4ny] {
    display: grid;
    gap: 2px;
}

.ax-mail-page .ax-mailbox .ax-mailbox-attachments li[b-nz6pwyv4ny] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--ax-mailbox-line);
    border-radius: 10px;
    background: #FAF8F5;
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .ax-mailbox-attachment-name[b-nz6pwyv4ny] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ax-mail-page .ax-mailbox .ax-mailbox-attachments small[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-attachments em[b-nz6pwyv4ny] {
    color: var(--archex-muted);
    font-size: var(--archex-text-xs);
}

.ax-mail-page .ax-mailbox .ax-mailbox-thread button.ax-mailbox-thread-item[b-nz6pwyv4ny] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 6px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--archex-text);
    font-size: var(--archex-text-sm);
    text-align: left;
}

.ax-mail-page .ax-mailbox .ax-mailbox-thread button.ax-mailbox-thread-item:hover[b-nz6pwyv4ny] {
    background: var(--ax-mailbox-hover);
    color: var(--archex-text);
}

.ax-mail-page .ax-mailbox .ax-mailbox-thread button.ax-mailbox-thread-item[aria-current="true"][b-nz6pwyv4ny] {
    background: var(--ax-mailbox-tint);
    font-weight: 700;
}

.ax-mail-page .ax-mailbox .ax-mailbox-thread small[b-nz6pwyv4ny] {
    flex: 0 0 auto;
    color: var(--archex-muted);
}

/* Only on a narrow screen: the way back from an email, and the way into and out of the folders. */
.ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-close[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-list-head button.ax-mailbox-folders-open[b-nz6pwyv4ny],
.ax-mail-page .ax-mailbox .ax-mailbox-reader button.ax-mailbox-back[b-nz6pwyv4ny] {
    display: none;
}

/* ---- Local AI panel ------------------------------------------------------------------------- *
   The palette is deliberately quiet EXCEPT the statutory warning, which is the one thing that must
   be read before the draft it sits above. Folded away until somebody wants it. */
.ax-mail-ai[b-nz6pwyv4ny] {
    margin-top: 20px;
    padding: 10px 12px;
    border: 1px solid #dbe3ee;
    border-radius: var(--archex-radius-small);
    background: #f7f9fc;
}

.ax-mail-ai summary[b-nz6pwyv4ny] {
    cursor: pointer;
    font-size: var(--archex-text-sm);
    font-weight: 700;
    color: var(--color-primary-dark);
}

.ax-mail-ai[open] summary[b-nz6pwyv4ny] {
    margin-bottom: 10px;
}

.ax-mail-ai h4[b-nz6pwyv4ny] {
    margin: 0.6rem 0 0.3rem;
    font-size: 0.78rem;
    color: #4b5563;
}

.ax-mail-ai-off[b-nz6pwyv4ny] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--color-gunmetal);
}

.ax-mail-ai-actions[b-nz6pwyv4ny] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ax-mail-ai-instruction[b-nz6pwyv4ny] {
    flex: 1 1 18rem;
    min-width: 0;
    padding: 0.5rem;
    min-height: 2.75rem;
    font: inherit;
    border: 1px solid var(--color-divider);
    border-radius: 4px;
}

.ax-mail-ai-actions button[b-nz6pwyv4ny] {
    flex: 0 0 auto;
    padding: 0.5rem 0.9rem;
    min-height: 2.75rem;
    border: 1px solid var(--color-primary);
    border-radius: 4px;
    background: var(--color-primary);
    color: #ffffff;
    font: inherit;
    cursor: pointer;
}

.ax-mail-ai-actions button:disabled[b-nz6pwyv4ny] { opacity: 0.55; cursor: not-allowed; }
.ax-mail-ai-actions button:focus-visible[b-nz6pwyv4ny] { outline: 2px solid #1f2937; outline-offset: 2px; }

/* THE WARNING. Red, bordered and placed above the draft, because a confident
   statutory paragraph with nothing behind it is the failure this guards against. */
.ax-mail-ai-warning[b-nz6pwyv4ny] {
    margin: 0.7rem 0 0;
    padding: 0.6rem 0.7rem;
    border: 1px solid #b91c1c;
    border-left-width: 4px;
    border-radius: 4px;
    background: #fef2f2;
    color: #7f1d1d;
    font-size: 0.86rem;
    overflow-wrap: anywhere;
}

.ax-mail-ai-draft[b-nz6pwyv4ny] {
    width: 100%;
    margin-top: 0.7rem;
    padding: 0.6rem;
    font: inherit;
    line-height: 1.45;
    border: 1px solid var(--color-divider);
    border-radius: 4px;
    resize: vertical;
}

.ax-mail-ai-provenance[b-nz6pwyv4ny] {
    margin: 0.4rem 0 0;
    font-size: 0.78rem;
    color: var(--color-gunmetal);
}

.ax-mail-ai-sources ul[b-nz6pwyv4ny] { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.4rem; }
.ax-mail-ai-sources li[b-nz6pwyv4ny] { font-size: 0.82rem; }
.ax-mail-ai-sources li small[b-nz6pwyv4ny] { display: block; color: var(--color-gunmetal); overflow-wrap: anywhere; }

/* "None" must look like a finding, not like an empty list nobody filled in. */
.ax-mail-ai-nosource[b-nz6pwyv4ny] {
    margin: 0;
    padding: 0.4rem 0.55rem;
    border-left: 3px solid #b91c1c;
    background: var(--color-panel);
    color: #7f1d1d;
    font-size: 0.82rem;
}

/* ---- Per-folder synchronisation health, inside Sync status --------------------------------- *
   Inbox and Sent have independent cursors and are reported independently. The three states are
   visually distinct on purpose: "never run" must not read like "fine", which is exactly how a Sent
   folder that had never synchronised went unnoticed. */
.ax-mail-sync-health[b-nz6pwyv4ny] {
    display: grid;
    gap: 6px;
    margin-top: 6px;
}

.ax-sync-folder[b-nz6pwyv4ny] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--archex-border);
    border-left-width: 4px;
    border-radius: 8px;
    background: var(--archex-white, #fff);
}

.ax-sync-folder.ok[b-nz6pwyv4ny] { border-left-color: #2c7a7b; }
.ax-sync-folder.bad[b-nz6pwyv4ny] { border-left-color: #c05050; }
.ax-sync-folder.unrun[b-nz6pwyv4ny] { border-left-color: #b7791f; }

.ax-sync-folder-head[b-nz6pwyv4ny] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: baseline;
    justify-content: space-between;
}

.ax-sync-folder-name[b-nz6pwyv4ny] { font-weight: 700; font-size: 0.78rem; color: var(--archex-text); }

.ax-sync-folder-state[b-nz6pwyv4ny] { font-size: 0.72rem; font-weight: 600; }

.ax-sync-folder.ok .ax-sync-folder-state[b-nz6pwyv4ny] { color: #1f5f60; }
.ax-sync-folder.bad .ax-sync-folder-state[b-nz6pwyv4ny] { color: #8a2f2f; }
.ax-sync-folder.unrun .ax-sync-folder-state[b-nz6pwyv4ny] { color: #8a5a12; }

.ax-sync-folder-when[b-nz6pwyv4ny],
.ax-sync-folder-counts[b-nz6pwyv4ny] {
    font-size: 0.7rem;
    color: var(--archex-muted);
}

.ax-sync-resume[b-nz6pwyv4ny] { font-style: italic; }

.ax-sync-folder-error[b-nz6pwyv4ny] {
    margin: 0.2rem 0 0;
    font-size: 0.7rem;
    line-height: 1.35;
    color: #8a2f2f;
    overflow-wrap: anywhere;
}

/* ---- Narrower screens ----------------------------------------------------------------------- */
@media (max-width: 1180px) {
    .ax-mail-page .ax-mailbox[b-nz6pwyv4ny] {
        grid-template-columns: minmax(190px, 220px) minmax(250px, 320px) minmax(0, 1fr);
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-reader[b-nz6pwyv4ny] {
        padding: 18px 20px 24px;
    }
}

/* A phone, or a tablet held upright: ONE pane at a time. The list; an email, with the way back; or
   the folders, slid over the top. */
@media (max-width: 900px) {
    .ax-mail-page .ax-mailbox[b-nz6pwyv4ny] {
        grid-template-columns: minmax(0, 1fr);
        height: auto;
        min-height: 0;
        overflow: visible;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-folders[b-nz6pwyv4ny] {
        display: none;
    }

    .ax-mail-page .ax-mailbox[data-folders="open"] .ax-mailbox-folders[b-nz6pwyv4ny] {
        display: flex;
        position: fixed;
        top: var(--archex-topbar-h, 64px);
        bottom: 0;
        left: 0;
        z-index: 60;
        width: min(86vw, 330px);
        border-right: 1px solid var(--archex-border);
        box-shadow: var(--archex-shadow-hover);
    }

    .ax-mail-page .ax-mailbox[data-view="reader"] .ax-mailbox-list[b-nz6pwyv4ny],
    .ax-mail-page .ax-mailbox[data-view="list"] .ax-mailbox-reader[b-nz6pwyv4ny] {
        display: none;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-list[b-nz6pwyv4ny] {
        border-right: 0;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-rows[b-nz6pwyv4ny] {
        overflow: visible;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-reader[b-nz6pwyv4ny] {
        overflow: visible;
        padding: 16px;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-folders button.ax-mailbox-close[b-nz6pwyv4ny],
    .ax-mail-page .ax-mailbox .ax-mailbox-list-head button.ax-mailbox-folders-open[b-nz6pwyv4ny],
    .ax-mail-page .ax-mailbox .ax-mailbox-reader button.ax-mailbox-back[b-nz6pwyv4ny] {
        display: inline-flex;
        align-items: center;
        min-height: 40px;
        padding: 6px 14px;
        border: 1px solid var(--archex-border);
        border-radius: var(--archex-radius-pill);
        background: var(--archex-white);
        color: var(--archex-text);
        font-size: var(--archex-text-sm);
        font-weight: 700;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-reader button.ax-mailbox-back[b-nz6pwyv4ny] {
        margin-bottom: 12px;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-list-head[b-nz6pwyv4ny] {
        align-items: center;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-meta[b-nz6pwyv4ny],
    .ax-mail-page .ax-mailbox .ax-mailbox-reply-bar[b-nz6pwyv4ny] {
        margin-left: 0;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-sender[b-nz6pwyv4ny] {
        flex-wrap: wrap;
    }

    .ax-mail-page .ax-mailbox .ax-mailbox-reader-when[b-nz6pwyv4ny] {
        margin-left: 52px;
    }
}

/* An email that has not gone: said plainly, with why and what to do (22 September 2026). */
.ax-mail-page .ax-mailbox .ax-mailbox-unsent[b-nz6pwyv4ny] {
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid #E4B4B0;
    border-left: 4px solid #B3261E;
    border-radius: 8px;
    background: #FCEBEB;
    color: #5C1A16;
}

.ax-mail-page .ax-mailbox .ax-mailbox-unsent p[b-nz6pwyv4ny] {
    margin: 0 0 6px;
    font-size: var(--archex-text-sm);
}

.ax-mail-page .ax-mailbox .ax-mailbox-unsent .ax-mailbox-unsent-title[b-nz6pwyv4ny] {
    font-weight: 700;
    color: #8A1F18;
}

.ax-mail-page .ax-mailbox .ax-mailbox-unsent .ax-mailbox-unsent-next[b-nz6pwyv4ny] {
    margin-bottom: 10px;
}
/* /Components/Pages/Communications/MailHistoricalImport.razor.rz.scp.css */
/* Historical mail import. Scoped to this page only, so nothing here can reach
   Today, Projects or the Diary. */

.ax-mailimport-page[b-j7hlix6p4f] {
    /* Padding is inside the width, so a full-width page cannot overflow its
       parent and get silently clipped. */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.ax-mailimport-page *[b-j7hlix6p4f],
.ax-mailimport-page *[b-j7hlix6p4f]::before,
.ax-mailimport-page *[b-j7hlix6p4f]::after {
    box-sizing: inherit;
}

.ax-mailimport-head h1[b-j7hlix6p4f] {
    margin: 0.15rem 0 0.35rem;
}

.ax-mailimport-sub[b-j7hlix6p4f] {
    margin: 0;
    max-width: 62ch;
    color: var(--archex-muted);
    line-height: 1.5;
}

.ax-mailimport-block[b-j7hlix6p4f] {
    padding: 1.15rem 1.25rem 1.3rem;
}

.ax-mailimport-block h2[b-j7hlix6p4f] {
    margin: 0 0 0.85rem;
    font-size: 1.05rem;
    letter-spacing: 0.01em;
}

.ax-mailimport-form[b-j7hlix6p4f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.ax-mailimport-form label[b-j7hlix6p4f] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--archex-muted);
    min-width: 15rem;
}

.ax-mailimport-form select[b-j7hlix6p4f] {
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: 0.95rem;
    font-weight: 400;
}

.ax-mailimport-note[b-j7hlix6p4f] {
    margin: 0.75rem 0 0;
    max-width: 70ch;
    color: var(--archex-muted);
    font-size: 0.87rem;
    line-height: 1.5;
}

/* --- Folder and history tables ------------------------------------------ */

.ax-mailimport-table[b-j7hlix6p4f] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    /* Long Outlook paths must scroll rather than force the page sideways. */
    display: block;
    overflow-x: auto;
}

.ax-mailimport-table thead th[b-j7hlix6p4f] {
    text-align: left;
    padding: 0.4rem 0.7rem 0.5rem;
    border-bottom: 1px solid var(--archex-border);
    font-size: 0.74rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--archex-muted);
    white-space: nowrap;
}

.ax-mailimport-table tbody th[b-j7hlix6p4f],
.ax-mailimport-table tbody td[b-j7hlix6p4f] {
    padding: 0.55rem 0.7rem;
    border-bottom: 1px solid var(--archex-border);
    text-align: left;
    font-weight: 400;
    vertical-align: top;
}

.ax-mailimport-table tbody tr:last-child th[b-j7hlix6p4f],
.ax-mailimport-table tbody tr:last-child td[b-j7hlix6p4f] {
    border-bottom: none;
}

.ax-mailimport-table .num[b-j7hlix6p4f] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ax-mailimport-table .action[b-j7hlix6p4f] {
    text-align: right;
    white-space: nowrap;
}

.ax-mailimport-page .path[b-j7hlix6p4f] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 0.85em;
    word-break: break-word;
}

.ax-mailimport-page .muted[b-j7hlix6p4f] {
    color: var(--archex-muted);
}

/* --- Proposed projects --------------------------------------------------- */

.ax-mailimport-candidate[b-j7hlix6p4f] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--archex-border);
}

.ax-mailimport-candidate:last-of-type[b-j7hlix6p4f] {
    border-bottom: none;
    padding-bottom: 0;
}

.ax-mailimport-candidate .detail[b-j7hlix6p4f] {
    flex: 1 1 22rem;
    min-width: 0;
}

.ax-mailimport-candidate h3[b-j7hlix6p4f] {
    margin: 0 0 0.2rem;
    font-size: 1rem;
}

.ax-mailimport-candidate p[b-j7hlix6p4f] {
    margin: 0.15rem 0;
    font-size: 0.87rem;
}

.ax-mailimport-candidate .evidence[b-j7hlix6p4f] {
    margin-top: 0.4rem;
    color: var(--archex-muted);
    font-style: italic;
    line-height: 1.45;
}

.ax-mailimport-candidate .decide[b-j7hlix6p4f] {
    flex: 0 1 20rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.ax-mailimport-candidate .decide label[b-j7hlix6p4f] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--archex-muted);
}

.ax-mailimport-candidate .decide input[b-j7hlix6p4f] {
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    color: var(--archex-text);
    font-size: 0.92rem;
    font-weight: 400;
}

.ax-mailimport-candidate .buttons[b-j7hlix6p4f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ax-mailimport-page .ax-btn.primary[b-j7hlix6p4f] {
    background: var(--archex-ochre);
    border-color: var(--archex-ochre);
    color: var(--archex-white);
}

.ax-mailimport-page .ax-btn.primary:hover:not(:disabled)[b-j7hlix6p4f] {
    background: var(--archex-copper);
    border-color: var(--archex-copper);
}

.ax-mailimport-page .ax-btn:disabled[b-j7hlix6p4f] {
    opacity: 0.55;
    cursor: not-allowed;
}

.ax-visually-hidden[b-j7hlix6p4f] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 640px) {
    .ax-mailimport-candidate .decide[b-j7hlix6p4f] {
        flex: 1 1 100%;
    }
}

/* Shared mail classes are unstyled globally, so they are given their appearance
   here, scoped to this page. */

.ax-mail-status[b-j7hlix6p4f] {
    margin: 0;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--archex-border);
    border-left: 3px solid var(--archex-eucalyptus);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    font-size: 0.9rem;
    line-height: 1.45;
}

.ax-mail-status.error[b-j7hlix6p4f] {
    border-left-color: var(--archex-copper);
}

.ax-mail-empty[b-j7hlix6p4f] {
    color: var(--archex-muted);
}

.ax-mail-denied[b-j7hlix6p4f] {
    padding: 1.15rem 1.25rem 1.3rem;
    max-width: 46rem;
}
/* /Components/Pages/Communications/ProjectMail.razor.rz.scp.css */
/* A job's correspondence: conversations as cards, each email inside with who, when, its text and its
   attachments. Written 22 September 2026; the page had no stylesheet of its own before, which is
   why its form and its threads looked unfinished. */

.ax-projectmail-page .ax-projectmail-empty[b-alod3nkjbt] {
    color: var(--archex-muted);
}

.ax-projectmail-page[b-alod3nkjbt]  .ax-composer {
    margin-bottom: 18px;
}

.ax-projectmail-threads[b-alod3nkjbt] {
    display: grid;
    gap: 12px;
}

.ax-projectmail-thread[b-alod3nkjbt] {
    border: 1px solid var(--archex-border);
    border-radius: var(--archex-radius-small);
    background: var(--archex-white);
    box-shadow: var(--archex-shadow);
    overflow: hidden;
}

/* A row that opens the conversation; .ax-list-button keeps the shared button hammer off it. */
.ax-projectmail-page .ax-projectmail-thread button.ax-projectmail-thread-head[b-alod3nkjbt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 14px 18px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--archex-text);
    text-align: left;
}

.ax-projectmail-page .ax-projectmail-thread button.ax-projectmail-thread-head:hover[b-alod3nkjbt] {
    background: #F7F4F0;
    color: var(--archex-text);
}

.ax-projectmail-thread-copy[b-alod3nkjbt] {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.ax-projectmail-thread-copy strong[b-alod3nkjbt] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: var(--archex-text-base);
}

.ax-projectmail-thread-copy small[b-alod3nkjbt] {
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
}

.ax-projectmail-chevron[b-alod3nkjbt] {
    flex: 0 0 auto;
    color: var(--archex-muted);
}

.ax-projectmail-message[b-alod3nkjbt] {
    display: grid;
    gap: 12px;
    padding: 16px 18px 18px;
    border-top: 1px solid var(--archex-border-soft, #E6E3DE);
}

.ax-projectmail-message-head[b-alod3nkjbt] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ax-projectmail-avatar[b-alod3nkjbt] {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #FDF1E8;
    color: var(--color-primary-dark);
    font-size: 13px;
    font-weight: 800;
}

.ax-projectmail-who[b-alod3nkjbt] {
    display: grid;
    min-width: 0;
}

.ax-projectmail-who strong[b-alod3nkjbt],
.ax-projectmail-who small[b-alod3nkjbt] {
    overflow-wrap: anywhere;
}

.ax-projectmail-who small[b-alod3nkjbt] {
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
}

.ax-projectmail-when[b-alod3nkjbt] {
    display: grid;
    flex: 0 0 auto;
    justify-items: end;
    gap: 2px;
    margin-left: auto;
    font-size: var(--archex-text-xs);
    color: var(--archex-muted);
    white-space: nowrap;
}

.ax-projectmail-state[b-alod3nkjbt] {
    font-style: normal;
    font-weight: 700;
    color: #8A5A12;
}

.ax-projectmail-state.is-failed[b-alod3nkjbt] {
    color: #8A2F2F;
}

.ax-projectmail-body[b-alod3nkjbt] {
    max-width: 78ch;
    font-size: 14.5px;
    line-height: 1.6;
    overflow-wrap: anywhere;
    overflow-x: auto;
}

.ax-projectmail-body[b-alod3nkjbt]  p { margin: 0 0 .8em; }
.ax-projectmail-body[b-alod3nkjbt]  table { max-width: 100%; }

.ax-projectmail-body pre[b-alod3nkjbt] {
    margin: 0;
    font-family: inherit;
    white-space: pre-wrap;
}

.ax-projectmail-attachments[b-alod3nkjbt] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ax-projectmail-attachments li[b-alod3nkjbt] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--archex-border-soft, #E6E3DE);
    border-radius: 10px;
    background: #FAF8F5;
    font-size: var(--archex-text-sm);
}

.ax-projectmail-file[b-alod3nkjbt] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ax-projectmail-attachments small[b-alod3nkjbt] {
    color: var(--archex-muted);
    font-size: var(--archex-text-xs);
}

.ax-projectmail-attachments a[b-alod3nkjbt] {
    font-weight: 700;
}

.ax-projectmail-message-actions[b-alod3nkjbt] {
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 600px) {
    .ax-projectmail-message-head[b-alod3nkjbt] {
        flex-wrap: wrap;
    }

    .ax-projectmail-when[b-alod3nkjbt] {
        justify-items: start;
        margin-left: 48px;
    }
}

/* An email that has not gone: said plainly, with why and what to do (22 September 2026). */
.ax-projectmail-unsent[b-alod3nkjbt] {
    margin: 10px 0;
    padding: 10px 12px;
    border: 1px solid #E4B4B0;
    border-left: 4px solid #B3261E;
    border-radius: 8px;
    background: #FCEBEB;
    color: #5C1A16;
}

.ax-projectmail-unsent p[b-alod3nkjbt] {
    margin: 0 0 6px;
}

.ax-projectmail-unsent .ax-projectmail-unsent-title[b-alod3nkjbt] {
    font-weight: 700;
    color: #8A1F18;
}

/* The job's own Outlook folder, offered rather than assumed: it says which folder, how much of it
   is filed to nothing, and files it on one press. */
.ax-projectmail-offer[b-alod3nkjbt] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-3); padding: var(--space-3); border: 1px solid var(--archex-border); border-radius: var(--radius-md, 8px); background: var(--color-surface); }
.ax-projectmail-offer p[b-alod3nkjbt] { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.ax-projectmail-offer span[b-alod3nkjbt] { color: var(--color-gunmetal); font-size: var(--archex-text-sm); }

/* Attached but not confirmed: marked on the message itself, never left to be guessed at. */
.ax-projectmail-note[b-alod3nkjbt] { margin: 0 0 var(--space-3); color: var(--color-gunmetal); font-size: var(--archex-text-sm); }
.ax-projectmail-unconfirmed[b-alod3nkjbt] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: var(--space-2) 0; padding: var(--space-2) var(--space-3); border-left: 3px solid var(--color-amber, #B4803A); background: var(--color-surface-sunk, rgba(180,128,58,.08)); font-size: var(--archex-text-sm); }
.ax-projectmail-thread-unconfirmed[b-alod3nkjbt] { color: var(--color-amber, #B4803A); font-weight: 700; }

/* Moving a message to another job: shown on the message, because that is where the mistake is seen. */
.ax-projectmail-move[b-alod3nkjbt] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-2); margin: var(--space-2) 0; padding: var(--space-2) var(--space-3); border: 1px solid var(--archex-border); border-radius: var(--radius-md, 8px); }
.ax-projectmail-move label[b-alod3nkjbt] { display: flex; flex-direction: column; gap: 4px; font-size: var(--archex-text-xs); color: var(--color-gunmetal); }
.ax-projectmail-move input[b-alod3nkjbt] { min-width: 220px; }
.ax-projectmail-move-open[b-alod3nkjbt] { margin: var(--space-2) 0; }
/* /Components/Pages/Compliance/SafetyCompliance.razor.rz.scp.css */
.compliance-page[b-ek92tiyk5x]{min-height:100vh;padding:clamp(28px,4vw,58px);background:var(--color-background);color:var(--color-charcoal);font-family:var(--font-body)}.page-header[b-ek92tiyk5x],.metric-grid[b-ek92tiyk5x],.panel[b-ek92tiyk5x]{width:min(1320px,100%);margin-left:auto;margin-right:auto}.page-header[b-ek92tiyk5x]{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:28px}.eyebrow[b-ek92tiyk5x]{margin:0 0 8px;color:var(--color-primary-light);font-size:.65rem;font-weight:850;letter-spacing:.22em}.page-header h1[b-ek92tiyk5x]{margin:0;font-family:var(--font-body);font-size:var(--archex-text-2xl);font-weight:800;line-height:1;letter-spacing:-.04em}.page-header p[b-ek92tiyk5x]{max-width:720px;margin:12px 0 0;color:var(--color-gunmetal);font-size:.95rem;line-height:1.55}.primary-button[b-ek92tiyk5x],.row-actions button[b-ek92tiyk5x],.project-card button[b-ek92tiyk5x]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:11px 14px;background:var(--color-panel);color:var(--color-charcoal);font-weight:750;cursor:pointer}.primary-button[b-ek92tiyk5x]{border:0;background:var(--color-primary);box-shadow:var(--archex-shadow)}.metric-grid[b-ek92tiyk5x]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.metric-grid article[b-ek92tiyk5x],.panel[b-ek92tiyk5x],.project-card[b-ek92tiyk5x]{border:1px solid var(--color-divider);background:var(--color-surface)}.metric-grid article[b-ek92tiyk5x]{display:flex;min-height:122px;flex-direction:column;padding:18px;border-radius:var(--archex-radius-medium)}.metric-grid span[b-ek92tiyk5x]{color:var(--color-primary-light);font-size:.62rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.metric-grid strong[b-ek92tiyk5x]{margin-top:auto;font-size:2.15rem}.metric-grid small[b-ek92tiyk5x]{color:var(--color-gunmetal)}.panel[b-ek92tiyk5x]{margin-bottom:18px;padding:22px;border-radius:var(--archex-radius-large)}.section-heading[b-ek92tiyk5x]{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading h2[b-ek92tiyk5x]{margin:0;font-family:var(--font-body);font-size:1.22rem;font-weight:750;line-height:1.2}.section-heading>span[b-ek92tiyk5x]{color:var(--color-gunmetal);font-size:.75rem}.search-box[b-ek92tiyk5x]{display:flex;align-items:center;gap:10px}.search-box span[b-ek92tiyk5x]{color:var(--color-gunmetal);font-size:.72rem}.search-box input[b-ek92tiyk5x]{min-width:280px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:10px 12px;background:var(--color-surface);color:var(--color-charcoal)}.record-list[b-ek92tiyk5x]{display:grid;gap:9px}.record-row[b-ek92tiyk5x]{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:16px;padding:14px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:var(--color-surface)}.identity[b-ek92tiyk5x]{display:flex;align-items:center;gap:12px}.avatar[b-ek92tiyk5x]{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(217,101,40,.3);border-radius:var(--archex-radius-medium);background:var(--color-panel);font-size:.72rem;font-weight:900}.identity div[b-ek92tiyk5x]{display:flex;min-width:0;flex-direction:column}.identity small[b-ek92tiyk5x]{margin-top:3px;color:var(--color-gunmetal)}.status-stack[b-ek92tiyk5x]{display:flex;flex-wrap:wrap;gap:7px}.pill[b-ek92tiyk5x]{display:inline-flex;border-radius:999px;padding:7px 10px;font-size:.65rem;font-weight:800}.pill.ready[b-ek92tiyk5x]{background:rgba(68,156,91,.16);color:var(--color-success)}.pill.blocked[b-ek92tiyk5x]{background:rgba(180,73,57,.17);color:var(--color-danger)}.row-actions[b-ek92tiyk5x]{display:flex;gap:7px}.row-actions button:hover[b-ek92tiyk5x],.project-card button:hover[b-ek92tiyk5x]{border-color:rgba(217,101,40,.5);background:rgba(217,101,40,.1)}.project-grid[b-ek92tiyk5x]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-card[b-ek92tiyk5x]{padding:18px;border-radius:var(--archex-radius-medium)}.project-card small[b-ek92tiyk5x]{color:var(--color-primary-light);font-weight:800}.project-card h3[b-ek92tiyk5x]{margin:7px 0;font-family:var(--font-body);font-size:1.05rem;font-weight:750;line-height:1.25}.project-card p[b-ek92tiyk5x]{min-height:42px;color:var(--color-gunmetal)}.project-card button[b-ek92tiyk5x]{display:block;width:100%;margin-top:15px}@media(max-width:1000px){.metric-grid[b-ek92tiyk5x]{grid-template-columns:repeat(2,1fr)}.project-grid[b-ek92tiyk5x]{grid-template-columns:repeat(2,1fr)}.record-row[b-ek92tiyk5x]{grid-template-columns:1fr}.row-actions[b-ek92tiyk5x]{flex-wrap:wrap}}@media(max-width:650px){.compliance-page[b-ek92tiyk5x]{padding:22px 14px}.page-header[b-ek92tiyk5x],.section-heading[b-ek92tiyk5x]{align-items:flex-start;flex-direction:column}.metric-grid[b-ek92tiyk5x],.project-grid[b-ek92tiyk5x]{grid-template-columns:1fr}.search-box[b-ek92tiyk5x]{width:100%;align-items:stretch;flex-direction:column}.search-box input[b-ek92tiyk5x]{width:100%;min-width:0}}
/* /Components/Pages/Compliance/SwmsLibrary.razor.rz.scp.css */
.library-editor[b-cmdm8htmr3] { display: grid; gap: var(--archex-gap-3); margin-bottom: var(--archex-gap-4); }
.library-editor .ax-title[b-cmdm8htmr3] { margin: 0; }

.library-grid[b-cmdm8htmr3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--archex-gap-3);
}

.library-wide[b-cmdm8htmr3] { grid-column: 1 / -1; }

.library-kinds[b-cmdm8htmr3] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--archex-gap-2) var(--archex-gap-4);
    margin: 0;
    padding: var(--archex-gap-3);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
}

.library-kinds legend[b-cmdm8htmr3] { padding: 0 6px; font-weight: 700; }
.library-kinds label[b-cmdm8htmr3],
.library-active[b-cmdm8htmr3] { display: flex; align-items: center; gap: 6px; min-height: 40px; }
.library-actions[b-cmdm8htmr3] { display: flex; flex-wrap: wrap; gap: var(--archex-gap-2); }

.library-table[b-cmdm8htmr3] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--archex-text-sm);
}

.library-table th[b-cmdm8htmr3],
.library-table td[b-cmdm8htmr3] {
    padding: 8px 10px;
    border-bottom: 1px solid var(--color-divider);
    text-align: left;
    vertical-align: top;
}

.library-table th[b-cmdm8htmr3] { font-weight: 700; color: var(--color-gunmetal); }
.library-table td small[b-cmdm8htmr3] { display: block; color: var(--color-gunmetal); }
.library-table tr.is-retired td[b-cmdm8htmr3] { opacity: .55; }
.library-note[b-cmdm8htmr3] { margin: var(--archex-gap-3) 0 0; }

@media (max-width: 760px) {
    .library-grid[b-cmdm8htmr3] { grid-template-columns: 1fr; }
    .library-table thead[b-cmdm8htmr3] { display: none; }
    .library-table tr[b-cmdm8htmr3] { display: grid; padding: var(--archex-gap-2) 0; border-bottom: 1px solid var(--color-divider); }
    .library-table td[b-cmdm8htmr3] { border: 0; padding: 2px 0; }
}
/* /Components/Pages/Compliance/Toolbox.razor.rz.scp.css */
.register-day[b-3rxdm347q3] {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: var(--archex-gap-2);
    margin: var(--archex-gap-4) 0;
}

.register-day .ax-field[b-3rxdm347q3] { min-width: 180px; }

.register-row[b-3rxdm347q3] {
    display: grid;
    gap: var(--archex-gap-3);
    margin-bottom: var(--archex-gap-3);
}

.register-row-head[b-3rxdm347q3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--archex-gap-3);
}

.register-row-head .ax-title[b-3rxdm347q3] { margin: 0; }
.register-row-head .ax-title a[b-3rxdm347q3] { color: inherit; text-decoration: none; }
.register-row-head .ax-title a:hover[b-3rxdm347q3] { text-decoration: underline; }
.register-row-head p[b-3rxdm347q3] { margin: 4px 0 0; }

.register-hazards[b-3rxdm347q3] {
    margin: 0;
    padding: var(--archex-gap-3);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
    white-space: pre-wrap;
}

.register-people[b-3rxdm347q3] {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--color-divider);
}

.register-people li[b-3rxdm347q3] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: var(--archex-gap-3);
    padding: var(--archex-gap-2) 0;
    border-bottom: 1px solid var(--color-divider);
}

.register-people span[b-3rxdm347q3] { color: var(--color-gunmetal); font-weight: 600; }
.register-people time[b-3rxdm347q3] { color: var(--color-gunmetal); font-variant-numeric: tabular-nums; }
/* /Components/Pages/DesktopAssessmentWorkspace.razor.rz.scp.css */
/* WR-77. The desktop assessment workspace.
   Review state is carried by colour AND by a written label, so the distinction between
   confirmed and unconfirmed survives a greyscale print and a colour-blind reader. */

.desktop-assessment[b-a1pngexap4] { max-width: 1400px; }

.da-header[b-a1pngexap4] {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.25rem;
}

.da-header h1[b-a1pngexap4] { margin: 0 0 .25rem; }
.da-sub[b-a1pngexap4] { margin: 0; color: var(--ax-text-muted, var(--color-gunmetal)); }
.da-status[b-a1pngexap4] { display: flex; gap: .5rem; flex-wrap: wrap; }

.da-chip[b-a1pngexap4] {
    display: inline-block; padding: .15rem .55rem; border-radius: 999px;
    font-size: .78rem; font-weight: 600; white-space: nowrap;
    background: var(--color-panel); color: #334155; border: 1px solid var(--color-divider);
}

.da-chip-ok[b-a1pngexap4]    { background: #ecfdf5; color: #065f46; border-color: #6ee7b7; }
.da-chip-warn[b-a1pngexap4]  { background: #fffbeb; color: var(--color-primary-dark); border-color: #fcd34d; }
.da-chip-bad[b-a1pngexap4]   { background: var(--color-panel); color: #991b1b; border-color: var(--color-divider); }
.da-chip-ai[b-a1pngexap4]    { background: var(--color-panel); color: #3730a3; border-color: var(--color-divider); }
.da-chip-muted[b-a1pngexap4] { background: var(--color-panel); color: #4b5563; border-color: var(--color-divider); }

/* ---- unresolved evidence -------------------------------------------------- */

.da-banner[b-a1pngexap4] {
    border-radius:var(--archex-radius-small); padding: 1rem 1.25rem; margin-bottom: 1.5rem;
    border: 1px solid #fcd34d; background: #fffbeb;
}

.da-banner h2[b-a1pngexap4] { margin: 0 0 .35rem; font-size: 1.05rem; color: var(--color-primary-dark); }
.da-banner p[b-a1pngexap4] { margin: 0 0 .6rem; color: var(--color-primary-dark); }
.da-banner ul[b-a1pngexap4] { margin: 0; padding-left: 1.1rem; }
.da-banner li[b-a1pngexap4] { margin-bottom: .6rem; }

.da-gap-section[b-a1pngexap4] {
    margin-left: .5rem; font-size: .78rem; color: var(--color-primary-dark);
    background: #fef3c7; padding: .1rem .45rem; border-radius: 4px;
}

.da-gap-why[b-a1pngexap4]  { font-size: .88rem; color: var(--color-primary-dark); margin-top: .2rem; }
.da-gap-from[b-a1pngexap4] { font-size: .82rem; color: var(--color-gunmetal); margin-top: .15rem; font-style: italic; }

/* ---- layout --------------------------------------------------------------- */

.da-layout[b-a1pngexap4] { display: grid; grid-template-columns: 300px 1fr; gap: 1.5rem; align-items: start; }

@media (max-width: 980px) { .da-layout[b-a1pngexap4] { grid-template-columns: 1fr; } }

.da-nav[b-a1pngexap4] { display: flex; flex-direction: column; gap: .25rem; position: sticky; top: 1rem; }

.da-nav-item[b-a1pngexap4] {
    display: grid; grid-template-columns: 1.6rem 1fr auto; gap: .5rem; align-items: center;
    text-align: left; padding: .55rem .7rem; border-radius:var(--archex-radius-small); cursor: pointer;
    border: 1px solid transparent; background: transparent; font-size: .9rem; color: inherit;
}

.da-nav-item:hover[b-a1pngexap4] { background: var(--color-panel); }
.da-nav-item.is-selected[b-a1pngexap4] { background: #eef2ff; border-color: #c7d2fe; font-weight: 600; }
.da-nav-item.is-complete .da-nav-title[b-a1pngexap4]::after { content: " ✓"; color: #059669; }

.da-nav-ordinal[b-a1pngexap4] { color: #94a3b8; font-variant-numeric: tabular-nums; }
.da-nav-count[b-a1pngexap4] { color: #64748b; font-size: .78rem; font-variant-numeric: tabular-nums; }

.da-panel[b-a1pngexap4] {
    border: 1px solid var(--color-divider); border-radius:var(--archex-radius-medium); padding: 1.25rem 1.5rem; background: #fff;
    min-width: 0;
}

.da-panel-head[b-a1pngexap4] {
    display: flex; justify-content: space-between; align-items: center;
    gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem;
}

.da-panel-head h2[b-a1pngexap4] { margin: 0; font-size: 1.15rem; }
.da-panel h3[b-a1pngexap4] { margin: 1.5rem 0 .5rem; font-size: 1rem; }

.da-note[b-a1pngexap4] {
    font-size: .88rem; color: #475569; background: var(--color-surface);
    border-left: 3px solid var(--color-divider); padding: .5rem .75rem; margin: .5rem 0 1rem;
}

.da-empty[b-a1pngexap4] { color: #64748b; font-style: italic; }

.da-blockers[b-a1pngexap4] {
    border: 1px solid var(--color-divider); background: var(--color-panel); color: #991b1b;
    border-radius:var(--archex-radius-small); padding: .75rem 1rem; margin-bottom: 1rem;
}

.da-blockers ul[b-a1pngexap4] { margin: .35rem 0 0; padding-left: 1.1rem; }

/* ---- tables --------------------------------------------------------------- */

.da-table[b-a1pngexap4] { width: 100%; border-collapse: collapse; font-size: .88rem; }
.da-table th[b-a1pngexap4], .da-table td[b-a1pngexap4] { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid var(--color-divider); vertical-align: top; }
.da-table th[b-a1pngexap4] { background: var(--color-surface); font-weight: 600; }
.da-table .num[b-a1pngexap4] { text-align: right; font-variant-numeric: tabular-nums; }
.da-table tr.is-accepted[b-a1pngexap4] { background: #f0fdf4; }

.da-crs[b-a1pngexap4] { font-size: .8rem; color: #475569; margin-top: .3rem; }

.da-derived[b-a1pngexap4] {
    font-size: .82rem; color: var(--color-primary-dark); background: var(--color-panel);
    border: 1px solid #fcd34d; border-radius:var(--archex-radius-small); padding: .4rem .55rem; margin-top: .4rem;
}

.da-tally[b-a1pngexap4] { display: flex; gap: .5rem; flex-wrap: wrap; margin: .5rem 0 1rem; }

.da-tally-item[b-a1pngexap4] {
    background: var(--color-panel); border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small);
    padding: .3rem .6rem; font-size: .85rem;
}

.da-dupes[b-a1pngexap4] { font-size: .82rem; color: #475569; padding-left: 1.1rem; }
.da-dupes code[b-a1pngexap4] { font-size: .78rem; word-break: break-all; }

/* ---- findings ------------------------------------------------------------- */

.da-findings[b-a1pngexap4] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }

.da-finding[b-a1pngexap4] {
    border: 1px solid var(--color-divider); border-left-width: 4px; border-radius:var(--archex-radius-small); padding: .75rem 1rem;
}

.da-finding.is-unconfirmed[b-a1pngexap4]        { border-left-color: #f59e0b; background: #fffdf7; }
.da-finding.is-confirmed[b-a1pngexap4]          { border-left-color: #10b981; }
.da-finding.is-confirmedwithedits[b-a1pngexap4] { border-left-color: #10b981; }
.da-finding.is-rejected[b-a1pngexap4]           { border-left-color: #ef4444; opacity: .7; }

.da-finding-head[b-a1pngexap4] { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: .4rem; }
.da-finding-text[b-a1pngexap4] { margin: 0 0 .4rem; }

.da-finding-original[b-a1pngexap4] {
    margin: 0 0 .4rem; font-size: .85rem; color: #475569;
    background: var(--color-surface); padding: .35rem .5rem; border-radius:var(--archex-radius-small);
}

.da-finding-source[b-a1pngexap4] { font-size: .8rem; color: #64748b; display: flex; gap: .4rem; flex-wrap: wrap; }
.da-finding-source code[b-a1pngexap4] { background: var(--color-panel); padding: 0 .25rem; border-radius: 3px; }
.da-finding-review[b-a1pngexap4] { font-size: .8rem; color: #475569; margin-top: .4rem; }
.da-finding-actions[b-a1pngexap4] { display: flex; gap: .5rem; margin-top: .5rem; }

.da-message[b-a1pngexap4] {
    margin-top: 1rem; padding: .6rem .85rem; border-radius:var(--archex-radius-small);
    background: var(--color-panel); border: 1px solid var(--color-divider); color: #3730a3; font-size: .88rem;
}

/* The material under review: the records the report is generated from (F-165). */
.da-note[b-a1pngexap4] { color: var(--ax-ink-muted, #5b5b5b); font-size: 0.9rem; margin: 0.25rem 0 0.75rem; }
.da-content-summary[b-a1pngexap4] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem; }
.da-content[b-a1pngexap4] { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.da-content-item[b-a1pngexap4] { border: 1px solid var(--ax-rule, var(--color-divider)); border-left-width: 4px; border-radius: 4px; padding: 0.75rem; }
.da-content-item.is-reviewed[b-a1pngexap4] { border-left-color: var(--color-success); }
.da-content-item.is-unreviewed[b-a1pngexap4] { border-left-color: #b26a00; }
.da-content-item.is-stale[b-a1pngexap4] { border-left-color: #b3261e; background: #fff8f7; }
.da-content-head[b-a1pngexap4] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-bottom: 0.4rem; }
.da-content-key[b-a1pngexap4] { font-size: 0.85rem; }
.da-content-stale[b-a1pngexap4] { margin: 0.4rem 0; padding: 0.5rem; background: var(--color-panel); border-radius: 3px; font-size: 0.9rem; }
.da-content-toggle[b-a1pngexap4] { margin: 0.3rem 0; }
.da-content-value[b-a1pngexap4] { white-space: pre-wrap; word-break: break-word; background: var(--color-surface); border: 1px solid var(--ax-rule, var(--color-divider)); border-radius: 3px; padding: 0.6rem; font-size: 0.88rem; max-height: 28rem; overflow: auto; }
.da-content-notes[b-a1pngexap4] { font-size: 0.88rem; }
.da-content-source[b-a1pngexap4] { font-size: 0.82rem; color: var(--ax-ink-muted, var(--color-gunmetal)); display: grid; gap: 0.15rem; margin-top: 0.4rem; }
.da-content-review[b-a1pngexap4] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.5rem; font-size: 0.88rem; }
.da-content-actions[b-a1pngexap4] { margin-top: 0.5rem; }

@media (max-width: 767px) {
  .da-content-item[b-a1pngexap4] { padding: 0.6rem; }
  .da-content-value[b-a1pngexap4] { max-height: 18rem; }
}

.da-chip-demo[b-a1pngexap4] { background: #ede7f6; color: #4527a0; }

/* ---- editing the report's own words -------------------------------------------------
   The editor is deliberately plain and deliberately large: this is the text the generated
   report is built from, and somebody changing it should be able to see a paragraph of it
   at once rather than a line. */
.da-content-edit[b-a1pngexap4] {
    margin: 0.75rem 0 0.25rem;
    padding: 0.85rem;
    border: 1px solid var(--ax-border, var(--color-divider));
    border-left: 3px solid var(--ax-accent, var(--color-primary));
    background: var(--ax-surface-muted, var(--color-surface));
    border-radius: 3px;
}

.da-content-edit label[b-a1pngexap4] {
    display: block;
    margin: 0.6rem 0 0.25rem;
}

.da-content-edit label:first-of-type[b-a1pngexap4] { margin-top: 0; }

.da-content-edit .da-note[b-a1pngexap4] {
    display: block;
    font-weight: 400;
}

.da-content-editor[b-a1pngexap4] {
    width: 100%;
    box-sizing: border-box;
    font-family: Consolas, "Cascadia Mono", monospace;
    font-size: 0.86rem;
    line-height: 1.5;
    padding: 0.6rem;
    border: 1px solid var(--ax-border, var(--color-divider));
    border-radius: 3px;
    resize: vertical;
}

.da-content-reason[b-a1pngexap4] {
    width: 100%;
    box-sizing: border-box;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--ax-border, var(--color-divider));
    border-radius: 3px;
}

.da-content-problem[b-a1pngexap4] {
    margin: 0.6rem 0 0;
    padding: 0.5rem 0.65rem;
    background: var(--color-panel);
    border-left: 3px solid #c0392b;
    color: #7d241a;
}
/* /Components/Pages/DesktopAuthorshipPanel.razor.rz.scp.css */
/* The authorship, quality-control and approval panel on the desktop assessment workspace.
   Scoped to this component: the workspace's own stylesheet does not reach a child component's
   markup, which left every class here unstyled until 14 September 2026. */

.da-panel[b-eh5y63lky8] {
    border: 1px solid #e2e8f0; border-radius:var(--archex-radius-medium); padding: 1.25rem 1.5rem; background: #fff;
    min-width: 0; margin-top: 1.5rem;
}

.da-authorship h2[b-eh5y63lky8] { margin: 0 0 .75rem; font-size: 1.15rem; }
.da-authorship h3[b-eh5y63lky8] { margin: 1.5rem 0 .5rem; font-size: 1rem; }

.da-table[b-eh5y63lky8] { width: 100%; border-collapse: collapse; font-size: .9rem; }
.da-table th[b-eh5y63lky8],
.da-table td[b-eh5y63lky8] { text-align: left; vertical-align: top; padding: .45rem .6rem; border-bottom: 1px solid var(--color-divider); }
.da-table th[b-eh5y63lky8] { width: 32%; color: #475569; font-weight: 600; }

/* A refusal is stated in words as well as colour, so it survives a greyscale print. */
.da-blockers[b-eh5y63lky8] {
    margin: 1rem 0; padding: .85rem 1rem; border-radius:var(--archex-radius-small);
    border: 1px solid var(--color-divider); background: var(--color-panel); color: #7f1d1d;
}

.da-blockers p[b-eh5y63lky8] { margin: .35rem 0 0; white-space: pre-line; }

.da-gap-from[b-eh5y63lky8] { font-size: .82rem; color: var(--color-gunmetal); margin-top: .15rem; font-style: italic; }

.form-grid[b-eh5y63lky8] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: .75rem; align-items: end; margin: .75rem 0;
}

.form-grid label[b-eh5y63lky8],
.da-authorship label[b-eh5y63lky8] { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; color: #334155; }

.reason[b-eh5y63lky8] { min-width: 18rem; }
/* /Components/Pages/DesktopMaps.razor.rz.scp.css */
.figs[b-2da435vrwt] { max-width: 1500px; font-size: 15px; }

.figs-head[b-2da435vrwt] { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 12px; }
.figs-head h1[b-2da435vrwt] { margin: 2px 0 4px; font-size: 1.5rem; }
.figs-sub[b-2da435vrwt] { margin: 0; max-width: 860px; color: var(--color-gunmetal); font-size: 0.93rem; line-height: 1.55; }
.figs-status[b-2da435vrwt] { display: flex; gap: 8px; }

.figs-chip[b-2da435vrwt] {
    display: inline-block;
    padding: 4px 11px;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
    background: var(--color-panel);
    color: var(--color-charcoal);
    white-space: nowrap;
}

.figs-chip-ok[b-2da435vrwt] { background: #dcfce7; color: #14532d; }
.figs-chip-warn[b-2da435vrwt] { background: #fef3c7; color: var(--color-primary-dark); }

.figs-blocker[b-2da435vrwt] {
    border: 2px solid #b91c1c;
    background: var(--color-panel);
    border-radius:var(--archex-radius-small);
    padding: 12px 16px;
    margin-bottom: 14px;
    font-size: 0.92rem;
}

.figs-blocker p[b-2da435vrwt] { margin: 4px 0 0; line-height: 1.55; }

.figs-tabs[b-2da435vrwt] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }

.figs-tab[b-2da435vrwt] {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--color-divider);
    background: #fff;
    border-radius:var(--archex-radius-small);
    padding: 7px 12px;
    font-size: 0.86rem;
    cursor: pointer;
    text-align: left;
    max-width: 264px;
}

.figs-tab:hover[b-2da435vrwt] { background: var(--color-panel); }
.figs-tab.is-on[b-2da435vrwt] { border-color: var(--color-primary-dark); background: #fff7ed; font-weight: 700; box-shadow: inset 0 -3px 0 var(--color-primary-dark); }
.figs-tab.is-blocked[b-2da435vrwt] { border-style: dashed; color: #78716c; }

.figs-tabnum[b-2da435vrwt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 22px;
    padding: 0 5px;
    border-radius: 5px;
    background: #e7e5e4;
    font-weight: 700;
    font-size: 0.8rem;
    flex: 0 0 auto;
}

.figs-tab.is-on .figs-tabnum[b-2da435vrwt] { background: var(--color-primary-dark); color: #fff; }
.figs-tabtitle[b-2da435vrwt] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.figs-card[b-2da435vrwt] { border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); background: #fff; padding: 16px 18px 18px; }
.figs-cardhead[b-2da435vrwt] { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 12px; }
.figs-cardhead h2[b-2da435vrwt] { margin: 0 0 3px; font-size: 1.1rem; }
.figs-purpose[b-2da435vrwt] { margin: 0; color: var(--color-gunmetal); font-size: 0.9rem; line-height: 1.5; max-width: 800px; }
.figs-cardmeta[b-2da435vrwt] { display: flex; gap: 8px; flex-wrap: wrap; }

.figs-preview[b-2da435vrwt] { border: 1px solid #e7e5e4; background: #f5f5f4; padding: 12px; border-radius:var(--archex-radius-small); overflow: auto; }
.figs-preview[b-2da435vrwt]  svg { width: 100%; height: auto; display: block; background: #fff; box-shadow:var(--archex-shadow); }

.figs-downloads[b-2da435vrwt] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.figs-dlabel[b-2da435vrwt] { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-gunmetal); }
.figs-dl[b-2da435vrwt] { border: 1px solid var(--color-divider); background: #fff; border-radius:var(--archex-radius-small); padding: 6px 12px; font-size: 0.85rem; cursor: pointer; }
.figs-dl:disabled[b-2da435vrwt] { opacity: 0.45; cursor: not-allowed; }
.figs-dnote[b-2da435vrwt] { font-size: 0.8rem; color: var(--color-gunmetal); }

.figs-notproduced[b-2da435vrwt] { border-left: 3px solid var(--color-primary-dark); background: var(--color-panel); padding: 12px 16px; border-radius:var(--archex-radius-small); }
.figs-notproduced h3[b-2da435vrwt] { margin: 0 0 5px; font-size: 0.95rem; }
.figs-notproduced p[b-2da435vrwt] { margin: 0; font-size: 0.9rem; line-height: 1.6; }

.figs-caveat[b-2da435vrwt] { margin: 12px 0 0; font-size: 0.86rem; line-height: 1.6; color: #b91c1c; border-left: 3px solid var(--color-divider); padding-left: 12px; }

/* The export gate. Deliberately plain and tabular: it is a control, not a banner. */
.figs-gate[b-2da435vrwt] { margin-top: 1.25rem; border-top: 1px solid var(--color-divider); padding-top: 1rem; }
.figs-gate h3[b-2da435vrwt] { margin: 0 0 .6rem; font-size: 1rem; }
.figs-gatelist[b-2da435vrwt] { margin: 0; padding-left: 1.1rem; }
.figs-gatelist li[b-2da435vrwt] { margin-bottom: .3rem; }

/* Draft review material: figures drawn around an activity-area version the client has not accepted (14 September 2026). */
.figs-draft[b-2da435vrwt] {
    border-style: dashed;
}
/* /Components/Pages/Documents.razor.rz.scp.css */
.documents-page[b-ttuwod511j]{padding:2rem;display:grid;gap:1.25rem}.page-header[b-ttuwod511j],.section-heading[b-ttuwod511j],.title-row[b-ttuwod511j],.actions[b-ttuwod511j],.file-row[b-ttuwod511j]{display:flex;justify-content:space-between;align-items:center;gap:1rem}.eyebrow[b-ttuwod511j]{margin:0 0 .35rem;font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#8f6f35}.page-header h1[b-ttuwod511j],.section-heading h2[b-ttuwod511j],.document-card h2[b-ttuwod511j]{margin:0}.page-intro[b-ttuwod511j]{margin:.45rem 0 0;color:#667085}.primary-button[b-ttuwod511j],.secondary-button[b-ttuwod511j]{border-radius:var(--archex-radius-small);padding:.7rem 1rem;font-weight:700;text-decoration:none;cursor:pointer}.primary-button[b-ttuwod511j]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.secondary-button[b-ttuwod511j]{background:#fff;color:var(--color-charcoal);border:1px solid var(--color-divider)}.summary-grid[b-ttuwod511j]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.summary-grid article[b-ttuwod511j],.upload-panel[b-ttuwod511j],.control-bar[b-ttuwod511j],.document-card[b-ttuwod511j]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);box-shadow:var(--archex-shadow)}.summary-grid article[b-ttuwod511j]{padding:1.1rem}.summary-grid span[b-ttuwod511j],.summary-grid small[b-ttuwod511j]{display:block;color:#667085}.summary-grid strong[b-ttuwod511j]{display:block;font-size:1.8rem;color:var(--color-charcoal);margin:.25rem 0}.upload-panel[b-ttuwod511j]{padding:1.25rem;display:grid;gap:1rem}.form-grid[b-ttuwod511j],.control-bar[b-ttuwod511j]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.control-bar[b-ttuwod511j]{padding:1rem}.control-bar .search-field[b-ttuwod511j]{grid-column:span 3}label[b-ttuwod511j]{display:grid;gap:.35rem;font-size:.82rem;font-weight:700;color:#475467}input[b-ttuwod511j],select[b-ttuwod511j],textarea[b-ttuwod511j]{width:100%;box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:.7rem;background:#fff;color:#1f2937}.wide-field[b-ttuwod511j]{display:grid}.checks[b-ttuwod511j]{display:flex;flex-wrap:wrap;gap:1.25rem}.checks label[b-ttuwod511j]{display:flex;align-items:center;gap:.45rem}.checks input[b-ttuwod511j]{width:auto}.document-list[b-ttuwod511j]{display:grid;gap:.85rem}.document-card[b-ttuwod511j]{padding:1rem;display:grid;grid-template-columns:4rem minmax(0,1fr) auto;gap:1rem;align-items:start}.document-card.attention[b-ttuwod511j]{border-left:4px solid #d59a2f}.file-badge[b-ttuwod511j]{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:.75rem;background:color-mix(in srgb, var(--color-primary) 8%, white);color:var(--color-primary-dark);font-size:.72rem;font-weight:900}.title-row p[b-ttuwod511j],.description[b-ttuwod511j],.tags[b-ttuwod511j]{margin:.35rem 0 0;color:#667085}.badges[b-ttuwod511j]{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.badges span[b-ttuwod511j]{padding:.28rem .55rem;border-radius:999px;background:#eef2f0;font-size:.72rem;font-weight:800}.badges .current[b-ttuwod511j]{background:#dff2e7;color:#23613e}.badges .review[b-ttuwod511j]{background:#fff1d6;color:#8a5b00}.document-card dl[b-ttuwod511j]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0 0}.document-card dl div[b-ttuwod511j]{display:grid;gap:.15rem}.document-card dt[b-ttuwod511j]{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#98a2b3}.document-card dd[b-ttuwod511j]{margin:0;font-weight:700;color:#344054}.document-actions[b-ttuwod511j]{display:grid;gap:.5rem;min-width:9rem}.text-button[b-ttuwod511j]{border:0;background:transparent;color:#536b63;text-align:left;cursor:pointer}@media(max-width:900px){.summary-grid[b-ttuwod511j]{grid-template-columns:repeat(2,1fr)}.form-grid[b-ttuwod511j],.control-bar[b-ttuwod511j]{grid-template-columns:1fr 1fr}.control-bar .search-field[b-ttuwod511j]{grid-column:span 2}.document-card[b-ttuwod511j]{grid-template-columns:3.5rem 1fr}.document-actions[b-ttuwod511j]{grid-column:2;display:flex}.document-card dl[b-ttuwod511j]{grid-template-columns:1fr 1fr}}@media(max-width:600px){.documents-page[b-ttuwod511j]{padding:1rem}.page-header[b-ttuwod511j],.title-row[b-ttuwod511j]{align-items:flex-start;flex-direction:column}.summary-grid[b-ttuwod511j],.form-grid[b-ttuwod511j],.control-bar[b-ttuwod511j]{grid-template-columns:1fr}.control-bar .search-field[b-ttuwod511j]{grid-column:auto}.document-card[b-ttuwod511j]{grid-template-columns:1fr}.file-badge[b-ttuwod511j],.document-actions[b-ttuwod511j]{grid-column:auto}.document-actions[b-ttuwod511j]{display:flex;flex-wrap:wrap}.document-card dl[b-ttuwod511j]{grid-template-columns:1fr 1fr}.badges[b-ttuwod511j]{justify-content:flex-start}}

/* Filing a document from the register (21 September 2026). The control sits with the row's other
   actions and is deliberately quiet until it matters: an unfiled document carries the brand edge,
   so the queue reads down the page without needing a badge on every row. */
.document-filing[b-ttuwod511j] { display: block; margin: 10px 0 0; }

.document-filing select[b-ttuwod511j] {
    width: 100%;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-surface);
    font: inherit;
}

.document-filing.unfiled select[b-ttuwod511j] {
    border-left: 4px solid var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 5%, var(--color-surface));
}
/* /Components/Pages/DocumentSearch.razor.rz.scp.css */
/* Document Search (6.13).

   Benchmark: the Project Diary and Project Workspace — ArchEx orange actions,
   charcoal text, warm off-white ground, restrained grey borders, Montserrat
   headings on Lato body text.

   Trap 4.21 (horizontal overflow) is designed out rather than patched: every
   element is border-box, every grid track is minmax(0, …) so a long filename or an
   unbroken OCR string cannot force the page wider than the viewport, and the one
   genuinely wide thing — the snippet — wraps on any character. */

.ax-docsearch-page[b-cjynclzeto] {
    box-sizing: border-box;
    width: min(1240px, 100%);
    margin: 0 auto;
    padding: 22px 26px 60px;
    color: var(--color-charcoal);
    font-family:var(--font-body);
}

.ax-docsearch-page *[b-cjynclzeto] {
    box-sizing: border-box;
    min-width: 0;
}

/* ---- Header --------------------------------------------------------------- */
.ax-docsearch-head[b-cjynclzeto] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    padding-bottom: 16px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--color-divider);
}

.ax-docsearch-back[b-cjynclzeto] {
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    padding: 9px 14px;
    font:700 .76rem var(--font-body);
    color: #444;
    text-decoration: none;
    white-space: nowrap;
}

    .ax-docsearch-back:hover[b-cjynclzeto],
    .ax-docsearch-back:focus-visible[b-cjynclzeto] {
        border-color: var(--color-primary);
        color: var(--color-primary-dark);
    }

.ax-docsearch-title[b-cjynclzeto] { min-width: 0; }

.ax-docsearch-eyebrow[b-cjynclzeto] {
    display: block;
    color: var(--color-primary-dark);
    font:800 .66rem var(--font-heading);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ax-docsearch-title h1[b-cjynclzeto] {
    margin: 3px 0 0;
    font-family:var(--font-heading);
    font-size: clamp(1.15rem, 2vw, 1.6rem);
    line-height: 1.15;
    letter-spacing: -.02em;
    overflow-wrap: anywhere;
}

.ax-docsearch-sub[b-cjynclzeto] {
    margin: 6px 0 0;
    color: var(--color-gunmetal);
    font-size: .85rem;
}

/* ---- Search controls ------------------------------------------------------ */
.ax-docsearch-controls[b-cjynclzeto] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(140px, 190px) auto;
    gap: 12px;
    align-items: end;
    padding: 14px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
}

.ax-docsearch-field[b-cjynclzeto] {
    display: grid;
    gap: 5px;
    min-width: 0;
}

    .ax-docsearch-field > span[b-cjynclzeto] {
        font:800 .7rem var(--font-heading);
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--color-gunmetal);
    }

    .ax-docsearch-field input[b-cjynclzeto],
    .ax-docsearch-field select[b-cjynclzeto] {
        width: 100%;
        min-height: 42px;
        padding: .6rem .7rem;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        background: #fff;
        font:400 .92rem var(--font-body);
        color: var(--color-charcoal);
    }

    .ax-docsearch-field input:focus-visible[b-cjynclzeto],
    .ax-docsearch-field select:focus-visible[b-cjynclzeto] {
        outline: 3px solid rgba(242, 108, 33, .45);
        outline-offset: 1px;
        border-color: var(--color-primary);
    }

.ax-docsearch-go[b-cjynclzeto] {
    min-height: 42px;
    padding: .6rem 1.4rem;
    border: 1px solid var(--color-primary);
    border-radius:var(--archex-radius-small);
    background: var(--color-primary);
    color: #fff;
    font:700 .86rem var(--font-body);
    cursor: pointer;
    white-space: nowrap;
}

    .ax-docsearch-go:hover:not(:disabled)[b-cjynclzeto] { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }
    .ax-docsearch-go:disabled[b-cjynclzeto] { opacity: .55; cursor: default; }

.ax-docsearch-hint[b-cjynclzeto] {
    margin: 8px 2px 0;
    color: var(--color-gunmetal);
    font-size: .78rem;
}

/* ---- Scope ---------------------------------------------------------------- */
.ax-docsearch-scope[b-cjynclzeto] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
    gap: 10px;
    margin: 14px 0 0;
    padding: 12px 14px 14px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: #fff;
}

    .ax-docsearch-scope legend[b-cjynclzeto] {
        padding: 0 6px;
        font:800 .7rem var(--font-heading);
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--color-gunmetal);
    }

    .ax-docsearch-scope label[b-cjynclzeto] {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 4px 9px;
        padding: 9px 11px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        cursor: pointer;
    }

        .ax-docsearch-scope label:hover[b-cjynclzeto] { border-color: var(--color-primary-light); }

        .ax-docsearch-scope label span[b-cjynclzeto] { font-weight: 700; font-size: .88rem; }

        .ax-docsearch-scope label small[b-cjynclzeto] {
            grid-column: 2;
            color: var(--color-gunmetal);
            font-size: .76rem;
            overflow-wrap: anywhere;
        }

    .ax-docsearch-scope input[type="radio"][b-cjynclzeto] {
        grid-row: span 2;
        width: 18px;
        height: 18px;
        accent-color: var(--color-primary);
    }

        .ax-docsearch-scope input[type="radio"]:focus-visible[b-cjynclzeto] {
            outline: 3px solid rgba(242, 108, 33, .45);
            outline-offset: 2px;
        }

.ax-docsearch-scopenote[b-cjynclzeto] {
    margin: 14px 0 0;
    padding: 10px 13px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    color: var(--color-gunmetal);
    font-size: .84rem;
}

/* ---- Summary -------------------------------------------------------------- */
.ax-docsearch-summary[b-cjynclzeto] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 16px;
    margin: 20px 0 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-divider);
}

.ax-docsearch-message[b-cjynclzeto] {
    margin: 0;
    font:700 .96rem var(--font-heading);
}

.ax-docsearch-measure[b-cjynclzeto] {
    margin: 0;
    color: var(--color-gunmetal);
    font-size: .78rem;
}

/* ---- Empty and denied states ---------------------------------------------- */
.ax-docsearch-state[b-cjynclzeto] {
    margin-top: 22px;
    padding: 40px 22px;
    border: 1px dashed var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    text-align: center;
}

    .ax-docsearch-state h2[b-cjynclzeto] {
        margin: 0 0 8px;
        font-family:var(--font-heading);
        font-size: 1.05rem;
    }

    .ax-docsearch-state p[b-cjynclzeto] {
        margin: 0 auto;
        max-width: 62ch;
        color: var(--color-gunmetal);
        font-size: .88rem;
    }

.ax-docsearch-link[b-cjynclzeto] {
    display: inline-block;
    margin-top: 14px;
    color: var(--color-primary-dark);
    font-weight: 700;
    font-size: .85rem;
}

/* ---- Result sections ------------------------------------------------------ */
.ax-docsearch-results[b-cjynclzeto] { margin-top: 26px; }

.ax-docsearch-scopehead[b-cjynclzeto] {
    display: grid;
    gap: 3px;
    padding: 11px 14px;
    border-left: 4px solid var(--color-primary);
    border-radius: 4px;
    background: var(--color-panel);
}

.ax-docsearch-library .ax-docsearch-scopehead[b-cjynclzeto] { border-left-color: #6b7d8f; }

.ax-docsearch-scopehead h2[b-cjynclzeto] {
    margin: 0;
    font-family:var(--font-heading);
    font-size: 1rem;
}

.ax-docsearch-scopehead p[b-cjynclzeto] {
    margin: 0;
    color: var(--color-gunmetal);
    font-size: .8rem;
}

.ax-docsearch-none[b-cjynclzeto] {
    margin: 12px 2px 0;
    max-width: 78ch;
    color: var(--color-gunmetal);
    font-size: .83rem;
    line-height: 1.5;
}

.ax-docsearch-list[b-cjynclzeto] {
    display: grid;
    gap: 12px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

/* ---- One result ----------------------------------------------------------- */
.ax-docsearch-hit > article[b-cjynclzeto] {
    display: grid;
    gap: 9px;
    padding: 14px 16px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: #fff;
}

.ax-docsearch-hithead[b-cjynclzeto] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
}

    .ax-docsearch-hithead h3[b-cjynclzeto] {
        margin: 0;
        font-family:var(--font-heading);
        font-size: .96rem;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

.ax-docsearch-scopetag[b-cjynclzeto] {
    padding: 3px 9px;
    border-radius: 999px;
    font:800 .64rem var(--font-heading);
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
}

    .ax-docsearch-scopetag.project[b-cjynclzeto] { background: var(--color-primary-light); color: var(--color-primary-dark); }
    .ax-docsearch-scopetag.library[b-cjynclzeto] { background: #e8edf2; color: #40546a; }

.ax-docsearch-hittitle[b-cjynclzeto] {
    margin: 0;
    color: var(--color-gunmetal);
    font-size: .85rem;
    overflow-wrap: anywhere;
}

.ax-docsearch-meta[b-cjynclzeto] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
    gap: 8px 16px;
    margin: 0;
}

    .ax-docsearch-meta div[b-cjynclzeto] { min-width: 0; }

    .ax-docsearch-meta dt[b-cjynclzeto] {
        font:800 .64rem var(--font-heading);
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--color-gunmetal);
    }

    .ax-docsearch-meta dd[b-cjynclzeto] {
        margin: 2px 0 0;
        font-size: .84rem;
        overflow-wrap: anywhere;
    }

    .ax-docsearch-meta a[b-cjynclzeto] { color: var(--color-primary-dark); font-weight: 700; }

/* ---- Why it matched ------------------------------------------------------- */
.ax-docsearch-snippetwrap[b-cjynclzeto] {
    padding: 10px 12px;
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
}

.ax-docsearch-matchtag[b-cjynclzeto] {
    display: inline-block;
    margin-bottom: 5px;
    font:800 .63rem var(--font-heading);
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-gunmetal);
}

.ax-docsearch-snippet[b-cjynclzeto] {
    margin: 0;
    color: var(--color-charcoal);
    font-size: .85rem;
    line-height: 1.55;
    /* OCR output contains long unbroken runs; this is what keeps the page from
       growing wider than the viewport at 375px. */
    overflow-wrap: anywhere;
    word-break: break-word;
}

.ax-docsearch-nosnippet[b-cjynclzeto] { color: var(--color-gunmetal); font-style: italic; }

/* ---- How well it was read ------------------------------------------------- */
.ax-docsearch-read[b-cjynclzeto] {
    margin: 0;
    font-size: .78rem;
    line-height: 1.5;
    color: var(--color-gunmetal);
    overflow-wrap: anywhere;
}

    .ax-docsearch-read.poor[b-cjynclzeto] { color: #8a5a00; }
    .ax-docsearch-read.notread[b-cjynclzeto] { color: #7c3a3a; }
    .ax-docsearch-read strong[b-cjynclzeto] { font-weight: 800; }

/* ---- Actions -------------------------------------------------------------- */
.ax-docsearch-actions[b-cjynclzeto] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-items: center;
    padding-top: 3px;
}

.ax-docsearch-open[b-cjynclzeto],
.ax-docsearch-source[b-cjynclzeto] {
    display: inline-block;
    min-height: 38px;
    padding: .55rem .9rem;
    border-radius:var(--archex-radius-small);
    font:700 .8rem var(--font-body);
    text-decoration: none;
    white-space: nowrap;
}

.ax-docsearch-open[b-cjynclzeto] {
    border: 1px solid var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

    .ax-docsearch-open:hover[b-cjynclzeto] { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }

.ax-docsearch-source[b-cjynclzeto] {
    border: 1px solid var(--color-divider);
    background: #fff;
    color: #444;
}

    .ax-docsearch-source:hover[b-cjynclzeto] { border-color: var(--color-primary); color: var(--color-primary-dark); }

.ax-docsearch-unavailable[b-cjynclzeto] {
    color: #7c3a3a;
    font-size: .8rem;
    font-style: italic;
}

/* Every interactive control keeps a visible focus ring — the page has to be
   fully operable from the keyboard alone. */
.ax-docsearch-page a:focus-visible[b-cjynclzeto],
.ax-docsearch-page button:focus-visible[b-cjynclzeto] {
    outline: 3px solid rgba(242, 108, 33, .45);
    outline-offset: 2px;
    border-radius:var(--archex-radius-small);
}

/* ---- Pager ---------------------------------------------------------------- */
.ax-docsearch-pager[b-cjynclzeto] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    align-items: center;
    justify-content: center;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--color-divider);
    font-size: .84rem;
}

/* Deliberately NOT .ax-docsearch-page: that is the page root, and sharing the name
   made each inherit the other's box. Caught in browser verification, 24 Aug 2026. */
.ax-docsearch-pagebtn[b-cjynclzeto] {
    min-height: 40px;
    padding: .55rem 1.1rem;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    font:700 .82rem var(--font-body);
    color: #444;
    cursor: pointer;
}

    .ax-docsearch-pagebtn:hover:not(:disabled)[b-cjynclzeto] { border-color: var(--color-primary); color: var(--color-primary-dark); }
    .ax-docsearch-pagebtn:disabled[b-cjynclzeto] { opacity: .45; cursor: default; }

.ax-docsearch-cap[b-cjynclzeto] {
    margin: 10px auto 0;
    max-width: 60ch;
    color: var(--color-gunmetal);
    font-size: .78rem;
    text-align: center;
}

/* ---- Responsive ----------------------------------------------------------- */

/* 1024 and 820: the controls stop being a single row before the term box gets
   too narrow to type a filename into. */
@media (max-width: 1024px) {
    .ax-docsearch-page[b-cjynclzeto] { padding: 20px 20px 56px; }

    .ax-docsearch-controls[b-cjynclzeto] { grid-template-columns: minmax(0, 1fr) minmax(130px, 170px); }

    .ax-docsearch-go[b-cjynclzeto] { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
    .ax-docsearch-controls[b-cjynclzeto] { grid-template-columns: minmax(0, 1fr); }

    .ax-docsearch-go[b-cjynclzeto] { grid-column: auto; }
}

/* Landscape phone (812x375) and portrait phone (375). The header stops being a
   two-column grid so a long project name has the full width. */
@media (max-width: 620px) {
    .ax-docsearch-page[b-cjynclzeto] { padding: 16px 14px 48px; }

    .ax-docsearch-head[b-cjynclzeto] {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .ax-docsearch-back[b-cjynclzeto] { justify-self: start; }

    .ax-docsearch-hithead[b-cjynclzeto] {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }

    .ax-docsearch-scopetag[b-cjynclzeto] { justify-self: start; }

    .ax-docsearch-summary[b-cjynclzeto] { flex-direction: column; }

    .ax-docsearch-actions > a[b-cjynclzeto] { flex: 1 1 auto; text-align: center; }

    .ax-docsearch-pager[b-cjynclzeto] { justify-content: space-between; }
}

@media (max-width: 400px) {
    .ax-docsearch-meta[b-cjynclzeto] { grid-template-columns: minmax(0, 1fr); }

    .ax-docsearch-hit > article[b-cjynclzeto] { padding: 12px 13px; }
}
/* /Components/Pages/DocumentWorkspace.razor.rz.scp.css */
.workspace-page[b-m4wws0zf6a]{padding:2rem;display:grid;gap:1.25rem}.workspace-header[b-m4wws0zf6a],.section-heading[b-m4wws0zf6a],.header-actions[b-m4wws0zf6a]{display:flex;justify-content:space-between;align-items:center;gap:1rem}.back-link[b-m4wws0zf6a]{display:inline-block;margin-bottom:.8rem;color:#536b63;text-decoration:none}.eyebrow[b-m4wws0zf6a]{margin:0 0 .35rem;font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#8f6f35}.workspace-header h1[b-m4wws0zf6a],.panel h2[b-m4wws0zf6a]{margin:0}.workspace-header p:not(.eyebrow)[b-m4wws0zf6a]{margin:.4rem 0 0;color:#667085}.primary-button[b-m4wws0zf6a],.secondary-button[b-m4wws0zf6a]{border-radius:var(--archex-radius-small);padding:.7rem 1rem;font-weight:700;text-decoration:none;cursor:pointer;text-align:center}.primary-button[b-m4wws0zf6a]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.secondary-button[b-m4wws0zf6a]{background:#fff;color:var(--color-charcoal);border:1px solid var(--color-divider)}.summary-grid[b-m4wws0zf6a]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.summary-grid article[b-m4wws0zf6a],.panel[b-m4wws0zf6a],.state-card[b-m4wws0zf6a]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);box-shadow:var(--archex-shadow)}.summary-grid article[b-m4wws0zf6a]{padding:1.1rem}.summary-grid span[b-m4wws0zf6a],.summary-grid small[b-m4wws0zf6a]{display:block;color:#667085}.summary-grid strong[b-m4wws0zf6a]{display:block;font-size:1.35rem;color:var(--color-charcoal);margin:.3rem 0}.workspace-grid[b-m4wws0zf6a]{display:grid;grid-template-columns:minmax(0,2fr) minmax(18rem,1fr);gap:1.25rem;align-items:start}.workspace-grid main[b-m4wws0zf6a],.workspace-grid aside[b-m4wws0zf6a]{display:grid;gap:1.25rem}.panel[b-m4wws0zf6a]{padding:1.25rem}.section-heading[b-m4wws0zf6a]{margin-bottom:1rem}.section-heading>span[b-m4wws0zf6a],.section-heading>a[b-m4wws0zf6a]{font-size:.82rem;color:#667085}.form-grid[b-m4wws0zf6a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .wide[b-m4wws0zf6a]{grid-column:1/-1}label[b-m4wws0zf6a]{display:grid;gap:.35rem;font-size:.82rem;font-weight:700;color:#475467}input[b-m4wws0zf6a],select[b-m4wws0zf6a],textarea[b-m4wws0zf6a]{width:100%;box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:.7rem;background:#fff;color:#1f2937}.checks[b-m4wws0zf6a]{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1rem}.checks label[b-m4wws0zf6a]{display:flex;align-items:center;gap:.45rem}.checks input[b-m4wws0zf6a]{width:auto}.version-list[b-m4wws0zf6a],.communication-list[b-m4wws0zf6a]{display:grid;gap:.65rem}.version-row[b-m4wws0zf6a]{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:center;padding:.85rem;border:1px solid var(--color-divider);border-radius:.7rem}.version-row.selected[b-m4wws0zf6a]{border-color:#8ba99c;background:#f5faf7}.version-row div[b-m4wws0zf6a]{display:grid;gap:.15rem}.version-row span[b-m4wws0zf6a]{font-size:.78rem;color:#667085}.version-actions[b-m4wws0zf6a]{display:flex!important;align-items:center;justify-content:flex-end;gap:.45rem}.version-actions a[b-m4wws0zf6a]{color:var(--color-primary-dark);font-weight:700}.pill[b-m4wws0zf6a]{padding:.25rem .5rem;border-radius:999px;font-weight:800}.pill.current[b-m4wws0zf6a]{background:#dff2e7;color:#23613e}.pill.review[b-m4wws0zf6a]{background:#fff1d6;color:#8a5b00}.communication-list article[b-m4wws0zf6a]{display:flex;justify-content:space-between;gap:1rem;padding:.85rem;border-bottom:1px solid var(--color-divider)}.communication-list p[b-m4wws0zf6a]{margin:.25rem 0 0;color:#667085}.communication-list time[b-m4wws0zf6a]{white-space:nowrap;color:#667085;font-size:.8rem}.compact dl[b-m4wws0zf6a]{display:grid;gap:.8rem;margin:1rem 0}.compact dl div[b-m4wws0zf6a]{display:grid;gap:.15rem}.compact dt[b-m4wws0zf6a]{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#98a2b3}.compact dd[b-m4wws0zf6a]{margin:0;font-weight:700;color:#344054}.stack-actions[b-m4wws0zf6a]{display:grid;gap:.6rem}.timeline[b-m4wws0zf6a]{display:grid;gap:.8rem;margin-top:1rem}.timeline>div[b-m4wws0zf6a]{display:grid;grid-template-columns:.8rem 1fr;gap:.6rem}.timeline>div>span[b-m4wws0zf6a]{width:.65rem;height:.65rem;border-radius:50%;background:#8f6f35;margin-top:.25rem}.timeline p[b-m4wws0zf6a]{display:grid;gap:.15rem;margin:0}.timeline small[b-m4wws0zf6a],.muted[b-m4wws0zf6a]{color:#667085}.state-card[b-m4wws0zf6a]{padding:3rem;text-align:center}.state-card p[b-m4wws0zf6a]{color:#667085}@media(max-width:950px){.summary-grid[b-m4wws0zf6a]{grid-template-columns:repeat(2,1fr)}.workspace-grid[b-m4wws0zf6a]{grid-template-columns:1fr}}@media(max-width:620px){.workspace-page[b-m4wws0zf6a]{padding:1rem}.workspace-header[b-m4wws0zf6a],.section-heading[b-m4wws0zf6a]{align-items:flex-start;flex-direction:column}.header-actions[b-m4wws0zf6a]{width:100%;flex-wrap:wrap}.summary-grid[b-m4wws0zf6a],.form-grid[b-m4wws0zf6a]{grid-template-columns:1fr}.form-grid .wide[b-m4wws0zf6a]{grid-column:auto}.version-row[b-m4wws0zf6a]{grid-template-columns:1fr}.version-actions[b-m4wws0zf6a]{justify-content:flex-start!important}.communication-list article[b-m4wws0zf6a]{flex-direction:column}}
/* /Components/Pages/EnquiryWorkspace.razor.rz.scp.css */
/* ================================================================================================
   ONE ENQUIRY, ONE NEXT STEP (24 September 2026)

   Adam Deane, on the page this replaces: "nothing is the same, so much shit i dont need."

   Eleven sections rendered at the same size and the same weight, so the one thing that had to be
   done next looked exactly like the blank quote form and the empty intake panel beside it. What is
   here now is three shapes and nothing else: the card that says what to do, the facts the client
   sent, and the ladder that says where it has got to. Everything else is a shared
   AxProgressivePanel, dressed once in archex-components.css rather than again here.
   ================================================================================================ */

.enquiry-workspace[b-ldyf1ytncl] {
    display: flex;
    flex-direction: column;
    gap: var(--archex-gap-4, 16px);
}

/* The next-step card, the "what came in" facts and the ladder used to be dressed here. The card
   moved to archex-components.css on 24 September 2026 when the screening page needed the same one:
   a control two pages share is dressed once, or the two drift and "nothing is the same" again. */

/* ---- WHAT THE CLIENT SAID ----------------------------------------------------------------------

   A definition list rather than a form, because it is a message to read. The label column is fixed
   so the values line up down the page; under 700px it stacks, since a 9rem label column beside a
   sentence on a phone leaves about twelve characters a line. */

.came-in-facts[b-ldyf1ytncl] {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr);
    gap: 10px 18px;
    margin: 16px 0 0;
}

.came-in-facts dt[b-ldyf1ytncl] {
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.came-in-facts dd[b-ldyf1ytncl] {
    margin: 0;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

/* SUSPECTED, NEVER REFUSED — and so it has to be visible. A flagged enquiry is saved quietly with
   no acknowledgement sent, which is only defensible if a person can see that it happened. */
.came-in-flag[b-ldyf1ytncl] {
    margin: 14px 0 0;
    padding: 12px 14px;
    border-left: 3px solid #C9541A;
    border-radius: 0 6px 6px 0;
    background: #FFF8F3;
    line-height: 1.55;
}

/* ---- WHERE IT HAS GOT TO -----------------------------------------------------------------------

   Six lines, in the order the work happens. Every line is read back from something recorded
   elsewhere; none of it is a second opinion about the state. */

.ladder-steps[b-ldyf1ytncl] {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.ladder-step[b-ldyf1ytncl] {
    display: grid;
    grid-template-columns: 1.6rem 12rem minmax(0, 1fr);
    gap: 4px 12px;
    align-items: baseline;
    padding: 9px 0;
    border-top: 1px solid var(--archex-border-soft, #EFEFEF);
}

.ladder-step:first-child[b-ldyf1ytncl] { border-top: 0; }

.ladder-mark[b-ldyf1ytncl] {
    color: var(--archex-border, #E3DCD1);
    font-size: 0.95rem;
    text-align: center;
}

.ladder-name[b-ldyf1ytncl] {
    font-weight: 600;
    color: var(--archex-muted, #3B3B3B);
}

.ladder-detail[b-ldyf1ytncl] {
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.88rem;
    overflow-wrap: anywhere;
}

.ladder-step.is-done .ladder-mark[b-ldyf1ytncl] { color: var(--archex-success, #2E7D32); }
.ladder-step.is-done .ladder-name[b-ldyf1ytncl] { color: var(--archex-text, #2B2B2B); }

/* WHERE YOU ARE, marked on the ladder as well as at the top of the page. The two are computed from
   the same expression, so they cannot disagree — which is the fault this replaces, where a header
   asked for something the panel below reported as already done. */
.ladder-step.is-here .ladder-mark[b-ldyf1ytncl] { color: var(--archex-ochre, #F26C21); }

.ladder-step.is-here .ladder-name[b-ldyf1ytncl] {
    color: var(--archex-ochre-strong, #C9541A);
    font-weight: 800;
}

/* ---- THE ADDRESS SUGGESTION LIST (24 September 2026) -------------------------------------------

   Adam Deane: "can i have the address come up as you type so it ensure it gets it right".

   The list is drawn OVER the fields beneath it rather than pushing them down. A list that reflows
   the form as you type moves the thing you are about to click, which is how you end up selecting
   the wrong address — and this field decides which land a heritage assessment runs against. */

.ax-addr-field[b-ldyf1ytncl] {
    position: relative;
}

.ax-addr-list[b-ldyf1ytncl] {
    position: absolute;
    z-index: 30;
    left: 0;
    right: 0;
    top: 100%;

    max-height: 16rem;
    overflow-y: auto;

    background: var(--archex-white, #FFFFFF);
    border: 1px solid var(--archex-border, #d9d9d9);
    border-radius: 6px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
}

/* .ax-list-button opts these rows out of the global button rule, which boxes every button with
   !important — a suggestion list drawn as twelve outlined boxes is unreadable. */
.ax-addr-option[b-ldyf1ytncl] {
    display: block;
    width: 100%;
    text-align: left;

    padding: 0.55rem 0.75rem;
    border: 0;
    border-bottom: 1px solid var(--archex-border-soft, #efefef);
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.ax-addr-option:last-child[b-ldyf1ytncl] {
    border-bottom: 0;
}

.ax-addr-option:hover[b-ldyf1ytncl],
.ax-addr-option:focus-visible[b-ldyf1ytncl] {
    background: var(--archex-panel, #F2EDE6);
}

/* ---- NARROW ------------------------------------------------------------------------------------

   Checked against the mobile preset rather than a custom width: a custom 390px viewport in the
   browser pane reports anywhere between 551 and 705px, so a layout "verified" at that width has
   not been verified at all. */

@media (max-width: 700px) {


    .came-in-facts[b-ldyf1ytncl] {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px 0;
    }

    .came-in-facts dd[b-ldyf1ytncl] { margin-bottom: 10px; }

    .ladder-step[b-ldyf1ytncl] {
        grid-template-columns: 1.6rem minmax(0, 1fr);
    }

    .ladder-detail[b-ldyf1ytncl] { grid-column: 2; }
}

/* ---- BUILDING THE ESTIMATE (25 September 2026) -------------------------------------------------

   Three numbers and two choices, inside the next-step card. Everything that follows from them is
   worked out and never shown as a question, which is why this stays small. */

.estimate-ask[b-ldyf1ytncl] {
    margin-top: 16px;
}

/* WHAT IT COULD NOT WORK OUT. Not a warning — none of these is wrong, they are things to add before
   the estimate goes out. Marked, not coloured like a refusal. */
.estimate-questions[b-ldyf1ytncl] {
    margin-top: 16px;
    padding: 12px 14px;
    border-left: 3px solid var(--archex-ochre, #F26C21);
    border-radius: 0 6px 6px 0;
    background: var(--archex-panel, #F2EDE6);
}

.estimate-questions ul[b-ldyf1ytncl] {
    margin: 8px 0 0;
    padding-left: 18px;
}

.estimate-questions li[b-ldyf1ytncl] {
    margin-bottom: 6px;
    line-height: 1.5;
}

/* WHAT IT DID WORK OUT, folded. Worth being able to check, not worth reading every time — the whole
   point is that these stopped being anybody's job. */
.estimate-worked[b-ldyf1ytncl] {
    margin-top: 12px;
}

.estimate-worked summary[b-ldyf1ytncl] {
    cursor: pointer;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.88rem;
}

.estimate-worked ul[b-ldyf1ytncl] {
    margin: 8px 0 0;
    padding-left: 18px;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.88rem;
}

.estimate-worked li[b-ldyf1ytncl] {
    margin-bottom: 5px;
    line-height: 1.5;
}
/* /Components/Pages/EvidencePageReview.razor.rz.scp.css */
/* Page review: the page on the left, what was read from it on the right.
   Side by side because judging extracted text without the page is assent, not review. */

.epr[b-ktyo1tpvd9] { display: flex; flex-direction: column; gap: 18px; }

.epr-head[b-ktyo1tpvd9] { display: flex; flex-direction: column; gap: 2px; }
.epr-head h1[b-ktyo1tpvd9] { margin: 2px 0 0; font-size: 1.5rem; }

.epr-done[b-ktyo1tpvd9],
.epr-queue[b-ktyo1tpvd9],
.epr-context[b-ktyo1tpvd9],
.epr-actions[b-ktyo1tpvd9] {
    border: 1px solid var(--ax-border, var(--color-divider));
    border-radius:var(--archex-radius-small);
    padding: 14px 16px;
    background: var(--ax-surface, #fff);
}

.epr-done h2[b-ktyo1tpvd9],
.epr-context h2[b-ktyo1tpvd9] { margin: 0 0 8px; font-size: 1.05rem; }

.epr-buckets[b-ktyo1tpvd9] { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 4px; }

.epr-compare[b-ktyo1tpvd9] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

@media (max-width: 900px) {
    .epr-compare[b-ktyo1tpvd9] { grid-template-columns: minmax(0, 1fr); }
}

.epr-image[b-ktyo1tpvd9],
.epr-text[b-ktyo1tpvd9] {
    border: 1px solid var(--ax-border, var(--color-divider));
    border-radius:var(--archex-radius-small);
    padding: 12px 14px;
    background: var(--ax-surface, #fff);
    min-width: 0;
}

.epr-image h3[b-ktyo1tpvd9],
.epr-text h3[b-ktyo1tpvd9] { margin: 0 0 8px; font-size: 0.95rem; }

/* The rendered page scrolls inside its own box rather than stretching the layout. */
.epr-image img[b-ktyo1tpvd9] {
    display: block;
    width: 100%;
    height: auto;
    max-height: 70vh;
    object-fit: contain;
    border: 1px solid var(--ax-border, var(--color-divider));
    background: #fff;
}

.epr-text textarea[b-ktyo1tpvd9] {
    width: 100%;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 0.8rem;
    line-height: 1.45;
    resize: vertical;
}

.epr-actions label[b-ktyo1tpvd9] { display: block; font-weight: 600; margin-bottom: 8px; }
.epr-actions label textarea[b-ktyo1tpvd9] { width: 100%; font-weight: 400; margin-top: 4px; }

.epr-buttons[b-ktyo1tpvd9] { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }

.ax-button-quiet[b-ktyo1tpvd9] { opacity: 0.75; }
/* /Components/Pages/FactSetReview.razor.rz.scp.css */
.hash[b-37tj3gtcvj] {
    word-break: break-all;
}

del[b-37tj3gtcvj] {
    background: #fbe3e3;
    color: #7a1b1b;
}

ins[b-37tj3gtcvj] {
    background: #e2f3e5;
    color: #14532d;
}

.reason[b-37tj3gtcvj] {
    width: 100%;
    margin: 0.5rem 0 1rem;
}

.effects li[b-37tj3gtcvj] {
    margin-bottom: 0.5rem;
}
/* /Components/Pages/FeedbackLog.razor.rz.scp.css */
.feedback-log-page[b-e0828p6bxk] { box-sizing:border-box; width:min(1100px,calc(100% - 32px)); margin:32px auto 80px; font-family:var(--font-body); color:var(--color-charcoal); }
.feedback-log-heading[b-e0828p6bxk] { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:24px; }
.feedback-log-heading p[b-e0828p6bxk] { margin:0 0 8px; color:var(--color-primary-dark); font:700 11px var(--font-heading); letter-spacing:.14em; }
.feedback-log-heading h1[b-e0828p6bxk] { margin:0 0 6px; font:700 36px/1.1 var(--font-heading); }
.feedback-log-heading span[b-e0828p6bxk] { color:var(--color-gunmetal); }
.feedback-log-heading button[b-e0828p6bxk],.feedback-log-actions button[b-e0828p6bxk] { min-height:40px; padding:0 16px; border:1px solid var(--color-gunmetal); border-radius:var(--archex-radius-small); background:#fff; font:700 13px var(--font-heading); cursor:pointer; }
.feedback-log-list[b-e0828p6bxk] { display:grid; gap:16px; }
.feedback-log-card[b-e0828p6bxk] { padding:24px; border:1px solid var(--color-divider); border-left:4px solid var(--color-primary); border-radius:var(--archex-radius-small); background:#fff; box-shadow:var(--archex-shadow); }
.feedback-log-card.resolved[b-e0828p6bxk] { opacity:.72; border-left-color:var(--color-success); }
.feedback-log-card-top[b-e0828p6bxk] { display:flex; justify-content:space-between; gap:20px; }
.feedback-status[b-e0828p6bxk] { color:var(--color-primary-dark); font:700 10px var(--font-heading); letter-spacing:.12em; }
.resolved .feedback-status[b-e0828p6bxk] { color:var(--color-success); }
.feedback-log-card h2[b-e0828p6bxk] { margin:5px 0 0; font:700 20px var(--font-heading); }
.feedback-log-card time[b-e0828p6bxk] { color:var(--color-gunmetal); font-size:13px; white-space:nowrap; }
.feedback-comment[b-e0828p6bxk] { margin:18px 0; font-size:17px; line-height:1.55; white-space:pre-wrap; }
.feedback-log-card dl[b-e0828p6bxk] { display:grid; grid-template-columns:70px 1fr; gap:7px 12px; margin:0; font-size:13px; }
.feedback-log-card dt[b-e0828p6bxk] { font-weight:700; }
.feedback-log-card dd[b-e0828p6bxk] { margin:0; min-width:0; overflow-wrap:anywhere; }
.feedback-log-card a[b-e0828p6bxk] { color:var(--color-primary-dark); }
.feedback-log-actions[b-e0828p6bxk] { display:flex; justify-content:flex-end; margin-top:18px; }
.feedback-log-empty[b-e0828p6bxk] { padding:40px; border-radius:var(--archex-radius-small); background:#fff; text-align:center; box-shadow:var(--archex-shadow); }
.feedback-log-actions[b-e0828p6bxk] { gap:8px; }
.feedback-resolution[b-e0828p6bxk] { white-space:pre-wrap; }
.feedback-screen-backdrop[b-e0828p6bxk] { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:16px; background:rgba(18,18,18,.62); }
.feedback-screen-dialog[b-e0828p6bxk] { box-sizing:border-box; width:min(1400px,100%); max-height:calc(100dvh - 32px); overflow:auto; padding:18px 20px 20px; border-radius:var(--archex-radius-small); background:#fff; box-shadow:var(--archex-shadow-hover); }
.feedback-screen-header[b-e0828p6bxk] { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.feedback-screen-header h2[b-e0828p6bxk] { margin:0 0 4px; font:700 20px var(--font-heading); }
.feedback-screen-header small[b-e0828p6bxk] { color:var(--color-gunmetal); }
.feedback-screen-close[b-e0828p6bxk] { width:44px; height:44px; flex:0 0 44px; border:1px solid var(--color-divider); border-radius:var(--archex-radius-small); background:#fff; font-size:28px; cursor:pointer; }
.feedback-screen-comment[b-e0828p6bxk] { margin:12px 0 14px; font-size:15px; line-height:1.5; white-space:pre-wrap; }
.feedback-screen-frame[b-e0828p6bxk] { position:relative; width:100%; overflow:hidden; border:1px solid var(--color-divider); border-radius:var(--archex-radius-small); background:#f4f2ee; }
.feedback-screen-frame iframe[b-e0828p6bxk] { position:absolute; top:0; left:0; border:0; background:#fff; }
@media(max-width:600px){
 .feedback-log-page[b-e0828p6bxk]{width:calc(100% - 24px);margin:20px auto 100px}.feedback-log-heading[b-e0828p6bxk]{align-items:flex-start}.feedback-log-heading h1[b-e0828p6bxk]{font-size:28px}.feedback-log-card[b-e0828p6bxk]{padding:18px}.feedback-log-card-top[b-e0828p6bxk]{display:grid}.feedback-log-card time[b-e0828p6bxk]{white-space:normal}.feedback-log-card dl[b-e0828p6bxk]{grid-template-columns:1fr}.feedback-log-card dt[b-e0828p6bxk]{margin-top:5px}
}
/* /Components/Pages/FieldRecords.razor.rz.scp.css */
.field-page[b-alyvjbq13a]{max-width:1450px;margin:auto;padding:36px}.field-header[b-alyvjbq13a],.field-section-title[b-alyvjbq13a],.field-actions[b-alyvjbq13a]{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.field-header[b-alyvjbq13a]{margin-bottom:24px}.field-header h1[b-alyvjbq13a]{font-size:var(--archex-text-2xl);margin:8px 0}.eyebrow[b-alyvjbq13a]{color:var(--color-primary-dark);font-size:12px;font-weight:800;letter-spacing:2px;margin:0}.field-card[b-alyvjbq13a]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);padding:24px;margin-bottom:18px}.field-setup[b-alyvjbq13a]{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}.field-card label[b-alyvjbq13a],.field-card>div[b-alyvjbq13a]{min-width:0}.field-card label span[b-alyvjbq13a],.field-card div>span[b-alyvjbq13a]{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--color-gunmetal);margin-bottom:7px}.field-card input[b-alyvjbq13a],.field-card select[b-alyvjbq13a],.field-card textarea[b-alyvjbq13a]{box-sizing:border-box;width:100%;padding:12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;font:inherit}.field-card textarea[b-alyvjbq13a]{min-height:90px}.field-grid[b-alyvjbq13a]{display:grid;gap:16px}.field-grid.two[b-alyvjbq13a]{grid-template-columns:repeat(2,1fr)}.field-grid.three[b-alyvjbq13a]{grid-template-columns:repeat(3,1fr)}.field-grid.four[b-alyvjbq13a]{grid-template-columns:repeat(4,1fr)}.field-section-title[b-alyvjbq13a]{margin-bottom:18px}.field-section-title h2[b-alyvjbq13a]{margin:4px 0}.field-section-title.compact[b-alyvjbq13a]{align-items:center}.field-primary[b-alyvjbq13a],.field-secondary[b-alyvjbq13a],.recent-row button[b-alyvjbq13a]{border-radius:var(--archex-radius-small);padding:12px 18px;font-weight:700;cursor:pointer}.field-primary[b-alyvjbq13a]{background:var(--color-primary-dark);color:#fff;border:0}.field-secondary[b-alyvjbq13a],.recent-row button[b-alyvjbq13a]{background:#fff;border:1px solid var(--color-divider)}.status-chip[b-alyvjbq13a]{display:inline-block!important;background:#f4e6dc;color:var(--color-primary-dark);border-radius:999px;padding:7px 11px;font-size:12px!important}.status-chip.warning[b-alyvjbq13a]{background:#fff3cd;color:#795b00}.field-message[b-alyvjbq13a]{background:#f4e6dc;border-left:4px solid var(--color-primary-dark);padding:14px 18px;margin-bottom:18px;border-radius:var(--archex-radius-small)}.munsell-block[b-alyvjbq13a]{margin:22px 0;padding:18px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium)}.recent-row[b-alyvjbq13a]{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.photo-grid[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.photo-check[b-alyvjbq13a]{display:grid!important;grid-template-columns:auto 1fr;column-gap:12px;align-items:start;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:18px}.photo-check input[b-alyvjbq13a]{width:auto}.photo-check strong[b-alyvjbq13a],.photo-check small[b-alyvjbq13a]{grid-column:2}.direction[b-alyvjbq13a]{display:block;margin-top:16px;max-width:420px}.field-actions[b-alyvjbq13a]{justify-content:flex-end;margin-top:20px}.record-list[b-alyvjbq13a]{display:grid;gap:8px}.record-list button[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;text-align:left;border:1px solid var(--color-divider);background:#fff;border-radius:var(--archex-radius-small);padding:14px;cursor:pointer}.field-card small[b-alyvjbq13a]{display:block;color:#777;margin-top:5px}@media(max-width:850px){.field-page[b-alyvjbq13a]{padding:18px}.field-header h1[b-alyvjbq13a]{font-size:36px}.field-header[b-alyvjbq13a],.field-section-title[b-alyvjbq13a]{align-items:stretch}.field-setup[b-alyvjbq13a],.field-grid.two[b-alyvjbq13a],.field-grid.three[b-alyvjbq13a],.field-grid.four[b-alyvjbq13a],.photo-grid[b-alyvjbq13a]{grid-template-columns:1fr}.record-list button[b-alyvjbq13a]{grid-template-columns:1fr 1fr}.field-actions[b-alyvjbq13a]{flex-wrap:wrap}.field-actions button[b-alyvjbq13a]{flex:1}.field-header[b-alyvjbq13a]{flex-direction:column}.field-header .field-primary[b-alyvjbq13a]{width:100%}}
.header-actions[b-alyvjbq13a]{display:flex;gap:10px;align-items:center}.completion-card[b-alyvjbq13a]{border-left:5px solid var(--color-primary-dark)}.completion-heading[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:18px;align-items:center}.completion-heading h2[b-alyvjbq13a]{margin:4px 0 0}.completion-bar[b-alyvjbq13a]{height:12px;background:#eee8e3;border-radius:999px;overflow:hidden;margin:16px 0}.completion-bar span[b-alyvjbq13a]{display:block;height:100%;background:var(--color-primary-dark);border-radius:999px;transition:width .2s ease}.completion-list[b-alyvjbq13a]{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.completion-list span[b-alyvjbq13a]{display:inline-block!important;background:#fff3cd;color:#715400;padding:8px 11px;border-radius:999px;font-size:13px!important;margin:0!important}.completion-ready[b-alyvjbq13a]{font-weight:700;color:#2f6b3f}.status-chip.ready[b-alyvjbq13a]{background:#e3f3e7;color:#245c34}@media(max-width:850px){.header-actions[b-alyvjbq13a]{width:100%;flex-direction:column}.header-actions button[b-alyvjbq13a]{width:100%}.completion-heading[b-alyvjbq13a]{align-items:flex-start;flex-direction:column}}
.section-help[b-alyvjbq13a]{margin:-8px 0 20px;color:var(--color-gunmetal)}.context-card[b-alyvjbq13a]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:20px;margin-top:18px;background:var(--color-surface)}.context-card h3[b-alyvjbq13a],.spit-heading h3[b-alyvjbq13a]{margin:4px 0}.inline-actions[b-alyvjbq13a]{display:flex;gap:8px;flex-wrap:wrap}.field-danger[b-alyvjbq13a]{background:#fff;border:1px solid #c75d5d;color:#9d3030;border-radius:var(--archex-radius-small);padding:12px 18px;font-weight:700;cursor:pointer}.context-notes[b-alyvjbq13a]{margin:16px 0}.spit-heading[b-alyvjbq13a]{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding-top:20px;border-top:1px solid var(--color-divider)}.empty-spits[b-alyvjbq13a]{padding:18px;border:1px dashed var(--color-divider);border-radius:var(--archex-radius-medium);color:var(--color-gunmetal)}.spit-list[b-alyvjbq13a]{display:grid;gap:10px}.spit-row[b-alyvjbq13a]{display:grid;grid-template-columns:90px repeat(4,minmax(120px,1fr)) 42px;gap:12px;align-items:end;padding:14px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff}.spit-row>strong[b-alyvjbq13a]{align-self:center}.remove-spit[b-alyvjbq13a]{width:42px;height:42px;border-radius:var(--archex-radius-small);border:1px solid var(--color-divider);background:#fff;color:#a43636;font-size:24px;cursor:pointer}@media(max-width:1100px){.spit-row[b-alyvjbq13a]{grid-template-columns:1fr 1fr}.spit-row>strong[b-alyvjbq13a]{grid-column:1/-1}.remove-spit[b-alyvjbq13a]{justify-self:end}}@media(max-width:850px){.context-card[b-alyvjbq13a]{padding:16px}.inline-actions[b-alyvjbq13a],.spit-heading[b-alyvjbq13a]{align-items:stretch;flex-direction:column}.inline-actions button[b-alyvjbq13a],.spit-heading button[b-alyvjbq13a]{width:100%}.spit-row[b-alyvjbq13a]{grid-template-columns:1fr}.spit-row>strong[b-alyvjbq13a]{grid-column:auto}.remove-spit[b-alyvjbq13a]{justify-self:stretch;width:100%}}

.quick-options[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr;gap:18px}.choice-chips[b-alyvjbq13a]{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.choice-chips button[b-alyvjbq13a]{border:1px solid var(--color-divider);background:#fff;border-radius:999px;padding:9px 12px;cursor:pointer}.choice-chips button.selected[b-alyvjbq13a]{background:#f4e6dc;border-color:var(--color-primary-dark);color:var(--color-primary-dark);font-weight:700}.context-footer[b-alyvjbq13a]{display:flex;justify-content:flex-end;margin-top:18px}.photo-grid.three-photos[b-alyvjbq13a]{grid-template-columns:repeat(3,1fr)}.photo-panel[b-alyvjbq13a]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:14px}.photo-panel .photo-check[b-alyvjbq13a]{border:0;padding:4px}.photo-panel .direction[b-alyvjbq13a]{max-width:none;margin-top:12px}@media(max-width:1000px){.photo-grid.three-photos[b-alyvjbq13a],.quick-options[b-alyvjbq13a]{grid-template-columns:1fr}}


.completion-action-alert[b-alyvjbq13a] {
    margin-top: 1rem;
    padding: 1rem;
    border: 2px solid #c47b00;
    border-radius:var(--archex-radius-medium);
    background: #fff8e8;
}
.compact-list[b-alyvjbq13a] { margin-top: .65rem; max-height: 180px; overflow-y: auto; }
.sticky-actions[b-alyvjbq13a] { position: sticky; bottom: 0; z-index: 20; background: rgba(255,255,255,.97); padding: .85rem 0; border-top: 1px solid #ddd; }

/* Build 0.6 Field Register */
.field-register-summary[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.field-register-summary article[b-alyvjbq13a]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:18px;box-shadow:var(--archex-shadow)}.field-register-summary span[b-alyvjbq13a]{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--color-gunmetal)}.field-register-summary strong[b-alyvjbq13a]{display:block;font-size:2rem;margin-top:4px;color:#223a31}.register-card[b-alyvjbq13a]{padding:0;overflow:hidden}.register-toolbar[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--color-divider)}.register-toolbar h2[b-alyvjbq13a]{margin:2px 0 0}.register-controls[b-alyvjbq13a]{padding:18px 24px;background:var(--color-panel);border-bottom:1px solid var(--color-divider)}.register-search span[b-alyvjbq13a]{display:block;font-size:.78rem;font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}.register-search input[b-alyvjbq13a]{width:100%;padding:13px 14px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;font:inherit}.register-grid[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px 24px}.record-card[b-alyvjbq13a]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:18px;background:#fff;box-shadow:var(--archex-shadow)}.record-card-heading[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.record-card-heading div strong[b-alyvjbq13a]{display:block;font-size:1.35rem;color:#223a31}.record-card-heading div span[b-alyvjbq13a]{color:var(--color-gunmetal)}.record-status[b-alyvjbq13a]{border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:800}.record-status.complete[b-alyvjbq13a]{background:#e4f4e8;color:#21643a}.record-status.draft[b-alyvjbq13a]{background:#fff1cf;color:#7a5600}.record-status.review[b-alyvjbq13a]{background:#fbe3e1;color:#8a2f27}.record-metrics[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.record-metrics span[b-alyvjbq13a]{background:var(--color-panel);border-radius:var(--archex-radius-small);padding:10px;text-align:center;font-size:.82rem;color:var(--color-gunmetal)}.record-metrics strong[b-alyvjbq13a]{display:block;font-size:1.1rem;color:#263e34}.record-meta[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:12px;color:var(--color-gunmetal);font-size:.82rem;margin-bottom:14px}.record-open[b-alyvjbq13a]{width:100%;border:0;border-radius:var(--archex-radius-small);background:var(--color-primary);color:#fff;padding:12px;font-weight:800}.empty-register[b-alyvjbq13a]{text-align:center;padding:48px 24px;color:var(--color-gunmetal)}.empty-register strong[b-alyvjbq13a]{display:block;font-size:1.15rem;color:#2a4037}.picker-backdrop[b-alyvjbq13a]{position:fixed;inset:0;background:rgba(18,31,26,.55);z-index:100;display:grid;place-items:center;padding:20px}.record-picker[b-alyvjbq13a]{width:min(780px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:var(--archex-radius-large);padding:24px;box-shadow:var(--archex-shadow-hover)}.record-type-grid[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.record-type-grid button[b-alyvjbq13a]{border:1px solid var(--color-divider);background:var(--color-panel);border-radius:var(--archex-radius-medium);padding:20px 14px;text-align:left}.record-type-grid button:hover[b-alyvjbq13a]{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, white)}.record-type-grid strong[b-alyvjbq13a]{display:block;font-size:1.25rem;color:var(--color-primary-dark)}.record-type-grid span[b-alyvjbq13a]{display:block;margin-top:4px;color:var(--color-gunmetal)}
@media(max-width:850px){.field-register-summary[b-alyvjbq13a]{grid-template-columns:repeat(2,1fr)}.register-grid[b-alyvjbq13a]{grid-template-columns:1fr}.record-type-grid[b-alyvjbq13a]{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.register-toolbar[b-alyvjbq13a]{align-items:stretch;flex-direction:column}.register-toolbar .field-primary[b-alyvjbq13a]{width:100%}.register-grid[b-alyvjbq13a],.register-controls[b-alyvjbq13a],.register-toolbar[b-alyvjbq13a]{padding-left:16px;padding-right:16px}.record-metrics[b-alyvjbq13a]{grid-template-columns:repeat(3,1fr)}.record-meta[b-alyvjbq13a]{flex-direction:column;gap:4px}.record-type-grid[b-alyvjbq13a]{grid-template-columns:1fr}.field-register-summary article[b-alyvjbq13a]{padding:14px}.field-register-summary strong[b-alyvjbq13a]{font-size:1.55rem}}

/* Build 0.7 Mobile Field Experience */
.mobile-field-nav[b-alyvjbq13a]{display:none}
@media(max-width:850px){
  html[b-alyvjbq13a]{scroll-behavior:smooth;scroll-padding-top:86px}
  .field-page[b-alyvjbq13a]{padding:10px 10px 104px}
  .field-header[b-alyvjbq13a]{margin-bottom:12px;gap:12px}
  .field-header h1[b-alyvjbq13a]{font-size:30px;line-height:1.05}
  .field-header p:not(.eyebrow)[b-alyvjbq13a]{font-size:.92rem}
  .field-setup[b-alyvjbq13a]{display:none}
  .mobile-field-nav[b-alyvjbq13a]{display:flex;position:sticky;top:0;z-index:40;gap:8px;overflow-x:auto;padding:10px;margin:0 -10px 12px;background:rgba(247,249,248,.97);border-bottom:1px solid var(--color-divider);box-shadow:var(--archex-shadow);-webkit-overflow-scrolling:touch}
  .mobile-field-nav a[b-alyvjbq13a]{flex:0 0 auto;text-decoration:none;background:#fff;color:var(--color-primary-dark);border:1px solid var(--color-divider);border-radius:999px;padding:11px 15px;font-weight:800;font-size:.9rem}
  .field-card[b-alyvjbq13a]{padding:18px 14px;margin-bottom:12px;border-radius:var(--archex-radius-medium);scroll-margin-top:82px}
  .completion-card[b-alyvjbq13a]{order:-1}
  .field-section-title[b-alyvjbq13a]{gap:12px;margin-bottom:14px}
  .field-section-title h2[b-alyvjbq13a]{font-size:1.35rem;line-height:1.15}
  .field-card input[b-alyvjbq13a],.field-card select[b-alyvjbq13a],.field-card textarea[b-alyvjbq13a]{min-height:48px;padding:14px;font-size:16px;border-radius:var(--archex-radius-medium)}
  .field-card textarea[b-alyvjbq13a]{min-height:120px}
  .field-primary[b-alyvjbq13a],.field-secondary[b-alyvjbq13a],.field-danger[b-alyvjbq13a],.recent-row button[b-alyvjbq13a]{min-height:52px;padding:14px 16px;font-size:1rem}
  .choice-chips[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .choice-chips button[b-alyvjbq13a]{min-height:50px;border-radius:var(--archex-radius-medium);padding:11px 8px;font-size:.94rem}
  .context-card[b-alyvjbq13a]{padding:14px;margin-top:12px;border-radius:var(--archex-radius-medium)}
  .photo-panel[b-alyvjbq13a]{padding:12px}
  .photo-check[b-alyvjbq13a]{min-height:64px;padding:14px}
  .spit-row[b-alyvjbq13a]{padding:12px}
  .sticky-actions[b-alyvjbq13a]{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:.75fr 1fr 1.2fr;gap:8px;margin:0;padding:10px max(10px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:rgba(255,255,255,.98);box-shadow:0 -8px 24px rgba(30,52,43,.14);border-top:1px solid var(--color-divider)}
  .sticky-actions button[b-alyvjbq13a]{width:100%;min-width:0;padding:12px 7px;font-size:.9rem}
  .finish-card[b-alyvjbq13a]{padding-bottom:22px}
  .completion-list[b-alyvjbq13a]{display:grid;grid-template-columns:1fr;gap:7px}
  .completion-list span[b-alyvjbq13a]{width:100%;box-sizing:border-box}
}
@media(max-width:430px){
  .choice-chips[b-alyvjbq13a]{grid-template-columns:1fr 1fr}
  .sticky-actions[b-alyvjbq13a]{grid-template-columns:.68fr .95fr 1.25fr}
  .sticky-actions button[b-alyvjbq13a]{font-size:.82rem}
}

/* Build 0.8 Guided Field Recording */
.field-wizard-header[b-alyvjbq13a]{position:sticky;top:0;z-index:45;background:rgba(247,249,248,.98);border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:14px 16px;margin:0 0 16px;box-shadow:var(--archex-shadow)}
.wizard-progress-copy[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:16px;align-items:center;color:var(--color-primary-dark)}.wizard-progress-copy span[b-alyvjbq13a]{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gunmetal)}.wizard-progress-copy strong[b-alyvjbq13a]{font-size:1.05rem}.wizard-progress-bar[b-alyvjbq13a]{height:8px;background:#e4e9e6;border-radius:999px;overflow:hidden;margin:10px 0 12px}.wizard-progress-bar span[b-alyvjbq13a]{display:block;height:100%;background:var(--color-primary-dark);border-radius:999px;transition:width .2s ease}.wizard-step-row[b-alyvjbq13a]{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.wizard-step-row button[b-alyvjbq13a]{display:flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid var(--color-divider);background:#fff;color:var(--color-gunmetal);border-radius:999px;padding:7px 11px;font-weight:700}.wizard-step-row button span[b-alyvjbq13a]{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e8eeeb;font-size:.78rem}.wizard-step-row button.active[b-alyvjbq13a]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.wizard-step-row button.active span[b-alyvjbq13a]{background:#fff;color:var(--color-primary-dark)}.wizard-step-row button.done[b-alyvjbq13a]{border-color:var(--color-primary);color:var(--color-primary-dark)}.wizard-step-row button.done span[b-alyvjbq13a]{background:#dcebe3}.wizard-panel.hidden[b-alyvjbq13a]{display:none}.wizard-panel.active[b-alyvjbq13a]{display:block;animation:wizard-in-b-alyvjbq13a .16s ease-out}.wizard-actions[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--color-divider)}.wizard-actions-end[b-alyvjbq13a]{justify-content:flex-end}.wizard-actions button[b-alyvjbq13a]{min-width:150px}.review-back[b-alyvjbq13a]{margin-bottom:86px}.finish-card .sticky-actions[b-alyvjbq13a]{margin-top:0}
@keyframes wizard-in-b-alyvjbq13a{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:850px){.field-wizard-header[b-alyvjbq13a]{top:0;margin:0 -2px 12px;padding:12px;border-radius:var(--archex-radius-medium)}.wizard-progress-copy[b-alyvjbq13a]{align-items:flex-start;flex-direction:column;gap:2px}.wizard-step-row button[b-alyvjbq13a]{padding:8px 10px;font-size:.86rem}.wizard-actions[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr}.wizard-actions-end[b-alyvjbq13a]{grid-template-columns:1fr}.wizard-actions button[b-alyvjbq13a]{width:100%;min-width:0}.review-back[b-alyvjbq13a]{display:block;margin-bottom:88px}.review-back button[b-alyvjbq13a]{width:100%}}

/* Build 0.9 Completed Record Overview and PDF output */
.record-overview-shell[b-alyvjbq13a]{margin-top:18px}.overview-screen-actions[b-alyvjbq13a]{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.overview-screen-actions>div[b-alyvjbq13a]{display:flex;gap:10px}.record-overview[b-alyvjbq13a]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);overflow:hidden;box-shadow:var(--archex-shadow-hover)}.overview-title[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:24px;padding:28px 30px;background:var(--color-primary);color:#fff}.overview-title h2[b-alyvjbq13a]{font-size:2.35rem;margin:2px 0}.overview-title p[b-alyvjbq13a]{margin:0;color:rgba(255,255,255,.82)}.overview-title .eyebrow[b-alyvjbq13a]{color:var(--color-primary-light)}.overview-status[b-alyvjbq13a]{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.overview-status strong[b-alyvjbq13a]{font-size:1.05rem}.overview-status>span:not(.record-status)[b-alyvjbq13a]{color:rgba(255,255,255,.82)}.overview-metrics[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--color-divider)}.overview-metrics div[b-alyvjbq13a]{padding:20px 24px;border-right:1px solid var(--color-divider)}.overview-metrics div:last-child[b-alyvjbq13a]{border-right:0}.overview-metrics span[b-alyvjbq13a]{display:block;color:var(--color-gunmetal);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.overview-metrics strong[b-alyvjbq13a]{display:block;margin-top:4px;font-size:1.55rem;color:#223a31}.overview-section[b-alyvjbq13a]{padding:24px 30px;border-bottom:1px solid var(--color-divider)}.overview-section h3[b-alyvjbq13a]{margin:0 0 16px;color:#223a31}.overview-details[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;margin:0}.overview-details div[b-alyvjbq13a]{background:var(--color-panel);border-radius:var(--archex-radius-small);padding:11px 13px}.overview-details dt[b-alyvjbq13a]{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-gunmetal)}.overview-details dd[b-alyvjbq13a]{margin:3px 0 0;color:#263e34;font-weight:700}.overview-details.compact[b-alyvjbq13a]{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.overview-contexts[b-alyvjbq13a]{display:grid;gap:14px}.overview-contexts>article[b-alyvjbq13a]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:16px}.overview-row-heading[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:16px;color:var(--color-primary-dark)}.overview-notes[b-alyvjbq13a]{white-space:pre-wrap;margin:12px 0 0;color:var(--color-charcoal)}.overview-table[b-alyvjbq13a]{width:100%;border-collapse:collapse}.overview-table th[b-alyvjbq13a],.overview-table td[b-alyvjbq13a]{text-align:left;padding:11px 12px;border-bottom:1px solid var(--color-divider)}.overview-table th[b-alyvjbq13a]{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-gunmetal);background:var(--color-panel)}.overview-photo-grid[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.overview-photo-grid div[b-alyvjbq13a]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:14px}.overview-photo-grid span[b-alyvjbq13a],.overview-photo-grid small[b-alyvjbq13a]{display:block;color:var(--color-gunmetal)}.overview-photo-grid strong[b-alyvjbq13a]{display:block;margin:4px 0;color:var(--color-primary-dark)}.overview-footer[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:16px;padding:16px 30px;background:var(--color-panel);color:var(--color-gunmetal);font-size:.8rem}
@media(max-width:850px){.overview-screen-actions[b-alyvjbq13a]{align-items:stretch;flex-direction:column}.overview-screen-actions>div[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr}.overview-screen-actions button[b-alyvjbq13a]{width:100%}.overview-title[b-alyvjbq13a]{padding:22px 18px;flex-direction:column}.overview-title h2[b-alyvjbq13a]{font-size:2rem}.overview-status[b-alyvjbq13a]{align-items:flex-start;text-align:left}.overview-metrics[b-alyvjbq13a]{grid-template-columns:repeat(2,1fr)}.overview-metrics div:nth-child(2)[b-alyvjbq13a]{border-right:0}.overview-metrics div:nth-child(-n+2)[b-alyvjbq13a]{border-bottom:1px solid var(--color-divider)}.overview-section[b-alyvjbq13a]{padding:20px 16px}.overview-details[b-alyvjbq13a],.overview-details.compact[b-alyvjbq13a]{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-photo-grid[b-alyvjbq13a]{grid-template-columns:1fr}.overview-table-wrap[b-alyvjbq13a]{overflow-x:auto}.overview-footer[b-alyvjbq13a]{padding:14px 16px;flex-direction:column;gap:4px}}
@media(max-width:480px){.overview-details[b-alyvjbq13a],.overview-details.compact[b-alyvjbq13a]{grid-template-columns:1fr}.overview-metrics div[b-alyvjbq13a]{padding:15px}.overview-row-heading[b-alyvjbq13a]{flex-direction:column;gap:4px}}
@media print{body[b-alyvjbq13a]{background:#fff!important}.sidebar[b-alyvjbq13a],.top-row[b-alyvjbq13a],.field-header[b-alyvjbq13a],.field-message[b-alyvjbq13a],.field-setup[b-alyvjbq13a],.no-print[b-alyvjbq13a]{display:none!important}.content[b-alyvjbq13a],.main[b-alyvjbq13a],.field-page[b-alyvjbq13a]{display:block!important;margin:0!important;padding:0!important;max-width:none!important}.record-overview-shell[b-alyvjbq13a]{margin:0}.record-overview[b-alyvjbq13a]{border:0;box-shadow:none;border-radius:0}.overview-title[b-alyvjbq13a]{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:var(--color-primary)!important;color:#fff!important}.overview-section[b-alyvjbq13a],.overview-contexts>article[b-alyvjbq13a],.overview-details div[b-alyvjbq13a],.overview-photo-grid div[b-alyvjbq13a]{break-inside:avoid}.overview-table[b-alyvjbq13a]{font-size:9pt}.overview-title h2[b-alyvjbq13a]{font-size:24pt}.overview-footer[b-alyvjbq13a]{break-inside:avoid}@page{size:A4;margin:12mm}}


/* Version 1.0 mobile field equipment treatment */
:root[b-alyvjbq13a]{--ax-black:#111111;--ax-charcoal:#333333;--ax-copper:var(--color-primary);--ax-sand:var(--color-sandstone);--ax-offwhite:var(--color-panel)}
.field-page[b-alyvjbq13a]{font-family:var(--font-body);background:linear-gradient(var(--color-panel),var(--color-panel))}
.field-header h1[b-alyvjbq13a],.field-section-title h2[b-alyvjbq13a],.field-section-title h3[b-alyvjbq13a],.record-picker h2[b-alyvjbq13a]{font-family:var(--font-heading)}
.field-primary[b-alyvjbq13a]{background:var(--ax-copper)}
.record-type-grid button[b-alyvjbq13a]{min-height:118px;border:2px solid var(--color-divider);background:#fff;box-shadow:var(--archex-shadow);cursor:pointer}
.record-type-grid button:hover[b-alyvjbq13a]{border-color:var(--ax-copper);background:var(--color-panel)}
.record-type-grid strong[b-alyvjbq13a]{color:var(--ax-copper);font-size:1.55rem}
.wizard-progress-bar span[b-alyvjbq13a]{background:var(--ax-copper)!important}
.wizard-step-row button.active span[b-alyvjbq13a],.wizard-step-row button.done span[b-alyvjbq13a]{background:var(--ax-copper)!important}
@media(max-width:850px){
  .field-page[b-alyvjbq13a]{padding:12px 12px 90px}
  .field-header[b-alyvjbq13a]{padding:18px;border-radius:var(--archex-radius-large);background:var(--ax-black);color:#fff}
  .field-header h1[b-alyvjbq13a]{font-size:1.8rem;margin:5px 0}.field-header p[b-alyvjbq13a]{color:#d4cec8}.field-header .eyebrow[b-alyvjbq13a]{color:var(--ax-sand)}
  .field-setup[b-alyvjbq13a]{display:none}
  .field-card[b-alyvjbq13a]{border-radius:var(--archex-radius-large);padding:18px 14px;box-shadow:var(--archex-shadow-hover)}
  .field-wizard-header[b-alyvjbq13a]{position:sticky;top:0;z-index:25;margin:0 -2px 12px;padding:14px;border-radius:var(--archex-radius-medium);background:rgba(17,17,17,.97);color:#fff;box-shadow:var(--archex-shadow)}
  .wizard-progress-copy span[b-alyvjbq13a]{color:var(--ax-sand)}
  .wizard-step-row[b-alyvjbq13a]{display:none}
  .wizard-panel.active[b-alyvjbq13a]{animation:axSlide-b-alyvjbq13a .18s ease-out}
  .field-section-title[b-alyvjbq13a]{gap:12px}.field-section-title h2[b-alyvjbq13a]{font-size:1.35rem}
  .field-grid label>span[b-alyvjbq13a],.field-card label>span[b-alyvjbq13a]{font-size:.78rem;font-weight:800;color:var(--color-gunmetal)}
  .field-card input[b-alyvjbq13a],.field-card select[b-alyvjbq13a],.field-card textarea[b-alyvjbq13a]{min-height:48px;padding:14px;border-width:2px;border-radius:var(--archex-radius-medium);font-size:16px}
  .field-primary[b-alyvjbq13a],.field-secondary[b-alyvjbq13a],.field-danger[b-alyvjbq13a],.recent-row button[b-alyvjbq13a]{min-height:52px;border-radius:var(--archex-radius-medium);font-size:1rem}
  .wizard-actions[b-alyvjbq13a]{position:sticky;bottom:0;z-index:24;display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin:20px -14px -18px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid var(--color-divider)}
  .wizard-actions-end[b-alyvjbq13a]{grid-template-columns:1fr}.wizard-actions button[b-alyvjbq13a]{width:100%}
  .context-card[b-alyvjbq13a]{padding:15px;border-radius:var(--archex-radius-large);background:#fff}
  .choice-chips[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .choice-chips button[b-alyvjbq13a]{min-height:48px;border-radius:var(--archex-radius-medium);text-align:left;font-weight:700}
  .choice-chips button.selected[b-alyvjbq13a]{background:var(--ax-copper);border-color:var(--ax-copper);color:#fff}
  .record-picker[b-alyvjbq13a]{padding:18px 14px;border-radius:var(--archex-radius-large)}.record-type-grid[b-alyvjbq13a]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.record-type-grid button[b-alyvjbq13a]{min-height:105px;padding:15px 12px}
  .register-grid[b-alyvjbq13a]{grid-template-columns:1fr;padding:14px}.field-register-summary[b-alyvjbq13a]{grid-template-columns:repeat(2,1fr);gap:9px}.field-register-summary article[b-alyvjbq13a]{padding:14px}
  .overview-title[b-alyvjbq13a]{background:var(--ax-black)!important}.record-open[b-alyvjbq13a]{background:var(--ax-charcoal)}
}
@keyframes axSlide-b-alyvjbq13a{from{opacity:.55;transform:translateX(8px)}to{opacity:1;transform:none}}

/* Recovery Build 1.0.2: ordinary, always-visible wizard navigation. */
.wizard-main-navigation[b-alyvjbq13a]{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(190px,1.3fr);gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--color-divider)}
.wizard-main-navigation button[b-alyvjbq13a]{min-height:52px;width:100%;font-size:1rem;font-weight:800}
.field-build-marker[b-alyvjbq13a]{margin-top:9px;text-align:center;font-size:.68rem;font-weight:800;letter-spacing:.06em;color:#8a5a3b}
@media(max-width:850px){.wizard-main-navigation[b-alyvjbq13a]{position:sticky;bottom:0;z-index:40;margin:12px -12px -12px;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -8px 24px rgba(17,17,17,.10)}.wizard-main-navigation button[b-alyvjbq13a]{min-height:56px}.field-build-marker[b-alyvjbq13a]{padding-top:8px}}

/* Build 1.0.3 contrast repair: colour-only correction for all field actions. */
.field-page .field-primary[b-alyvjbq13a],
.field-page button.field-primary[b-alyvjbq13a],
.field-wizard-header .field-primary[b-alyvjbq13a],
.wizard-main-navigation .field-primary[b-alyvjbq13a],
.header-actions .field-primary[b-alyvjbq13a],
.register-toolbar .field-primary[b-alyvjbq13a] {
  background:var(--color-primary-dark) !important;
  background-color:var(--color-primary-dark) !important;
  color:#ffffff !important;
  border:2px solid var(--color-primary-dark) !important;
  opacity:1 !important;
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:var(--archex-shadow);
}
.field-page .field-primary:hover[b-alyvjbq13a],
.field-page .field-primary:focus-visible[b-alyvjbq13a] {
  background:var(--color-primary-dark) !important;
  background-color:var(--color-primary-dark) !important;
  border-color:var(--color-primary-dark) !important;
  color:#ffffff !important;
}
.field-page .field-secondary[b-alyvjbq13a],
.field-page button.field-secondary[b-alyvjbq13a],
.wizard-main-navigation .field-secondary[b-alyvjbq13a],
.header-actions .field-secondary[b-alyvjbq13a] {
  background:var(--color-surface) !important;
  background-color:var(--color-surface) !important;
  color:var(--color-charcoal) !important;
  border:2px solid #b9aea5 !important;
  opacity:1 !important;
  -webkit-text-fill-color:#111111 !important;
}
.field-page .field-secondary:hover[b-alyvjbq13a],
.field-page .field-secondary:focus-visible[b-alyvjbq13a] {
  background:var(--color-panel) !important;
  background-color:var(--color-panel) !important;
  border-color:#7e7167 !important;
  color:var(--color-charcoal) !important;
}
.field-page button:disabled[b-alyvjbq13a],
.field-page .field-primary:disabled[b-alyvjbq13a],
.field-page .field-secondary:disabled[b-alyvjbq13a] {
  background:#ded8d2 !important;
  background-color:#ded8d2 !important;
  color:#4b4540 !important;
  border-color:var(--color-divider) !important;
  opacity:1 !important;
  -webkit-text-fill-color:#4b4540 !important;
  cursor:not-allowed;
  box-shadow:none;
}
.wizard-progress-copy[b-alyvjbq13a] { color:var(--color-charcoal) !important; }
.wizard-progress-copy span[b-alyvjbq13a] { color:var(--color-gunmetal) !important; }
.field-build-marker[b-alyvjbq13a] { color:var(--color-primary-dark) !important; }
@media(max-width:850px){
  .field-wizard-header .wizard-progress-copy[b-alyvjbq13a] { color:#ffffff !important; }
  .field-wizard-header .wizard-progress-copy span[b-alyvjbq13a] { color:var(--color-sandstone) !important; }
  .wizard-main-navigation[b-alyvjbq13a] { background:var(--color-surface) !important; }
}

/* Build 1.0.4 Mobile Polish: glove-friendly field UI, neutral + ArchEx copper palette. */
.field-page[b-alyvjbq13a]{
  --ax-ink:#171411;
  --ax-muted:#665d56;
  --ax-border:#d7cec6;
  --ax-panel:#ffffff;
  --ax-soft:#f6f1ec;
  --ax-copper:var(--color-primary);
  --ax-copper-dark:var(--color-primary-dark);
  color:var(--ax-ink);
  background:linear-gradient(180deg,var(--color-panel) 0%,#f1ebe5 100%);
}
.field-page .field-card[b-alyvjbq13a],
.field-page .record-card[b-alyvjbq13a],
.field-page .field-register-summary article[b-alyvjbq13a],
.field-page .record-picker[b-alyvjbq13a],
.field-page .context-card[b-alyvjbq13a],
.field-page .spit-row[b-alyvjbq13a]{
  border-color:var(--ax-border);
  background:var(--ax-panel);
  box-shadow:var(--archex-shadow);
}
.field-page .register-controls[b-alyvjbq13a],
.field-page .record-metrics span[b-alyvjbq13a],
.field-page .overview-details div[b-alyvjbq13a],
.field-page .overview-footer[b-alyvjbq13a],
.field-page .overview-table th[b-alyvjbq13a]{
  background:var(--ax-soft);
}
.field-page .field-card label span[b-alyvjbq13a],
.field-page .field-card div>span[b-alyvjbq13a],
.field-page .field-card small[b-alyvjbq13a],
.field-page .section-help[b-alyvjbq13a],
.field-page .record-meta[b-alyvjbq13a],
.field-page .record-card-heading div span[b-alyvjbq13a],
.field-page .field-register-summary span[b-alyvjbq13a],
.field-page .overview-details dt[b-alyvjbq13a],
.field-page .overview-metrics span[b-alyvjbq13a]{
  color:var(--ax-muted);
}
.field-page .field-card input[b-alyvjbq13a],
.field-page .field-card select[b-alyvjbq13a],
.field-page .field-card textarea[b-alyvjbq13a],
.field-page .register-search input[b-alyvjbq13a]{
  border-color:var(--color-divider);
  color:var(--ax-ink);
  background:#fff;
}
.field-page .field-card input:focus[b-alyvjbq13a],
.field-page .field-card select:focus[b-alyvjbq13a],
.field-page .field-card textarea:focus[b-alyvjbq13a],
.field-page .register-search input:focus[b-alyvjbq13a]{
  border-color:var(--ax-copper);
  outline:3px solid rgba(196,90,28,.18);
  outline-offset:1px;
}
.field-page .ax-chip[b-alyvjbq13a],
.field-page .wizard-step-row button[b-alyvjbq13a],
.field-page .mobile-field-nav a[b-alyvjbq13a],
.field-page .choice-chips button[b-alyvjbq13a]{
  border-color:var(--color-divider);
  color:var(--color-charcoal);
  background:#fff;
}
.field-page .ax-chip.active[b-alyvjbq13a],
.field-page .wizard-step-row button.active[b-alyvjbq13a],
.field-page .record-open[b-alyvjbq13a],
.field-page .choice-chips button.selected[b-alyvjbq13a]{
  background:var(--ax-copper)!important;
  border-color:var(--ax-copper)!important;
  color:#fff!important;
}
.field-page .wizard-step-row button.done[b-alyvjbq13a]{
  border-color:#cf8c60;
  color:var(--color-primary-dark);
}
.field-page .wizard-step-row button span[b-alyvjbq13a],
.field-page .wizard-step-row button.done span[b-alyvjbq13a]{
  background:var(--color-primary-light)!important;
  color:var(--color-primary-dark)!important;
}
.field-page .wizard-step-row button.active span[b-alyvjbq13a]{
  background:#fff!important;
  color:var(--ax-copper)!important;
}
.field-page .completion-ready[b-alyvjbq13a],
.field-page .status-chip.ready[b-alyvjbq13a],
.field-page .record-status.complete[b-alyvjbq13a]{
  color:#4d3b2f;
  background:#eee6df;
}
.field-page .completion-card[b-alyvjbq13a]{border-left-color:var(--ax-copper)}
.field-page .record-type-grid button:hover[b-alyvjbq13a],
.field-page .record-type-grid button:focus-visible[b-alyvjbq13a]{
  border-color:var(--ax-copper);
  background:var(--color-panel);
  outline:3px solid rgba(196,90,28,.16);
}
.field-page .record-type-grid strong[b-alyvjbq13a],
.field-page .overview-row-heading[b-alyvjbq13a],
.field-page .overview-photo-grid strong[b-alyvjbq13a]{
  color:var(--ax-copper);
}
.field-page .overview-title[b-alyvjbq13a]{background:var(--ax-ink)}
.field-page .picker-backdrop[b-alyvjbq13a]{background:rgba(23,20,17,.62)}

@media(max-width:850px){
  .field-page[b-alyvjbq13a]{padding:10px 10px 104px}
  .field-page .field-header[b-alyvjbq13a]{padding:18px 16px;margin-bottom:12px}
  .field-page .field-header h1[b-alyvjbq13a]{font-size:1.75rem;line-height:1.12}
  .field-page .field-card[b-alyvjbq13a]{padding:20px 16px;margin-bottom:14px;border-radius:var(--archex-radius-large)}
  .field-page .field-section-title[b-alyvjbq13a]{margin-bottom:16px}
  .field-page .field-section-title h2[b-alyvjbq13a]{font-size:1.45rem;line-height:1.18}
  .field-page .section-help[b-alyvjbq13a]{font-size:1rem;line-height:1.45;margin:-4px 0 18px}
  .field-page .field-grid[b-alyvjbq13a]{gap:18px}
  .field-page .field-card label span[b-alyvjbq13a],
  .field-page .field-card div>span[b-alyvjbq13a]{
    font-size:.82rem;
    letter-spacing:.075em;
    margin-bottom:8px;
  }
  .field-page .field-card input[b-alyvjbq13a],
  .field-page .field-card select[b-alyvjbq13a],
  .field-page .field-card textarea[b-alyvjbq13a],
  .field-page .register-search input[b-alyvjbq13a]{
    min-height:56px;
    padding:16px 14px;
    border-width:2px;
    border-radius:var(--archex-radius-medium);
    font-size:17px;
  }
  .field-page .field-card textarea[b-alyvjbq13a]{min-height:112px}
  .field-page .field-primary[b-alyvjbq13a],
  .field-page .field-secondary[b-alyvjbq13a],
  .field-page .field-danger[b-alyvjbq13a],
  .field-page .recent-row button[b-alyvjbq13a],
  .field-page .record-open[b-alyvjbq13a]{
    min-height:60px;
    padding:15px 18px;
    border-radius:var(--archex-radius-medium);
    font-size:1.05rem;
    font-weight:800;
  }
  .field-page .choice-chips[b-alyvjbq13a]{grid-template-columns:1fr 1fr;gap:10px}
  .field-page .choice-chips button[b-alyvjbq13a]{
    min-height:58px;
    padding:13px 12px;
    border-width:2px;
    font-size:1rem;
    text-align:center;
  }
  .field-page .photo-check[b-alyvjbq13a]{
    min-height:72px;
    padding:18px 16px;
    border-width:2px;
  }
  .field-page .photo-check input[b-alyvjbq13a]{width:26px;height:22px;margin-top:1px}
  .field-page .context-card[b-alyvjbq13a]{padding:18px 14px;margin-top:14px}
  .field-page .spit-row[b-alyvjbq13a]{padding:16px 14px;gap:16px}
  .field-page .remove-spit[b-alyvjbq13a]{height:56px;font-size:26px}
  .field-page .field-wizard-header[b-alyvjbq13a]{
    padding:14px 14px 12px;
    border-color:#2c2723;
    background:rgba(23,20,17,.98);
  }
  .field-page .wizard-progress-copy strong[b-alyvjbq13a]{font-size:1.15rem}
  .field-page .wizard-progress-bar[b-alyvjbq13a]{height:10px;margin:11px 0 8px;background:#514942}
  .field-page .wizard-main-navigation[b-alyvjbq13a]{
    grid-template-columns:minmax(105px,.72fr) minmax(175px,1.28fr);
    gap:10px;
    padding:12px 10px calc(12px + env(safe-area-inset-bottom));
    border-top:2px solid var(--color-divider);
  }
  .field-page .wizard-main-navigation button[b-alyvjbq13a]{min-height:64px;font-size:1.05rem}
  .field-page .wizard-actions[b-alyvjbq13a]{display:none}
  .field-page .record-type-grid[b-alyvjbq13a]{grid-template-columns:1fr 1fr;gap:12px}
  .field-page .record-type-grid button[b-alyvjbq13a]{
    min-height:124px;
    padding:18px 14px;
    border-width:2px;
  }
  .field-page .record-type-grid strong[b-alyvjbq13a]{font-size:1.55rem}
  .field-page .record-type-grid span[b-alyvjbq13a]{font-size:1rem;color:var(--color-charcoal)}
  .field-page .field-register-summary article[b-alyvjbq13a]{padding:16px 13px}
  .field-page .field-register-summary strong[b-alyvjbq13a]{color:var(--ax-ink)}
  .field-build-marker[b-alyvjbq13a]{font-size:.62rem;color:var(--color-primary-dark)!important}
}

@media(max-width:390px){
  .field-page .choice-chips[b-alyvjbq13a]{grid-template-columns:1fr}
  .field-page .record-type-grid[b-alyvjbq13a]{grid-template-columns:1fr}
  .field-page .record-type-grid button[b-alyvjbq13a]{min-height:96px}
  .field-page .wizard-main-navigation[b-alyvjbq13a]{grid-template-columns:1fr 1.35fr}
}

/* Build 1.0.5 Field Controls Prototype: only field context entry is touch-optimised. */
.field-tap-group[b-alyvjbq13a]{margin:18px 0}
.field-tap-group>span[b-alyvjbq13a]{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--color-gunmetal);margin-bottom:9px}
.field-tap-options[b-alyvjbq13a]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px}
.field-tap-options button[b-alyvjbq13a]{min-height:48px;padding:11px 13px;border:2px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;color:var(--color-charcoal);font-weight:750;cursor:pointer}
.field-tap-options button:hover[b-alyvjbq13a],.field-tap-options button:focus-visible[b-alyvjbq13a]{border-color:var(--color-primary-dark);outline:3px solid rgba(196,90,28,.16)}
.field-tap-options button.selected[b-alyvjbq13a]{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff;box-shadow:var(--archex-shadow)}
@media(max-width:850px){
  .depth-fields[b-alyvjbq13a]{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .depth-fields input[b-alyvjbq13a]{font-size:1.25rem!important;font-weight:800;text-align:center}
  .field-tap-group[b-alyvjbq13a]{margin:22px 0}
  .field-tap-group>span[b-alyvjbq13a]{font-size:.82rem;font-weight:800;letter-spacing:.075em;margin-bottom:10px}
  .field-tap-options[b-alyvjbq13a]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .field-tap-options button[b-alyvjbq13a]{min-height:60px;padding:14px 10px;border-radius:var(--archex-radius-medium);font-size:1rem;font-weight:800}
}
@media(max-width:390px){.field-tap-options[b-alyvjbq13a]{grid-template-columns:1fr 1fr}.depth-fields[b-alyvjbq13a]{grid-template-columns:1fr 1fr!important}}

/* Build 1.0.6: glove-friendly context pickers */
.compact-picker[b-alyvjbq13a]{margin:16px 0}
.munsell-options[b-alyvjbq13a]{grid-template-columns:repeat(4,minmax(90px,1fr))}
.numeric-options[b-alyvjbq13a]{grid-template-columns:repeat(7,minmax(58px,1fr))}
.ph-options[b-alyvjbq13a]{grid-template-columns:repeat(6,minmax(70px,1fr))}
.field-readonly-note[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:16px 0;padding:16px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:var(--color-panel)}
.field-readonly-note span[b-alyvjbq13a]{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gunmetal)}
.field-readonly-note strong[b-alyvjbq13a]{color:var(--color-charcoal)}
@media(max-width:850px){.munsell-options[b-alyvjbq13a]{grid-template-columns:repeat(2,minmax(0,1fr))}.numeric-options[b-alyvjbq13a],.ph-options[b-alyvjbq13a]{grid-template-columns:repeat(3,minmax(0,1fr))}.field-readonly-note[b-alyvjbq13a]{align-items:flex-start;flex-direction:column}}


/* Build 1.0.7: calmer, collapsible context recording */
.context-card-header[b-alyvjbq13a]{display:flex;gap:12px;align-items:center;justify-content:space-between}
.context-toggle[b-alyvjbq13a]{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:0;background:transparent;color:#211c18;padding:4px 0;cursor:pointer}
.context-toggle span[b-alyvjbq13a]{display:grid;gap:3px}.context-toggle small[b-alyvjbq13a]{font-size:.72rem;letter-spacing:.09em;color:#8b572f;font-weight:800}.context-toggle strong[b-alyvjbq13a]{font-size:1rem}.context-toggle b[b-alyvjbq13a]{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--color-divider);border-radius:50%;font-size:1.35rem;color:var(--color-primary-dark);background:#fff}
.context-card.collapsed[b-alyvjbq13a]{padding-top:14px;padding-bottom:14px}.context-card.collapsed .context-card-body[b-alyvjbq13a]{display:none}.context-card.collapsed .inline-actions[b-alyvjbq13a]{display:none}.context-card-body[b-alyvjbq13a]{padding-top:16px;margin-top:12px;border-top:1px solid var(--color-divider)}
.context-footer[b-alyvjbq13a]{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:18px}
.field-tap-options[b-alyvjbq13a]{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px}
.field-tap-options button[b-alyvjbq13a]{min-height:42px;padding:8px 10px;border-width:1px;border-radius:var(--archex-radius-small);font-size:.92rem}
.compact-picker .field-tap-options button[b-alyvjbq13a]{min-height:40px}
.depth-fields input[b-alyvjbq13a]{min-height:50px!important;font-size:1.2rem!important;font-weight:800!important;text-align:center}
@media(max-width:850px){
  .context-card-header[b-alyvjbq13a]{align-items:stretch;flex-direction:column}.context-card-header .inline-actions[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr}.context-card-header .inline-actions button[b-alyvjbq13a]{width:100%}
  .field-tap-group[b-alyvjbq13a]{margin:15px 0}.field-tap-options[b-alyvjbq13a]{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.field-tap-options button[b-alyvjbq13a]{min-height:46px;padding:9px 6px;font-size:.9rem}
  .munsell-options[b-alyvjbq13a],.numeric-options[b-alyvjbq13a],.ph-options[b-alyvjbq13a]{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .depth-fields input[b-alyvjbq13a]{min-height:56px!important;font-size:1.3rem!important}
  .context-footer[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr}.context-footer button[b-alyvjbq13a]{width:100%}
}
@media(max-width:430px){.field-tap-options[b-alyvjbq13a]{grid-template-columns:repeat(2,minmax(0,1fr))}.munsell-options[b-alyvjbq13a],.numeric-options[b-alyvjbq13a],.ph-options[b-alyvjbq13a]{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* Build 1.0.8: authenticated completion mark */
.overview-signature[b-alyvjbq13a] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.25rem 0 0;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(241, 143, 60, .45);
    border-left: 4px solid var(--color-primary);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
}

.overview-signature div[b-alyvjbq13a] { display: grid; gap: .2rem; }
.overview-signature span[b-alyvjbq13a] { font-size: .7rem; letter-spacing: .12em; font-weight: 800; color: var(--color-primary-dark); }
.overview-signature strong[b-alyvjbq13a] { font-size: .96rem; color: var(--color-charcoal); }
.overview-signature small[b-alyvjbq13a] { color: var(--color-gunmetal); }

@media (max-width: 680px) {
    .overview-signature[b-alyvjbq13a] { grid-template-columns: 1fr; }
}

@media print {
    .overview-signature[b-alyvjbq13a] { break-inside: avoid; background: #fff; }
}

/* ArchEx 1.3.9 field command-centre additions */
.field-page .field-next-action[b-alyvjbq13a]{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:0 0 18px;
  padding:24px 26px;
  border:1px solid rgba(190,83,28,.24);
  border-radius:var(--archex-radius-large);
  background:radial-gradient(circle at top right,rgba(190,83,28,.11),transparent 24rem),rgba(255,255,255,.96);
  box-shadow:var(--archex-shadow-hover);
}
.field-page .field-next-action h2[b-alyvjbq13a]{margin:0 0 8px;font-size:clamp(1.35rem,2.4vw,2rem);letter-spacing:-.025em}
.field-page .field-next-action p:last-child[b-alyvjbq13a]{margin:0;color:var(--color-gunmetal);line-height:1.55}
.field-page .record-readiness[b-alyvjbq13a]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 2px;color:var(--color-gunmetal);font-size:.8rem}
.field-page .readiness-pill[b-alyvjbq13a]{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:.72rem;font-weight:850;letter-spacing:.035em;text-transform:uppercase}
.field-page .readiness-pill.ready[b-alyvjbq13a]{background:#e5f5eb;color:#17663a}
.field-page .readiness-pill.progress[b-alyvjbq13a]{background:#e9f0fb;color:#285b91}
.field-page .readiness-pill.review[b-alyvjbq13a]{background:#f4eafb;color:#744194}
.field-page .readiness-pill.warning[b-alyvjbq13a]{background:#fff0df;color:var(--color-primary-dark)}
@media(max-width:850px){
  .field-page .field-next-action[b-alyvjbq13a]{align-items:stretch;flex-direction:column;padding:20px 18px}
  .field-page .field-next-action .field-primary[b-alyvjbq13a]{width:100%}
  .field-page .record-readiness[b-alyvjbq13a]{align-items:flex-start;flex-direction:column}
}


/* Build 1.0.9 — phone-first field record wizard.
   Desktop presentation is intentionally unchanged. */
@media (max-width: 700px) {
  .field-page.field-page-editor[b-alyvjbq13a] {
    max-width: none;
    min-height: 100dvh;
    margin: 0;
    padding: 0 10px calc(104px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, var(--color-panel) 0%, var(--color-panel) 100%);
  }

  .field-page-editor .field-header[b-alyvjbq13a] {
    display: block;
    margin: 0 -10px 10px;
    padding: 14px 16px 13px;
    border: 0;
    border-radius: 0;
    background: var(--color-charcoal);
    box-shadow:var(--archex-shadow);
  }

  .field-page-editor .field-header .eyebrow[b-alyvjbq13a] {
    margin-bottom: 4px;
    color: var(--color-primary);
    font-size: .67rem;
    letter-spacing: .12em;
  }

  .field-page-editor .field-header h1[b-alyvjbq13a] {
    overflow: hidden;
    margin: 0;
    color: #fff;
    font-size: 1.18rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .field-page-editor .field-header p:not(.eyebrow)[b-alyvjbq13a],
  .field-page-editor .header-actions[b-alyvjbq13a],
  .field-page-editor .field-setup[b-alyvjbq13a] {
    display: none;
  }

  .field-page-editor .field-wizard-header[b-alyvjbq13a] {
    position: sticky;
    top: 0;
    z-index: 50;
    margin: 0 -2px 10px;
    padding: 12px 13px 10px;
    border: 1px solid var(--color-gunmetal);
    border-radius: 0 0 12px 12px;
    background: rgba(31,31,31,.98);
    color: #fff;
    box-shadow:var(--archex-shadow);
    backdrop-filter: blur(8px);
  }

  .field-page-editor .wizard-progress-copy[b-alyvjbq13a] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #fff !important;
  }

  .field-page-editor .wizard-progress-copy span[b-alyvjbq13a] {
    flex: 0 0 auto;
    color: var(--color-primary-light) !important;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
  }

  .field-page-editor .wizard-progress-copy strong[b-alyvjbq13a] {
    overflow: hidden;
    color: #fff;
    font-family:var(--font-heading);
    font-size: .95rem;
    line-height: 1.2;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .field-page-editor .wizard-progress-bar[b-alyvjbq13a] {
    height: 6px;
    margin: 9px 0 0;
    background: #525252;
  }

  .field-page-editor .wizard-step-row[b-alyvjbq13a],
  .field-page-editor .field-build-marker[b-alyvjbq13a] {
    display: none;
  }

  .field-page-editor .wizard-main-navigation[b-alyvjbq13a] {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 90;
    display: grid;
    grid-template-columns: minmax(96px, .72fr) minmax(0, 1.28fr);
    gap: 8px;
    margin: 0;
    padding: 10px 10px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--color-divider);
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 -4px 18px rgba(0,0,0,.12);
    backdrop-filter: blur(10px);
  }

  .field-page-editor .wizard-main-navigation button[b-alyvjbq13a] {
    min-height: 52px;
    padding: 10px 12px;
    border-radius:var(--archex-radius-small);
    font-size: .94rem;
    line-height: 1.15;
  }

  .field-page-editor .field-card.wizard-panel[b-alyvjbq13a] {
    margin: 0 0 12px;
    padding: 17px 14px 18px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    box-shadow:var(--archex-shadow);
  }

  .field-page-editor .field-section-title[b-alyvjbq13a] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 18px;
  }

  .field-page-editor .field-section-title > div[b-alyvjbq13a] {
    width: 100%;
  }

  .field-page-editor .field-section-title h2[b-alyvjbq13a] {
    margin: 3px 0 0;
    font-size: 1.3rem;
    line-height: 1.18;
  }

  .field-page-editor .status-chip[b-alyvjbq13a] {
    align-self: flex-start;
    padding: 6px 9px;
    font-size: .68rem !important;
  }

  .field-page-editor .field-grid[b-alyvjbq13a],
  .field-page-editor .field-grid.two[b-alyvjbq13a],
  .field-page-editor .field-grid.three[b-alyvjbq13a],
  .field-page-editor .field-grid.four[b-alyvjbq13a],
  .field-page-editor .photo-grid[b-alyvjbq13a] {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 17px;
  }

  .field-page-editor .field-card label[b-alyvjbq13a],
  .field-page-editor .field-card > div[b-alyvjbq13a] {
    width: 100%;
  }

  .field-page-editor .field-card label > span[b-alyvjbq13a],
  .field-page-editor .field-card div > span[b-alyvjbq13a] {
    margin-bottom: 7px;
    color: var(--color-gunmetal);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .075em;
  }

  .field-page-editor .field-card input[b-alyvjbq13a],
  .field-page-editor .field-card select[b-alyvjbq13a],
  .field-page-editor .field-card textarea[b-alyvjbq13a] {
    width: 100%;
    min-height: 52px;
    padding: 13px 12px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    font-size: 16px;
    line-height: 1.25;
  }

  .field-page-editor .field-card textarea[b-alyvjbq13a] {
    min-height: 108px;
    resize: vertical;
  }

  .field-page-editor .field-card small[b-alyvjbq13a] {
    margin-top: 7px;
    font-size: .78rem;
    line-height: 1.38;
  }

  .field-page-editor .wizard-actions[b-alyvjbq13a] {
    display: none !important;
  }

  .field-page-editor .choice-chips[b-alyvjbq13a],
  .field-page-editor .field-tap-options[b-alyvjbq13a] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .field-page-editor .choice-chips button[b-alyvjbq13a],
  .field-page-editor .field-tap-options button[b-alyvjbq13a] {
    min-height: 52px;
    padding: 10px 8px;
    border-radius:var(--archex-radius-small);
    font-size: .92rem;
    text-align: center;
  }

  .field-page-editor .depth-fields[b-alyvjbq13a] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .field-page-editor .context-card[b-alyvjbq13a],
  .field-page-editor .spit-row[b-alyvjbq13a],
  .field-page-editor .photo-check[b-alyvjbq13a],
  .field-page-editor .field-readonly-note[b-alyvjbq13a] {
    border-radius:var(--archex-radius-small);
    box-shadow: none;
  }

  .field-page-editor .context-card[b-alyvjbq13a] {
    padding: 14px 12px;
  }

  .field-page-editor .context-card-header[b-alyvjbq13a],
  .field-page-editor .completion-heading[b-alyvjbq13a] {
    align-items: stretch;
    flex-direction: column;
  }

  .field-page-editor .context-card-header .inline-actions[b-alyvjbq13a],
  .field-page-editor .context-footer[b-alyvjbq13a] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .field-page-editor .context-card-header .inline-actions button[b-alyvjbq13a],
  .field-page-editor .context-footer button[b-alyvjbq13a] {
    width: 100%;
    min-height: 48px;
  }

  .field-page-editor .photo-check[b-alyvjbq13a] {
    min-height: 68px;
    padding: 15px 13px;
  }

  .field-page-editor .photo-check input[b-alyvjbq13a] {
    width: 24px;
    height: 24px;
  }

  .field-page-editor .review-back[b-alyvjbq13a] {
    margin-bottom: 0;
  }
}

@media (max-width: 380px) {
  .field-page-editor .choice-chips[b-alyvjbq13a],
  .field-page-editor .field-tap-options[b-alyvjbq13a] {
    grid-template-columns: 1fr;
  }

  .field-page-editor .wizard-main-navigation[b-alyvjbq13a] {
    grid-template-columns: .68fr 1.32fr;
  }
}

/* Build 1.0.9 — field-record editor is deliberately phone-only.
   The recording workflow is never performed on desktop, so the editor uses
   one compact, touch-first presentation at every viewport width. */
.field-page.field-page-editor[b-alyvjbq13a]{
  width:100%;
  max-width:430px;
  min-height:100dvh;
  margin:0 auto;
  padding:8px 10px calc(104px + env(safe-area-inset-bottom));
  background:#f8f5f1;
  overflow-x:hidden;
}
.field-page-editor .field-header[b-alyvjbq13a]{
  display:block;
  margin:0 -10px 10px;
  padding:14px 16px 13px;
  border-radius:0;
  background:var(--color-charcoal);
  color:#fff;
  box-shadow:var(--archex-shadow);
}
.field-page-editor .field-header .eyebrow[b-alyvjbq13a]{color:var(--color-primary);font-size:.72rem;letter-spacing:.1em}
.field-page-editor .field-header h1[b-alyvjbq13a]{
  margin:4px 0 0;
  font-family:var(--font-heading);
  font-size:1.18rem;
  line-height:1.2;
  color:#fff;
}
.field-page-editor .field-header p[b-alyvjbq13a],
.field-page-editor .field-header .header-actions[b-alyvjbq13a]{display:none!important}
.field-page-editor .field-setup[b-alyvjbq13a]{display:none!important}
.field-page-editor form[b-alyvjbq13a]{display:block;width:100%;min-width:0}
.field-page-editor .field-wizard-header[b-alyvjbq13a]{
  position:static;
  margin:0 0 10px;
  padding:12px 14px;
  border:1px solid var(--color-divider);
  border-radius:var(--archex-radius-small);
  background:#fff;
  color:var(--color-charcoal);
  box-shadow:var(--archex-shadow);
}
.field-page-editor .wizard-progress-copy[b-alyvjbq13a]{display:flex;justify-content:space-between;align-items:center;gap:10px}
.field-page-editor .wizard-progress-copy span[b-alyvjbq13a]{color:var(--color-gunmetal)!important;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.field-page-editor .wizard-progress-copy strong[b-alyvjbq13a]{font-size:1rem;color:var(--color-charcoal)!important}
.field-page-editor .wizard-progress-bar[b-alyvjbq13a]{height:8px;margin:10px 0 0;background:#ebe6e1;border-radius:999px;overflow:hidden}
.field-page-editor .wizard-step-row[b-alyvjbq13a],
.field-page-editor .field-build-marker[b-alyvjbq13a]{display:none!important}
.field-page-editor .field-card[b-alyvjbq13a]{
  width:100%;
  margin:0 0 12px;
  padding:16px 14px;
  border:1px solid var(--color-divider);
  border-radius:var(--archex-radius-small);
  background:#fff;
  box-shadow:var(--archex-shadow);
  box-sizing:border-box;
}
.field-page-editor .wizard-panel.hidden[b-alyvjbq13a]{display:none!important}
.field-page-editor .wizard-panel.active[b-alyvjbq13a]{display:block!important;animation:none}
.field-page-editor .field-section-title[b-alyvjbq13a]{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:18px;
}
.field-page-editor .field-section-title h2[b-alyvjbq13a]{
  margin:3px 0 0;
  font-size:1.45rem;
  line-height:1.15;
}
.field-page-editor .status-chip[b-alyvjbq13a]{flex:none}
.field-page-editor .field-grid[b-alyvjbq13a],
.field-page-editor .field-grid.two[b-alyvjbq13a],
.field-page-editor .field-grid.three[b-alyvjbq13a],
.field-page-editor .field-grid.four[b-alyvjbq13a],
.field-page-editor .quick-options[b-alyvjbq13a],
.field-page-editor .photo-grid[b-alyvjbq13a],
.field-page-editor .photo-grid.three-photos[b-alyvjbq13a]{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.field-page-editor .field-card label[b-alyvjbq13a],
.field-page-editor .field-card label span[b-alyvjbq13a],
.field-page-editor .field-card div[b-alyvjbq13a]{min-width:0}
.field-page-editor .field-card label span[b-alyvjbq13a],
.field-page-editor .field-card div>span[b-alyvjbq13a]{
  display:block;
  margin:0 0 8px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.075em;
  color:var(--color-gunmetal);
}
.field-page-editor .field-card input[b-alyvjbq13a],
.field-page-editor .field-card select[b-alyvjbq13a],
.field-page-editor .field-card textarea[b-alyvjbq13a]{
  display:block;
  width:100%!important;
  min-width:0;
  min-height:52px;
  box-sizing:border-box;
  padding:13px 12px;
  border:1px solid var(--color-divider);
  border-radius:var(--archex-radius-small);
  background:#fff;
  font-size:16px;
  line-height:1.25;
}
.field-page-editor .field-card textarea[b-alyvjbq13a]{min-height:112px;resize:vertical}
.field-page-editor .field-card small[b-alyvjbq13a]{font-size:.83rem;line-height:1.4}
.field-page-editor .field-card strong[b-alyvjbq13a]{overflow-wrap:anywhere}
.field-page-editor .wizard-actions[b-alyvjbq13a]{display:none!important}
.field-page-editor .wizard-main-navigation[b-alyvjbq13a]{
  position:fixed;
  z-index:100;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:minmax(108px,.72fr) minmax(0,1.28fr);
  gap:8px;
  width:min(430px,100%);
  margin:0;
  padding:10px 10px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid var(--color-divider);
  background:rgba(255,255,255,.98);
  box-shadow:0 -4px 18px rgba(0,0,0,.12);
  box-sizing:border-box;
}
.field-page-editor .wizard-main-navigation button[b-alyvjbq13a]{
  width:100%;
  min-width:0;
  min-height:56px;
  padding:10px 8px;
  border-radius:var(--archex-radius-small);
  font-size:.96rem;
  line-height:1.15;
  white-space:normal;
}
.field-page-editor .context-card[b-alyvjbq13a],
.field-page-editor .spit-row[b-alyvjbq13a],
.field-page-editor .photo-panel[b-alyvjbq13a]{
  padding:14px;
  border-radius:var(--archex-radius-small);
}
.field-page-editor .choice-chips[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.field-page-editor .choice-chips button[b-alyvjbq13a]{min-height:50px;border-radius:var(--archex-radius-small);text-align:center}
.field-page-editor .spit-row[b-alyvjbq13a]{display:grid;grid-template-columns:1fr;gap:14px}
.field-page-editor .remove-spit[b-alyvjbq13a]{width:100%;height:50px}
.field-page-editor .photo-check[b-alyvjbq13a]{min-height:68px;padding:14px;border-radius:var(--archex-radius-small)}
.field-page-editor .sticky-actions[b-alyvjbq13a]{position:static;padding:0;border:0;background:transparent}
.field-page-editor .finish-card[b-alyvjbq13a]{margin-bottom:8px}

@media(min-width:431px){
  body:has(.field-page-editor)[b-alyvjbq13a]{background:#e9e5e0}
}

/* Build 1.1.0 — genuine phone workflow, not a compressed desktop form. */
.field-page-editor[b-alyvjbq13a],
.field-page-editor button[b-alyvjbq13a],
.field-page-editor input[b-alyvjbq13a],
.field-page-editor select[b-alyvjbq13a],
.field-page-editor textarea[b-alyvjbq13a]{
  font-family:var(--font-body);
}
.field-page-editor .field-header h1[b-alyvjbq13a],
.field-page-editor h2[b-alyvjbq13a],
.field-page-editor h3[b-alyvjbq13a],
.field-page-editor strong[b-alyvjbq13a],
.field-page-editor button[b-alyvjbq13a]{
  font-family:var(--font-heading);
}
.field-page-editor .field-header[b-alyvjbq13a]{
  padding:12px 16px;
}
.field-page-editor .field-header h1[b-alyvjbq13a]{
  font-size:1.08rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.field-page-editor .field-wizard-header[b-alyvjbq13a]{
  padding:12px 14px 11px;
  margin-bottom:8px;
}
.field-page-editor .field-card[b-alyvjbq13a]{
  padding:18px 16px;
  margin-bottom:8px;
}
.field-page-editor .field-section-title[b-alyvjbq13a]{
  margin-bottom:14px;
}
.field-page-editor .field-section-title h2[b-alyvjbq13a]{
  font-size:1.35rem;
  line-height:1.15;
}
.field-page-editor .phone-record-summary[b-alyvjbq13a]{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:18px;
}
.field-page-editor .phone-record-summary>div[b-alyvjbq13a]{
  padding:14px;
  border:1px solid var(--color-divider);
  border-radius:var(--archex-radius-small);
  background:var(--color-panel);
}
.field-page-editor .phone-record-summary span[b-alyvjbq13a],
.field-page-editor .gps-result-grid span[b-alyvjbq13a]{
  display:block;
  margin-bottom:5px;
  color:var(--color-gunmetal);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.field-page-editor .phone-record-summary strong[b-alyvjbq13a]{
  display:block;
  font-size:1rem;
  color:var(--color-charcoal);
}
.field-page-editor .phone-record-summary small[b-alyvjbq13a]{
  display:block;
  margin-top:3px;
  color:var(--color-gunmetal);
}
.field-page-editor .phone-primary-field input[b-alyvjbq13a]{
  font-size:1.15rem;
  font-weight:700;
}
.field-page-editor .gps-capture-button[b-alyvjbq13a]{
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  min-height:76px;
  padding:14px 16px;
  border:2px solid var(--color-primary);
  border-radius:var(--archex-radius-small);
  background:var(--color-panel);
  color:var(--color-charcoal);
  text-align:left;
}
.field-page-editor .gps-capture-button:active[b-alyvjbq13a]{
  background:var(--color-primary-light);
}
.field-page-editor .gps-capture-button:disabled[b-alyvjbq13a]{
  opacity:.7;
}
.field-page-editor .gps-capture-icon[b-alyvjbq13a]{
  display:grid;
  place-items:center;
  flex:0 0 46px;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--color-primary);
  color:#fff;
  font-size:1.65rem;
}
.field-page-editor .gps-capture-button strong[b-alyvjbq13a],
.field-page-editor .gps-capture-button small[b-alyvjbq13a]{
  display:block;
}
.field-page-editor .gps-capture-button strong[b-alyvjbq13a]{
  font-size:1rem;
}
.field-page-editor .gps-capture-button small[b-alyvjbq13a]{
  margin-top:4px;
  color:var(--color-gunmetal);
  font-size:.82rem;
  line-height:1.3;
}
.field-page-editor .gps-message[b-alyvjbq13a]{
  margin-top:10px;
  padding:11px 12px;
  border-radius:var(--archex-radius-small);
  font-size:.88rem;
  line-height:1.35;
}
.field-page-editor .gps-message.success[b-alyvjbq13a]{
  background:#eef5ef;
  color:#2e5d35;
}
.field-page-editor .gps-message.warning[b-alyvjbq13a]{
  background:#fff4df;
  color:#6d4a0f;
}
.field-page-editor .gps-result-grid[b-alyvjbq13a]{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.field-page-editor .gps-result-grid>div[b-alyvjbq13a]{
  padding:13px;
  border:1px solid var(--color-divider);
  border-radius:var(--archex-radius-small);
  background:var(--color-panel);
}
.field-page-editor .gps-result-grid .gps-accuracy[b-alyvjbq13a]{
  grid-column:1/-1;
}
.field-page-editor .gps-result-grid strong[b-alyvjbq13a]{
  display:block;
  font-size:1.02rem;
  color:var(--color-charcoal);
  overflow-wrap:anywhere;
}
.field-page-editor .gps-result-grid small[b-alyvjbq13a]{
  display:block;
  margin-top:5px;
  color:var(--color-gunmetal);
  line-height:1.35;
}
.field-page-editor .gps-result-grid .gps-accuracy.good[b-alyvjbq13a]{
  border-color:#93b39a;
  background:var(--color-panel);
}
.field-page-editor .gps-result-grid .gps-accuracy.limited[b-alyvjbq13a]{
  border-color:#e3c27e;
  background:var(--color-panel);
}
.field-page-editor .manual-location-entry[b-alyvjbq13a]{
  margin-top:14px;
  border-top:1px solid var(--color-divider);
  padding-top:12px;
}
.field-page-editor .manual-location-entry summary[b-alyvjbq13a]{
  cursor:pointer;
  color:var(--color-primary-dark);
  font-weight:800;
  font-size:.9rem;
}
.field-page-editor .manual-location-entry[open] summary[b-alyvjbq13a]{
  margin-bottom:16px;
}
.field-page-editor select[b-alyvjbq13a]{
  appearance:none;
  -webkit-appearance:none;
  padding-right:44px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231f1f1f' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 14px center!important;
  background-size:20px!important;
}
.field-page-editor .wizard-main-navigation[b-alyvjbq13a]{
  grid-template-columns:minmax(108px,.74fr) minmax(0,1.26fr);
}
@media(max-width:360px){
  .field-page-editor .phone-record-summary[b-alyvjbq13a],
  .field-page-editor .gps-result-grid[b-alyvjbq13a]{grid-template-columns:1fr}
  .field-page-editor .gps-result-grid .gps-accuracy[b-alyvjbq13a]{grid-column:auto}
}

/* Phone field-record photographs: camera or existing image only. */
.field-page-editor .phone-photo-card[b-alyvjbq13a]{display:flex;flex-direction:column;gap:14px;padding:16px}
.field-page-editor .phone-photo-heading[b-alyvjbq13a]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.field-page-editor .phone-photo-heading strong[b-alyvjbq13a]{display:block;font-family:var(--font-heading);font-size:1rem;color:var(--color-charcoal)}
.field-page-editor .phone-photo-heading small[b-alyvjbq13a]{display:block;margin-top:5px;color:var(--color-gunmetal);line-height:1.4}
.field-page-editor .photo-saved[b-alyvjbq13a]{flex:none;border-radius:999px;background:var(--color-primary-light);color:var(--color-primary-dark);padding:5px 9px;font-family:var(--font-body);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.field-page-editor .photo-preview[b-alyvjbq13a]{display:block;width:100%;max-height:260px;object-fit:cover;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-background)}
.field-page-editor .photo-action-grid[b-alyvjbq13a]{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field-page-editor .photo-capture-button[b-alyvjbq13a],.field-page-editor .photo-upload-button[b-alyvjbq13a]{display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px 12px;border-radius:var(--archex-radius-small);font-family:var(--font-heading);font-size:.9rem;font-weight:700;cursor:pointer;text-align:center}
.field-page-editor .photo-capture-button[b-alyvjbq13a]{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}
.field-page-editor .photo-capture-button:hover[b-alyvjbq13a]{background:var(--color-primary-dark)}
.field-page-editor .photo-upload-button[b-alyvjbq13a]{border:1px solid var(--color-gunmetal);background:#fff;color:var(--color-charcoal)}
.field-page-editor .photo-upload-button:hover[b-alyvjbq13a]{background:var(--color-panel)}
.field-page-editor[b-alyvjbq13a]  .photo-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.field-page-editor .phone-photo-card .direction[b-alyvjbq13a]{margin-top:0;max-width:none}
.field-page-editor .phone-photo-card .direction select[b-alyvjbq13a]{min-height:48px}
@media(max-width:420px){.field-page-editor .photo-action-grid[b-alyvjbq13a]{grid-template-columns:1fr}.field-page-editor .photo-capture-button[b-alyvjbq13a],.field-page-editor .photo-upload-button[b-alyvjbq13a]{min-height:54px}}
/* /Components/Pages/FieldTablet.razor.rz.scp.css */
.tablet-page[b-dololg6864]{padding:2rem;max-width:1600px;margin:0 auto;color:var(--color-charcoal)}.tablet-hero[b-dololg6864]{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;margin-bottom:1.5rem}.eyebrow[b-dololg6864]{margin:0 0 .35rem;font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--color-gunmetal)}.tablet-hero h1[b-dololg6864]{margin:0;font-size:var(--archex-text-2xl)}.tablet-hero p[b-dololg6864]{max-width:760px;color:var(--color-gunmetal)}.connection-card[b-dololg6864]{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;border-radius:var(--archex-radius-medium);background:#fff;border:1px solid var(--color-divider);min-width:210px}.connection-card div[b-dololg6864]{display:flex;flex-direction:column}.connection-card small[b-dololg6864]{color:var(--color-gunmetal)}.connection-dot[b-dololg6864]{width:12px;height:12px;border-radius:50%;background:#c9922e;box-shadow:0 0 0 5px rgba(201,146,46,.14)}.connection-card.online .connection-dot[b-dololg6864]{background:#398761;box-shadow:0 0 0 5px rgba(57,135,97,.14)}.tablet-metrics[b-dololg6864]{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.tablet-metrics article[b-dololg6864]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem}.tablet-metrics span[b-dololg6864],.tablet-metrics small[b-dololg6864]{display:block;color:var(--color-gunmetal)}.tablet-metrics strong[b-dololg6864]{display:block;font-size:1.8rem;margin:.2rem 0}.tablet-toolbar[b-dololg6864]{display:flex;align-items:end;justify-content:space-between;gap:1rem;background:var(--color-panel);border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem;margin-bottom:1rem}.tablet-toolbar label[b-dololg6864]{display:flex;flex-direction:column;gap:.35rem;min-width:360px}.tablet-toolbar label span[b-dololg6864],.field-grid label span[b-dololg6864],.full-field span[b-dololg6864]{font-size:.76rem;font-weight:800;color:var(--color-gunmetal);text-transform:uppercase;letter-spacing:.06em}.tablet-toolbar select[b-dololg6864],.field-grid input[b-dololg6864],.field-grid select[b-dololg6864],.full-field textarea[b-dololg6864]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:.7rem;background:#fff;color:#24332e}.toolbar-actions[b-dololg6864],.editor-actions[b-dololg6864]{display:flex;gap:.65rem;flex-wrap:wrap}.primary-button[b-dololg6864],.secondary-button[b-dololg6864],.danger-button[b-dololg6864],.sync-button[b-dololg6864],.location-button[b-dololg6864]{border:0;border-radius:var(--archex-radius-small);padding:.72rem 1rem;font-weight:750;cursor:pointer}.primary-button[b-dololg6864],.sync-button[b-dololg6864]{background:var(--color-primary);color:#fff}.secondary-button[b-dololg6864],.location-button[b-dololg6864]{background:var(--color-panel);color:var(--color-charcoal)}.danger-button[b-dololg6864]{background:#f7e8e5;color:#8d382d}.primary-button:disabled[b-dololg6864],.sync-button:disabled[b-dololg6864]{opacity:.45;cursor:not-allowed}.tablet-workspace[b-dololg6864]{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(520px,1.1fr);gap:1rem;align-items:start}.queue-panel[b-dololg6864],.editor-panel[b-dololg6864]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);overflow:hidden}.panel-heading[b-dololg6864]{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.2rem;border-bottom:1px solid var(--color-divider)}.panel-heading h2[b-dololg6864]{margin:0;font-size:1.25rem}.draft-list[b-dololg6864]{padding:.65rem;display:grid;gap:.55rem;max-height:720px;overflow:auto}.draft-card[b-dololg6864]{width:100%;text-align:left;background:var(--color-panel);border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:.9rem;cursor:pointer;color:inherit}.draft-card.selected[b-dololg6864]{border-color:#3f7564;box-shadow:0 0 0 2px rgba(63,117,100,.12)}.draft-title[b-dololg6864]{display:flex;justify-content:space-between;gap:1rem}.draft-card p[b-dololg6864]{margin:.3rem 0;color:var(--color-gunmetal)}.draft-meta[b-dololg6864]{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.76rem;color:var(--color-gunmetal)}.draft-status[b-dololg6864]{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;border-radius:99px;padding:.25rem .55rem}.draft-status.ready[b-dololg6864]{background:#dff1e7;color:#276745}.draft-status.saved[b-dololg6864]{background:#e7eef5;color:#315b7b}.draft-status.attention[b-dololg6864]{background:#fff0d5;color:#835b16}.editor-empty[b-dololg6864]{text-align:center;padding:4rem 2rem;color:var(--color-gunmetal)}.empty-state span[b-dololg6864],.editor-empty span[b-dololg6864]{font-size:2.5rem}.editor-panel[b-dololg6864]{padding-bottom:1rem}.editor-panel>.panel-heading[b-dololg6864]{margin-bottom:1rem}.local-badge[b-dololg6864]{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;background:#eee9db;color:#6c5a2b;border-radius:99px;padding:.35rem .65rem}.field-grid[b-dololg6864]{display:grid;gap:.8rem;padding:0 1.2rem}.field-grid.two[b-dololg6864]{grid-template-columns:repeat(2,1fr)}.field-grid.three[b-dololg6864]{grid-template-columns:repeat(3,1fr)}.field-grid label[b-dololg6864],.full-field[b-dololg6864]{display:flex;flex-direction:column;gap:.35rem}.section-heading[b-dololg6864]{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.2rem .65rem}.section-heading div[b-dololg6864]{display:flex;flex-direction:column}.section-heading small[b-dololg6864]{color:var(--color-gunmetal)}.full-field[b-dololg6864]{padding:1rem 1.2rem}.photo-row[b-dololg6864]{display:flex;gap:1rem;padding:0 1.2rem 1rem;flex-wrap:wrap}.photo-row label[b-dololg6864]{display:flex;gap:.45rem;align-items:center;background:var(--color-panel);padding:.6rem .75rem;border-radius:var(--archex-radius-small)}.readiness-box[b-dololg6864]{margin:0 1.2rem 1rem;background:var(--color-panel);border-radius:var(--archex-radius-medium);padding:.9rem}.readiness-box>div:first-child[b-dololg6864]{display:flex;justify-content:space-between;gap:1rem}.readiness-box small[b-dololg6864]{color:var(--color-gunmetal)}.readiness-track[b-dololg6864]{height:8px;background:#dfe7e2;border-radius:99px;margin-top:.7rem;overflow:hidden}.readiness-track span[b-dololg6864]{display:block;height:100%;background:#3e7965}.editor-actions[b-dololg6864]{justify-content:flex-end;padding:0 1.2rem}.offline-note[b-dololg6864]{margin-top:1rem;background:var(--color-panel);border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem 1.2rem}.offline-note p[b-dololg6864]{margin:.3rem 0 0;color:#6b604a}@media(max-width:1300px){.tablet-workspace[b-dololg6864]{grid-template-columns:1fr}.tablet-metrics[b-dololg6864]{grid-template-columns:repeat(2,1fr)}.tablet-toolbar[b-dololg6864]{align-items:stretch;flex-direction:column}.tablet-toolbar label[b-dololg6864]{min-width:0}}@media(max-width:700px){.tablet-page[b-dololg6864]{padding:1rem}.tablet-hero[b-dololg6864]{flex-direction:column}.tablet-metrics[b-dololg6864]{grid-template-columns:1fr 1fr}.field-grid.two[b-dololg6864],.field-grid.three[b-dololg6864]{grid-template-columns:1fr}.toolbar-actions[b-dololg6864],.editor-actions[b-dololg6864]{flex-direction:column}.toolbar-actions button[b-dololg6864],.editor-actions button[b-dololg6864]{width:100%}}
.tablet-metrics[b-dololg6864]{grid-template-columns:repeat(5,1fr)}.photo-capture-grid[b-dololg6864]{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:0 1.2rem 1rem}.photo-capture-card[b-dololg6864]{border:1px solid var(--color-divider);background:var(--color-panel);border-radius:var(--archex-radius-medium);padding:.85rem;display:flex;flex-direction:column;gap:.75rem}.photo-capture-card>div:first-child[b-dololg6864]{display:flex;flex-direction:column}.photo-capture-card small[b-dololg6864]{color:var(--color-gunmetal)}.photo-input[b-dololg6864]{position:absolute;left:-10000px;width:1px;height:-3px;opacity:0}.photo-actions[b-dololg6864]{display:flex;gap:.5rem;align-items:center}.photo-button[b-dololg6864],.photo-remove[b-dololg6864]{border:0;border-radius:var(--archex-radius-small);padding:.58rem .72rem;font-weight:750;cursor:pointer}.photo-button[b-dololg6864]{background:color-mix(in srgb, var(--color-primary) 8%, white);color:var(--color-primary-dark);flex:1;text-align:center}.photo-remove[b-dololg6864]{background:#f6e6e2;color:#87392f}@media(max-width:1100px){.tablet-metrics[b-dololg6864]{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.tablet-metrics[b-dololg6864]{grid-template-columns:1fr 1fr}.photo-capture-grid[b-dololg6864]{grid-template-columns:1fr}}

/* WHY THE BREAKPOINT IS 1300px AND NOT 1100px (21 September 2026). The two columns are
   minmax(420px,.9fr) and minmax(520px,1.1fr): with the 1rem gap they cannot be drawn in less than
   956px. This page's chrome takes a little over 300px, so the container only reaches 956px at
   about a 1264px viewport — while the collapse to a single column stopped at 1100px. Every width
   in between drew a grid wider than its container and the page scrolled sideways, measured at
   1200px as 50px of overflow. Sweeps at 375, 820 and 1400px had all missed the band. */
/* /Components/Pages/FigureGenerator.razor.rz.scp.css */
.figure-page[b-3jbrz8f0aw]{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.figure-header[b-3jbrz8f0aw]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.figure-header h1[b-3jbrz8f0aw]{margin:.15rem 0;font-size:2rem}.figure-header p[b-3jbrz8f0aw]{margin:.25rem 0;color:var(--color-gunmetal)}.eyebrow[b-3jbrz8f0aw]{font-size:.7rem;letter-spacing:.12em;font-weight:800;color:#8b6c31}.header-actions[b-3jbrz8f0aw]{display:flex;gap:.55rem;flex-wrap:wrap}.primary-button[b-3jbrz8f0aw],.secondary-button[b-3jbrz8f0aw]{border-radius:var(--archex-radius-small);padding:.72rem 1rem;font-weight:700;cursor:pointer}.primary-button[b-3jbrz8f0aw]{background:var(--color-primary);color:white;border:1px solid var(--color-primary)}.secondary-button[b-3jbrz8f0aw]{background:white;color:var(--color-charcoal);border:1px solid var(--color-divider)}.primary-button:disabled[b-3jbrz8f0aw],.secondary-button:disabled[b-3jbrz8f0aw]{opacity:.45;cursor:not-allowed}.figure-metrics[b-3jbrz8f0aw]{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.figure-metrics article[b-3jbrz8f0aw]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem}.figure-metrics span[b-3jbrz8f0aw],.figure-metrics small[b-3jbrz8f0aw]{display:block;color:var(--color-gunmetal)}.figure-metrics strong[b-3jbrz8f0aw]{display:block;font-size:1.45rem;margin:.2rem 0}.figure-workbench[b-3jbrz8f0aw]{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1rem;align-items:start}.figure-controls[b-3jbrz8f0aw]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem;display:grid;gap:.85rem;position:sticky;top:1rem}.panel-heading[b-3jbrz8f0aw]{border-bottom:1px solid var(--color-divider);padding-bottom:.75rem}.panel-heading h2[b-3jbrz8f0aw]{margin:.15rem 0}.figure-controls label[b-3jbrz8f0aw]{display:grid;gap:.35rem;font-size:.78rem;font-weight:700;color:var(--color-gunmetal)}.figure-controls input[b-3jbrz8f0aw],.figure-controls select[b-3jbrz8f0aw]{width:100%;box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:.62rem;background:#fff}.control-group[b-3jbrz8f0aw]{display:grid;gap:.5rem;border-top:1px solid var(--color-divider);padding-top:.8rem}.control-group h3[b-3jbrz8f0aw]{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.check-row[b-3jbrz8f0aw]{display:flex!important;align-items:center;gap:.55rem!important;font-size:.83rem!important;font-weight:600!important}.check-row input[b-3jbrz8f0aw]{width:auto}.check-row small[b-3jbrz8f0aw]{margin-left:.3rem;color:var(--color-gunmetal)}.mini-symbol[b-3jbrz8f0aw]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px;border-radius:5px;color:#fff;font-size:.62rem}.mini-symbol.standard[b-3jbrz8f0aw]{background:#426b58}.mini-symbol.mechanical[b-3jbrz8f0aw]{background:#477080}.mini-symbol.salvage[b-3jbrz8f0aw]{background:#9b5a42}.mini-symbol.surface[b-3jbrz8f0aw]{background:#b58b2a}.mini-symbol.other[b-3jbrz8f0aw]{background:#6c6574}.range-control strong[b-3jbrz8f0aw]{float:right}.figure-preview-wrap[b-3jbrz8f0aw]{min-width:0}.figure-empty[b-3jbrz8f0aw]{min-height:480px;background:#fff;border:1px dashed var(--color-divider);border-radius:var(--archex-radius-medium);display:grid;place-content:center;text-align:center;gap:.35rem;color:var(--color-gunmetal)}.figure-empty strong[b-3jbrz8f0aw]{font-size:1.1rem;color:#31443a}.report-sheet[b-3jbrz8f0aw]{background:#fff;border:1px solid var(--color-divider);border-radius:4px;box-shadow:var(--archex-shadow-hover);padding:24px;max-width:1120px;margin:auto}.sheet-title[b-3jbrz8f0aw]{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:4px solid #273e33;padding:0 0 15px;margin-bottom:16px}.sheet-title span[b-3jbrz8f0aw]{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:#7c6a3d}.sheet-title h2[b-3jbrz8f0aw]{margin:.25rem 0;font-size:1.65rem}.sheet-title p[b-3jbrz8f0aw]{margin:0;color:var(--color-gunmetal)}.sheet-brand[b-3jbrz8f0aw]{font-weight:900;font-size:1.5rem;letter-spacing:.08em}.sheet-brand span[b-3jbrz8f0aw]{color:#9d6d2e;font-size:inherit;letter-spacing:inherit}.map-stage[b-3jbrz8f0aw]{border:1px solid var(--color-divider);background:#f5f3eb}.map-stage svg[b-3jbrz8f0aw]{display:block;width:100%;height:auto}.sheet-footer[b-3jbrz8f0aw]{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1rem;border-top:1px solid var(--color-divider);margin-top:15px;padding-top:12px}.sheet-footer strong[b-3jbrz8f0aw],.sheet-footer span[b-3jbrz8f0aw]{display:block}.sheet-footer strong[b-3jbrz8f0aw]{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.sheet-footer span[b-3jbrz8f0aw]{font-size:.82rem;color:var(--color-gunmetal);margin-top:.2rem}.source-note[b-3jbrz8f0aw]{font-size:.7rem;color:var(--color-gunmetal);margin:.8rem 0 0}.figure-controls .range-control[b-3jbrz8f0aw]{display:block}@media(max-width:1100px){.figure-workbench[b-3jbrz8f0aw]{grid-template-columns:1fr}.figure-controls[b-3jbrz8f0aw]{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.figure-controls .panel-heading[b-3jbrz8f0aw],.control-group[b-3jbrz8f0aw]{grid-column:1/-1}}@media(max-width:720px){.figure-header[b-3jbrz8f0aw]{display:grid}.figure-metrics[b-3jbrz8f0aw]{grid-template-columns:repeat(2,1fr)}.figure-controls[b-3jbrz8f0aw]{grid-template-columns:1fr}.figure-controls .panel-heading[b-3jbrz8f0aw],.control-group[b-3jbrz8f0aw]{grid-column:auto}.sheet-footer[b-3jbrz8f0aw]{grid-template-columns:1fr}.report-sheet[b-3jbrz8f0aw]{padding:12px}}@media print{.no-print[b-3jbrz8f0aw],.navigation[b-3jbrz8f0aw],.top-row[b-3jbrz8f0aw]{display:none!important}.content[b-3jbrz8f0aw]{padding:0!important}.report-sheet[b-3jbrz8f0aw]{box-shadow:none;border:0;max-width:none;padding:0}.figure-workbench[b-3jbrz8f0aw]{display:block}.figure-page[b-3jbrz8f0aw]{display:block}.map-stage[b-3jbrz8f0aw]{break-inside:avoid}.sheet-title[b-3jbrz8f0aw]{margin-top:0}@page{size:A4 landscape;margin:10mm}}
/* /Components/Pages/FinalDetermination.razor.rz.scp.css */
/* WR-66 — the final CHMP requirement determination.

   Two things carry the visual weight, and both are about stopping a misreading.

   First, PROVENANCE. Every claim on this page is badged with where it came from,
   because a fact a person typed, an observation a State service returned, a
   conclusion a rule reached and a judgement a Heritage Advisor made are four
   different kinds of thing that a plain list makes look identical. The badges are
   deliberately not decorative: they are the difference between evidence and
   assertion, and an AI suggestion is coloured so it cannot be mistaken for either.

   Second, WHAT IS NOT SETTLED. An outstanding provision is not a footnote — it is
   the reason the determination cannot be approved — so blockers are styled to be
   read first and a blocking row in the register is marked in the table rather than
   left to look like every other row.

   ::deep is needed wherever the markup comes from a child component
   (AxOperatingHeader): scoped CSS only stamps this component's own elements. */

.final-determination .determination-map[b-9m8dgshcny] {
    height: 420px;
    border-radius:var(--archex-radius-small);
    overflow: hidden;
    border: 1px solid #e2d9cd;
    margin: 12px 0 8px;
    background: #f4f1ec;
}

.final-determination .map-key[b-9m8dgshcny] {
    font-size: .8rem;
    color: var(--color-gunmetal);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.final-determination .key[b-9m8dgshcny] {
    display: inline-block;
    width: 18px;
    height: 12px;
    border-radius: 2px;
    margin-left: 10px;
}

/* Matched to archex-activity-area-map.js exactly. The acceptance statement says
   "the activity area shown in red" and that has to stay true on every surface. */
.final-determination .key-activity[b-9m8dgshcny] {
    background: rgba(217, 43, 43, .35);
    border: 2px solid #c01c1c;
    margin-left: 0;
}

.final-determination .key-sensitivity[b-9m8dgshcny] {
    background: rgba(29, 95, 168, .22);
    border: 1.5px solid #1d5fa8;
}

/* ---- Provenance ------------------------------------------------------- */

.final-determination .provenance-legend[b-9m8dgshcny] { border-left: 5px solid #7a6a55; }

.final-determination .legend-row[b-9m8dgshcny] {
    list-style: none;
    padding: 0;
    margin: 10px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    font-size: .85rem;
    color: #4a4238;
}

.final-determination .legend-row li[b-9m8dgshcny] {
    display: flex;
    align-items: center;
    gap: 7px;
}

.final-determination .legend-note[b-9m8dgshcny] {
    font-size: .85rem;
    color: #4a4238;
    margin: 12px 0 0;
    line-height: 1.6;
}

.final-determination .prov[b-9m8dgshcny] {
    display: inline-block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 3px;
    white-space: nowrap;
}

.final-determination .prov-staff[b-9m8dgshcny] { background: #e8eef6; color: #2c4a72; }
.final-determination .prov-provider[b-9m8dgshcny] { background: #e6f1e9; color: #245c36; }
.final-determination .prov-rule[b-9m8dgshcny] { background: #efe9f6; color: #4a3070; }
.final-determination .prov-advisor[b-9m8dgshcny] { background: #f6ecdf; color: #7a4b12; }

/* AI is styled as a caution, not a credential. It is the one badge on this page
   that means "not yet evidence". */
.final-determination .prov-ai[b-9m8dgshcny] {
    background: #fdf0d5;
    color: #7a5710;
    border: 1px dashed #c8862a;
}

/* ---- The outcome ------------------------------------------------------ */

.final-determination .outcome-head[b-9m8dgshcny] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.final-determination .outcome-head .ax-h2[b-9m8dgshcny] { margin: 0; }

.final-determination .outcome-label[b-9m8dgshcny] {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 10px 0 6px;
    color: #2f2a24;
}

.final-determination .outcome-card[b-9m8dgshcny] { border-left: 5px solid #9a9086; }

.final-determination .outcome-mandatorychmprequired[b-9m8dgshcny] {
    border-left-color: #c01c1c;
    background: var(--color-surface);
}

.final-determination .outcome-notmandatoryonrecordedevidence[b-9m8dgshcny] {
    border-left-color: #2f7d47;
    background: var(--color-surface);
}

/* Unable to determine is styled as a caution and never as a pass. It is the
   outcome most likely to be read as "no plan needed", and it is not that. */
.final-determination .outcome-unabletodetermine[b-9m8dgshcny] {
    border-left-color: #c8862a;
    background: #fffaf1;
}

.final-determination .deciding[b-9m8dgshcny],
.final-determination .version-line[b-9m8dgshcny] {
    font-size: .82rem;
    color: var(--color-gunmetal);
    margin: 8px 0 0;
}

.final-determination .blockers[b-9m8dgshcny] {
    margin: 14px 0 0;
    padding: 12px 14px;
    background: var(--color-panel);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
}

.final-determination .blockers .ax-h3[b-9m8dgshcny] { margin: 0 0 8px; font-size: .92rem; }

.final-determination .blockers ul[b-9m8dgshcny] {
    margin: 0;
    padding-left: 18px;
    font-size: .87rem;
    line-height: 1.6;
    color: #4a4238;
}

/* ---- Facts and limbs -------------------------------------------------- */

.final-determination .fact-grid[b-9m8dgshcny] {
    display: grid;
    grid-template-columns: minmax(150px, 260px) 1fr;
    gap: 6px 18px;
    margin: 12px 0 0;
    font-size: .9rem;
}

.final-determination .fact-grid.compact[b-9m8dgshcny] { font-size: .84rem; margin-top: 8px; }
.final-determination .fact-grid dt[b-9m8dgshcny] { color: var(--color-gunmetal); font-weight: 600; }
.final-determination .fact-grid dd[b-9m8dgshcny] { margin: 0; }

.final-determination code[b-9m8dgshcny] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .76rem;
    word-break: break-all;
    color: #4a4238;
}

.final-determination .hint[b-9m8dgshcny] {
    font-size: .84rem;
    color: var(--color-gunmetal);
    line-height: 1.6;
    margin: 6px 0 0;
}

.final-determination .limb[b-9m8dgshcny] {
    border-top: 1px solid var(--color-divider);
    padding: 14px 0 4px;
}

.final-determination .limb-head[b-9m8dgshcny] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}

.final-determination .limb-head .ax-h3[b-9m8dgshcny] { margin: 0; font-size: .95rem; }

.final-determination .limb-answer[b-9m8dgshcny] {
    font-weight: 700;
    font-size: .85rem;
    color: #2f2a24;
}

/* An unresolved limb is marked. Left plain it reads as "nothing to see here",
   which is the opposite of what it means. */
.final-determination .limb-unresolved .limb-answer[b-9m8dgshcny] { color: var(--color-primary-dark); }
.final-determination .limb-unresolved[b-9m8dgshcny] { background: #fffaf1; }

.final-determination .limb p[b-9m8dgshcny] {
    font-size: .88rem;
    line-height: 1.6;
    margin: 8px 0 0;
    color: #4a4238;
}

.final-determination .evidence[b-9m8dgshcny] {
    font-size: .8rem;
    color: var(--color-gunmetal);
}

/* ---- The register ----------------------------------------------------- */

.final-determination .register[b-9m8dgshcny] { width: 100%; font-size: .85rem; }
.final-determination .register td[b-9m8dgshcny] { vertical-align: top; }
.final-determination .muted[b-9m8dgshcny] { color: var(--color-gunmetal); font-size: .8rem; }

.final-determination .register tr.blocking[b-9m8dgshcny] {
    background: var(--color-panel);
}

.final-determination .register tr.blocking td:first-child[b-9m8dgshcny] {
    box-shadow: inset 3px 0 0 #c01c1c;
}

.final-determination .resolve-card[b-9m8dgshcny] { border-left: 5px solid #c8862a; }

/* ---- Ground disturbance ----------------------------------------------- */

.final-determination .claim[b-9m8dgshcny] {
    border-top: 1px solid var(--color-divider);
    padding: 14px 0 6px;
}

/* A superseded claim is dimmed but never hidden: a claim that was made and
   rejected is part of how this determination was reached. */
.final-determination .claim-superseded[b-9m8dgshcny] {
    opacity: .62;
    border-left: 3px solid var(--color-divider);
    padding-left: 12px;
}

.final-determination .decide-row[b-9m8dgshcny] {
    display: grid;
    gap: 8px;
    margin: 12px 0 0;
    max-width: 640px;
}

/* ---- Approval ---------------------------------------------------------- */

.final-determination .approval-card[b-9m8dgshcny] { border-left: 5px solid #7a4b12; }
.final-determination .approved-card[b-9m8dgshcny] { border-left: 5px solid #2f7d47; }

.final-determination .declaration-intro[b-9m8dgshcny] {
    font-weight: 600;
    margin: 14px 0 6px;
    font-size: .9rem;
}

.final-determination .declaration[b-9m8dgshcny] {
    margin: 0;
    padding: 14px 16px;
    background: var(--color-panel);
    border-left: 3px solid #7a6a55;
    border-radius: 0 8px 8px 0;
    font-size: .88rem;
    line-height: 1.7;
    color: #3a342c;
}

.final-determination .ax-checkbox[b-9m8dgshcny] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 14px 0 0;
    font-size: .9rem;
    cursor: pointer;
}

.final-determination .ax-checkbox input[b-9m8dgshcny] { margin-top: 3px; }

.final-determination .button-row[b-9m8dgshcny] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 16px 0 0;
}

.final-determination .banner.inline[b-9m8dgshcny] {
    margin: 12px 0;
    padding: 12px 14px;
    border-radius:var(--archex-radius-small);
}

.final-determination .ax-label[b-9m8dgshcny] {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: #4a4238;
    margin: 14px 0 5px;
}

.final-determination .overlay-list[b-9m8dgshcny] {
    margin: 10px 0 0;
    padding-left: 18px;
    font-size: .87rem;
    line-height: 1.7;
    color: #4a4238;
}

.final-determination tr.current[b-9m8dgshcny] { background: var(--color-panel); font-weight: 600; }

.final-determination .hint.inline[b-9m8dgshcny] { display: inline-block; max-width: 62ch; margin: 0; }

.final-determination .obs[b-9m8dgshcny] { font-size: .8rem; }
.final-determination .obs-positive[b-9m8dgshcny] { color: var(--color-primary-dark); font-weight: 600; }
.final-determination .obs-nil[b-9m8dgshcny] { color: #7a5710; }
.final-determination .obs-failed[b-9m8dgshcny],
.final-determination .obs-incomplete[b-9m8dgshcny] { color: var(--color-primary-dark); font-weight: 600; }
.final-determination .obs-nodatasetheld[b-9m8dgshcny] { color: var(--color-gunmetal); font-style: italic; }

.final-determination .established[b-9m8dgshcny] {
    font-size: .86rem;
    margin: 8px 0 0;
    padding: 7px 11px;
    background: #f4f1ec;
    border-left: 3px solid #7a6a55;
    border-radius: 0 5px 5px 0;
}
/* /Components/Pages/FinanceCentre.razor.rz.scp.css */
.finance-page[b-wvhwx5g7yl]{display:flex;flex-direction:column;gap:1.25rem}.finance-header[b-wvhwx5g7yl]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.finance-header h1[b-wvhwx5g7yl]{margin:.2rem 0}.finance-header p[b-wvhwx5g7yl]{margin:.2rem 0;color:var(--text-muted,var(--color-gunmetal))}.eyebrow[b-wvhwx5g7yl]{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:var(--text-muted,var(--color-gunmetal))}.summary-grid[b-wvhwx5g7yl]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.summary-grid article[b-wvhwx5g7yl],.finance-card[b-wvhwx5g7yl]{background:var(--surface,#fff);border:1px solid var(--border,var(--color-divider));border-radius:var(--archex-radius-medium);padding:1rem}.summary-grid article[b-wvhwx5g7yl]{display:flex;flex-direction:column;gap:.25rem}.summary-grid span[b-wvhwx5g7yl]{font-size:.8rem;color:var(--text-muted,var(--color-gunmetal))}.summary-grid strong[b-wvhwx5g7yl]{font-size:1.55rem}.summary-grid small[b-wvhwx5g7yl]{color:var(--text-muted,var(--color-gunmetal))}.summary-grid .warning[b-wvhwx5g7yl]{border-color:#d59a36}.summary-grid .attention[b-wvhwx5g7yl]{border-style:dashed}.finance-grid[b-wvhwx5g7yl]{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:1rem}.section-heading[b-wvhwx5g7yl]{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.section-heading h2[b-wvhwx5g7yl]{margin:.15rem 0}.toolbar[b-wvhwx5g7yl]{display:grid;grid-template-columns:1fr 210px;gap:.75rem;margin-bottom:1rem}.toolbar input[b-wvhwx5g7yl],.toolbar select[b-wvhwx5g7yl]{width:100%;padding:.72rem .8rem;border:1px solid var(--border,var(--color-divider));border-radius:var(--archex-radius-small);background:var(--surface,#fff)}.project-list[b-wvhwx5g7yl]{display:flex;flex-direction:column;gap:.65rem}.project-row[b-wvhwx5g7yl]{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(130px,.6fr) minmax(180px,.85fr) auto;gap:1rem;align-items:center;border:1px solid var(--border,var(--color-divider));border-radius:var(--archex-radius-small);padding:.85rem}.project-identity[b-wvhwx5g7yl],.project-status[b-wvhwx5g7yl],.readiness[b-wvhwx5g7yl]{display:flex;flex-direction:column;gap:.2rem}.project-identity small[b-wvhwx5g7yl],.project-status small[b-wvhwx5g7yl]{color:var(--text-muted,var(--color-gunmetal))}.status-pill[b-wvhwx5g7yl],.ready[b-wvhwx5g7yl],.issue[b-wvhwx5g7yl]{display:inline-flex;width:max-content;border-radius:999px;padding:.2rem .5rem;font-size:.72rem;font-weight:700}.status-pill[b-wvhwx5g7yl]{background:var(--surface-muted,#eef1f4)}.ready[b-wvhwx5g7yl]{background:#e6f4ea;color:#27633a}.issue[b-wvhwx5g7yl]{background:#fff1db;color:#805312}.primary-button[b-wvhwx5g7yl]{border:0;border-radius:var(--archex-radius-small);padding:.7rem .95rem;font-weight:700;cursor:pointer}.primary-button.compact[b-wvhwx5g7yl]{padding:.55rem .75rem}.guidance-card>p[b-wvhwx5g7yl]{color:var(--text-muted,var(--color-gunmetal));line-height:1.55}.control-list[b-wvhwx5g7yl]{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.control-list div[b-wvhwx5g7yl]{display:flex;flex-direction:column;border-bottom:1px solid var(--border,var(--color-divider));padding-bottom:.7rem}.control-list span[b-wvhwx5g7yl]{font-size:.85rem;color:var(--text-muted,var(--color-gunmetal))}.notice[b-wvhwx5g7yl]{border:1px dashed var(--border,var(--color-divider));border-radius:var(--archex-radius-small);padding:.85rem}.notice p[b-wvhwx5g7yl]{margin:.35rem 0 0;color:var(--text-muted,var(--color-gunmetal))}@media(max-width:1100px){.summary-grid[b-wvhwx5g7yl]{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-grid[b-wvhwx5g7yl]{grid-template-columns:1fr}.project-row[b-wvhwx5g7yl]{grid-template-columns:1fr 1fr}.project-row button[b-wvhwx5g7yl]{justify-self:start}}@media(max-width:700px){.finance-header[b-wvhwx5g7yl]{flex-direction:column}.summary-grid[b-wvhwx5g7yl],.toolbar[b-wvhwx5g7yl],.project-row[b-wvhwx5g7yl]{grid-template-columns:1fr}}
/* /Components/Pages/InstallArchEx.razor.rz.scp.css */
/* Tokens only. */

.install-lead[b-3p3s276snh] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-5, 32px);
    align-items: start;
}

.install-mark img[b-3p3s276snh] {
    display: block;
    width: 104px;
    height: 104px;
    /* The same squircle the launcher tiles use, so the icon is shown as it will actually appear. */
    border-radius:var(--archex-radius-large);
    box-shadow:var(--archex-shadow);
}

.install-lead p[b-3p3s276snh] {
    margin: 0 0 12px;
    color: var(--color-gunmetal);
    line-height: 1.6;
    max-width: 62ch;
}

.install-caveat[b-3p3s276snh] {
    padding-left: 14px;
    border-left: 3px solid var(--color-primary);
}

.install-grid[b-3p3s276snh] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-4, 24px);
    margin-top: var(--space-4, 24px);
}

.install-note[b-3p3s276snh] {
    margin: 0 0 var(--space-3, 16px);
    color: var(--archex-faint, var(--color-gunmetal));
    font-size: var(--archex-text-sm, 13.5px);
}

.install-steps[b-3p3s276snh] {
    margin: 0 0 var(--space-3, 16px);
    padding-left: 22px;
    color: var(--color-charcoal);
    line-height: 1.65;
}

.install-steps li[b-3p3s276snh] { margin-bottom: 10px; }
.install-steps strong[b-3p3s276snh] { font-weight: 800; }

.install-result[b-3p3s276snh] {
    margin: 0;
    padding: 10px 14px;
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
}

.install-address[b-3p3s276snh] { margin-top: var(--space-4, 24px); }

.install-url[b-3p3s276snh] {
    margin: 0 0 var(--space-3, 16px);
    padding: 14px 18px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    color: var(--color-charcoal);
    /* Monospaced and selectable: this is meant to be read off one screen and typed into another,
       and a proportional font makes l, 1 and I the same shape. */
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: var(--archex-text-md, 17px);
    font-weight: 700;
    user-select: all;
    word-break: break-all;
}

@media (max-width: 680px) {
    .install-lead[b-3p3s276snh] { grid-template-columns: 1fr; }
}
/* /Components/Pages/IntegrationsCentre.razor.rz.scp.css */
.integrations-page[b-afmjmkci5s]{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;padding:1.5rem;max-width:1500px;margin:0 auto}.integrations-hero[b-afmjmkci5s],.detail-panel[b-afmjmkci5s],.exchange-panel[b-afmjmkci5s],.project-panel[b-afmjmkci5s]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);padding:1.5rem}.integrations-hero[b-afmjmkci5s]{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start}.eyebrow[b-afmjmkci5s],.section-kicker[b-afmjmkci5s],.connector-type[b-afmjmkci5s]{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--color-gunmetal)}.integrations-hero h1[b-afmjmkci5s]{margin:.3rem 0 .5rem;font-size:2rem}.intro[b-afmjmkci5s]{max-width:760px;margin:0;color:#52606b}.hero-actions[b-afmjmkci5s],.connector-actions[b-afmjmkci5s],.project-actions[b-afmjmkci5s]{display:flex;gap:.65rem;align-items:center}button[b-afmjmkci5s]{border:0;border-radius:var(--archex-radius-small);background:var(--color-primary);color:#fff;padding:.72rem 1rem;font-weight:700;cursor:pointer}button.secondary[b-afmjmkci5s],button.quiet[b-afmjmkci5s]{background:var(--color-panel);color:var(--color-charcoal)}button:disabled[b-afmjmkci5s]{opacity:.45;cursor:not-allowed}.summary-grid[b-afmjmkci5s]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.summary-card[b-afmjmkci5s]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1.1rem;display:grid;gap:.3rem}.summary-card span[b-afmjmkci5s]{font-size:.78rem;font-weight:800;text-transform:uppercase;color:var(--color-gunmetal)}.summary-card strong[b-afmjmkci5s]{font-size:2rem}.summary-card small[b-afmjmkci5s]{color:var(--color-gunmetal)}.summary-card.ready[b-afmjmkci5s]{border-top:4px solid #2e7d5b}.summary-card.attention[b-afmjmkci5s]{border-top:4px solid #c68a26}.integration-grid[b-afmjmkci5s]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.integration-card[b-afmjmkci5s]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1.25rem;display:grid;gap:1rem}.connector-heading[b-afmjmkci5s]{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center}.connector-icon[b-afmjmkci5s]{width:46px;height:46px;border-radius:var(--archex-radius-medium);background:var(--color-primary);color:#fff;display:grid;place-items:center;font-weight:900;font-size:.8rem}.connector-heading h2[b-afmjmkci5s]{margin:.15rem 0 0;font-size:1.15rem}.status-pill[b-afmjmkci5s],.mapping-pill[b-afmjmkci5s]{border-radius:999px;padding:.35rem .65rem;font-size:.72rem;font-weight:800}.status-pill.ready[b-afmjmkci5s]{background:#e5f4ec;color:#236446}.status-pill.manual[b-afmjmkci5s]{background:#fff1d8;color:#81570c}.status-pill.planned[b-afmjmkci5s],.mapping-pill[b-afmjmkci5s]{background:#eef1f4;color:var(--color-gunmetal)}.integration-card>p[b-afmjmkci5s]{margin:0;color:#52606b}.integration-card dl[b-afmjmkci5s]{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:0}.integration-card dl div[b-afmjmkci5s]{background:var(--color-panel);border-radius:var(--archex-radius-small);padding:.7rem}.integration-card dt[b-afmjmkci5s]{font-size:.68rem;text-transform:uppercase;color:var(--color-gunmetal);font-weight:800}.integration-card dd[b-afmjmkci5s]{margin:.3rem 0 0;font-weight:700;font-size:.86rem}.connector-actions[b-afmjmkci5s]{justify-content:flex-end}.detail-panel[b-afmjmkci5s]{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem;align-items:start}.detail-panel h2[b-afmjmkci5s],.section-heading h2[b-afmjmkci5s]{margin:.25rem 0}.detail-panel p[b-afmjmkci5s],.section-heading p[b-afmjmkci5s]{margin:.3rem 0 0;color:#52606b}.detail-checklist[b-afmjmkci5s]{display:grid;gap:.65rem}.detail-checklist div[b-afmjmkci5s]{display:flex;gap:.6rem;background:var(--color-panel);border-radius:var(--archex-radius-small);padding:.75rem;font-weight:650}.detail-checklist span[b-afmjmkci5s]{color:#2e7d5b}.section-heading[b-afmjmkci5s]{display:flex;justify-content:space-between;gap:1rem;align-items:end}.exchange-grid[b-afmjmkci5s]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1.1rem}.exchange-grid button[b-afmjmkci5s]{text-align:left;background:var(--color-panel);color:var(--color-charcoal);border:1px solid var(--color-divider);display:grid;gap:.35rem}.exchange-grid button span[b-afmjmkci5s]{font-weight:500;color:#52606b}.search-field[b-afmjmkci5s]{display:grid;gap:.3rem;font-size:.75rem;font-weight:800;color:var(--color-gunmetal)}.search-field input[b-afmjmkci5s]{min-width:260px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:.7rem}.project-list[b-afmjmkci5s]{display:grid;gap:.65rem;margin-top:1rem}.project-list article[b-afmjmkci5s]{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem}.project-list h3[b-afmjmkci5s]{margin:.2rem 0}.project-list p[b-afmjmkci5s]{margin:0;color:var(--color-gunmetal)}.project-list article>div>span:first-child[b-afmjmkci5s]{font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--color-gunmetal)}@media(max-width:950px){.summary-grid[b-afmjmkci5s],.integration-grid[b-afmjmkci5s],.exchange-grid[b-afmjmkci5s]{grid-template-columns:repeat(2,minmax(0,1fr))}.integrations-hero[b-afmjmkci5s],.section-heading[b-afmjmkci5s],.detail-panel[b-afmjmkci5s]{display:grid}.hero-actions[b-afmjmkci5s]{justify-content:start}}@media(max-width:620px){.integrations-page[b-afmjmkci5s]{padding:.8rem}.summary-grid[b-afmjmkci5s],.integration-grid[b-afmjmkci5s],.exchange-grid[b-afmjmkci5s]{grid-template-columns:1fr}.connector-heading[b-afmjmkci5s]{grid-template-columns:auto 1fr}.connector-heading .status-pill[b-afmjmkci5s]{grid-column:1/-1;width:max-content}.integration-card dl[b-afmjmkci5s]{grid-template-columns:1fr}.project-list article[b-afmjmkci5s]{align-items:flex-start;display:grid}.project-actions[b-afmjmkci5s]{justify-content:space-between}.search-field input[b-afmjmkci5s]{min-width:0;width:100%}}
/* /Components/Pages/JobSwms.razor.rz.scp.css */
.swms-page[b-stopczht32] { display: grid; gap: var(--archex-gap-4); }

/* ---- choosing the kind of work ---------------------------------------------------------------- */
.swms-choose[b-stopczht32] { display: grid; gap: var(--archex-gap-3); }
.swms-choose .ax-title[b-stopczht32] { margin: 0; }
.swms-choose p[b-stopczht32] { margin: 0; }

.swms-kinds[b-stopczht32] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--archex-gap-3);
}

.swms-kind[b-stopczht32] {
    display: grid;
    gap: 4px;
    min-height: 88px;
    padding: var(--archex-gap-4);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: #fff;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.swms-kind:hover[b-stopczht32],
.swms-kind:focus-visible[b-stopczht32] { border-color: var(--archex-ochre); }
.swms-kind strong[b-stopczht32] { font-size: var(--archex-text-md); }
.swms-kind small[b-stopczht32] { color: var(--color-gunmetal); }

/* ---- the editor ------------------------------------------------------------------------------- */
.swms-editor[b-stopczht32] { display: grid; gap: var(--archex-gap-4); }

.swms-editor-head[b-stopczht32] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--archex-gap-3);
}

.swms-editor-head .ax-title[b-stopczht32] { margin: 2px 0 0; }

.swms-section-title[b-stopczht32] {
    margin: var(--archex-gap-2) 0 0;
    font-family: var(--archex-font-heading);
    font-size: var(--archex-text-md);
}

.swms-activities[b-stopczht32] { display: grid; gap: var(--archex-gap-3); }

.swms-activity[b-stopczht32] {
    display: grid;
    grid-template-columns: 150px minmax(0, 1.1fr) minmax(0, 1.4fr) 110px minmax(0, 1.8fr) minmax(0, 1fr);
    gap: var(--archex-gap-2);
    align-items: start;
    padding: var(--archex-gap-3);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: #fff;
}

/* Left out, but kept in view: unticking is a decision about this site, and it should be visible. */
.swms-activity.is-left-out[b-stopczht32] { background: var(--color-panel); opacity: .6; }

.swms-include[b-stopczht32] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    font-weight: 700;
}

.swms-two[b-stopczht32] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--archex-gap-3);
}

.swms-three[b-stopczht32] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--archex-gap-3);
}

.swms-editor-actions[b-stopczht32] { display: flex; flex-wrap: wrap; gap: var(--archex-gap-2); }

/* ---- the issued document ---------------------------------------------------------------------- */
.swms-document[b-stopczht32] { display: grid; gap: var(--archex-gap-4); }
.swms-document section[b-stopczht32] { display: grid; gap: var(--archex-gap-2); }

.swms-doc-head[b-stopczht32] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--archex-gap-4);
    padding-bottom: var(--archex-gap-3);
    border-bottom: 2px solid var(--color-charcoal);
}

.swms-doc-head .ax-title[b-stopczht32] { margin: 2px 0; }
.swms-doc-head p[b-stopczht32] { margin: 0; }

.swms-doc-facts[b-stopczht32],
.swms-emergency[b-stopczht32] {
    display: grid;
    gap: 4px 16px;
    margin: 0;
}

.swms-doc-facts div[b-stopczht32],
.swms-emergency div[b-stopczht32] { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; }
.swms-emergency[b-stopczht32] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.swms-emergency div[b-stopczht32] { grid-template-columns: 170px minmax(0, 1fr); }
.swms-doc-facts dt[b-stopczht32],
.swms-emergency dt[b-stopczht32] { color: var(--color-gunmetal); font-weight: 700; }
.swms-doc-facts dd[b-stopczht32],
.swms-emergency dd[b-stopczht32] { margin: 0; }

.swms-prose[b-stopczht32] { margin: 0; white-space: pre-wrap; }
.swms-emergency-call[b-stopczht32] { margin: 0; font-weight: 600; }
.swms-source[b-stopczht32] { margin: 0; font-size: var(--archex-text-sm); }

.swms-table[b-stopczht32] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--archex-text-sm);
}

.swms-table th[b-stopczht32],
.swms-table td[b-stopczht32] {
    padding: 8px 10px;
    border: 1px solid var(--color-divider);
    text-align: left;
    vertical-align: top;
}

.swms-table th[b-stopczht32] { background: var(--color-panel); font-weight: 700; }

.swms-risk[b-stopczht32] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 700;
}

/* Word and colour together, so a black-and-white print still says the risk. */
.swms-risk.risk-high[b-stopczht32] { background: rgba(198, 40, 40, .12); color: #7F1D1D; }
.swms-risk.risk-medium[b-stopczht32] { background: rgba(180, 120, 0, .12); color: #6B4A00; }
.swms-risk.risk-low[b-stopczht32] { background: rgba(46, 125, 50, .12); color: #1B5E20; }

.swms-history summary[b-stopczht32] { cursor: pointer; font-weight: 700; min-height: 40px; display: flex; align-items: center; }
.swms-history ul[b-stopczht32] { margin: 0; padding-left: 18px; color: var(--color-gunmetal); }

@media (max-width: 1100px) {
    .swms-activity[b-stopczht32] { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
    .swms-kinds[b-stopczht32],
    .swms-two[b-stopczht32],
    .swms-three[b-stopczht32],
    .swms-emergency[b-stopczht32],
    .swms-activity[b-stopczht32] { grid-template-columns: 1fr; }
}

@media print {
    /* The document carries its own title; the screen header above it would print twice over.
       !important because archex-components.css forces every page header on with
       ".ax-page .ax-os-header { display: flex !important }"; between two !important rules the more
       specific wins, and this one is. */
    .swms-page[b-stopczht32]  .ax-os-header { display: none !important; }

    .swms-document[b-stopczht32] { padding: 0; border: 0; }
    .swms-table[b-stopczht32] { font-size: 10pt; }

    /* A heading stays with what follows it; rows may not split; the table may. */
    .swms-section-title[b-stopczht32] { break-after: avoid; }
    .swms-table tr[b-stopczht32] { break-inside: avoid; }
}
/* /Components/Pages/JobWorkspace.razor.rz.scp.css */
.job-workspace[b-if9a7cxfx0] {
    min-height: 100vh;
    padding: 32px 32px 64px;
    background: var(--color-background, var(--color-background));
    color: var(--color-charcoal, var(--color-charcoal));
    font-family:var(--font-body);
}

.job-state[b-if9a7cxfx0] {
    max-width: 720px;
    margin: 80px auto;
    padding: 40px;
    border: 1px solid var(--color-divider, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--color-surface, var(--color-surface));
    box-shadow:var(--archex-shadow);
    text-align: center;
}

.job-state h1[b-if9a7cxfx0],
.start-panel h2[b-if9a7cxfx0],
.section-heading h2[b-if9a7cxfx0] {
    font-family:var(--font-heading);
}

.job-header[b-if9a7cxfx0] {
    max-width: 1400px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}

/* The shared header is a child component, so it needs ::deep to be reached from here. Without
   flex:1 it would size to its content and the date would sit against the title. */
.job-header[b-if9a7cxfx0]  .ax-os-header { flex: 1; min-width: 0; margin-bottom: 0; }

.job-kicker[b-if9a7cxfx0],
.section-label[b-if9a7cxfx0] {
    color: var(--color-primary-dark, var(--color-primary-dark));
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.job-date[b-if9a7cxfx0] {
    min-width: 74px;
    padding-left: 24px;
    border-left: 1px solid var(--color-divider, var(--color-divider));
    text-align: right;
}

.job-date strong[b-if9a7cxfx0] {
    display: block;
    font-family:var(--font-heading);
    font-size: 1.05rem;
    font-weight: 700;
}

.job-date span[b-if9a7cxfx0] {
    color: var(--color-gunmetal, var(--color-gunmetal));
    font-size: .88rem;
}

.start-panel[b-if9a7cxfx0] {
    max-width: 1400px;
    margin: 0 auto 24px;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-radius:var(--archex-radius-small);
    border: 1px solid var(--color-divider, var(--color-divider));
    background: linear-gradient(135deg, var(--color-charcoal, var(--color-charcoal)) 0%, var(--color-gunmetal, var(--color-gunmetal)) 100%);
    color: #FFFFFF;
    box-shadow:var(--archex-shadow);
}

.start-panel .section-label[b-if9a7cxfx0] { color: var(--color-primary-light, var(--color-primary-light)); }
/* The panel is dark and the heading was not told so. Every h1-h6 is coloured --archex-text by the
   foundation stylesheet, which is #1F1F1F, so "Ready to begin travel" was near-black on a charcoal
   gradient: present, correctly sized, and unreadable. inherit takes the white the panel sets. */
.start-panel h2[b-if9a7cxfx0] { margin: 4px 0; font-size: 1.45rem; font-weight: 700; color: inherit; }
.start-panel p[b-if9a7cxfx0] { max-width: 760px; margin: 0; color: #E6E6E6; line-height: 1.45; }

.start-button[b-if9a7cxfx0] {
    min-width: 184px;
    min-height: 48px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius:var(--archex-radius-small);
    background: var(--color-primary, var(--color-primary));
    color: #FFFFFF;
    font-family:var(--font-body);
    cursor: pointer;
    transition: background 150ms ease-in-out, transform 150ms ease-in-out;
}

.start-button:hover:not(:disabled)[b-if9a7cxfx0] { background: var(--color-primary-dark, var(--color-primary-dark)); }
.start-button:active:not(:disabled)[b-if9a7cxfx0] { transform: translateY(1px); }
.start-button.started[b-if9a7cxfx0] { background: var(--color-surface); color: var(--color-charcoal, var(--color-charcoal)); }
.start-button:disabled[b-if9a7cxfx0] { cursor: wait; opacity: .7; }

.field-message[b-if9a7cxfx0] {
    max-width: 1400px;
    margin: -8px auto 16px;
    padding: 12px 16px;
    border: 1px solid color-mix(in srgb, var(--color-primary, var(--color-primary)) 34%, white);
    border-radius:var(--archex-radius-small);
    background: color-mix(in srgb, var(--color-primary, var(--color-primary)) 7%, white);
    color: var(--color-charcoal, var(--color-charcoal));
    font-weight: 700;
}

.work-layout[b-if9a7cxfx0] {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0,1fr) 320px;
    gap: 24px;
    align-items: start;
}

.main-column[b-if9a7cxfx0],
.side-column[b-if9a7cxfx0] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.record-section[b-if9a7cxfx0],
.today-section[b-if9a7cxfx0],
.activity-section[b-if9a7cxfx0],
.job-card[b-if9a7cxfx0],
.more-card[b-if9a7cxfx0] {
    padding: 24px;
    border: 1px solid var(--color-divider, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--color-surface, var(--color-surface));
    box-shadow:var(--archex-shadow);
}

.section-heading[b-if9a7cxfx0] {
    margin-bottom: 16px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.section-heading h2[b-if9a7cxfx0] {
    margin: 4px 0 0;
    font-size: 1.2rem;
    font-weight: 600;
}

.section-heading small[b-if9a7cxfx0] { color: var(--color-gunmetal); }

.record-section.locked[b-if9a7cxfx0] { background: var(--color-surface); }

.record-lock-message[b-if9a7cxfx0] {
    margin-bottom: 16px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 1px solid var(--color-divider, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--color-panel, var(--color-panel));
}

.record-lock-message span[b-if9a7cxfx0] { color: var(--color-gunmetal, var(--color-gunmetal)); line-height: 1.4; }
.record-grid[b-if9a7cxfx0] { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.launcher-entry-grid[b-if9a7cxfx0] { grid-template-columns: minmax(280px, 520px); }

.record-action[b-if9a7cxfx0] {
    min-height: 124px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-divider, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--color-surface, var(--color-surface));
    text-align: left;
    cursor: pointer;
    transition: border-color 150ms ease-in-out, background 150ms ease-in-out;
}

.record-action:hover:not(:disabled)[b-if9a7cxfx0] {
    border-color: var(--color-primary, var(--color-primary));
    background: color-mix(in srgb, var(--color-primary) 5%, white);
}

.record-action.primary[b-if9a7cxfx0] {
    border-color: color-mix(in srgb, var(--color-primary) 40%, var(--color-divider));
    background: color-mix(in srgb, var(--color-primary) 6%, white);
}

.record-action > span[b-if9a7cxfx0] { margin-bottom: auto; color: var(--color-primary-dark, var(--color-primary-dark)); font-size: 1.65rem; }
.record-action strong[b-if9a7cxfx0] { margin-top: 12px; font-family:var(--font-heading); font-size: 1rem; font-weight: 600; }
.record-action small[b-if9a7cxfx0] { margin-top: 4px; color: var(--color-gunmetal); line-height: 1.35; }
.record-action:disabled[b-if9a7cxfx0] { cursor: not-allowed; opacity: .48; filter: grayscale(.2); }
.record-action:disabled:hover[b-if9a7cxfx0] { border-color: var(--color-divider, var(--color-divider)); background: var(--color-surface); }
.record-action.launcher-entry[b-if9a7cxfx0] { min-height: 128px; }
.record-action.launcher-entry > span[b-if9a7cxfx0] { font-size: 2rem; }

.continue-card[b-if9a7cxfx0] {
    width: 100%;
    padding: 16px 20px;
    display: grid;
    grid-template-columns: 40px 1fr auto;
    align-items: center;
    border: 0;
    border-radius:var(--archex-radius-small);
    background: var(--color-charcoal, var(--color-charcoal));
    color: #FFFFFF;
    text-align: left;
    cursor: pointer;
}

.continue-icon[b-if9a7cxfx0] { font-size: 1.45rem; }
.continue-card small[b-if9a7cxfx0] { color: #D1D1D1; letter-spacing: .1em; }
.continue-card strong[b-if9a7cxfx0] { display: block; margin-top: 2px; font-family:var(--font-heading); font-size: 1.15rem; }
.continue-card p[b-if9a7cxfx0] { margin: 2px 0 0; color: #E4E4E4; }
.continue-card b[b-if9a7cxfx0] { font-size: 1.75rem; }

.today-stats[b-if9a7cxfx0] { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.today-stats button[b-if9a7cxfx0] {
    padding: 14px;
    border: 1px solid var(--color-divider, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
    text-align: left;
    cursor: pointer;
    transition: border-color 150ms ease-in-out, background 150ms ease-in-out;
}
.today-stats button:hover[b-if9a7cxfx0] { border-color: var(--color-primary, var(--color-primary)); background: color-mix(in srgb, var(--color-primary) 5%, white); }
.today-stats strong[b-if9a7cxfx0] { display: block; font-family:var(--font-heading); font-size: 1.5rem; font-weight: 700; }
.today-stats span[b-if9a7cxfx0] { color: #666; font-size: .82rem; }

.text-button[b-if9a7cxfx0] { border: 0; background: transparent; color: var(--color-primary-dark, var(--color-primary-dark)); font-weight: 700; cursor: pointer; }
.activity-list article[b-if9a7cxfx0] { padding: 12px 0; display: grid; grid-template-columns: 48px 12px 1fr; gap: 12px; align-items: start; border-top: 1px solid var(--color-divider); }
.activity-list time[b-if9a7cxfx0] { color: var(--color-gunmetal); font-size: .8rem; }
.activity-list article > span[b-if9a7cxfx0] { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--color-primary, var(--color-primary)); }
.activity-list strong[b-if9a7cxfx0],.activity-list small[b-if9a7cxfx0] { display: block; }
.activity-list small[b-if9a7cxfx0] { margin-top: 3px; color: var(--color-gunmetal); }
.empty-activity[b-if9a7cxfx0] { padding: 22px; border: 1px dashed var(--color-divider, var(--color-divider)); border-radius:var(--archex-radius-small); color: var(--color-gunmetal); }

.focus-card label[b-if9a7cxfx0] {
    padding: 13px 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border-bottom: 1px solid var(--color-divider);
    line-height: 1.35;
}
.focus-card label:last-child[b-if9a7cxfx0] { border-bottom: 0; }
.focus-card input[b-if9a7cxfx0] { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--color-primary, var(--color-primary)); }

.job-card > button[b-if9a7cxfx0] {
    width: 100%;
    padding: 14px 0;
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 10px;
    align-items: center;
    border: 0;
    border-top: 1px solid var(--color-divider);
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: color 150ms ease-in-out;
}
.job-card > button:first-of-type[b-if9a7cxfx0] { margin-top: 10px; }
.job-card > button:hover[b-if9a7cxfx0] { color: var(--color-primary-dark, var(--color-primary-dark)); }
.job-card button strong[b-if9a7cxfx0],.job-card button small[b-if9a7cxfx0] { display: block; }
.job-card button small[b-if9a7cxfx0] { margin-top: 2px; color: var(--color-gunmetal); }
.job-card button b[b-if9a7cxfx0] { font-size: 1.3rem; }

.more-card[b-if9a7cxfx0] { padding: 0; overflow: hidden; }
.more-card summary[b-if9a7cxfx0] { padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; list-style: none; cursor: pointer; }
.more-card summary small[b-if9a7cxfx0],.more-card summary strong[b-if9a7cxfx0] { display: block; }
.more-card summary small[b-if9a7cxfx0] { color: var(--color-gunmetal); font-weight: 700; letter-spacing: .12em; }
.more-card summary b[b-if9a7cxfx0] { font-size: 1.3rem; }
.more-grid[b-if9a7cxfx0] { padding: 0 16px 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.more-grid button[b-if9a7cxfx0] { padding: 12px; border: 1px solid var(--color-divider, var(--color-divider)); border-radius:var(--archex-radius-small); background: var(--color-surface); cursor: pointer; }
.more-grid button:hover[b-if9a7cxfx0] { border-color: var(--color-primary, var(--color-primary)); }

.button.secondary[b-if9a7cxfx0] { padding: 12px 16px; border: 1px solid var(--color-divider, var(--color-divider)); border-radius:var(--archex-radius-small); background: var(--color-surface); }

@media (max-width: 1000px) {
    .work-layout[b-if9a7cxfx0] { grid-template-columns: 1fr; }
    .side-column[b-if9a7cxfx0] { display: grid; grid-template-columns: 1fr 1fr; }
    .more-card[b-if9a7cxfx0] { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
    .job-workspace[b-if9a7cxfx0] { padding: 16px 16px 48px; }
        .job-date[b-if9a7cxfx0] { display: none; }
    .start-panel[b-if9a7cxfx0] { padding: 20px; align-items: stretch; flex-direction: column; }
    .start-button[b-if9a7cxfx0] { width: 100%; }
    .record-grid[b-if9a7cxfx0],.launcher-entry-grid[b-if9a7cxfx0] { grid-template-columns: 1fr; }
    .today-stats[b-if9a7cxfx0] { grid-template-columns: 1fr 1fr; }
    .side-column[b-if9a7cxfx0] { display: flex; }
    .section-heading[b-if9a7cxfx0] { align-items: flex-start; flex-direction: column; }
    .section-heading small[b-if9a7cxfx0] { display: none; }
}

@media (max-width: 430px) {
    .record-action[b-if9a7cxfx0] { min-height: 104px; }
}

/* Phone-first field workspace refinements */
@media (max-width: 720px) {
    .job-workspace[b-if9a7cxfx0] { padding: 12px 12px 88px; }
    .job-header[b-if9a7cxfx0] { margin-bottom: 12px; padding: 0 2px; gap: 10px; }
    .job-date[b-if9a7cxfx0] { display: none; }
    .start-panel[b-if9a7cxfx0] { margin-bottom: 12px; padding: 16px; grid-template-columns: 1fr; gap: 14px; }
    .start-panel h2[b-if9a7cxfx0] { font-size: 1.2rem; }
    .start-button[b-if9a7cxfx0] { width: 100%; min-height: 48px; justify-content: center; }
    .work-layout[b-if9a7cxfx0] { display: flex; flex-direction: column; gap: 12px; }
    .main-column[b-if9a7cxfx0],.side-column[b-if9a7cxfx0] { gap: 12px; }
    .record-section[b-if9a7cxfx0],.today-section[b-if9a7cxfx0],.activity-section[b-if9a7cxfx0],.job-card[b-if9a7cxfx0],.more-card[b-if9a7cxfx0] { padding: 16px; }
    .section-heading[b-if9a7cxfx0] { margin-bottom: 12px; align-items: flex-start; }
    .section-heading small[b-if9a7cxfx0] { display: none; }
    .launcher-entry-grid[b-if9a7cxfx0] { grid-template-columns: 1fr; }
    .record-action.launcher-entry[b-if9a7cxfx0] { min-height: 88px; display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto; column-gap: 12px; }
    .record-action.launcher-entry > span[b-if9a7cxfx0] { grid-row: 1 / 3; margin: 0; align-self: center; }
    .record-action.launcher-entry strong[b-if9a7cxfx0] { margin: 0; align-self: end; }
    .record-action.launcher-entry small[b-if9a7cxfx0] { align-self: start; }
    .today-stats[b-if9a7cxfx0] { grid-template-columns: repeat(2,1fr); gap: 8px; }
    .today-stats button[b-if9a7cxfx0] { min-height: 76px; padding: 12px; }
    .side-column[b-if9a7cxfx0] { width: 100%; }
    .job-card[b-if9a7cxfx0] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .job-card > .section-label[b-if9a7cxfx0] { grid-column: 1 / -1; }
    .job-card > button[b-if9a7cxfx0] {
        min-height: 92px;
        padding: 12px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 5px;
        border: 1px solid var(--color-divider,var(--color-divider));
        border-radius:var(--archex-radius-small);
        background: #FFF;
    }
    .job-card > button:first-of-type[b-if9a7cxfx0] { margin-top: 0; }
    .job-card > button > span[b-if9a7cxfx0] { color: var(--color-primary-dark,var(--color-primary-dark)); font-size: 1.25rem; }
    .job-card > button b[b-if9a7cxfx0] { display: none; }
    .job-card button small[b-if9a7cxfx0] { font-size: .72rem; line-height: 1.25; }
    .more-card summary[b-if9a7cxfx0] { min-height: 60px; padding: 14px 16px; }
    .more-grid[b-if9a7cxfx0] { grid-template-columns: repeat(2,1fr); padding: 0 12px 12px; }
    .more-grid button[b-if9a7cxfx0] { min-height: 48px; }
}

/* Direct phone dashboard recording launcher */
.dashboard-record-grid[b-if9a7cxfx0] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dashboard-record-action[b-if9a7cxfx0] {
    min-height: 112px;
    padding: 16px;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    border: 1px solid var(--color-divider, var(--color-divider));
    border-radius:var(--archex-radius-small);
    background: var(--color-surface, var(--color-surface));
    text-align: left;
}

.dashboard-record-action:hover:not(:disabled)[b-if9a7cxfx0],
.dashboard-record-action:focus-visible:not(:disabled)[b-if9a7cxfx0] {
    border-color: var(--color-primary, var(--color-primary));
    background: color-mix(in srgb, var(--color-primary, var(--color-primary)) 5%, white);
    outline: none;
}

.dashboard-record-icon[b-if9a7cxfx0] {
    width: 46px;
    height: 46px;
    margin: 0;
    display: grid;
    place-items: center;
    border-radius:var(--archex-radius-small);
    background: color-mix(in srgb, var(--color-primary, var(--color-primary)) 10%, white);
    color: var(--color-primary-dark, var(--color-primary-dark));
    font-family:var(--font-heading);
    font-size: 1.35rem;
    font-weight: 700;
}

.dashboard-record-copy[b-if9a7cxfx0] {
    min-width: 0;
}

.dashboard-record-copy strong[b-if9a7cxfx0],
.dashboard-record-copy small[b-if9a7cxfx0] {
    display: block;
}

.dashboard-record-copy strong[b-if9a7cxfx0] {
    margin: 0 0 4px;
    font-family:var(--font-heading);
    font-size: .98rem;
    font-weight: 600;
    line-height: 1.2;
}

.dashboard-record-copy small[b-if9a7cxfx0] {
    margin: 0;
    color: var(--color-gunmetal);
    font-size: .79rem;
    line-height: 1.35;
}

.dashboard-record-arrow[b-if9a7cxfx0] {
    margin: 0;
    color: var(--color-gunmetal);
    font-size: 1.55rem;
}

@media (max-width: 720px) {
    .dashboard-record-grid[b-if9a7cxfx0] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .dashboard-record-action[b-if9a7cxfx0] {
        min-height: 104px;
        padding: 12px 8px;
        grid-template-columns: 1fr;
        grid-template-rows: 40px auto;
        gap: 7px;
        justify-items: center;
        text-align: center;
    }

    .dashboard-record-icon[b-if9a7cxfx0] {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }

    .dashboard-record-copy strong[b-if9a7cxfx0] {
        margin: 0;
        font-size: .9rem;
        line-height: 1.12;
    }

    .dashboard-record-copy small[b-if9a7cxfx0],
    .dashboard-record-arrow[b-if9a7cxfx0] {
        display: none;
    }
}

/* Field consolidation: compact Safety today strip near the session controls. */
.safety-strip[b-if9a7cxfx0] {
    margin-top: 12px;
    padding: 12px 16px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    display: grid;
    gap: 8px;
}

.safety-items[b-if9a7cxfx0] { display: flex; gap: 8px; flex-wrap: wrap; }

.safety-items button[b-if9a7cxfx0], .safety-items a[b-if9a7cxfx0], .safety-static[b-if9a7cxfx0] {
    display: grid;
    gap: 2px;
    min-width: 140px;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.safety-items a[b-if9a7cxfx0] { color: inherit; text-decoration: none; }
.safety-static[b-if9a7cxfx0] { cursor: default; }
.safety-items strong[b-if9a7cxfx0] { font-size: .74rem; font-weight: 800; }
.safety-items small[b-if9a7cxfx0] { color: #666; font-size: .68rem; }

.safety-warning[b-if9a7cxfx0] {
    padding: 8px 12px;
    border-radius:var(--archex-radius-small);
    background: #fff2d8;
    color: #996100;
    font-size: .76rem;
    font-weight: 600;
}

/* Asked before Start Work when the person has not signed today's toolbox. Amber, not red: it is a
   question with a way through, not a refusal. */
.toolbox-skip[b-if9a7cxfx0] {
    margin-top: 12px;
    padding: 16px 18px;
    border: 1px solid rgba(180, 120, 0, .30);
    border-left-width: 3px;
    border-radius: var(--archex-radius-small);
    background: rgba(180, 120, 0, .07);
    color: #6B4A00;
    display: grid;
    gap: 10px;
}

.toolbox-skip h2[b-if9a7cxfx0] { margin: 0; font-size: 1.05rem; color: inherit; }
.toolbox-skip p[b-if9a7cxfx0] { margin: 0; }
.toolbox-skip-actions[b-if9a7cxfx0] { display: flex; flex-wrap: wrap; gap: 8px; }

/* GETTING YOUR LOCATION (23 September 2026). A phone with a cold GPS can take the full fifteen
   seconds the capture allows. Without a word on the screen that is a dead button, and a dead
   button gets pressed again. */
.finding-position[b-if9a7cxfx0] {
    margin: 6px 0 0;
    font-size: .85rem;
    font-weight: 600;
    opacity: .75;
}
/* /Components/Pages/Knowledge.razor.rz.scp.css */
.knowledge-page[b-6a6djp0nm3] {
    width: min(1500px, 100%);
    margin: 0 auto;
    padding: 40px;
    color: #171411;
    font-family:var(--font-body);
}

.knowledge-header[b-6a6djp0nm3] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 30px;
}

    .knowledge-header h1[b-6a6djp0nm3] {
        margin: 0;
        font-size: var(--archex-text-2xl);
        line-height: 0.98;
        letter-spacing: -0.055em;
    }

.eyebrow[b-6a6djp0nm3] {
    margin: 0 0 10px;
    color: var(--color-primary-dark);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.intro[b-6a6djp0nm3] {
    max-width: 760px;
    margin: 18px 0 0;
    color: var(--color-gunmetal);
    line-height: 1.65;
}

.header-actions[b-6a6djp0nm3] {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.primary-button[b-6a6djp0nm3],
.secondary-button[b-6a6djp0nm3] {
    padding: 0 22px;
    border-radius:var(--archex-radius-small);
    font: inherit;
    font-size: 0.85rem;
    font-weight: 750;
    cursor: pointer;
}

.primary-button[b-6a6djp0nm3] {
    border: 1px solid var(--color-primary-dark);
    background: var(--color-primary-dark);
    color: white;
    box-shadow:var(--archex-shadow);
}

    .primary-button:hover[b-6a6djp0nm3] {
        background: var(--color-primary-dark);
    }

    .primary-button:disabled[b-6a6djp0nm3] {
        opacity: 0.45;
        cursor: not-allowed;
    }

.secondary-button[b-6a6djp0nm3] {
    border: 1px solid var(--color-divider);
    background: white;
    color: #28231f;
}

    .secondary-button:hover[b-6a6djp0nm3] {
        border-color: var(--color-primary-dark);
    }

.knowledge-form-card[b-6a6djp0nm3],.category-card[b-6a6djp0nm3] {
    border: 1px solid rgba(23, 20, 17, 0.09);
    border-radius:var(--archex-radius-large);
    background: rgba(255, 255, 255, 0.97);
    box-shadow:var(--archex-shadow-hover);
}

.knowledge-form-card[b-6a6djp0nm3] {
    margin-bottom: 24px;
    padding: 28px;
}

.form-heading[b-6a6djp0nm3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

    .form-heading h2[b-6a6djp0nm3] {
        margin: 0;
        font-size: 1.8rem;
        letter-spacing: -0.035em;
    }

.close-button[b-6a6djp0nm3] {
    width: 42px;
    height: 42px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: white;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.form-grid[b-6a6djp0nm3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.form-field[b-6a6djp0nm3] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .form-field.full-width[b-6a6djp0nm3] {
        grid-column: 1 / -1;
    }

    .form-field label[b-6a6djp0nm3] {
        color: var(--color-gunmetal);
        font-size: 0.76rem;
        font-weight: 800;
    }

    .form-field input[b-6a6djp0nm3],
    .form-field select[b-6a6djp0nm3],
    .form-field textarea[b-6a6djp0nm3] {
        min-height: 42px;
        padding: 10px 13px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        background: white;
        font: inherit;
    }

    .form-field textarea[b-6a6djp0nm3] {
        min-height: 130px;
        resize: vertical;
    }

.checkbox-field[b-6a6djp0nm3] {
    justify-content: flex-end;
}

    .checkbox-field label[b-6a6djp0nm3] {
        display: flex;
        align-items: center;
        gap: 10px;
        min-height: 46px;
    }

.form-actions[b-6a6djp0nm3] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
}

.knowledge-toolbar[b-6a6djp0nm3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

    .knowledge-toolbar input[b-6a6djp0nm3] {
        width: min(720px, 100%);
        min-height: 44px;
        padding: 0 16px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        background: white;
        font: inherit;
    }

.record-count[b-6a6djp0nm3] {
    color: var(--color-gunmetal);
    font-size: 0.82rem;
    font-weight: 700;
    white-space: nowrap;
}

.category-grid[b-6a6djp0nm3] {
    display: grid;
    gap: 22px;
}

.category-card[b-6a6djp0nm3] {
    padding: 26px;
}

.category-heading[b-6a6djp0nm3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

    .category-heading h2[b-6a6djp0nm3] {
        margin: 0;
        font-size: 1.65rem;
        letter-spacing: -0.035em;
    }

    .category-heading p[b-6a6djp0nm3] {
        margin: 10px 0 0;
        color: var(--color-gunmetal);
        line-height: 1.5;
    }

.category-count[b-6a6djp0nm3] {
    display: grid;
    place-items: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border-radius: 999px;
    background: #f0ddd1;
    color: var(--color-primary-dark);
    font-weight: 800;
}

.category-empty[b-6a6djp0nm3] {
    padding: 22px;
    border: 1px dashed var(--color-divider);
    border-radius:var(--archex-radius-medium);
    color: var(--color-gunmetal);
    text-align: center;
}

.knowledge-list[b-6a6djp0nm3] {
    display: grid;
    gap: 15px;
}

.knowledge-item[b-6a6djp0nm3] {
    padding: 20px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
}

.knowledge-item-heading[b-6a6djp0nm3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

    .knowledge-item-heading h3[b-6a6djp0nm3] {
        margin: 0 0 9px;
        font-size: 1.05rem;
    }

.verification-pill[b-6a6djp0nm3],
.source-pill[b-6a6djp0nm3] {
    display: inline-flex;
    width: fit-content;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 0.67rem;
    font-weight: 800;
}

    .verification-pill.verified[b-6a6djp0nm3] {
        background: #e2f4e8;
        color: #24643c;
    }

    .verification-pill.pending[b-6a6djp0nm3] {
        background: #fff0e6;
        color: var(--color-primary-dark);
    }

.source-pill[b-6a6djp0nm3] {
    background: #ebe8e5;
    color: var(--color-gunmetal);
}

.knowledge-content[b-6a6djp0nm3] {
    margin: 16px 0;
    color: var(--color-gunmetal);
    line-height: 1.65;
    white-space: pre-wrap;
}

.knowledge-details[b-6a6djp0nm3] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
}

    .knowledge-details > div[b-6a6djp0nm3] {
        padding: 12px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        background: white;
    }

    .knowledge-details dt[b-6a6djp0nm3] {
        margin-bottom: 6px;
        color: var(--color-gunmetal);
        font-size: 0.64rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .knowledge-details dd[b-6a6djp0nm3] {
        margin: 0;
        font-size: 0.82rem;
        font-weight: 650;
        overflow-wrap: anywhere;
    }

.keyword-row[b-6a6djp0nm3] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

    .keyword-row span[b-6a6djp0nm3] {
        padding: 6px 9px;
        border-radius: 999px;
        background: #f0ddd1;
        color: var(--color-primary-dark);
        font-size: 0.67rem;
        font-weight: 750;
    }

@media (max-width: 900px) {
    .knowledge-details[b-6a6djp0nm3] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .knowledge-page[b-6a6djp0nm3] {
        padding: 24px 18px 50px;
    }

    .knowledge-header[b-6a6djp0nm3],
    .header-actions[b-6a6djp0nm3],
    .knowledge-toolbar[b-6a6djp0nm3],
    .form-actions[b-6a6djp0nm3],
    .knowledge-item-heading[b-6a6djp0nm3],
    .category-heading[b-6a6djp0nm3] {
        align-items: stretch;
        flex-direction: column;
    }

        .header-actions button[b-6a6djp0nm3],
        .form-actions button[b-6a6djp0nm3] {
            width: 100%;
        }

    .form-grid[b-6a6djp0nm3],
    .knowledge-details[b-6a6djp0nm3] {
        grid-template-columns: 1fr;
    }

    .form-field.full-width[b-6a6djp0nm3] {
        grid-column: auto;
    }
}
/* /Components/Pages/Library.razor.rz.scp.css */
.library-page[b-s0r0s3sd5p]{max-width:1240px;margin:0 auto;padding:28px}.library-header[b-s0r0s3sd5p]{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.library-header h1[b-s0r0s3sd5p]{margin:3px 0 8px}.eyebrow[b-s0r0s3sd5p]{margin:0;color:var(--color-primary-dark);font:700 12px var(--font-heading);letter-spacing:.12em}.intro[b-s0r0s3sd5p]{margin:0;color:var(--color-gunmetal)}.library-toolbar[b-s0r0s3sd5p]{display:flex;align-items:center;gap:16px;margin:24px 0 18px}.library-toolbar input[b-s0r0s3sd5p]{flex:1;max-width:580px;padding:10px 12px;border:1px solid #ccc;border-radius:var(--archex-radius-small)}.record-count[b-s0r0s3sd5p]{font-size:13px;color:#666}.library-grid[b-s0r0s3sd5p]{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}.library-card[b-s0r0s3sd5p]{background:#fff;border:1px solid #ddd;border-radius:var(--archex-radius-small);padding:11px 13px;display:flex;flex-direction:column;min-height:0;box-shadow:var(--archex-shadow)}.library-card-title[b-s0r0s3sd5p]{margin:0;font-family:var(--font-heading);font-size:15px;line-height:1.3;font-weight:700;color:var(--color-charcoal)}.library-card-meta[b-s0r0s3sd5p]{margin-top:5px;font-family:var(--font-body);font-size:12.5px;line-height:1.35;color:var(--color-gunmetal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-card-meta span[b-s0r0s3sd5p],.library-card-statuses>span[aria-hidden=true][b-s0r0s3sd5p]{margin:0 4px;color:#a0a0a0}.library-card-statuses[b-s0r0s3sd5p]{display:flex;align-items:center;flex-wrap:wrap;margin-top:5px;font-family:var(--font-body);font-size:11.5px;line-height:1.3;color:var(--color-gunmetal)}.status-pill[b-s0r0s3sd5p]{display:inline-flex;align-items:center;border-radius:999px;background:var(--color-panel);padding:2px 7px;font-size:10.5px;font-weight:700}.status-pill.approved[b-s0r0s3sd5p]{background:#e7f3e8;color:var(--color-success)}.status-pill.rejected[b-s0r0s3sd5p]{background:#f8e5e5;color:var(--color-danger)}.status-pill.in-review[b-s0r0s3sd5p]{background:#fff3d2;color:#8a5b00}.version-status[b-s0r0s3sd5p]{font-weight:700;color:#555}.library-card-date[b-s0r0s3sd5p]{margin-top:5px;font-family:var(--font-body);font-size:10.5px;line-height:1.3;color:var(--color-gunmetal)}.library-card footer[b-s0r0s3sd5p]{display:flex;align-items:center;gap:4px;margin-top:8px;padding-top:7px;border-top:1px solid #eee}.text-button[b-s0r0s3sd5p]{display:inline-flex;align-items:center;min-height:32px;border:0;background:transparent;color:var(--color-primary-dark);padding:6px 10px;font:700 12px var(--font-body);line-height:1.4;text-decoration:none;cursor:pointer;border-radius:var(--archex-radius-small)}.text-button:hover[b-s0r0s3sd5p]{background:var(--color-panel);color:var(--color-primary-dark)}.text-button:disabled[b-s0r0s3sd5p]{color:#aaa;background:transparent;cursor:not-allowed}.primary-button[b-s0r0s3sd5p],.secondary-button[b-s0r0s3sd5p]{border-radius:var(--archex-radius-small);padding:10px 15px;font-weight:700;cursor:pointer}.primary-button[b-s0r0s3sd5p]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.secondary-button[b-s0r0s3sd5p]{background:#fff;color:var(--color-charcoal);border:1px solid #bbb}.library-form-card[b-s0r0s3sd5p]{background:#fff;border:1px solid #ddd;border-radius:var(--archex-radius-medium);padding:22px;margin:20px 0}.form-heading[b-s0r0s3sd5p]{display:flex;justify-content:space-between}.form-heading h2[b-s0r0s3sd5p]{margin:3px 0 15px}.close-button[b-s0r0s3sd5p]{background:none;border:0;font-size:28px;cursor:pointer}.form-grid[b-s0r0s3sd5p]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-field[b-s0r0s3sd5p]{display:flex;flex-direction:column;gap:7px}.form-field.full-width[b-s0r0s3sd5p]{grid-column:1/-1}.form-field input[b-s0r0s3sd5p],.form-field select[b-s0r0s3sd5p]{padding:10px;border:1px solid #ccc;border-radius:var(--archex-radius-small)}.form-field small[b-s0r0s3sd5p]{color:#666}.checkbox-field[b-s0r0s3sd5p]{justify-content:end}.form-actions[b-s0r0s3sd5p]{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.open-message[b-s0r0s3sd5p]{padding:8px 10px;border-radius:var(--archex-radius-small);margin-top:7px}.open-message[b-s0r0s3sd5p]{background:#fff3d2;color:#715000;font-size:11px}@media(max-width:700px){.library-page[b-s0r0s3sd5p]{padding:18px}.library-header[b-s0r0s3sd5p]{display:block}.library-header .primary-button[b-s0r0s3sd5p]{margin-top:15px}.library-toolbar[b-s0r0s3sd5p]{align-items:stretch;flex-direction:column}.form-grid[b-s0r0s3sd5p]{grid-template-columns:1fr}.form-field.full-width[b-s0r0s3sd5p]{grid-column:auto}}

/* The Evidence Catalogue, listed beside the curated documents (19 September 2026). */
.library-catalogue[b-s0r0s3sd5p] { margin-top: 2rem; }
.library-catalogue h2[b-s0r0s3sd5p] { margin: 0 0 .35rem; font-size: 1.05rem; }
.catalogue-note[b-s0r0s3sd5p] { margin: 0 0 .9rem; max-width: 70ch; line-height: 1.5; opacity: .85; }
.catalogue-empty[b-s0r0s3sd5p] { opacity: .7; }
.catalogue-table[b-s0r0s3sd5p] { width: 100%; border-collapse: collapse; font-size: .9rem; }
.catalogue-table th[b-s0r0s3sd5p],
.catalogue-table td[b-s0r0s3sd5p] { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid rgba(0,0,0,.08); vertical-align: top; }
.catalogue-table th[b-s0r0s3sd5p] { font-weight: 600; white-space: nowrap; }
.catalogue-table .numeric[b-s0r0s3sd5p] { text-align: right; white-space: nowrap; }
.catalogue-table tbody tr:hover[b-s0r0s3sd5p] { background: rgba(0,0,0,.03); }
@media (max-width: 760px) {
    .catalogue-table[b-s0r0s3sd5p], .catalogue-table tbody[b-s0r0s3sd5p], .catalogue-table tr[b-s0r0s3sd5p], .catalogue-table td[b-s0r0s3sd5p] { display: block; width: 100%; }
    .catalogue-table thead[b-s0r0s3sd5p] { display: none; }
    .catalogue-table tr[b-s0r0s3sd5p] { border-bottom: 1px solid rgba(0,0,0,.12); padding: .5rem 0; }
    .catalogue-table td[b-s0r0s3sd5p] { border: 0; padding: .15rem 0; }
    .catalogue-table .numeric[b-s0r0s3sd5p] { text-align: left; }
}
.catalogue-muted[b-s0r0s3sd5p] { opacity: .5; }
/* The library filter chips moved to the shared sheet as .ax-chips / .ax-chip / .ax-chip-count.
   The block that stood here was byte-for-byte identical to the one in Tasks.razor.css, which is
   what happens when a design can only be reused by pasting it. */
/* /Components/Pages/LibraryDetails.razor.rz.scp.css */
.details-shell[b-i9u0qdr56b]{max-width:1000px;margin:0 auto;padding:30px}.eyebrow[b-i9u0qdr56b]{margin:0;color:var(--color-primary-dark);font:700 12px var(--font-heading);letter-spacing:.12em}.details-shell h1[b-i9u0qdr56b]{margin:4px 0 10px}.status[b-i9u0qdr56b]{display:inline-flex;background:var(--color-panel);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.details-shell dl[b-i9u0qdr56b]{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff;border:1px solid #ddd;border-radius:var(--archex-radius-medium);overflow:hidden;margin-top:22px}.details-shell dl div[b-i9u0qdr56b]{padding:15px;border-bottom:1px solid var(--color-divider)}.details-shell dl div:nth-child(odd)[b-i9u0qdr56b]{border-right:1px solid var(--color-divider)}.details-shell dl .full[b-i9u0qdr56b]{grid-column:1/-1;border-right:0}.details-shell dt[b-i9u0qdr56b]{font-size:12px;font-weight:700;color:#666;text-transform:uppercase}.details-shell dd[b-i9u0qdr56b]{margin:5px 0 0}.preline[b-i9u0qdr56b]{white-space:pre-line}.details-shell footer[b-i9u0qdr56b]{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.primary-button[b-i9u0qdr56b],.secondary-button[b-i9u0qdr56b]{border-radius:var(--archex-radius-small);padding:10px 15px;font-weight:700;text-decoration:none}.primary-button[b-i9u0qdr56b]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.secondary-button[b-i9u0qdr56b]{background:#fff;color:var(--color-charcoal);border:1px solid #bbb}@media(max-width:700px){.details-shell dl[b-i9u0qdr56b]{grid-template-columns:1fr}.details-shell dl div[b-i9u0qdr56b],.details-shell dl div:nth-child(odd)[b-i9u0qdr56b]{border-right:0}.details-shell dl .full[b-i9u0qdr56b]{grid-column:auto}}
/* /Components/Pages/LibraryReview.razor.rz.scp.css */
.review-shell[b-j7spdau085]{max-width:1160px;margin:0 auto;padding:24px;font-family:var(--font-body);color:var(--color-charcoal)}.review-header[b-j7spdau085]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.review-title-block[b-j7spdau085]{min-width:0}.review-header h1[b-j7spdau085]{margin:3px 0 8px;font:700 26px/1.2 var(--font-heading);overflow-wrap:anywhere}.eyebrow[b-j7spdau085]{margin:0;color:var(--color-primary-dark);font:700 11px/1.2 var(--font-heading);letter-spacing:.08em}.header-meta[b-j7spdau085]{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;color:#666;font-size:12px}.header-actions[b-j7spdau085]{display:flex;gap:8px;flex-wrap:wrap}.review-status[b-j7spdau085]{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--color-panel);font-weight:700;color:#444}.status-approved[b-j7spdau085]{background:#e7f3e8;color:var(--color-success)}.status-rejected[b-j7spdau085]{background:#f8e5e5;color:#a52424}.status-pending-review[b-j7spdau085],.status-in-review[b-j7spdau085]{background:#fff3d2;color:#8a5b00}.analysis-message[b-j7spdau085]{padding:10px 12px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:#fff;margin-bottom:12px}.workspace-section[b-j7spdau085]{margin-top:12px;padding:15px 16px;background:#fff;border:1px solid #ddd;border-radius:var(--archex-radius-small);box-shadow:var(--archex-shadow)}.section-heading[b-j7spdau085]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--color-divider)}.section-heading h2[b-j7spdau085]{margin:2px 0 0;font:700 17px var(--font-heading)}.split-heading[b-j7spdau085]{align-items:center}.compact-value-grid[b-j7spdau085]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.compact-value[b-j7spdau085]{min-width:0;padding:9px 10px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-background)}.compact-value.full[b-j7spdau085]{grid-column:1/-1}.compact-value span[b-j7spdau085]{display:block;margin-bottom:3px;color:var(--color-gunmetal);font-size:11px;font-weight:700}.compact-value strong[b-j7spdau085]{display:block;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.document-value-grid[b-j7spdau085]{grid-template-columns:2fr repeat(3,1fr)}.document-value-grid .full[b-j7spdau085]{grid-column:1/-1}.metadata-edit-grid[b-j7spdau085],.create-grid[b-j7spdau085]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-field[b-j7spdau085]{display:flex;flex-direction:column;gap:5px}.form-field.full[b-j7spdau085]{grid-column:1/-1}.form-field label[b-j7spdau085]{font-size:12px;font-weight:700}.form-field input[b-j7spdau085],.form-field select[b-j7spdau085],.form-field textarea[b-j7spdau085],.organisation-select-row select[b-j7spdau085],.collapsed-content textarea[b-j7spdau085]{width:100%;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:8px 9px;background:#fff;font:13px var(--font-body)}.collapsed-content-row[b-j7spdau085]{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.collapsible-field[b-j7spdau085]{border:1px solid #ddd;border-radius:var(--archex-radius-small);background:var(--color-background)}.collapsible-field summary[b-j7spdau085]{padding:9px 10px;font-weight:700;font-size:12px;cursor:pointer}.collapsible-field[open] summary[b-j7spdau085]{border-bottom:1px solid #ddd}.collapsed-content[b-j7spdau085]{padding:10px}.collapsed-content p[b-j7spdau085]{margin:0;white-space:pre-wrap;font-size:13px;line-height:1.45}.primary-button[b-j7spdau085],.secondary-button[b-j7spdau085],.danger-button[b-j7spdau085]{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--archex-radius-small);padding:8px 11px;font:700 12px var(--font-body);text-decoration:none;cursor:pointer}.compact-button[b-j7spdau085]{padding:6px 9px}.primary-button[b-j7spdau085]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.secondary-button[b-j7spdau085]{background:#fff;color:var(--color-charcoal);border:1px solid #bbb}.danger-button[b-j7spdau085]{background:#fff;color:var(--color-danger);border:1px solid var(--color-danger)}.primary-button:disabled[b-j7spdau085],.secondary-button:disabled[b-j7spdau085],.danger-button:disabled[b-j7spdau085]{opacity:.55;cursor:not-allowed}.organisation-summary-grid[b-j7spdau085]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.organisation-summary-grid>div[b-j7spdau085]{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:var(--color-background)}.organisation-summary-grid small[b-j7spdau085]{color:#666;font-size:11px}.organisation-summary-grid strong[b-j7spdau085]{font-size:13px;overflow-wrap:anywhere}.match-status[b-j7spdau085]{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--color-panel);font-size:11px;font-weight:700}.match-status.exact-match[b-j7spdau085]{background:#e7f3e8;color:var(--color-success)}.match-status.possible-match[b-j7spdau085]{background:#fff3d2;color:#8a5b00}.match-status.organisation-not-found[b-j7spdau085]{background:#f8e5e5;color:#a52424}.match-status.organisation-not-required[b-j7spdau085]{background:#e8eef6;color:#31567a}.organisation-review-tools[b-j7spdau085]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;padding:8px 10px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:var(--color-background)}.organisation-review-tools span[b-j7spdau085]{font-size:12px;color:#555}.approved-match[b-j7spdau085]{display:flex;flex-direction:column;gap:3px;margin-top:9px;padding:10px 11px;border:1px solid #b8d6ba;border-radius:var(--archex-radius-small);background:#edf7ee}.approved-match span[b-j7spdau085]{font-size:11px;color:#5e6a5f}.candidate-list[b-j7spdau085]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.candidate-card[b-j7spdau085]{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);cursor:pointer;background:#fff}.candidate-card:has(input:checked)[b-j7spdau085]{border-color:var(--color-primary);background:var(--color-panel)}.candidate-card span[b-j7spdau085]{display:flex;flex-direction:column;gap:2px}.candidate-card strong[b-j7spdau085]{font-size:13px}.candidate-card small[b-j7spdau085]{color:#666;font-size:11px}.organisation-select-row[b-j7spdau085]{margin-top:9px}.role-selector[b-j7spdau085]{display:flex;gap:6px 12px;flex-wrap:wrap;margin:9px 0 0;padding:9px 10px;border:1px solid #ddd;border-radius:var(--archex-radius-small)}.role-selector legend[b-j7spdau085]{font-weight:700;font-size:12px;padding:0 4px}.role-selector label[b-j7spdau085]{font-size:12px}.organisation-actions[b-j7spdau085]{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.create-organisation[b-j7spdau085]{margin-top:10px;padding:12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-background)}.create-organisation h3[b-j7spdau085]{margin:0 0 10px;font:700 15px var(--font-heading)}.filing-form[b-j7spdau085]{display:grid;grid-template-columns:1fr 1fr;gap:9px}.filing-button[b-j7spdau085]{margin-top:9px}.filing-pending[b-j7spdau085],.filing-gate-message[b-j7spdau085]{padding:9px 10px;border-radius:var(--archex-radius-small);font-size:12px}.filing-pending[b-j7spdau085]{border:1px solid #ddd;background:var(--color-background);color:#666}.filing-gate-message[b-j7spdau085]{margin-top:9px;border:1px solid #d69b26;background:var(--color-panel);color:#6c4a00;font-weight:700}.review-actions[b-j7spdau085]{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:14px}.conflict-panel[b-j7spdau085]{margin-top:12px;padding:12px;border:1px solid #d69b26;border-radius:var(--archex-radius-small);background:#fff8e6}.conflict-actions[b-j7spdau085],.filed-action-row[b-j7spdau085]{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.filing-success[b-j7spdau085]{margin-top:12px;padding:14px;border:1px solid var(--color-success);border-radius:var(--archex-radius-small);background:#e7f3e8}.filing-success-title[b-j7spdau085]{margin-bottom:9px;color:var(--color-success);font:700 17px var(--font-heading)}.filing-success-details[b-j7spdau085]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:0 0 10px}.filing-success-details dt[b-j7spdau085]{color:#526052;font-size:11px;font-weight:700;text-transform:uppercase}.filing-success-details dd[b-j7spdau085]{margin:2px 0 0;font-size:13px;font-weight:700;overflow-wrap:anywhere}.filed-button-replacement[b-j7spdau085]{display:inline-flex;align-items:center;border:1px solid var(--color-success);border-radius:var(--archex-radius-small);padding:8px 11px;background:#e7f3e8;color:var(--color-success);font-weight:700;font-size:12px}.evidence-backdrop[b-j7spdau085]{position:fixed;inset:0;z-index:1090;background:rgba(18,18,18,.38)}.evidence-panel[b-j7spdau085]{position:fixed;top:0;right:0;z-index:1100;width:min(500px,94vw);height:100vh;overflow-y:auto;padding:20px;background:var(--color-background);border-left:1px solid var(--color-divider);box-shadow:-12px 0 32px rgba(18,18,18,.18)}.evidence-panel-header[b-j7spdau085]{position:sticky;top:-20px;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-20px -20px 0;padding:20px;border-bottom:1px solid #ddd;background:#fff}.evidence-panel-header h2[b-j7spdau085]{margin:3px 0 0;font:700 20px var(--font-heading)}.evidence-close[b-j7spdau085]{display:grid;place-items:center;width:34px;height:34px;border:1px solid #bbb;border-radius:var(--archex-radius-small);background:#fff;font-size:24px;cursor:pointer}.evidence-panel-intro[b-j7spdau085]{margin:14px 0;color:#555;font-size:13px}.evidence-panel-list[b-j7spdau085]{display:grid;gap:9px}.evidence-card[b-j7spdau085]{padding:12px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:#fff;box-shadow:var(--archex-shadow)}.evidence-card-heading[b-j7spdau085]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.evidence-field-label[b-j7spdau085]{display:block;margin-bottom:3px;color:#555;font-size:11px;font-weight:700}.evidence-card-heading strong[b-j7spdau085]{display:block;font-size:13px;overflow-wrap:anywhere}.confidence-badge[b-j7spdau085]{display:inline-flex;white-space:nowrap;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:700}.confidence-badge.high[b-j7spdau085]{background:#e7f3e8;color:var(--color-success)}.confidence-badge.review[b-j7spdau085]{background:#fff3d2;color:#8a5b00}.confidence-badge.low[b-j7spdau085]{background:#f8e5e5;color:var(--color-danger)}.confidence-badge.unknown[b-j7spdau085]{background:#f1f1f1;color:#555}.evidence-facts[b-j7spdau085]{margin:9px 0 0;padding-top:8px;border-top:1px solid var(--color-divider)}.evidence-facts>div[b-j7spdau085]{display:grid;grid-template-columns:95px 1fr;gap:8px;padding:3px 0}.evidence-facts dt[b-j7spdau085]{font-size:11px;font-weight:700}.evidence-facts dd[b-j7spdau085]{margin:0;color:#666;font-size:12px;line-height:1.4;overflow-wrap:anywhere}@media(max-width:800px){.review-header[b-j7spdau085]{display:block}.header-actions[b-j7spdau085]{margin-top:12px}.document-value-grid[b-j7spdau085],.compact-value-grid[b-j7spdau085],.organisation-summary-grid[b-j7spdau085]{grid-template-columns:1fr 1fr}.filing-form[b-j7spdau085]{grid-template-columns:1fr}}@media(max-width:650px){.review-shell[b-j7spdau085]{padding:16px}.compact-value-grid[b-j7spdau085],.document-value-grid[b-j7spdau085],.metadata-edit-grid[b-j7spdau085],.collapsed-content-row[b-j7spdau085],.organisation-summary-grid[b-j7spdau085],.candidate-list[b-j7spdau085],.create-grid[b-j7spdau085]{grid-template-columns:1fr}.compact-value.full[b-j7spdau085],.form-field.full[b-j7spdau085]{grid-column:auto}.section-heading[b-j7spdau085],.split-heading[b-j7spdau085]{align-items:flex-start}.organisation-review-tools[b-j7spdau085]{display:block}.organisation-review-tools button[b-j7spdau085]{width:100%;margin-top:8px}.review-actions>*[b-j7spdau085]{flex:1 1 45%}.evidence-panel[b-j7spdau085]{width:100vw}.evidence-card-heading[b-j7spdau085]{display:block}.evidence-card-heading .confidence-badge[b-j7spdau085]{margin-top:7px}.evidence-facts>div[b-j7spdau085]{grid-template-columns:1fr;gap:2px}}
.duplicate-version-panel[b-j7spdau085]{border-color:var(--color-divider);background:var(--color-surface)}.duplicate-confidence[b-j7spdau085]{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--color-panel);color:var(--color-primary-dark);font-size:11px;font-weight:700}.duplicate-existing-record[b-j7spdau085]{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:8px}.duplicate-existing-record>div[b-j7spdau085]{display:flex;min-width:0;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:var(--color-background)}.duplicate-existing-record small[b-j7spdau085]{color:#666;font-size:11px}.duplicate-existing-record strong[b-j7spdau085]{font-size:13px;overflow-wrap:anywhere}.duplicate-reasons[b-j7spdau085]{margin-top:9px;padding:9px 10px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:#fff}.duplicate-reasons>strong[b-j7spdau085]{font-size:12px}.duplicate-reasons ul[b-j7spdau085]{margin:6px 0 0;padding-left:18px;color:#555;font-size:12px;line-height:1.45}.duplicate-decision[b-j7spdau085]{margin-top:9px;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#edf7ee;color:#315c34;font-size:12px}.duplicate-actions[b-j7spdau085]{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.duplicate-existing-action[b-j7spdau085]{justify-content:flex-start;margin-top:0}@media(max-width:800px){.duplicate-existing-record[b-j7spdau085]{grid-template-columns:1fr 1fr}}@media(max-width:650px){.duplicate-existing-record[b-j7spdau085]{grid-template-columns:1fr}.duplicate-actions>*[b-j7spdau085]{flex:1 1 100%}}

.type-metadata-panel[b-j7spdau085],.citation-panel[b-j7spdau085],.provenance-panel[b-j7spdau085]{margin-top:12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;padding:12px}.type-metadata-panel h3[b-j7spdau085],.citation-panel h3[b-j7spdau085]{margin:0;font-family:var(--font-heading);font-size:15px;color:var(--color-charcoal)}.citation-heading[b-j7spdau085]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.citation-heading span[b-j7spdau085]{font:700 10px var(--font-heading);letter-spacing:.08em;color:var(--color-primary)}.citation-status[b-j7spdau085]{font:700 11px var(--font-body);padding:4px 8px;border-radius:999px;background:var(--color-panel);color:var(--color-charcoal)}.citation-values[b-j7spdau085]{display:grid;gap:8px}.citation-values>div[b-j7spdau085]{display:grid;gap:2px;padding:8px 10px;background:var(--color-background);border-radius:var(--archex-radius-small)}.citation-values span[b-j7spdau085],.provenance-grid span[b-j7spdau085]{font-size:11px;color:var(--color-gunmetal)}.citation-values strong[b-j7spdau085],.provenance-grid strong[b-j7spdau085]{font-size:13px;line-height:1.35;color:var(--color-charcoal)}.citation-actions[b-j7spdau085]{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.citation-warning[b-j7spdau085]{margin:8px 0 0;font-size:12px;color:var(--color-primary-dark)}.provenance-panel summary[b-j7spdau085]{cursor:pointer;font:700 13px var(--font-heading);color:var(--color-charcoal)}.provenance-grid[b-j7spdau085]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.provenance-grid>div[b-j7spdau085]{display:grid;gap:2px;padding:7px 9px;background:var(--color-background);border-radius:var(--archex-radius-small)}@media(max-width:800px){.provenance-grid[b-j7spdau085]{grid-template-columns:1fr}.citation-heading[b-j7spdau085]{align-items:center}}

/* The category and date that used to sit inside the title block. Moved out so the header is the
   same three lines on every page in ArchEx; kept, because knowing when a document arrived is part
   of judging whether its review is still current. */
.review-meta-line[b-j7spdau085] {
    margin: -6px 0 var(--space-4, 24px);
    color: var(--archex-faint, var(--color-gunmetal));
    font-size: var(--archex-text-sm, 13.5px);
}
/* /Components/Pages/Messages.razor.rz.scp.css */
/* Tokens only. */

/* Two panes side by side, the way every messaging application anybody already knows is laid out.
   The whole thing sits in the viewport and the panes scroll inside themselves, rather than the
   page growing and the send box marching off the bottom of the screen. */
.messages-layout[b-7tgq5yn05k] {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: var(--space-4, 24px);
    align-items: stretch;
    height: calc(100dvh - 230px);
    min-height: 420px;
}

/* ---- the list --------------------------------------------------------------------------------- */

.thread-list[b-7tgq5yn05k] {
    overflow-y: auto;
    padding: 8px;
}

.thread[b-7tgq5yn05k] {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 10px;
    border: 0;
    border-radius:var(--archex-radius-medium);
    background: transparent;
    color: var(--color-charcoal);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.thread:hover[b-7tgq5yn05k] { background: var(--color-panel); }

.thread.is-open[b-7tgq5yn05k] {
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
}

.thread-avatar[b-7tgq5yn05k] {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius:var(--archex-radius-medium);
    background: var(--color-charcoal);
    color: var(--color-surface);
    font-family: var(--font-heading);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .02em;
}

.thread.is-open .thread-avatar[b-7tgq5yn05k] { background: var(--color-primary-dark); }

.thread-copy[b-7tgq5yn05k] { display: grid; gap: 3px; min-width: 0; }

.thread-top[b-7tgq5yn05k] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}

.thread-top strong[b-7tgq5yn05k] { font-size: var(--archex-text-base, 15px); font-weight: 700; }

.thread-top time[b-7tgq5yn05k] {
    flex-shrink: 0;
    color: var(--archex-faint, var(--color-gunmetal));
    font-size: var(--archex-text-xs, 12px);
}

.thread-preview[b-7tgq5yn05k] {
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
}

/* The same badge language as the launcher tiles, so a number in a circle means one thing
   everywhere in ArchEx. */
.thread-unread[b-7tgq5yn05k] {
    display: grid;
    place-items: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--color-danger);
    color: var(--color-surface);
    font-size: .68rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* ---- the thread ------------------------------------------------------------------------------- */

.thread-view[b-7tgq5yn05k] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    padding: 0;
    overflow: hidden;
}

.thread-header[b-7tgq5yn05k] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-divider);
}

.thread-header strong[b-7tgq5yn05k] { display: block; font-size: var(--archex-text-md, 17px); }
.thread-header small[b-7tgq5yn05k] { color: var(--color-gunmetal); font-size: var(--archex-text-sm, 13.5px); }

.thread-scroll[b-7tgq5yn05k] {
    overflow-y: auto;
    padding: 20px;
    /* Scrolling stays inside the thread instead of dragging the whole page with it. */
    overscroll-behavior: contain;
}

.day-divider[b-7tgq5yn05k] {
    display: grid;
    place-items: center;
    margin: 14px 0;
}

.day-divider span[b-7tgq5yn05k] {
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 700;
}

.bubble-row[b-7tgq5yn05k] { display: flex; margin-bottom: 8px; }
.bubble-row.is-mine[b-7tgq5yn05k] { justify-content: flex-end; }

.bubble[b-7tgq5yn05k] {
    position: relative;
    max-width: min(62ch, 76%);
    padding: 9px 14px 20px;
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    color: var(--color-charcoal);
    font-size: var(--archex-text-base, 15px);
    line-height: 1.45;
}

/* Your own words in the brand colour, theirs in the neutral — the convention every phone uses,
   so which side is which needs no explaining. */
.bubble-row.is-mine .bubble[b-7tgq5yn05k] {
    background: var(--color-primary-dark);
    color: var(--color-surface);
    border-bottom-right-radius: 5px;
}

.bubble-row:not(.is-mine) .bubble[b-7tgq5yn05k] { border-bottom-left-radius: 5px; }

.bubble-sender[b-7tgq5yn05k] {
    display: block;
    margin-bottom: 2px;
    color: var(--color-primary-dark);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
}

/* Whitespace is kept: a message typed on three lines was typed on three lines. */
.bubble-body[b-7tgq5yn05k] { white-space: pre-wrap; word-break: break-word; }

.bubble-withdrawn[b-7tgq5yn05k] { opacity: .65; }

.bubble-time[b-7tgq5yn05k] {
    position: absolute;
    right: 12px;
    bottom: 5px;
    font-size: 10.5px;
    opacity: .6;
}

/* ---- writing ---------------------------------------------------------------------------------- */

.composer[b-7tgq5yn05k] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
    padding: 14px 20px;
    border-top: 1px solid var(--color-divider);
    background: var(--color-surface);
}

.composer textarea[b-7tgq5yn05k] {
    width: 100%;
    min-height: 46px;
    max-height: 160px;
    padding: 12px 14px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font: inherit;
    line-height: 1.45;
    resize: vertical;
}

.composer textarea:focus-visible[b-7tgq5yn05k] {
    border-color: var(--color-primary);
    outline: 3px solid color-mix(in srgb, var(--color-primary) 22%, transparent);
    outline-offset: 0;
}

/* ---- starting one ----------------------------------------------------------------------------- */

.new-panel[b-7tgq5yn05k] { margin-bottom: var(--space-4, 24px); }

.colleague-grid[b-7tgq5yn05k] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 10px;
}

.colleague[b-7tgq5yn05k] {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, transform .15s ease;
}

.colleague:hover[b-7tgq5yn05k] { border-color: var(--color-primary); transform: translateY(-2px); }

.colleague-avatar[b-7tgq5yn05k] {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius:var(--archex-radius-medium);
    background: var(--color-primary-dark);
    color: var(--color-surface);
    font-family: var(--font-heading);
    font-size: .78rem;
    font-weight: 900;
}

.colleague-copy[b-7tgq5yn05k] { display: grid; gap: 2px; min-width: 0; }
.colleague-copy strong[b-7tgq5yn05k] { font-size: var(--archex-text-base, 15px); }
.colleague-copy small[b-7tgq5yn05k] { color: var(--color-gunmetal); font-size: var(--archex-text-xs, 12px); }

/* ---- nothing here yet -------------------------------------------------------------------------- */

.msg-empty[b-7tgq5yn05k] { padding: 28px 20px; text-align: center; }
.msg-empty-centre[b-7tgq5yn05k] { display: grid; place-content: center; height: 100%; }
.msg-empty p[b-7tgq5yn05k] { margin: 0 0 6px; }
.msg-empty-copy[b-7tgq5yn05k] { color: var(--color-gunmetal); font-size: var(--archex-text-sm, 13.5px); }
.thread-nothing[b-7tgq5yn05k] { text-align: center; padding: 40px 0; }

/* ---- narrow ------------------------------------------------------------------------------------ */
/*
   On a phone the two panes become one: the list until something is picked, then the thread. Side by
   side at 375px would give a 160px-wide conversation, which is unusable for both.
*/
@media (max-width: 860px) {
    .messages-layout[b-7tgq5yn05k] {
        grid-template-columns: 1fr;
        height: auto;
    }

    .thread-list[b-7tgq5yn05k] { max-height: 44vh; }
    .thread-view[b-7tgq5yn05k] { min-height: 58vh; }
}
/* /Components/Pages/MobileFieldCompanion.razor.rz.scp.css */
/* Field consolidation: Check in / out is the thin front door to Field Day. */
.mobile-field-page[b-gqvv02ncml] {
    max-width: 620px;
    margin: 0 auto;
    padding: 24px 18px 60px;
    display: grid;
    gap: 14px;
}

.mobile-field-header h1[b-gqvv02ncml] { margin: 4px 0 0; font-family:var(--font-heading); }

.section-label[b-gqvv02ncml] {
    color: var(--color-primary-dark);
    font:800 .66rem var(--font-heading);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.mobile-state[b-gqvv02ncml], .mobile-message[b-gqvv02ncml] {
    padding: 16px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    color: var(--color-gunmetal);
}

.mobile-message[b-gqvv02ncml] { border-left: 4px solid var(--color-primary); }

.resume-card[b-gqvv02ncml] {
    display: grid;
    gap: 12px;
    padding: 18px;
    border: 1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
}

    .resume-card h2[b-gqvv02ncml] { margin: 4px 0; }
    .resume-card p[b-gqvv02ncml] { margin: 0; color: var(--color-gunmetal); font-size: .84rem; }
    .resume-card.unavailable[b-gqvv02ncml] { border-color: var(--color-divider); background: var(--color-panel); }

.project-choice-list[b-gqvv02ncml] { display: grid; gap: 10px; }

.project-choice[b-gqvv02ncml] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: #fff;
}

.project-choice-copy[b-gqvv02ncml] {
    display: grid;
    gap: 2px;
    min-width: 0;
    border: 0;
    background: none;
    padding: 0;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.project-choice-reference[b-gqvv02ncml] { color: var(--color-primary-dark); font:800 .64rem var(--font-heading); letter-spacing: .08em; text-transform: uppercase; }
.project-choice-copy strong[b-gqvv02ncml] { font-size: .95rem; }
.project-choice-copy small[b-gqvv02ncml] { overflow: hidden; color: #666; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }

.start-day-button[b-gqvv02ncml] {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--color-primary);
    border-radius:var(--archex-radius-small);
    background: var(--color-primary);
    color: #fff;
    font:800 .78rem var(--font-body);
    cursor: pointer;
    white-space: nowrap;
}

    .start-day-button:disabled[b-gqvv02ncml] { opacity: .6; cursor: default; }

@media (max-width: 520px) {
    .project-choice[b-gqvv02ncml] { grid-template-columns: 1fr; }
    .start-day-button[b-gqvv02ncml] { width: 100%; }
}
/* /Components/Pages/MudMap.razor.rz.scp.css */
/* THE A3 MUD MAP SHEET.

   Adam Deane: "I would love a print mud map button that comes up to a print screen in out logo and
   style, A3 for mud maps, that we can send to our printer."

   Sized in MILLIMETRES throughout, because the sheet is a physical object. A3 landscape is
   420 x 297 mm; with the 10 mm @page margin the printable area is 400 x 277 mm, and every height
   below adds up to that. Getting this wrong does not error - it silently spills onto a second
   sheet, which on a mud map means the bottom of the site is on a page nobody carries. */

.mudmap-loading[b-s7hjji5ffr] { padding: 24px; color: var(--color-gunmetal, #5a615d); }

/* The only thing on the page that does not print. */
.mudmap-bar[b-s7hjji5ffr] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 14px;
    border-bottom: 1px solid var(--color-hairline, #d8dbd9);
    background: #fff;
}

.mudmap-bar-note[b-s7hjji5ffr] { font-size: .74rem; color: var(--color-gunmetal, #5a615d); }

.mudmap-sheet[b-s7hjji5ffr] {
    width: 400mm;
    height: 277mm;
    margin: 12px auto;
    padding: 0;
    display: grid;
    grid-template-rows: 26mm 1fr 10mm;
    background: #fff;
    color: #111;
    box-shadow: 0 2px 18px rgba(0, 0, 0, .18);
    font-family: Arial, Helvetica, sans-serif;
}

/* ---- title block ---- */
.mudmap-head[b-s7hjji5ffr] {
    display: grid;
    grid-template-columns: 52mm 1fr auto;
    align-items: center;
    gap: 8mm;
    padding: 4mm 6mm;
    border-bottom: 0.6mm solid #111;
}

.mudmap-logo[b-s7hjji5ffr] { max-width: 52mm; max-height: 17mm; object-fit: contain; }

.mudmap-title h1[b-s7hjji5ffr] { margin: 0; font-size: 6.5mm; line-height: 1.1; }
.mudmap-title p[b-s7hjji5ffr] { margin: 1mm 0 0; font-size: 3.4mm; color: #444; }

.mudmap-meta[b-s7hjji5ffr] { display: flex; gap: 7mm; margin: 0; }
.mudmap-meta div[b-s7hjji5ffr] { display: grid; gap: 1mm; }
.mudmap-meta dt[b-s7hjji5ffr] { font-size: 2.6mm; letter-spacing: .08em; text-transform: uppercase; color: #666; }
.mudmap-meta dd[b-s7hjji5ffr] { margin: 0; font-size: 3.4mm; min-width: 26mm; }

/* A ruled box, because a person fills this in with a pen on a bonnet. */
.mudmap-blank[b-s7hjji5ffr] { border-bottom: 0.3mm solid #111; min-height: 5mm; }

/* ---- map and side column ---- */
.mudmap-body[b-s7hjji5ffr] {
    display: grid;
    grid-template-columns: 1fr 58mm;
    gap: 4mm;
    padding: 4mm 6mm;
    min-height: 0;
}

.mudmap-canvas[b-s7hjji5ffr] {
    border: 0.4mm solid #111;
    min-height: 0;
    height: 100%;
    background: #fff;
}

.mudmap-side[b-s7hjji5ffr] { display: grid; grid-template-rows: 18mm auto 1fr; gap: 3mm; min-height: 0; }

.mudmap-north[b-s7hjji5ffr] { width: 12mm; height: 17mm; justify-self: center; }

.mudmap-legend h2[b-s7hjji5ffr], .mudmap-notes h2[b-s7hjji5ffr] {
    margin: 0 0 2mm;
    font-size: 2.8mm;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #666;
}

.mudmap-legend div[b-s7hjji5ffr] { display: flex; align-items: center; gap: 2.5mm; font-size: 3mm; margin-bottom: 1.4mm; }

.mudmap-swatch[b-s7hjji5ffr] {
    width: 4mm;
    height: 4mm;
    flex: none;
    border: 0.3mm solid #111;
}

.mudmap-none[b-s7hjji5ffr] { margin: 0; font-size: 3mm; color: #666; }

.mudmap-notes[b-s7hjji5ffr] { display: grid; grid-template-rows: auto 1fr; min-height: 0; }

/* Ruled lines rather than blank space: a mud map that comes back with writing all over the map is
   a mud map with nowhere to write. */
.mudmap-lines[b-s7hjji5ffr] {
    border: 0.3mm solid #111;
    background-image: repeating-linear-gradient(
        to bottom, transparent 0, transparent 7mm, #bbb 7mm, #bbb 7.3mm);
}

/* ---- footer ---- */
.mudmap-foot[b-s7hjji5ffr] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6mm;
    padding: 0 6mm;
    border-top: 0.4mm solid #111;
    font-size: 2.8mm;
    color: #444;
}

/* ---- the printer ----------------------------------------------------------------------------
   A3 landscape is stated here, so the sheet comes out right even if somebody prints straight from
   the browser menu without touching the page setup. The toolbar and the app's chrome go. */
@media print {
    @page { size: A3 landscape; margin: 10mm; }

    .mudmap-bar[b-s7hjji5ffr] { display: none !important; }

    .mudmap-sheet[b-s7hjji5ffr] {
        margin: 0;
        box-shadow: none;
        width: 100%;
        height: 100%;
    }

    /* Background colours print off by default in most browsers, and a legend swatch with no colour
       is a legend that says nothing. */
    .mudmap-swatch[b-s7hjji5ffr], .mudmap-lines[b-s7hjji5ffr] {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
/* /Components/Pages/ObjectRegister.razor.rz.scp.css */
/* The register is a page of numbers, so it is laid out as one: tabular figures, right-aligned
   counts, and the object total given the weight it has - it is the number the invoice is built on.
   The depth profile is the first block because it is the only thing here with archaeological
   substance; the totals above it are context for reading it. */

.register-page[b-g5pgwq7hrb] { display: grid; gap: 18px; padding: 20px 0 40px; }

.register-head[b-g5pgwq7hrb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

    .register-head h2[b-g5pgwq7hrb] { margin: 2px 0 4px; }
    .register-sub[b-g5pgwq7hrb] { margin: 0; color: var(--color-gunmetal, #5a615d); }

/* ---- filter ------------------------------------------------------------------------------- */

.register-filter[b-g5pgwq7hrb] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    align-items: center;
}

.register-filter-set[b-g5pgwq7hrb] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

.register-filter-label[b-g5pgwq7hrb] {
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-gunmetal, #5a615d);
    margin-right: 2px;
}

.register-chip[b-g5pgwq7hrb] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    border: 1px solid var(--color-divider, #e2e0da);
    background: var(--color-surface, #fff);
    color: inherit;
    font: inherit;
    font-size: .82rem;
    cursor: pointer;
}

    .register-chip:hover[b-g5pgwq7hrb] { border-color: var(--archex-accent, #F18F3C); }

    .register-chip.is-on[b-g5pgwq7hrb] {
        border-color: var(--archex-accent, #F18F3C);
        background: rgba(241, 143, 60, .14);
        font-weight: 600;
    }

.register-chip-n[b-g5pgwq7hrb] {
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    color: var(--color-gunmetal, #5a615d);
}

/* ---- headline numbers --------------------------------------------------------------------- */

.register-totals[b-g5pgwq7hrb] { display: flex; flex-wrap: wrap; gap: 10px; }

    .register-totals div[b-g5pgwq7hrb] {
        display: grid;
        gap: 2px;
        padding: 12px 18px;
        min-width: 116px;
        border: 1px solid var(--color-divider, #e2e0da);
        border-radius: 10px;
        background: var(--color-surface, #fff);
    }

    .register-totals strong[b-g5pgwq7hrb] { font-size: 1.5rem; font-variant-numeric: tabular-nums; }

    .register-totals span[b-g5pgwq7hrb] {
        font-size: .7rem;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--color-gunmetal, #5a615d);
    }

    /* The billable number. */
    .register-totals .is-headline[b-g5pgwq7hrb] {
        border-color: var(--archex-accent, #F18F3C);
        background: rgba(241, 143, 60, .10);
    }

/* ---- blocks ------------------------------------------------------------------------------- */

.register-block[b-g5pgwq7hrb] {
    display: grid;
    gap: 12px;
    padding: 16px 18px 18px;
    border: 1px solid var(--color-divider, #e2e0da);
    border-radius: 12px;
    background: var(--color-surface, #fff);
}

.register-block-head h3[b-g5pgwq7hrb] { margin: 0 0 2px; font-size: 1.02rem; }
.register-block-head p[b-g5pgwq7hrb] { margin: 0; font-size: .85rem; color: var(--color-gunmetal, #5a615d); }

.register-note[b-g5pgwq7hrb] {
    margin: 0;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid var(--color-divider, #e2e0da);
    background: var(--color-hairline, #f2f1ec);
    font-size: .84rem;
    line-height: 1.55;
    max-width: 82ch;
}

/* ---- the depth profile -------------------------------------------------------------------- */

.depth-profile[b-g5pgwq7hrb] { display: grid; gap: 3px; }

.depth-row[b-g5pgwq7hrb] {
    display: grid;
    grid-template-columns: 74px 1fr 64px 108px;
    align-items: center;
    gap: 10px;
    padding: 3px 4px;
    border-radius: 6px;
}

    .depth-row.is-peak[b-g5pgwq7hrb] { background: rgba(241, 143, 60, .10); }

.depth-label[b-g5pgwq7hrb] {
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
    color: var(--color-gunmetal, #5a615d);
}

    .depth-label em[b-g5pgwq7hrb] { font-style: normal; font-size: .68rem; opacity: .75; margin-left: 2px; }

.depth-track[b-g5pgwq7hrb] {
    display: block;
    height: 17px;
    border-radius: 3px;
    background: var(--color-hairline, #f0efea);
    overflow: hidden;
}

.depth-bar[b-g5pgwq7hrb] {
    display: block;
    height: 100%;
    border-radius: 3px;
    background: var(--archex-accent, #F18F3C);
    min-width: 2px;
}

.depth-objects[b-g5pgwq7hrb] {
    font-variant-numeric: tabular-nums;
    text-align: right;
    font-weight: 600;
    font-size: .86rem;
}

.depth-mean[b-g5pgwq7hrb] {
    font-size: .74rem;
    color: var(--color-gunmetal, #5a615d);
    font-variant-numeric: tabular-nums;
}

    .depth-mean em[b-g5pgwq7hrb] { font-style: normal; opacity: .7; margin-left: 5px; }

/* ---- the splits --------------------------------------------------------------------------- */

.register-splits[b-g5pgwq7hrb] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 14px;
}

.split-body[b-g5pgwq7hrb] { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }

.donut[b-g5pgwq7hrb] { width: 116px; height: 116px; flex: none; }
.donut-hole[b-g5pgwq7hrb] { fill: var(--color-surface, #fff); }

.split-table[b-g5pgwq7hrb] { border-collapse: collapse; font-size: .85rem; flex: 1 1 200px; }
.split-table td[b-g5pgwq7hrb] { padding: 4px 8px 4px 0; }
.split-table .is-number[b-g5pgwq7hrb] { text-align: right; font-variant-numeric: tabular-nums; }
.split-table em[b-g5pgwq7hrb] { font-style: normal; font-size: .7rem; opacity: .7; margin-left: 4px; }

.split-key[b-g5pgwq7hrb] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 3px;
    margin-right: 7px;
    vertical-align: baseline;
}

/* ---- the unit table ----------------------------------------------------------------------- */

.register-table[b-g5pgwq7hrb] {
    width: 100%;
    border-collapse: collapse;
    font-size: .87rem;
}

    .register-table th[b-g5pgwq7hrb],
    .register-table td[b-g5pgwq7hrb] { padding: 8px 10px; text-align: left; }

    .register-table thead th[b-g5pgwq7hrb] {
        font-size: .68rem;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--color-gunmetal, #5a615d);
        border-bottom: 1px solid var(--color-divider, #e2e0da);
        white-space: nowrap;
    }

    /* Counts line up under each other or they cannot be compared down a column. */
    .register-table .is-number[b-g5pgwq7hrb] { text-align: right; font-variant-numeric: tabular-nums; }

    .register-table tbody tr.register-unit[b-g5pgwq7hrb] { cursor: pointer; border-top: 1px solid var(--color-hairline, #f0efea); }
    .register-table tbody tr.register-unit:hover[b-g5pgwq7hrb] { background: var(--color-hairline, #f6f5f1); }
    .register-table tbody tr.register-unit.is-open[b-g5pgwq7hrb] { background: rgba(241, 143, 60, .08); }

    .register-table tfoot td[b-g5pgwq7hrb] {
        border-top: 2px solid var(--color-divider, #e2e0da);
        font-weight: 700;
    }

/* A blank is a finding here, so it is legible rather than empty. */
.register-unknown[b-g5pgwq7hrb] { color: var(--color-gunmetal, #5a615d); opacity: .7; font-size: .82rem; }

.register-flag[b-g5pgwq7hrb] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: .66rem;
    background: rgba(201, 162, 39, .18);
    cursor: help;
    white-space: nowrap;
}

/* ---- the spits, inside the unit they belong to -------------------------------------------- */

.register-spits > td[b-g5pgwq7hrb] { padding: 4px 10px 14px 24px; background: rgba(0, 0, 0, .02); }

.spit-list[b-g5pgwq7hrb] { display: grid; gap: 3px; }

.spit-row[b-g5pgwq7hrb] {
    display: grid;
    grid-template-columns: 62px 78px minmax(80px, 1fr) 52px 2fr;
    align-items: center;
    gap: 10px;
    font-size: .8rem;
}

.spit-name[b-g5pgwq7hrb] { color: var(--color-gunmetal, #5a615d); }
.spit-depth[b-g5pgwq7hrb] { font-variant-numeric: tabular-nums; color: var(--color-gunmetal, #5a615d); }
.spit-objects[b-g5pgwq7hrb] { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.spit-notes[b-g5pgwq7hrb] { font-size: .76rem; color: var(--color-gunmetal, #5a615d); }

.spit-source[b-g5pgwq7hrb] {
    margin: 10px 0 0;
    font-size: .76rem;
    line-height: 1.5;
    color: var(--color-gunmetal, #5a615d);
    max-width: 90ch;
}

/* ---- what is missing ---------------------------------------------------------------------- */

.register-gaps[b-g5pgwq7hrb] { margin: 0; padding-left: 18px; display: grid; gap: 9px; }
.register-gaps li[b-g5pgwq7hrb] { font-size: .85rem; line-height: 1.55; max-width: 88ch; }

/* ---- phone -------------------------------------------------------------------------------- */

@media (max-width: 820px) {
    .register-totals div[b-g5pgwq7hrb] { min-width: 96px; padding: 10px 13px; }
    .register-totals strong[b-g5pgwq7hrb] { font-size: 1.25rem; }

    /* The table is wider than a phone and staying a table is the point - it scrolls sideways
       rather than reflowing into a shape nobody can compare down a column. */
    .register-block[b-g5pgwq7hrb] { padding: 14px 12px 16px; }
    .register-table[b-g5pgwq7hrb] { display: block; overflow-x: auto; white-space: nowrap; }

    .depth-row[b-g5pgwq7hrb] { grid-template-columns: 62px 1fr 50px; }
    .depth-mean[b-g5pgwq7hrb] { display: none; }

    .spit-row[b-g5pgwq7hrb] { grid-template-columns: 52px 70px 1fr 46px; }
    .spit-notes[b-g5pgwq7hrb] { display: none; }
}

/* A unit with a surveyed position can go on a map; one without cannot, and the difference is worth
   half a character rather than a column. */
.register-pin[b-g5pgwq7hrb] {
    margin-left: 6px;
    font-size: .72rem;
    color: var(--archex-accent, #F18F3C);
    cursor: help;
}
/* /Components/Pages/Organisations.razor.rz.scp.css */
.organisations-page[b-9h65achukc] { max-width: 1500px; margin: auto; padding: 40px; font-family:var(--font-body); color: var(--color-charcoal); }
.organisations-header[b-9h65achukc] { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; margin-bottom:26px; }
.eyebrow[b-9h65achukc] { margin:0 0 12px; color:var(--color-primary-dark); font-size:12px; font-weight:800; letter-spacing:3px; text-transform:uppercase; }
.organisations-header h1[b-9h65achukc] { margin:8px 0 12px; font-size:var(--archex-text-2xl); font-weight:800; line-height:1; letter-spacing:-2px; }
.intro[b-9h65achukc] { max-width:720px; margin:0; color:var(--color-gunmetal); font-size:16px; line-height:1.6; }
.primary-button[b-9h65achukc],.secondary-button[b-9h65achukc] { padding:0 24px; border-radius:var(--archex-radius-small); font:750 14px var(--font-body); cursor:pointer; }
.primary-button[b-9h65achukc] { border:1px solid var(--color-primary-dark); background:var(--color-primary-dark); color:#fff; box-shadow:var(--archex-shadow-hover); }
.primary-button:hover[b-9h65achukc] { background:var(--color-primary-dark); }
.secondary-button[b-9h65achukc] { border:1px solid var(--color-divider); background:#fff; color:var(--color-charcoal); }
.secondary-button:hover[b-9h65achukc] { border-color:var(--color-primary-dark); }
.button-link[b-9h65achukc] { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; box-sizing:border-box; }
.summary-grid[b-9h65achukc] { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
.summary-grid article[b-9h65achukc] { padding:20px; border:1px solid rgba(22,20,18,.08); border-radius:var(--archex-radius-medium); background:#fff; box-shadow:var(--archex-shadow); }
.summary-grid strong[b-9h65achukc] { display:block; font-size:28px; margin-bottom:5px; }
.summary-grid span[b-9h65achukc] { color:var(--color-gunmetal); font-size:13px; }
.organisations-toolbar[b-9h65achukc] { display:grid; grid-template-columns:minmax(260px,520px) minmax(210px,280px) auto; align-items:center; gap:14px; margin-bottom:26px; }
.search-field[b-9h65achukc] { position:relative; }
.search-field span[b-9h65achukc] { position:absolute; left:16px; top:13px; color:var(--color-gunmetal); font-size:22px; }
.organisations-toolbar input[b-9h65achukc],.type-filter[b-9h65achukc] { width:100%; min-height:46px; padding:0 16px; border:1px solid var(--color-divider); border-radius:var(--archex-radius-small); background:#fff; font:14px var(--font-body); outline:none; box-sizing:border-box; }
.organisations-toolbar input[b-9h65achukc] { padding-left:44px; }
.organisations-toolbar input:focus[b-9h65achukc],.type-filter:focus[b-9h65achukc] { border-color:var(--color-primary-dark); box-shadow:0 0 0 3px rgba(196,90,28,.12); }
.record-count[b-9h65achukc] { color:var(--color-gunmetal); font-size:14px; text-align:right; }
.organisation-form-card[b-9h65achukc] { margin-bottom:30px; padding:32px; border:1px solid rgba(22,20,18,.08); border-radius:var(--archex-radius-large); background:rgba(255,255,255,.96); box-shadow:var(--archex-shadow-hover); }
.form-heading[b-9h65achukc] { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:28px; }
.form-heading h2[b-9h65achukc] { margin:0; font-size:32px; }
.close-button[b-9h65achukc] { display:grid; place-items:center; width:42px; height:42px; border:0; border-radius:50%; background:#f0ebe5; color:var(--color-charcoal); font-size:24px; cursor:pointer; }
.form-grid[b-9h65achukc] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-field[b-9h65achukc] { display:flex; flex-direction:column; gap:8px; }
.form-field.full-width[b-9h65achukc] { grid-column:1/-1; }
.form-field label[b-9h65achukc] { color:var(--color-charcoal); font-size:12px; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.form-field input[b-9h65achukc],.form-field select[b-9h65achukc],.form-field textarea[b-9h65achukc] { width:100%; min-height:45px; padding:11px 13px; border:1px solid var(--color-divider); border-radius:var(--archex-radius-small); background:var(--color-surface); color:var(--color-charcoal); font:inherit; outline:none; box-sizing:border-box; }
.form-field textarea[b-9h65achukc] { min-height:110px; resize:vertical; }
.form-actions[b-9h65achukc] { display:flex; justify-content:flex-end; gap:12px; margin-top:28px; }
.organisation-grid[b-9h65achukc] { display:grid; grid-template-columns:repeat(auto-fill,minmax(430px,1fr)); gap:20px; }
.organisation-card[b-9h65achukc] { display:flex; gap:20px; padding:24px; border:1px solid rgba(22,20,18,.08); border-radius:var(--archex-radius-large); background:#fff; box-shadow:var(--archex-shadow); transition:transform .15s ease,box-shadow .15s ease; }
.organisation-card:hover[b-9h65achukc] { transform:translateY(-2px); box-shadow:var(--archex-shadow-hover); }
.organisation-monogram[b-9h65achukc] { display:flex; justify-content:center; align-items:center; flex:0 0 70px; width:70px; height:70px; border-radius:var(--archex-radius-large); background:#f0e7df; color:var(--color-primary-dark); font-size:22px; font-weight:800; }
.organisation-information[b-9h65achukc] { flex:1; min-width:0; }
.card-topline[b-9h65achukc] { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.organisation-information h2[b-9h65achukc] { margin:9px 0 6px; font-size:23px; }
.location[b-9h65achukc] { margin:0; color:var(--color-gunmetal); }
.contact-line[b-9h65achukc] { display:flex; flex-wrap:wrap; gap:6px 16px; min-height:20px; margin-top:10px; color:var(--color-gunmetal); font-size:13px; }
.organisation-type[b-9h65achukc] { color:var(--color-primary-dark); font-size:11px; font-weight:800; letter-spacing:1.7px; text-transform:uppercase; }
.organisation-footer[b-9h65achukc] { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:20px; }
.project-count[b-9h65achukc] { color:var(--color-gunmetal); font-size:13px; font-weight:700; }
.status-pill[b-9h65achukc] { padding:6px 10px; border-radius:999px; font-size:11px; font-weight:800; }
.status-pill.current[b-9h65achukc] { background:#e5f5eb; color:#24633c; }

.validation-message[b-9h65achukc] { color:#b42318; font-size:12px; }
@media(max-width:900px){.summary-grid[b-9h65achukc]{grid-template-columns:repeat(2,1fr)}.organisations-toolbar[b-9h65achukc]{grid-template-columns:1fr 1fr}.record-count[b-9h65achukc]{text-align:left}}
@media(max-width:760px){.organisations-page[b-9h65achukc]{padding:24px 18px 50px}.organisations-header[b-9h65achukc]{flex-direction:column}.organisations-header .primary-button[b-9h65achukc]{width:100%}.organisations-header h1[b-9h65achukc]{font-size:44px}.summary-grid[b-9h65achukc]{grid-template-columns:1fr 1fr}.organisations-toolbar[b-9h65achukc]{grid-template-columns:1fr}.form-grid[b-9h65achukc]{grid-template-columns:1fr}.form-field.full-width[b-9h65achukc]{grid-column:auto}.form-actions[b-9h65achukc]{flex-direction:column-reverse}.form-actions button[b-9h65achukc]{width:100%}.organisation-grid[b-9h65achukc]{grid-template-columns:1fr}.organisation-footer[b-9h65achukc]{align-items:flex-start;flex-direction:column}.button-link[b-9h65achukc]{width:100%}}
.relationship-summary[b-9h65achukc]{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:16px;padding:12px 0;border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);color:var(--color-gunmetal);font-size:12px}.relationship-summary strong[b-9h65achukc]{color:var(--color-charcoal);font-size:14px}.last-activity[b-9h65achukc]{display:flex;justify-content:space-between;gap:12px;margin-top:12px;color:var(--color-gunmetal);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.last-activity strong[b-9h65achukc]{color:var(--color-charcoal);font-size:12px;text-transform:none;letter-spacing:0}.primary-contact-line[b-9h65achukc]{display:flex;align-items:center;gap:10px;margin-top:13px}.contact-dot[b-9h65achukc]{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f0e7df;color:var(--color-primary-dark);font-size:11px;font-weight:800}.primary-contact-line div[b-9h65achukc]{display:flex;flex-direction:column}.primary-contact-line small[b-9h65achukc]{color:var(--color-gunmetal);font-size:10px;text-transform:uppercase;letter-spacing:.7px}.primary-contact-line strong[b-9h65achukc]{font-size:13px}
/* 14 September 2026: a demonstration identity listed as history says so. */
.demonstration-entry[b-9h65achukc]{display:block;margin:4px 0 6px;color:var(--color-primary-dark);font-size:12px;font-weight:600}
/* /Components/Pages/OrganisationWorkspace.razor.rz.scp.css */
.workspace-page[b-bh13qup0nj]{max-width:1500px;margin:auto;padding:34px 40px 60px;font-family:var(--font-body);color:var(--color-charcoal)}.back-link[b-bh13qup0nj]{display:inline-block;margin-bottom:22px;color:var(--color-gunmetal);font-size:14px;font-weight:700;text-decoration:none}.back-link:hover[b-bh13qup0nj]{color:var(--color-primary-dark)}.workspace-header[b-bh13qup0nj]{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px;border:1px solid rgba(22,20,18,.08);border-radius:var(--archex-radius-large);background:#fff;box-shadow:var(--archex-shadow-hover)}.identity-block[b-bh13qup0nj]{display:flex;align-items:center;gap:22px}.monogram[b-bh13qup0nj]{display:grid;place-items:center;width:82px;height:82px;border-radius:var(--archex-radius-large);background:#f0e7df;color:var(--color-primary-dark);font-size:27px;font-weight:800}.eyebrow[b-bh13qup0nj]{margin:0 0 8px;color:var(--color-primary-dark);font-size:11px;font-weight:800;letter-spacing:2.4px;text-transform:uppercase}.workspace-header h1[b-bh13qup0nj]{margin:0 0 8px;font-size:var(--archex-text-2xl);line-height:1.05}.location[b-bh13qup0nj]{margin:0;color:var(--color-gunmetal)}.status-pill[b-bh13qup0nj]{padding:8px 13px;border-radius:999px;background:#e5f5eb;color:#24633c;font-size:12px;font-weight:800}.workspace-tabs[b-bh13qup0nj]{display:flex;gap:4px;margin:24px 0;border-bottom:1px solid var(--color-divider)}.workspace-tabs button[b-bh13qup0nj]{padding:14px 18px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--color-gunmetal);font:750 14px var(--font-body);cursor:pointer}.workspace-tabs button.active[b-bh13qup0nj]{border-bottom-color:var(--color-primary-dark);color:#161412}.workspace-tabs span[b-bh13qup0nj]{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;border-radius:999px;background:#eee7e0;font-size:11px}.overview-grid[b-bh13qup0nj]{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel[b-bh13qup0nj]{padding:26px;border:1px solid rgba(22,20,18,.08);border-radius:var(--archex-radius-large);background:#fff;box-shadow:var(--archex-shadow)}.full-panel[b-bh13qup0nj]{min-height:360px}.panel-heading[b-bh13qup0nj]{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.panel-heading h2[b-bh13qup0nj]{margin:0;font-size:25px}.panel-heading button[b-bh13qup0nj],.panel-heading a[b-bh13qup0nj]{border:0;background:transparent;color:var(--color-primary-dark);font-size:13px;font-weight:800;text-decoration:none;cursor:pointer}.contact-panel dl[b-bh13qup0nj]{margin:0}.contact-panel dl div[b-bh13qup0nj]{display:grid;grid-template-columns:140px 1fr;gap:15px;padding:13px 0;border-bottom:1px solid var(--color-divider)}.contact-panel dl div:last-child[b-bh13qup0nj]{border-bottom:0}.contact-panel dt[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:12px;font-weight:800;text-transform:uppercase}.contact-panel dd[b-bh13qup0nj]{margin:0;color:var(--color-charcoal)}.metrics-grid[b-bh13qup0nj]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metrics-grid div[b-bh13qup0nj]{padding:20px;border-radius:var(--archex-radius-medium);background:var(--color-panel)}.metrics-grid strong[b-bh13qup0nj]{display:block;font-size:30px}.metrics-grid span[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:13px}.recent-projects[b-bh13qup0nj],.notes-preview[b-bh13qup0nj]{grid-column:span 1}.project-row[b-bh13qup0nj]{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid var(--color-divider);color:var(--color-charcoal);text-decoration:none}.project-row:last-child[b-bh13qup0nj]{border-bottom:0}.project-row div[b-bh13qup0nj]{display:flex;flex-direction:column;gap:4px}.project-row strong[b-bh13qup0nj]{font-size:15px}.project-row span[b-bh13qup0nj],.project-row small[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:12px}.project-row .project-status[b-bh13qup0nj]{padding:7px 10px;border-radius:999px;background:#f0ebe5;color:var(--color-gunmetal);font-weight:800;white-space:nowrap}.project-row.detailed[b-bh13qup0nj]{padding:18px 5px}.notes-text[b-bh13qup0nj],.notes-box[b-bh13qup0nj]{white-space:pre-wrap;line-height:1.65;color:var(--color-charcoal)}.notes-box[b-bh13qup0nj]{padding:22px;border-radius:var(--archex-radius-medium);background:var(--color-panel)}.helper-text[b-bh13qup0nj],.muted[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:13px}.contact-list[b-bh13qup0nj]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.contact-list article[b-bh13qup0nj]{display:flex;gap:14px;padding:18px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium)}.contact-avatar[b-bh13qup0nj]{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:50%;background:#f0e7df;color:var(--color-primary-dark);font-weight:800}.contact-list h3[b-bh13qup0nj]{margin:0 0 5px}.contact-list p[b-bh13qup0nj]{margin:0 0 7px;color:var(--color-gunmetal)}.contact-list span[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:12px}@media(max-width:800px){.workspace-page[b-bh13qup0nj]{padding:24px 18px 50px}.workspace-header[b-bh13qup0nj]{align-items:flex-start;flex-direction:column}.identity-block[b-bh13qup0nj]{align-items:flex-start}.monogram[b-bh13qup0nj]{width:64px;height:64px}.workspace-header h1[b-bh13qup0nj]{font-size:30px}.workspace-tabs[b-bh13qup0nj]{overflow-x:auto}.overview-grid[b-bh13qup0nj]{grid-template-columns:1fr}.recent-projects[b-bh13qup0nj],.notes-preview[b-bh13qup0nj]{grid-column:auto}.metrics-grid[b-bh13qup0nj]{grid-template-columns:1fr 1fr}.contact-panel dl div[b-bh13qup0nj]{grid-template-columns:1fr;gap:5px}}
.breadcrumb-row[b-bh13qup0nj]{display:flex;align-items:center;gap:9px;margin-bottom:22px;color:var(--color-gunmetal);font-size:13px}.breadcrumb-row .back-link[b-bh13qup0nj]{margin:0}.breadcrumb-row strong[b-bh13qup0nj]{color:var(--color-charcoal)}.header-actions[b-bh13qup0nj]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.primary-action[b-bh13qup0nj],.secondary-action[b-bh13qup0nj]{padding:10px 15px;border-radius:var(--archex-radius-small);font:800 13px var(--font-body);cursor:pointer}.primary-action[b-bh13qup0nj]{border:1px solid var(--color-primary-dark);background:var(--color-primary-dark);color:#fff}.secondary-action[b-bh13qup0nj]{border:1px solid var(--color-divider);background:#fff;color:var(--color-charcoal)}.primary-action:disabled[b-bh13qup0nj]{opacity:.6;cursor:default}.form-grid[b-bh13qup0nj]{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-field[b-bh13qup0nj]{display:flex;flex-direction:column;gap:7px}.form-field.full-width[b-bh13qup0nj]{grid-column:1/-1}.form-field label[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.form-field input[b-bh13qup0nj],.form-field select[b-bh13qup0nj],.form-field textarea[b-bh13qup0nj]{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;color:var(--color-charcoal);font:14px var(--font-body)}.form-field textarea[b-bh13qup0nj]{min-height:120px;resize:vertical}.form-field small[b-bh13qup0nj]{color:var(--color-gunmetal)}.notes-editor[b-bh13qup0nj]{min-height:300px!important;line-height:1.55}.form-actions[b-bh13qup0nj]{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.panel-actions[b-bh13qup0nj]{display:flex;align-items:center;gap:15px}.panel-actions button[b-bh13qup0nj]{border:0;background:transparent;color:var(--color-primary-dark);font-size:13px;font-weight:800;cursor:pointer}.empty-state button[b-bh13qup0nj]{border:0;background:transparent;color:var(--color-primary-dark);font-weight:800;cursor:pointer}.empty-state .primary-action[b-bh13qup0nj]{margin-top:16px;border:1px solid var(--color-primary-dark);background:var(--color-primary-dark);color:#fff}@media(max-width:800px){.header-actions[b-bh13qup0nj]{width:100%}.header-actions .status-pill[b-bh13qup0nj]{margin-left:auto}.form-grid[b-bh13qup0nj]{grid-template-columns:1fr}.form-field.full-width[b-bh13qup0nj]{grid-column:auto}.panel-heading[b-bh13qup0nj]{flex-direction:column}.panel-actions[b-bh13qup0nj]{width:100%;justify-content:space-between}.form-actions[b-bh13qup0nj]{flex-direction:column-reverse}.form-actions button[b-bh13qup0nj]{width:100%}}
.key-contact[b-bh13qup0nj]{display:flex;align-items:center;gap:14px;margin:4px 0 16px}.key-contact>div:last-child[b-bh13qup0nj]{display:flex;flex-direction:column;gap:4px}.key-contact strong[b-bh13qup0nj]{font-size:18px}.key-contact span[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:13px}.contact-avatar.large[b-bh13qup0nj]{flex-basis:58px;height:58px}.quick-link-row[b-bh13qup0nj]{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.quick-link-row a[b-bh13qup0nj],.quick-link-row button[b-bh13qup0nj],.contact-actions a[b-bh13qup0nj]{padding:8px 11px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;color:var(--color-primary-dark);font:800 12px var(--font-body);text-decoration:none;cursor:pointer}.contact-card-body[b-bh13qup0nj]{flex:1;min-width:0}.contact-title-row[b-bh13qup0nj]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.primary-contact-pill[b-bh13qup0nj]{padding:4px 7px!important;border-radius:999px;background:var(--color-primary-light);color:var(--color-primary-dark)!important;font-size:10px!important;font-weight:800}.contact-actions[b-bh13qup0nj]{display:flex;gap:7px;margin-top:11px}.timeline[b-bh13qup0nj]{position:relative;display:flex;flex-direction:column}.timeline-item[b-bh13qup0nj]{display:grid;grid-template-columns:18px 1fr;gap:13px;padding:0 0 22px}.timeline-item:last-child[b-bh13qup0nj]{padding-bottom:0}.timeline-marker[b-bh13qup0nj]{position:relative;width:10px;height:10px;margin-top:5px;border:3px solid var(--color-primary-light);border-radius:50%;background:var(--color-primary-dark)}.timeline-marker[b-bh13qup0nj]:after{content:"";position:absolute;top:11px;left:3px;width:2px;height:calc(100% + 18px);background:#e4ddd6}.timeline-item:last-child .timeline-marker[b-bh13qup0nj]:after{display:none}.timeline-item strong[b-bh13qup0nj]{font-size:14px}.timeline-item p[b-bh13qup0nj]{margin:4px 0;color:var(--color-gunmetal);font-size:13px}.timeline-item time[b-bh13qup0nj]{color:var(--color-gunmetal);font-size:11px}.timeline.compact .timeline-item[b-bh13qup0nj]{padding-bottom:15px}.timeline.compact .timeline-item p[b-bh13qup0nj]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}

.client-record-list[b-bh13qup0nj] {
    display: grid;
    gap: 0.75rem;
}

.client-record-row[b-bh13qup0nj] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(126, 106, 74, 0.2);
    border-radius:var(--archex-radius-small);
    background: rgba(255, 255, 255, 0.58);
}

.client-record-row div[b-bh13qup0nj] {
    min-width: 0;
}

.client-record-row strong[b-bh13qup0nj],
.client-record-row span[b-bh13qup0nj],
.client-record-row p[b-bh13qup0nj] {
    display: block;
}

.client-record-row span[b-bh13qup0nj],
.client-record-row time[b-bh13qup0nj] {
    color: var(--color-gunmetal);
    font-size: 0.82rem;
}

.client-record-row p[b-bh13qup0nj] {
    margin: 0.4rem 0 0;
    color: var(--color-charcoal);
}

.client-record-row time[b-bh13qup0nj] {
    white-space: nowrap;
}

@media (max-width: 720px) {
    .client-record-row[b-bh13qup0nj] {
        flex-direction: column;
    }
}

/* Stage 5.1 — project role relationships */
.setup-card-hint[b-bh13qup0nj] { color: #666; font-size: .78rem; margin: 4px 0 12px; }

/* /Components/Pages/People.razor.rz.scp.css */
.people-hub[b-ros0kixcmp]{min-height:100vh;padding:clamp(28px,4vw,62px);background:var(--color-background);color:var(--color-charcoal);font-family:var(--font-body)}.hub-hero[b-ros0kixcmp],.people-metrics[b-ros0kixcmp],.hub-toolbar[b-ros0kixcmp],.people-grid[b-ros0kixcmp],.person-form-card[b-ros0kixcmp],.empty-state[b-ros0kixcmp]{width:min(1320px,100%);margin-left:auto;margin-right:auto}.hub-hero[b-ros0kixcmp]{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.eyebrow[b-ros0kixcmp]{margin:0 0 10px;color:var(--color-primary-dark);font-size:.66rem;font-weight:850;letter-spacing:.24em}.hub-hero h1[b-ros0kixcmp]{margin:0;font-size:var(--archex-text-2xl);line-height:.91;letter-spacing:-.065em}.hub-hero h1 span[b-ros0kixcmp]{color:var(--color-gunmetal)}.hero-copy[b-ros0kixcmp]{max-width:650px;margin:20px 0 0;color:var(--color-gunmetal);font-size:1.02rem;line-height:1.6}.primary-button[b-ros0kixcmp],.secondary-button[b-ros0kixcmp],.schedule-button[b-ros0kixcmp]{border:0;border-radius:var(--archex-radius-small);padding:13px 18px;font-weight:800;cursor:pointer}.primary-button[b-ros0kixcmp],.schedule-button[b-ros0kixcmp]{background:var(--color-primary-dark);color:#fff;box-shadow:var(--archex-shadow)}.secondary-button[b-ros0kixcmp]{background:#e6dfd6;color:var(--color-charcoal)}.people-metrics[b-ros0kixcmp]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.metric-card[b-ros0kixcmp]{display:flex;min-height:122px;flex-direction:column;align-items:flex-start;padding:18px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:rgba(255,255,255,.72);color:var(--color-charcoal);text-align:left;cursor:pointer}.metric-card:hover[b-ros0kixcmp],.metric-card.active[b-ros0kixcmp]{border-color:var(--color-primary-dark);box-shadow:var(--archex-shadow-hover)}.metric-card span[b-ros0kixcmp]{color:#9a6a4c;font-size:.61rem;font-weight:850;letter-spacing:.17em}.metric-card strong[b-ros0kixcmp]{margin-top:auto;font-size:2.1rem}.metric-card small[b-ros0kixcmp]{color:var(--color-gunmetal)}.hub-toolbar[b-ros0kixcmp]{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:11px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:rgba(255,255,255,.8)}.search-box[b-ros0kixcmp]{display:flex;align-items:center;flex:1;gap:8px;padding:0 12px}.search-box span[b-ros0kixcmp]{font-size:1.25rem}.search-box input[b-ros0kixcmp]{width:100%;border:0;outline:0;background:transparent;font-size:.88rem}.view-tools[b-ros0kixcmp]{display:flex;gap:7px}.result-count[b-ros0kixcmp]{padding-right:10px;color:var(--color-gunmetal);font-size:.7rem;font-weight:750}.people-grid[b-ros0kixcmp]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.person-card[b-ros0kixcmp]{padding:18px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);background:rgba(255,255,255,.86);box-shadow:var(--archex-shadow-hover);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.person-card:hover[b-ros0kixcmp]{transform:translateY(-3px);box-shadow:var(--archex-shadow-hover)}.card-top[b-ros0kixcmp]{display:flex;align-items:center;gap:13px}.person-avatar[b-ros0kixcmp],.drawer-avatar[b-ros0kixcmp]{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:var(--archex-radius-medium);background:#171816;color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.08em}.person-identity[b-ros0kixcmp]{min-width:0;flex:1}.type-label[b-ros0kixcmp]{color:var(--color-primary-dark);font-size:.57rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.person-identity h2[b-ros0kixcmp]{margin:3px 0 2px;font-size:1.07rem}.person-identity p[b-ros0kixcmp]{overflow:hidden;margin:0;color:var(--color-gunmetal);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.availability-dot[b-ros0kixcmp]{width:10px;height:10px;border-radius:50%}.availability-dot.free[b-ros0kixcmp]{background:#49a26d;box-shadow:0 0 0 4px rgba(73,162,109,.12)}.availability-dot.busy[b-ros0kixcmp]{background:var(--color-primary-dark);box-shadow:0 0 0 4px rgba(208,100,41,.12)}.work-status[b-ros0kixcmp]{margin:17px 0 14px;padding:13px;border-radius:var(--archex-radius-medium)}.work-status.active[b-ros0kixcmp]{background:#fff0e7}.work-status.free[b-ros0kixcmp]{background:#edf6ef}.work-status small[b-ros0kixcmp]{display:block;margin-bottom:5px;color:#8b7869;font-size:.55rem;font-weight:850;letter-spacing:.13em}.work-status strong[b-ros0kixcmp],.work-status span[b-ros0kixcmp]{display:block}.work-status strong[b-ros0kixcmp]{font-size:.84rem}.work-status span[b-ros0kixcmp]{margin-top:4px;overflow:hidden;color:var(--color-gunmetal);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.person-stats[b-ros0kixcmp]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider)}.person-stats div[b-ros0kixcmp]{display:flex;flex-direction:column}.person-stats strong[b-ros0kixcmp]{font-size:.92rem}.person-stats span[b-ros0kixcmp]{margin-top:2px;color:var(--color-gunmetal);font-size:.57rem}.next-line[b-ros0kixcmp]{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding-top:13px}.next-line div[b-ros0kixcmp]{min-width:0}.next-line small[b-ros0kixcmp]{display:block;color:#a6785a;font-size:.54rem;font-weight:850;letter-spacing:.12em}.next-line strong[b-ros0kixcmp]{display:block;overflow:hidden;margin-top:3px;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.next-line>span[b-ros0kixcmp]{color:var(--color-gunmetal);font-size:.61rem;white-space:nowrap}.person-form-card[b-ros0kixcmp]{margin-bottom:20px;padding:22px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);background:#fff}.form-heading[b-ros0kixcmp]{display:flex;justify-content:space-between}.form-heading h2[b-ros0kixcmp]{margin:0 0 20px}.close-button[b-ros0kixcmp],.drawer-close[b-ros0kixcmp]{border:0;background:transparent;font-size:1.8rem;cursor:pointer}.form-grid[b-ros0kixcmp]{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-field[b-ros0kixcmp]{display:flex;flex-direction:column;gap:6px}.form-field.full-width[b-ros0kixcmp]{grid-column:1/-1}.form-field label[b-ros0kixcmp]{font-size:.67rem;font-weight:800}.form-field input[b-ros0kixcmp],.form-field select[b-ros0kixcmp],.form-field textarea[b-ros0kixcmp]{padding:11px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-panel)}.form-field textarea[b-ros0kixcmp]{min-height:90px}.form-actions[b-ros0kixcmp]{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.drawer-backdrop[b-ros0kixcmp]{position:fixed;inset:0;z-index:70;background:rgba(16,15,14,.4);backdrop-filter:blur(3px)}.person-drawer[b-ros0kixcmp]{position:fixed;top:0;right:0;z-index:80;width:min(450px,94vw);height:100vh;overflow-y:auto;padding:28px;background:var(--color-panel);box-shadow:-25px 0 65px rgba(0,0,0,.22)}.drawer-close[b-ros0kixcmp]{position:absolute;top:18px;right:20px}.drawer-profile[b-ros0kixcmp]{padding:30px 0 24px;border-bottom:1px solid var(--color-divider)}.drawer-avatar[b-ros0kixcmp]{width:66px;height:66px;border-radius:var(--archex-radius-large);font-size:1rem}.drawer-profile p[b-ros0kixcmp]{margin:16px 0 5px;color:var(--color-primary-dark);font-size:.61rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.drawer-profile h2[b-ros0kixcmp]{margin:0;font-size:2rem;letter-spacing:-.04em}.drawer-profile>span[b-ros0kixcmp]{display:block;margin-top:7px;color:var(--color-gunmetal)}.drawer-section[b-ros0kixcmp]{padding:22px 0;border-bottom:1px solid var(--color-divider)}.drawer-section h3[b-ros0kixcmp]{margin:0 0 13px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.drawer-section dl[b-ros0kixcmp]{margin:0}.drawer-section dl div[b-ros0kixcmp]{display:flex;justify-content:space-between;gap:15px;padding:8px 0}.drawer-section dt[b-ros0kixcmp]{color:var(--color-gunmetal);font-size:.7rem}.drawer-section dd[b-ros0kixcmp]{margin:0;font-size:.72rem;font-weight:700;text-align:right}.drawer-project[b-ros0kixcmp]{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;padding:12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;text-align:left;cursor:pointer}.drawer-project span[b-ros0kixcmp]{display:flex;min-width:0;flex-direction:column}.drawer-project strong[b-ros0kixcmp]{font-size:.74rem}.drawer-project small[b-ros0kixcmp]{margin-top:3px;color:var(--color-gunmetal);font-size:.61rem}.drawer-project b[b-ros0kixcmp]{color:var(--color-primary-dark);font-size:.62rem;white-space:nowrap}.drawer-empty[b-ros0kixcmp]{color:var(--color-gunmetal)}.schedule-button[b-ros0kixcmp]{width:100%;margin-top:22px}.validation-message[b-ros0kixcmp]{color:#a52d22}@media(max-width:1100px){.people-grid[b-ros0kixcmp]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.people-hub[b-ros0kixcmp]{padding:22px 14px}.hub-hero[b-ros0kixcmp]{align-items:flex-start;flex-direction:column}.people-metrics[b-ros0kixcmp]{grid-template-columns:repeat(2,1fr)}.hub-toolbar[b-ros0kixcmp]{align-items:stretch;flex-direction:column}.view-tools[b-ros0kixcmp]{overflow-x:auto}.people-grid[b-ros0kixcmp],.form-grid[b-ros0kixcmp]{grid-template-columns:1fr}.result-count[b-ros0kixcmp]{padding-left:12px}.person-stats[b-ros0kixcmp]{grid-template-columns:repeat(3,1fr)}}

.organisation-link-button[b-ros0kixcmp] {
    width: 100%;
    margin-top: .85rem;
    border: 1px solid rgba(35, 45, 35, .18);
    border-radius:var(--archex-radius-medium);
    padding: .75rem .9rem;
    background: rgba(255, 255, 255, .7);
    color: inherit;
    font: inherit;
    font-weight: 750;
    text-align: left;
    cursor: pointer;
}

.organisation-link-button:hover[b-ros0kixcmp] {
    background: rgba(82, 101, 75, .1);
}

/* 4.0.6A: Align People Hub with the approved dark ArchEx design system. */
/* 14 September 2026: a demonstration identity listed as history says so. */
.demonstration-entry[b-ros0kixcmp]{display:block;margin-top:6px;color:var(--color-primary-light);font-size:12px;font-weight:600}
/* /Components/Pages/PermissionsGovernance.razor.rz.scp.css */
.governance-page[b-11nv0hnf57]{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;padding:1.5rem}.governance-hero[b-11nv0hnf57],.role-panel[b-11nv0hnf57],.governance-panel[b-11nv0hnf57],.matrix-panel[b-11nv0hnf57]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);box-shadow:var(--archex-shadow)}.governance-hero[b-11nv0hnf57]{display:flex;justify-content:space-between;gap:1rem;padding:1.6rem}.eyebrow[b-11nv0hnf57],.section-kicker[b-11nv0hnf57]{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--color-gunmetal);margin:0 0 .4rem}.governance-hero h1[b-11nv0hnf57],.section-heading h2[b-11nv0hnf57],.panel-heading h2[b-11nv0hnf57]{margin:0;color:#182126}.intro[b-11nv0hnf57],.section-heading p[b-11nv0hnf57]{max-width:760px;color:var(--color-gunmetal)}.hero-actions[b-11nv0hnf57]{display:flex;gap:.7rem;align-items:flex-start}.hero-actions button[b-11nv0hnf57],.control-item[b-11nv0hnf57]{border:0;cursor:pointer}.hero-actions button[b-11nv0hnf57]{padding:.75rem 1rem;border-radius:var(--archex-radius-small);background:var(--color-primary);color:#fff;font-weight:700}.hero-actions .secondary[b-11nv0hnf57]{background:var(--color-panel);color:var(--color-charcoal)}.summary-grid[b-11nv0hnf57]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.summary-card[b-11nv0hnf57]{background:#fff;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem;display:grid;gap:.2rem}.summary-card span[b-11nv0hnf57],.summary-card small[b-11nv0hnf57]{color:var(--color-gunmetal)}.summary-card strong[b-11nv0hnf57]{font-size:2rem;color:#182126}.summary-card.attention[b-11nv0hnf57]{border-left:4px solid var(--color-primary-dark)}.summary-card.ready[b-11nv0hnf57]{border-left:4px solid #2b7a5d}.role-panel[b-11nv0hnf57],.matrix-panel[b-11nv0hnf57]{padding:1.3rem}.section-heading[b-11nv0hnf57],.panel-heading[b-11nv0hnf57]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.stage-pill[b-11nv0hnf57],.count-pill[b-11nv0hnf57]{background:var(--color-panel);color:var(--color-charcoal);padding:.35rem .65rem;border-radius:999px;font-size:.78rem;font-weight:800}.role-grid[b-11nv0hnf57]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.role-card[b-11nv0hnf57]{border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);padding:1rem}.role-heading[b-11nv0hnf57]{display:flex;gap:.8rem}.role-heading h3[b-11nv0hnf57]{margin:.05rem 0}.role-heading p[b-11nv0hnf57]{margin:.2rem 0;color:var(--color-gunmetal);font-size:.9rem}.role-code[b-11nv0hnf57]{width:46px;height:46px;display:grid;place-items:center;background:#edf3f1;color:#1d5547;border-radius:var(--archex-radius-small);font-weight:900}.role-card ul[b-11nv0hnf57]{margin:.8rem 0 0;padding-left:1.2rem;color:var(--color-gunmetal)}.role-card li[b-11nv0hnf57]{margin:.35rem 0}.governance-grid[b-11nv0hnf57]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.governance-panel[b-11nv0hnf57]{padding:1.2rem;min-width:0}.control-list[b-11nv0hnf57],.activity-list[b-11nv0hnf57]{display:grid;gap:.65rem;margin-top:1rem}.control-item[b-11nv0hnf57]{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;text-align:left;background:var(--color-panel);border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);padding:.8rem}.control-status[b-11nv0hnf57]{font-size:.72rem;font-weight:800;border-radius:999px;padding:.3rem .5rem}.control-status.high[b-11nv0hnf57]{background:color-mix(in srgb, var(--color-primary) 16%, white);color:var(--color-charcoal)}.control-status.review[b-11nv0hnf57]{background:#fff1d9;color:#81520f}.control-copy[b-11nv0hnf57]{display:grid}.control-copy small[b-11nv0hnf57],.project-ref[b-11nv0hnf57],.activity-item small[b-11nv0hnf57],.activity-item time[b-11nv0hnf57]{color:var(--color-gunmetal)}.activity-item[b-11nv0hnf57]{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:start;padding:.7rem 0;border-bottom:1px solid var(--color-divider)}.activity-marker[b-11nv0hnf57]{width:10px;height:10px;border-radius:50%;background:#2b7a5d;margin-top:.35rem}.activity-item div[b-11nv0hnf57]{display:grid}.activity-item time[b-11nv0hnf57]{font-size:.76rem;white-space:nowrap}.matrix-wrap[b-11nv0hnf57]{overflow:auto;margin-top:1rem}table[b-11nv0hnf57]{width:100%;border-collapse:collapse}.matrix-wrap table[b-11nv0hnf57]{min-width:760px}th[b-11nv0hnf57],td[b-11nv0hnf57]{text-align:left;padding:.75rem;border-bottom:1px solid var(--color-divider);font-size:.9rem}thead th[b-11nv0hnf57]{background:var(--color-panel);color:var(--color-gunmetal)}tbody th[b-11nv0hnf57]{color:#1f2b31}@media(max-width:1100px){.summary-grid[b-11nv0hnf57]{grid-template-columns:repeat(2,1fr)}.role-grid[b-11nv0hnf57]{grid-template-columns:repeat(2,1fr)}.governance-grid[b-11nv0hnf57]{grid-template-columns:1fr}}@media(max-width:700px){.governance-page[b-11nv0hnf57]{padding:.75rem}.governance-hero[b-11nv0hnf57],.section-heading[b-11nv0hnf57],.panel-heading[b-11nv0hnf57]{flex-direction:column}.hero-actions[b-11nv0hnf57]{width:100%}.hero-actions button[b-11nv0hnf57]{flex:1}.summary-grid[b-11nv0hnf57],.role-grid[b-11nv0hnf57]{grid-template-columns:1fr}.control-item[b-11nv0hnf57]{grid-template-columns:auto 1fr}.project-ref[b-11nv0hnf57]{grid-column:2}.activity-item[b-11nv0hnf57]{grid-template-columns:auto 1fr}.activity-item time[b-11nv0hnf57]{grid-column:2}}
/* /Components/Pages/PersonProfile.razor.rz.scp.css */
/* PERSON PROFILE.

   Relit onto the palette the rest of the application uses (20 September 2026). This page had been
   written dark — #f4f1e9 text on #252522 cards — on an application whose canvas is #F8F8F6. The h1
   escaped it only because the foundation stylesheet colours every h1; everything that inherited was
   near-white on near-white, and the cards read as black slabs dropped onto a light page. It is the
   same page as before; it now looks like every other one. */

.person-profile[b-vo0evgsm9w] {
    max-width: 1500px;
    margin: 0 auto;
    width: 100%;
    color: var(--color-charcoal);
}

/* The avatar sits beside the title, so the shared header keeps its own row and the page still
   opens with a face. The header is a child component, hence ::deep. */
.profile-header[b-vo0evgsm9w] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-divider);
}

.profile-header[b-vo0evgsm9w]  .ax-os-header {
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
}

.profile-avatar[b-vo0evgsm9w] {
    flex: none;
    width: 64px;
    height: 64px;
    margin-top: 22px;
    border-radius:var(--archex-radius-large);
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, var(--color-primary), var(--color-primary-dark));
    color: #FFF;
    font-family: var(--font-heading);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.eyebrow[b-vo0evgsm9w] {
    margin: 0;
    color: var(--color-primary-dark);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.status-pill[b-vo0evgsm9w] {
    padding: .42rem .7rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
}

.status-pill.active[b-vo0evgsm9w] { background: rgba(46, 125, 50, .1); color: var(--color-success); border: 1px solid rgba(46, 125, 50, .25); }
.status-pill.inactive[b-vo0evgsm9w] { background: rgba(198, 40, 40, .08); color: var(--color-danger); border: 1px solid rgba(198, 40, 40, .22); }

.primary-button[b-vo0evgsm9w],
.secondary-button[b-vo0evgsm9w] {
    border-radius: var(--radius-component);
    padding: .7rem 1rem;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.primary-button[b-vo0evgsm9w] { border: 1px solid var(--color-primary); background: var(--color-primary); color: #FFF; }
.primary-button:hover[b-vo0evgsm9w] { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }
.primary-button:disabled[b-vo0evgsm9w] { opacity: .45; cursor: not-allowed; }
.secondary-button[b-vo0evgsm9w] { border: 1px solid var(--color-divider); background: var(--color-surface); color: var(--color-charcoal); }
.secondary-button:hover[b-vo0evgsm9w] { background: var(--color-panel); }

.profile-tabs[b-vo0evgsm9w] {
    display: flex;
    gap: .25rem;
    overflow-x: auto;
    padding: var(--space-3) 0 0;
    border-bottom: 1px solid var(--color-divider);
}

.profile-tabs button[b-vo0evgsm9w] {
    white-space: nowrap;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--color-gunmetal);
    padding: .75rem 1rem;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.profile-tabs button:hover[b-vo0evgsm9w] { color: var(--color-charcoal); }
.profile-tabs button.active[b-vo0evgsm9w] { color: var(--color-primary-dark); border-bottom-color: var(--color-primary); }

.profile-grid[b-vo0evgsm9w] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.profile-card[b-vo0evgsm9w] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
    min-width: 0;
}

.profile-grid .profile-card[b-vo0evgsm9w] { margin-top: 0; }
.profile-card.wide[b-vo0evgsm9w] { grid-column: 1 / -1; }
.profile-card h2[b-vo0evgsm9w],
.card-heading[b-vo0evgsm9w] { margin: .3rem 0 1.1rem; font-family: var(--font-heading); font-size: 1.25rem; }

.detail-list[b-vo0evgsm9w] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: .85rem;
}

.detail-list div[b-vo0evgsm9w],
.stacked-list div[b-vo0evgsm9w] {
    padding: .9rem 1rem;
    border-radius: var(--radius-component);
    background: var(--color-background);
    border: 1px solid var(--color-divider);
    min-width: 0;
}

dt[b-vo0evgsm9w] {
    color: var(--color-gunmetal);
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

dd[b-vo0evgsm9w] { margin: .35rem 0 0; font-weight: 600; word-break: break-word; }

.stacked-list[b-vo0evgsm9w] { display: grid; gap: .65rem; }

.summary-stat[b-vo0evgsm9w] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    padding: .7rem 0;
    border-bottom: 1px solid var(--color-divider);
}

.summary-stat strong[b-vo0evgsm9w] { font-family: var(--font-heading); font-size: 1.3rem; }
.summary-stat span[b-vo0evgsm9w] { color: var(--color-gunmetal); }

.form-grid[b-vo0evgsm9w] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--space-3);
}

.form-field[b-vo0evgsm9w] { display: grid; gap: .4rem; min-width: 0; }
.form-field.full[b-vo0evgsm9w] { grid-column: 1 / -1; }
.form-field label[b-vo0evgsm9w] { font-size: .75rem; font-weight: 800; color: var(--color-gunmetal); }

.form-field input[b-vo0evgsm9w],
.form-field select[b-vo0evgsm9w],
.form-field textarea[b-vo0evgsm9w] {
    width: 100%;
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
    background: var(--color-surface);
    color: var(--color-charcoal);
    padding: .7rem .8rem;
    font: inherit;
}

.form-field input:focus-visible[b-vo0evgsm9w],
.form-field select:focus-visible[b-vo0evgsm9w],
.form-field textarea:focus-visible[b-vo0evgsm9w] {
    outline: 3px solid var(--color-primary);
    outline-offset: 1px;
    border-color: var(--color-primary);
}

.form-field textarea[b-vo0evgsm9w] { min-height: 120px; resize: vertical; }

.project-list[b-vo0evgsm9w] { display: grid; gap: .6rem; }

.project-list button[b-vo0evgsm9w] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
    background: var(--color-surface);
    color: var(--color-charcoal);
    padding: 1rem;
    text-align: left;
    cursor: pointer;
}

.project-list button:hover[b-vo0evgsm9w] { border-color: var(--color-primary); background: var(--color-panel); }
.project-list span[b-vo0evgsm9w] { display: grid; gap: .2rem; min-width: 0; }
.project-list small[b-vo0evgsm9w],
.empty-copy[b-vo0evgsm9w],
.empty-module p[b-vo0evgsm9w],
.link-state p[b-vo0evgsm9w] { color: var(--color-gunmetal); }
.project-list b[b-vo0evgsm9w] { color: var(--color-primary-dark); font-size: .75rem; }

.empty-module[b-vo0evgsm9w] { min-height: 200px; }
.note-body[b-vo0evgsm9w] { white-space: pre-wrap; line-height: 1.7; }

.timeline[b-vo0evgsm9w] { display: grid; gap: 0; }

.timeline > div[b-vo0evgsm9w] {
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 1rem;
    position: relative;
    padding-bottom: 1.3rem;
}

.timeline > div > span[b-vo0evgsm9w] {
    width: 10px;
    height: 10px;
    margin-top: .3rem;
    border-radius: 50%;
    background: var(--color-primary);
    box-shadow: 0 0 0 5px rgba(242, 108, 33, .14);
}

.timeline > div:not(:last-child)[b-vo0evgsm9w]::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 17px;
    bottom: 0;
    width: 1px;
    background: var(--color-divider);
}

.timeline article[b-vo0evgsm9w] { display: grid; gap: .2rem; }
.timeline small[b-vo0evgsm9w] { color: var(--color-gunmetal); }
.timeline p[b-vo0evgsm9w] { margin: 0; color: var(--color-gunmetal); }

.link-state[b-vo0evgsm9w] { max-width: 650px; }

.profile-state[b-vo0evgsm9w] {
    margin: var(--space-6) auto;
    max-width: 700px;
    padding: var(--space-5);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
    text-align: center;
}

@media (max-width: 900px) {
    .profile-header[b-vo0evgsm9w] { flex-wrap: wrap; }
    .profile-avatar[b-vo0evgsm9w] { width: 52px; height: 52px; margin-top: 0; border-radius:var(--archex-radius-medium); font-size: 1.05rem; }
    .profile-card.wide[b-vo0evgsm9w], .form-field.full[b-vo0evgsm9w] { grid-column: auto; }
}

@media (max-width: 600px) {
    .profile-tabs button[b-vo0evgsm9w] { padding: .7rem .6rem; }
    .profile-card[b-vo0evgsm9w] { padding: var(--space-3); }
    .detail-list div[b-vo0evgsm9w], .stacked-list div[b-vo0evgsm9w] { padding: .75rem .8rem; }
}
/* /Components/Pages/Projects.razor.rz.scp.css */
.projects-page[b-qsre04dbnt] {
    /* Without border-box the 40px padding is ADDED to the 100% width, making the
       page 80px wider than the viewport. The parent .ax-page sets overflow:hidden,
       so that surplus was silently clipping the right-hand column instead of
       showing a scrollbar. */
    box-sizing: border-box;
    max-width: 1500px;
    margin: auto;
    padding: 40px;
}

.projects-header[b-qsre04dbnt] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 35px;
}

.eyebrow[b-qsre04dbnt] {
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: 12px;
    color: var(--color-primary-dark);
    font-weight: 700;
}

.projects-header h1[b-qsre04dbnt] {
    font-size: var(--archex-text-2xl);
    margin: 10px 0;
    font-weight: 800;
}

.intro[b-qsre04dbnt] {
    color: #666;
    max-width: 650px;
}

.primary-button[b-qsre04dbnt] {
    background: var(--color-primary-dark);
    color: white;
    border: none;
    padding: 14px 28px;
    border-radius:var(--archex-radius-medium);
    cursor: pointer;
    font-weight: 700;
}

    .primary-button:hover[b-qsre04dbnt] {
        background: var(--color-primary-dark);
    }

.secondary-button[b-qsre04dbnt] {
    background: white;
    border: 1px solid #ccc;
    padding: 12px 22px;
    border-radius:var(--archex-radius-medium);
    cursor: pointer;
}

.projects-toolbar[b-qsre04dbnt] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
}

    .projects-toolbar input[b-qsre04dbnt] {
        width: 450px;
        padding: 14px;
        border-radius:var(--archex-radius-medium);
        border: 1px solid #ddd;
    }

.record-count[b-qsre04dbnt] {
    color: #777;
    align-self: center;
}

.project-grid[b-qsre04dbnt] {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(420px,1fr));
    gap: 25px;
}

.project-card[b-qsre04dbnt] {
    background: white;
    border-radius:var(--archex-radius-large);
    overflow: hidden;
    box-shadow:var(--archex-shadow);
}

.project-cover[b-qsre04dbnt] {
    background: linear-gradient(135deg,#1d1d1d,#5a4638,var(--color-primary-dark));
    color: white;
    padding: 35px;
}

    .project-cover span[b-qsre04dbnt] {
        display: block;
        opacity: .75;
        margin-bottom: 10px;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 2px;
    }

    .project-cover strong[b-qsre04dbnt] {
        font-size: 30px;
    }

.project-information[b-qsre04dbnt] {
    padding: 30px;
}

.project-title-row[b-qsre04dbnt] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 20px;
}

.project-type[b-qsre04dbnt] {
    color: var(--color-primary-dark);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 2px;
}

.project-details[b-qsre04dbnt] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin: 25px 0;
}

    .project-details dt[b-qsre04dbnt] {
        color: #999;
        font-size: 12px;
        text-transform: uppercase;
    }

    .project-details dd[b-qsre04dbnt] {
        margin: 6px 0 0;
        font-weight: 600;
    }

.status-pill[b-qsre04dbnt] {
    padding: 8px 14px;
    border-radius: 30px;
    font-size: 12px;
    font-weight: 700;
}

    .status-pill.active[b-qsre04dbnt] {
        background: #dff5e4;
        color: #237a37;
    }

    .status-pill.reporting[b-qsre04dbnt] {
        background: #fff2d8;
        color: #996100;
    }

    .status-pill.completed[b-qsre04dbnt] {
        background: #e7ecff;
        color: #3551b5;
    }

    .status-pill.planning[b-qsre04dbnt] {
        background: #ececec;
        color: #555;
    }

.project-actions[b-qsre04dbnt] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 20px;
}

.status-filter[b-qsre04dbnt] {
    min-width: 180px;
    padding: 12px 14px;
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
    color: var(--color-charcoal);
}

/* The shared .search-bar in archex-components.css carries horizontal padding
   without a border-box rule, so at narrow widths it computed wider than the
   viewport and was clipped. Corrected for this page only; the shared sheet is
   used by other pages and is left alone. */
.search-bar[b-qsre04dbnt] {
    box-sizing: border-box;
    max-width: 100%;
}

    .search-bar input[b-qsre04dbnt],
    .search-bar .status-filter[b-qsre04dbnt] {
        box-sizing: border-box;
        max-width: 100%;
    }

@media (max-width: 520px) {
    .search-bar .status-filter[b-qsre04dbnt] { min-width: 0; width: 100%; }
}

/* ---- WR-15 job list -------------------------------------------------------
   Compact full-width rows on desktop, stacked compact cards on small screens.
   Scoped to this page: the shared card classes in archex-components.css are
   used by other pages and are deliberately left alone. Every cell sets
   min-width:0 so long names ellipsize instead of widening the grid. */

.ax-jobs[b-qsre04dbnt] { display: grid; gap: 6px; }

.ax-jobs-head[b-qsre04dbnt],
.ax-jobs-row[b-qsre04dbnt] {
    display: grid;
    grid-template-columns: 112px minmax(0, 1.9fr) minmax(0, 1.15fr) minmax(0, 1.15fr) minmax(0, 1fr) 104px 92px;
    gap: 12px;
    align-items: center;
}

.ax-jobs-head[b-qsre04dbnt] {
    padding: 2px 14px 4px;
    color: var(--color-gunmetal);
    font:800 .6rem var(--font-heading);
    text-transform: uppercase;
    letter-spacing: .05em;
}

    .ax-jobs-head > span[b-qsre04dbnt] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ax-jobs-row[b-qsre04dbnt] {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 14px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

    .ax-jobs-row > *[b-qsre04dbnt] { min-width: 0; }
    .ax-jobs-row:hover[b-qsre04dbnt] { border-color: var(--color-primary); background: var(--color-surface); }
    .ax-jobs-row:focus-visible[b-qsre04dbnt] { outline: 2px solid var(--color-primary); outline-offset: 2px; }

.ax-jobs-ref[b-qsre04dbnt] {
    font:800 .67rem var(--font-heading);
    color: #8a5a2b;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ax-jobs-name[b-qsre04dbnt] { display: grid; gap: 1px; min-width: 0; }

    .ax-jobs-name b[b-qsre04dbnt] {
        font-size: .82rem;
        color: var(--color-charcoal);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

/* Shown only when the project actually has items awaiting review. */
.ax-jobs-warning[b-qsre04dbnt] {
    font-style: normal;
    font-size: .65rem;
    font-weight: 800;
    color: #996100;
}

/* The Outlook folder an archived job was recovered from. Quiet: it is provenance, not a heading,
   and it is the only thing these jobs know about where they came from (23 September 2026). */
.ax-jobs-provenance[b-qsre04dbnt] {
    display: block;
    font-style: normal;
    font-size: .65rem;
    font-weight: 600;
    color: var(--color-charcoal);
    opacity: .6;
    overflow-wrap: anywhere;
}

.ax-jobs-cell[b-qsre04dbnt],
.ax-jobs-when[b-qsre04dbnt] {
    font-size: .75rem;
    color: var(--color-charcoal);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    .ax-jobs-cell.missing[b-qsre04dbnt] { color: #a49c92; font-style: italic; }

.ax-jobs-when[b-qsre04dbnt] { color: var(--color-gunmetal); font-size: .71rem; }

.ax-jobs-status[b-qsre04dbnt] {
    justify-self: start;
    max-width: 100%;
    padding: 4px 9px;
    border-radius:var(--archex-radius-large);
    font:800 .63rem var(--font-body);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    background: #ececec;
    color: #555;
}

    .ax-jobs-status.active[b-qsre04dbnt] { background: #dff5e4; color: #237a37; }
    .ax-jobs-status.reporting[b-qsre04dbnt] { background: #fff2d8; color: #996100; }
    .ax-jobs-status.completed[b-qsre04dbnt] { background: #e7ecff; color: #3551b5; }
    .ax-jobs-status.warning[b-qsre04dbnt] { background: #fff2d8; color: #996100; }
    .ax-jobs-status.danger[b-qsre04dbnt] { background: #fde8e6; color: #b42318; }

/* Below this width seven columns stop being readable, so each row becomes a
   compact stacked card. Labels reappear because the header row is gone. */
@media (max-width: 900px) {
    .ax-jobs-head[b-qsre04dbnt] { display: none; }

    .ax-jobs-row[b-qsre04dbnt] {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 3px 10px;
        padding: 12px 13px;
    }

    .ax-jobs-ref[b-qsre04dbnt] { grid-column: 1; grid-row: 1; }
    .ax-jobs-status[b-qsre04dbnt] { grid-column: 2; grid-row: 1; justify-self: end; }
    .ax-jobs-name[b-qsre04dbnt] { grid-column: 1 / -1; margin-bottom: 2px; }

    .ax-jobs-cell[b-qsre04dbnt],
    .ax-jobs-when[b-qsre04dbnt] {
        grid-column: 1 / -1;
        white-space: normal;
        overflow: visible;
    }

        .ax-jobs-cell[b-qsre04dbnt]::before,
        .ax-jobs-when[b-qsre04dbnt]::before {
            content: attr(data-label) ": ";
            color: var(--color-gunmetal);
            font-weight: 800;
        }
}

.attention-line[b-qsre04dbnt] {
    margin: 10px 0 0;
    padding: 8px 12px;
    border-radius:var(--archex-radius-small);
    background: #fff2d8;
    color: #996100;
    font-size: 13px;
}
.project-form-card[b-qsre04dbnt] {
    margin-bottom: 30px;
    padding: 32px;
    border: 1px solid rgba(22, 20, 18, 0.08);
    border-radius:var(--archex-radius-large);
    background: rgba(255, 255, 255, 0.96);
    box-shadow:var(--archex-shadow-hover);
}

.form-heading[b-qsre04dbnt] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

    .form-heading h2[b-qsre04dbnt] {
        margin: 0;
        font-family:var(--font-body);
        font-size: 2rem;
    }

.close-button[b-qsre04dbnt] {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: #f0ebe5;
    color: var(--color-charcoal);
    font-size: 1.5rem;
    cursor: pointer;
}

    .close-button:hover[b-qsre04dbnt] {
        background: #e4dbd2;
    }

.form-grid[b-qsre04dbnt] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.form-field[b-qsre04dbnt] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .form-field.full-width[b-qsre04dbnt] {
        grid-column: 1 / -1;
    }

    .form-field label[b-qsre04dbnt] {
        color: var(--color-charcoal);
        font-family:var(--font-body);
        font-size: 0.76rem;
        font-weight: 750;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .form-field input[b-qsre04dbnt],
    .form-field select[b-qsre04dbnt],
    .form-field textarea[b-qsre04dbnt] {
        width: 100%;
        min-height: 45px;
        padding: 11px 13px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        background: var(--color-surface);
        color: var(--color-charcoal);
        font-family:var(--font-body);
        font-size: 0.95rem;
        outline: none;
    }

    .form-field textarea[b-qsre04dbnt] {
        min-height: 110px;
        resize: vertical;
    }

        .form-field input:focus[b-qsre04dbnt],
        .form-field select:focus[b-qsre04dbnt],
        .form-field textarea:focus[b-qsre04dbnt] {
            border-color: var(--color-primary-dark);
            box-shadow: 0 0 0 3px rgba(196, 90, 28, 0.12);
        }

.form-actions[b-qsre04dbnt] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 28px;
}

.validation-message[b-qsre04dbnt] {
    color: #b42318;
    font-family:var(--font-body);
    font-size: 0.78rem;
}

@media (max-width: 760px) {
    .projects-page[b-qsre04dbnt] {
        padding: 24px 18px 50px;
    }

    .projects-header[b-qsre04dbnt] {
        flex-direction: column;
        gap: 22px;
    }

        .projects-header .primary-button[b-qsre04dbnt] {
            width: 100%;
        }

    .projects-toolbar[b-qsre04dbnt] {
        align-items: stretch;
        flex-direction: column;
        gap: 12px;
    }

        .projects-toolbar input[b-qsre04dbnt] {
            width: 100%;
        }

    .record-count[b-qsre04dbnt] {
        text-align: left;
    }

    .form-grid[b-qsre04dbnt],
    .project-details[b-qsre04dbnt] {
        grid-template-columns: 1fr;
    }

    .form-field.full-width[b-qsre04dbnt] {
        grid-column: auto;
    }

    .form-actions[b-qsre04dbnt] {
        flex-direction: column-reverse;
    }

        .form-actions button[b-qsre04dbnt] {
            width: 100%;
        }

    .project-grid[b-qsre04dbnt] {
        grid-template-columns: 1fr;
    }

    .status-filter[b-qsre04dbnt] {
        width: 100%;
    }
}
/* /Components/Pages/ProjectSetup.razor.rz.scp.css */
.setup-page[b-ocdta1r85f] {
    width: min(1400px, 100%);
    margin: 0 auto;
    padding: 22px 26px 40px;
    color: var(--color-charcoal);
    font-family:var(--font-body);
}
.state-page[b-ocdta1r85f] {
    min-height: 50vh;
    display: grid;
    place-content: center;
    gap: 16px;
    text-align: center;
}
.primary-button[b-ocdta1r85f], .secondary-button[b-ocdta1r85f] {
    padding: 0 18px;
    border-radius:var(--archex-radius-small);
    font-weight: 700;
    font-size: .82rem;
    cursor: pointer;
}
.primary-button[b-ocdta1r85f] {
    border: 1px solid var(--color-primary-dark);
    background: var(--color-primary-dark);
    color: #fff;
}
.secondary-button[b-ocdta1r85f] {
    border: 1px solid var(--color-divider);
    background: #fff;
    color: #222;
}
.ai-suggestion-strip[b-ocdta1r85f] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 18px;
    padding: 14px 18px;
    border-radius:var(--archex-radius-small);
    background: linear-gradient(90deg, #fff0e5, var(--color-panel));
    border: 1px solid var(--color-primary-light);
}
.ai-suggestion-strip > span[b-ocdta1r85f] {
    color: var(--color-primary);
    font-size: 1.2rem;
}
.ai-suggestion-strip strong[b-ocdta1r85f] { display: block; font-size: .86rem; }
.ai-suggestion-strip p[b-ocdta1r85f] { margin: 4px 0 10px; color: #6b5b4a; font-size: .78rem; }
.suggestion-actions[b-ocdta1r85f] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.suggestion-actions button[b-ocdta1r85f] {
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-small);
    background: #fff;
    color: var(--color-primary-dark);
    font-weight: 700;
    font-size: .72rem;
    cursor: pointer;
}
.suggestion-note[b-ocdta1r85f] {
    color: #7a5a3a;
    font-size: .72rem;
    font-style: italic;
}
.setup-grid[b-ocdta1r85f] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
}
.setup-card[b-ocdta1r85f] {
    min-width: 0;
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    box-shadow:var(--archex-shadow);
    padding: 18px;
}
.setup-card header[b-ocdta1r85f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.setup-card header h2[b-ocdta1r85f] {
    margin: 0;
    font-family:var(--font-heading);
    font-size: .86rem;
    letter-spacing: .01em;
    text-transform: uppercase;
}
.check-pill[b-ocdta1r85f] {
    padding: 3px 10px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
    background: #f1eee9;
    color: var(--color-gunmetal);
    white-space: nowrap;
}
.check-pill.done[b-ocdta1r85f] {
    background: #eaf6ea;
    color: var(--color-success);
}
.setup-card-hint[b-ocdta1r85f] {
    margin: 0 0 14px;
    color: #666;
    font-size: .76rem;
    line-height: 1.45;
}
.setup-form-grid[b-ocdta1r85f] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 14px;
}
.setup-form-grid label[b-ocdta1r85f], .setup-card > label[b-ocdta1r85f] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: .72rem;
    font-weight: 700;
    color: var(--color-charcoal);
}
.setup-form-grid input[b-ocdta1r85f],
.setup-form-grid select[b-ocdta1r85f],
.setup-card input[type="text"][b-ocdta1r85f] {
    min-height: 40px;
    padding: 9px 11px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font-size: .85rem;
}
.save-confirmation[b-ocdta1r85f] {
    margin: 10px 0 0;
    color: var(--color-success);
    font-size: .74rem;
    font-weight: 700;
}
.team-assign-list[b-ocdta1r85f] {
    display: grid;
    gap: 4px;
    margin-bottom: 14px;
}
.team-assign-list > div[b-ocdta1r85f] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 0;
    border-bottom: 1px solid #eee;
    font-size: .78rem;
}
.team-assign-list small[b-ocdta1r85f] { color: #777; }
.empty-compact[b-ocdta1r85f] { margin: 6px 0; color: #777; font-size: .73rem; }
.setup-finish[b-ocdta1r85f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    padding: 18px 22px;
    border-radius:var(--archex-radius-small);
    background: #fff;
    border: 1px solid #ddd;
}
.setup-finish p[b-ocdta1r85f] { margin: 4px 0 0; color: #666; font-size: .78rem; }

@media (max-width: 860px) {
    .setup-grid[b-ocdta1r85f], .setup-form-grid[b-ocdta1r85f] { grid-template-columns: 1fr; }
    .setup-finish[b-ocdta1r85f] { flex-direction: column; align-items: flex-start; }
}

/* Stage 5.1 — organisation relationships */
.relationship-list[b-ocdta1r85f] { display: flex; flex-direction: column; gap: 8px; margin: 8px 0 14px; }
.relationship-row[b-ocdta1r85f] {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px 12px; border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); background: var(--color-surface);
}
.relationship-row > div:first-child[b-ocdta1r85f] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.relationship-row strong[b-ocdta1r85f] { font-size: .84rem; }
.relationship-row small[b-ocdta1r85f] { color: #777; font-size: .72rem; }
.relationship-actions[b-ocdta1r85f] { display: flex; gap: 6px; flex-shrink: 0; }
.relationship-actions button[b-ocdta1r85f] {
    border: 1px solid #ccc; background: #fff; border-radius:var(--archex-radius-small); padding: 4px 10px;
    font-size: .72rem; cursor: pointer; color: #333;
}
.relationship-actions button:hover[b-ocdta1r85f] { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.relationship-suggestions[b-ocdta1r85f] { margin-top: 14px; padding: 12px; border: 1px dashed var(--color-primary-light); border-radius:var(--archex-radius-small); background: var(--color-panel); }
.relationship-suggestion-row[b-ocdta1r85f] {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 6px 0; border-top: 1px solid var(--color-primary-light);
}
.relationship-suggestion-row:first-of-type[b-ocdta1r85f] { border-top: none; }
.relationship-suggestion-row small[b-ocdta1r85f] { color: #8a6a4f; font-size: .72rem; }
.relationship-suggestion-row button[b-ocdta1r85f] {
    border: 1px solid var(--color-primary); background: var(--color-primary); color: #fff; border-radius:var(--archex-radius-small);
    padding: 4px 12px; font-size: .72rem; cursor: pointer; flex-shrink: 0;
}
.relationship-suggestion-row button:hover[b-ocdta1r85f] { background: var(--color-primary-dark); }
.suggestion-note[b-ocdta1r85f] { color: #8a6a4f; font-size: .75rem; margin: 0 0 8px; }
.error[b-ocdta1r85f] { color: #c0392b; font-size: .76rem; margin: 6px 0; }
/* /Components/Pages/ProjectSpatial.razor.rz.scp.css */
/* WR-14: project spatial workspace. */

/* ONE SCALE FOR THE WHOLE MAP PANEL (29 September 2026).
   Adam Deane: "make sure that its easy to use, all spaces are the same and easy to ready."
   Counted before this: THIRTEEN font sizes, twelve gaps and eight corner radii in this one file,
   grown a couple at a time as each control was added. Nothing was broken and everything was
   slightly out of step, which is exactly what reads as untidy without anybody being able to point
   at the reason.
   Four type steps and four spacing steps, and a new control takes one of them or argues its case
   in a comment. The smallest step is .68rem because below that this stops being readable on a
   laptop in a site office. */
.spatial-map-scale[b-bkcwmrwtlr],
.project-spatial-page[b-bkcwmrwtlr],
.ax-mapsurface[b-bkcwmrwtlr] {
    --map-text-xs: .68rem;   /* labels, counts, captions */
    --map-text-sm: .74rem;   /* body text inside the panel */
    --map-text-md: .82rem;   /* row names, choice titles */
    --map-text-lg: .95rem;   /* the export dialog's heading */

    --map-gap-1: 4px;        /* inside a control */
    --map-gap-2: 6px;        /* between controls in a row */
    --map-gap-3: 10px;       /* between groups of controls */
    --map-gap-4: 16px;       /* between sections */

    --map-radius-sm: 5px;    /* a chip, a small button */
    --map-radius: 8px;       /* a panel, a card, a dialog */

    --map-pad-1: 3px 7px;    /* a chip, a small button */
    --map-pad-2: 6px 10px;   /* a card, a boxed control */
    --map-pad-3: 11px 14px;  /* a dialog header or footer */
}

.project-spatial-page[b-bkcwmrwtlr] {
    display: grid;
    gap: var(--map-gap-4);
    max-width: 1400px;
    margin: 0 auto;
    padding: 32px;
}

.panel[b-bkcwmrwtlr] {
    padding: 22px 24px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
}

.panel.loading[b-bkcwmrwtlr], .panel.not-found[b-bkcwmrwtlr] { text-align: center; padding: 60px; }

.spatial-header[b-bkcwmrwtlr] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--map-gap-4);
}

    .spatial-header h1[b-bkcwmrwtlr] { margin: 6px 0; }
    .spatial-header .intro[b-bkcwmrwtlr] { color: var(--color-gunmetal); margin: 0; }

.header-actions[b-bkcwmrwtlr] { display: flex; gap: var(--map-gap-3); flex-wrap: wrap; }

    .header-actions .primary[b-bkcwmrwtlr] {
        padding: 12px 20px;
        border: 0;
        border-radius:var(--archex-radius-medium);
        background: var(--color-primary);
        color: #fff;
        font-weight: 700;
        cursor: pointer;
    }

    .header-actions .secondary[b-bkcwmrwtlr] {
        padding: 12px 20px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-medium);
        background: var(--color-surface);
        cursor: pointer;
    }

.upload-panel[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-3); }
    .upload-panel p[b-bkcwmrwtlr] { color: var(--color-gunmetal); margin: 4px 0 0; }
.upload-status[b-bkcwmrwtlr] { color: var(--color-primary-dark); font-weight: 600; }
.message-panel[b-bkcwmrwtlr] { border-left: 4px solid var(--color-primary); }

/* (A two-column ".map-panel" grid stood here. It was left behind by an earlier layout and matched
   nothing in the markup any more - dead, and quietly dangerous: the floating panel below was first
   written under that same name and would have silently inherited its 18 px padding. The panel is
   ".map-layers" instead, which is also what it is.) */

/* THE MAP GETS THE PAGE. One column, and a tall one: this screen exists to look at a site. The
   height leaves room for the tab bar above and a glimpse of the packages panel below, so the page
   still reads as scrollable rather than as a map that has swallowed everything. */
.ax-maplayout[b-bkcwmrwtlr] {
    display: block;
    min-height: 0;
}

    .ax-maplayout > .ax-mapsurface[b-bkcwmrwtlr] {
        min-height: min(78vh, 900px);
    }

/* THE MAP FILLS THE WINDOW ON REQUEST (29 September 2026).
   Adam Deane asked for it: on a 1 x 1 m pit the map is the work and the app's chrome is not.
   Fixed to the viewport rather than the browser's own Fullscreen API, because the app's shell has
   to stay reachable and because the API's escape key would leave Blazor's flag out of step with
   what is on screen - the classic "the button says exit and nothing happens". */
.ax-mapsurface.is-fullscreen[b-bkcwmrwtlr] {
    position: fixed;
    inset: 0;
    z-index: 60;
    border-radius: 0;

    /* !important, AND IT HAS TO BE (29 September 2026).
       Adam Deane: "when you go to full screen it still has a bit at the bottome you can see behind
       it." A strip of the page showed below the map, and it was 120 px every time - the exact
       CHROME_ALLOWANCE in archex-spatial-map.js. fitToViewport writes an INLINE
       height: (window.innerHeight - 120)px on this element to size the ordinary in-page map, and
       an inline style beats a stylesheet, so "inset: 0" could not stretch it: the element stayed
       780 px tall in a 900 px window, anchored at the top, and the page showed through the rest.
       Only an !important declaration outranks that inline height. dvh rather than vh so a phone's
       collapsing address bar does not reopen the same gap. */
    height: 100dvh !important;
    width: 100vw !important;
    max-height: none !important;
    min-height: 0 !important;
}

.map-fullscreen-btn[b-bkcwmrwtlr] {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 3;
    padding: 5px 10px;
    font-size: var(--map-text-sm);
    border-radius: var(--map-radius);
    border: 1px solid var(--color-divider);
    background: rgba(255, 255, 255, .95);
    cursor: pointer;
}

.map-fullscreen-btn:hover[b-bkcwmrwtlr] { background: #fff; }

/* The layer list floats over the map instead of taking a column off it. A list of layers is
   something you consult and then stop looking at; the site is not. */
.map-layers[b-bkcwmrwtlr] {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 300px;
    max-width: calc(100% - 24px);
    max-height: calc(100% - 24px);
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, .95);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-medium);
    box-shadow: var(--archex-shadow-hover);
    overflow: hidden;
}

    .map-layers.is-shut[b-bkcwmrwtlr] { width: auto; }

.map-layers-head[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-3);
    width: 100%;
    padding: 9px 12px;
    border: 0;
    background: none;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.map-layers-title[b-bkcwmrwtlr] { font-weight: 600; font-size: var(--map-text-md); }
.map-layers-count[b-bkcwmrwtlr] { margin-left: auto; font-size: var(--map-text-xs); color: var(--color-gunmetal); }
.map-layers-chevron[b-bkcwmrwtlr] { font-size: var(--map-text-md); color: var(--color-gunmetal); line-height: 1; }

.map-layers-body[b-bkcwmrwtlr] {
    padding: 0 12px 12px;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

/* Each shelf folds away on its own, so a job with thirty layers is still a short list. */
.layer-group[b-bkcwmrwtlr] { margin-bottom: var(--map-gap-2); }

    /* A button, not a <summary>: Blazor owns whether a shelf is open, so ticking a layer no longer
       slams it shut. Styled to read exactly as the heading it replaces. */
    .layer-group-head[b-bkcwmrwtlr] {
        display: flex;
        align-items: center;
        gap: var(--map-gap-2);
        width: 100%;
        cursor: pointer;
        padding: 4px 2px;
        border: 0;
        background: none;
        font: inherit;
        font-size: var(--map-text-xs);
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--color-gunmetal);
        text-align: left;
    }

    .layer-group-chevron[b-bkcwmrwtlr] { flex: none; width: 10px; }

.layer-group-name[b-bkcwmrwtlr] { font-weight: 600; }
.layer-group-count[b-bkcwmrwtlr] { margin-left: auto; letter-spacing: 0; text-transform: none; }

/* THE MAP FILLS THE PANEL IT IS GIVEN (28 September 2026).
   It was a fixed 520 px inside a panel sized to 74vh, so on any normal screen there was a band of
   empty background under it - on the one page whose entire job is showing a map. Absolute inset
   takes exactly the panel's size whatever that turns out to be, and the ResizeObserver already in
   the script tells OpenLayers when it changes. */
.map-canvas[b-bkcwmrwtlr] { position: relative; height: 100%; min-height: 420px; }

.spatial-map[b-bkcwmrwtlr] {
    position: absolute;
    inset: 0;
    border-radius:var(--archex-radius-medium);
    overflow: hidden;
    background: #e8e4dc;
}

.map-load-error[b-bkcwmrwtlr] {
    position: absolute;
    inset: auto 12px 12px 12px;
    padding: 10px 14px;
    border-radius:var(--archex-radius-small);
    background: #fff2d8;
    color: #996100;
    font-size: var(--map-text-md);
}

.map-popup[b-bkcwmrwtlr] {
    display: grid;
    gap: var(--map-gap-1);
    min-width: 180px;
    padding: 10px 12px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
    box-shadow:var(--archex-shadow-hover);
    font-size: var(--map-text-md);
}

.layer-panel[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-3); align-content: start; }

.layer-heading[b-bkcwmrwtlr] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-divider);
}

/* Two buttons that read as one control, so it is obvious they are alternatives rather than
   two independent things you could both have. */
.basemap-switch[b-bkcwmrwtlr] {
    display: flex;
    margin: 0 0 var(--map-gap-2);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    overflow: hidden;
}

    .basemap-switch button[b-bkcwmrwtlr] {
        flex: 1 1 0;
        padding: var(--map-pad-1);
        border: 0;
        background: var(--color-surface);
        cursor: pointer;
        font: inherit;
        font-size: var(--map-text-sm);
        color: var(--color-gunmetal);
    }

    .basemap-switch button + button[b-bkcwmrwtlr] { border-left: 1px solid var(--color-divider); }

    .basemap-switch button.is-on[b-bkcwmrwtlr] {
        background: var(--color-primary);
        color: #fff;
        font-weight: 600;
    }

/* WHAT IS LEFT TO DO, AT THE TOP. Under a phase filter this is the most useful sentence on the
   screen during fieldwork - the CHMP conditions require every registered place to be salvaged, and
   this says which ones have not been. Amber rather than red: it is work outstanding, not a fault. */
.layer-progress[b-bkcwmrwtlr] {
    display: grid;
    gap: var(--map-gap-1);
    padding: var(--map-pad-2);
    margin-bottom: var(--map-gap-2);
    border: 1px solid var(--archex-accent, #F18F3C);
    border-radius: var(--map-radius);
    background: rgba(241, 143, 60, .10);
    font-size: var(--map-text-sm);
    line-height: 1.35;
}

.layer-progress strong[b-bkcwmrwtlr] { font-size: var(--map-text-md); }
.layer-progress span[b-bkcwmrwtlr] { color: var(--color-gunmetal, #5a615d); }

/* The folded overlay-and-drawing tools. Closed, it is one line; open, it behaves like the rest of
   the panel. It opens itself while something inside it is in use, so nothing is ever hidden while
   it is doing something. */
.map-extras[b-bkcwmrwtlr] { margin-bottom: var(--map-gap-2); }

.map-extras > summary[b-bkcwmrwtlr] {
    cursor: pointer;
    padding: var(--map-pad-1);
    font-size: var(--map-text-xs);
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-gunmetal);
    border: 1px solid var(--color-hairline, #d8dbd9);
    border-radius: var(--map-radius-sm);
}

.map-extras[open] > summary[b-bkcwmrwtlr] { margin-bottom: var(--map-gap-2); }

/* The toolbar row: one gap between controls, matching every other row in the panel. */
.map-tools[b-bkcwmrwtlr] { display: flex; align-items: center; gap: var(--map-gap-2); flex-wrap: wrap; margin-bottom: var(--map-gap-3); }

.map-tool-toggle[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-1);
    cursor: pointer;
    font-size: var(--map-text-sm);
    white-space: nowrap;
}

.map-tool-hint[b-bkcwmrwtlr] { color: var(--color-gunmetal); margin: var(--map-gap-1) 0 0; }

/* THE SENSITIVITY SWITCH CARRIES ITS OWN KEY (29 September 2026).
   The swatch is the same #729b6f at the same 70% the layer draws at, so the control looks like
   what it turns on and no separate legend has to be kept in step with it. The colour is
   ArchExSymbology.Sensitivity; if that ever changes, both this and the SLD in
   archex-spatial-map.js change with it. */
.map-sensitivity-toggle[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-2);
    cursor: pointer;
    font-size: var(--map-text-md);
    white-space: nowrap;
    padding: var(--map-pad-1);
    margin-top: var(--map-gap-2);
    border: 1px solid var(--color-hairline, #d8dbd9);
    border-radius: var(--map-radius);
}

.map-sensitivity-toggle.is-on[b-bkcwmrwtlr] {
    border-color: #729b6f;
    background: rgba(114, 155, 111, .10);
}

/* THE SUPERSEDED SHELF LOOKS DIFFERENT BECAUSE IT IS DIFFERENT (29 September 2026).
   Adam Deane: "they should not be an easy click on and click off, this is where mistakes happen."
   Three activity areas sat in one list in one colour, all live. Retired ones now sit apart, drab,
   locked, and labelled - the point is that nobody reaches one without meaning to. */
.layer-group-superseded > .layer-group-head[b-bkcwmrwtlr] {
    color: var(--color-gunmetal, #5a615d);
    border-top: 1px solid var(--color-hairline, #d8dbd9);
    margin-top: var(--map-gap-3);
    padding-top: 8px;
}

.layer-superseded-note[b-bkcwmrwtlr] {
    margin: var(--map-gap-1) 0 var(--map-gap-2);
    font-size: var(--map-text-sm);
    line-height: 1.35;
    color: var(--color-gunmetal, #5a615d);
}

.layer-superseded-lock[b-bkcwmrwtlr] { margin-bottom: var(--map-gap-2); }

/* Drab, and the name struck through, so a retired boundary reads as retired in a screenshot
   taken by somebody who never opened this panel. */
.layer-row-superseded[b-bkcwmrwtlr] { opacity: .78; }
.layer-row-superseded strong[b-bkcwmrwtlr] { text-decoration: line-through; text-decoration-thickness: 1px; }

.layer-drawn[b-bkcwmrwtlr] {
    display: block;
    font-variant-numeric: tabular-nums;
    color: var(--color-gunmetal, #5a615d);
}

/* ---- the reworked layer panel (29 September 2026) --------------------------------------------
   Adam Deane: "all colums should have a click button at top to turn all on or all of ... maybe it
   has a little i icon for more infomraiton about the shapefile ... all files should be desktop,
   standard, complex, salvage, you can click see all or whatever at the top". */

.layer-phases[b-bkcwmrwtlr] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--map-gap-1);
    margin-bottom: var(--map-gap-2);
}

.layer-phase[b-bkcwmrwtlr] {
    font: inherit;
    font-size: var(--map-text-xs);
    padding: var(--map-pad-1);
    border-radius: 999px;
    border: 1px solid var(--color-hairline, #d8dbd9);
    background: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--map-gap-2);
}

.layer-phase span[b-bkcwmrwtlr] {
    font-size: var(--map-text-xs);
    padding: 0 var(--map-gap-1);
    border-radius: 999px;
    background: var(--color-hairline, #d8dbd9);
}

.layer-phase.is-on[b-bkcwmrwtlr] {
    background: var(--archex-accent, #F18F3C);
    border-color: var(--archex-accent, #F18F3C);
    color: #fff;
}

.layer-phase.is-on span[b-bkcwmrwtlr] { background: rgba(255, 255, 255, .34); }

/* The shelf's all-on/all-off. Outside the <summary>, because a button inside one competes with the
   click the browser uses to open and close the group. */
.layer-group-toggle[b-bkcwmrwtlr] {
    font: inherit;
    font-size: var(--map-text-xs);
    padding: var(--map-pad-1);
    margin: var(--map-gap-1) 0 var(--map-gap-2);
    border-radius: var(--map-radius-sm);
    border: 1px solid var(--color-hairline, #d8dbd9);
    background: none;
    cursor: pointer;
}

.layer-group-toggle:hover[b-bkcwmrwtlr] { background: var(--color-hairline, #d8dbd9); }

/* A row is now a checkbox, a colour and a name. Everything else went behind the (i). */
/* Zoom and (i) are the same size and sit together, so a row ends in one tidy pair rather than two
   controls of different weights. Adam Deane: "I need a little icon for zoom to layer on the main
   tab." */
.layer-zoom-btn[b-bkcwmrwtlr],
.layer-info-btn[b-bkcwmrwtlr] {
    flex: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid var(--color-hairline, #d8dbd9);
    background: none;
    cursor: pointer;
    font: italic 600 .72rem/1 Georgia, serif;
    color: var(--color-gunmetal, #5a615d);
}

.layer-info-btn.is-on[b-bkcwmrwtlr] {
    background: var(--archex-accent, #F18F3C);
    border-color: var(--archex-accent, #F18F3C);
    color: #fff;
}

.layer-zoom-btn[b-bkcwmrwtlr] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.layer-zoom-btn svg[b-bkcwmrwtlr] { width: 12px; height: 12px; }

.layer-zoom-btn:hover[b-bkcwmrwtlr],
.layer-info-btn:hover[b-bkcwmrwtlr] {
    background: var(--color-hairline, #d8dbd9);
}

.layer-info[b-bkcwmrwtlr] {
    margin: 0 0 var(--map-gap-2) 22px;
    padding: var(--map-pad-2);
    border-left: 2px solid var(--archex-accent, #F18F3C);
    background: rgba(0, 0, 0, .03);
    border-radius: 0 6px 6px 0;
    font-size: var(--map-text-sm);
}

.layer-info dl[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-1); margin: 0 0 var(--map-gap-2); }
.layer-info dl div[b-bkcwmrwtlr] { display: flex; gap: var(--map-gap-2); }
.layer-info dt[b-bkcwmrwtlr] { flex: none; min-width: 108px; color: var(--color-gunmetal, #5a615d); }
.layer-info dd[b-bkcwmrwtlr] { margin: 0; word-break: break-word; }

.layer-info-basis[b-bkcwmrwtlr] { margin: 0 0 var(--map-gap-2); line-height: 1.4; }
.layer-info-basis strong[b-bkcwmrwtlr] { display: block; color: var(--color-gunmetal, #5a615d); }

.layer-info-controls[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-2);
    flex-wrap: wrap;
    margin-top: var(--map-gap-2);
}

.layer-info-controls label[b-bkcwmrwtlr] { display: inline-flex; align-items: center; gap: var(--map-gap-1); }
.layer-info-controls select[b-bkcwmrwtlr] { font: inherit; font-size: var(--map-text-sm); padding: var(--map-pad-1); }
.layer-info-controls input[type="color"][b-bkcwmrwtlr] { width: 30px; height: 22px; padding: 0; border: 1px solid var(--color-hairline, #d8dbd9); }
.layer-info-hint[b-bkcwmrwtlr] { color: var(--color-gunmetal, #5a615d); }

/* ---- the export dialog ----------------------------------------------------------------------
   Adam Deane: "When you click the export button its shit, maybe a popout that looks good with an
   easy click". It sits over the map rather than the page, so the map stays the frame of reference
   while you choose what to send off it. */

.map-dialog-backdrop[b-bkcwmrwtlr] {
    position: absolute;
    inset: 0;
    z-index: 20;
    background: rgba(17, 17, 17, .34);
}

.map-dialog[b-bkcwmrwtlr] {
    position: absolute;
    z-index: 21;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(520px, calc(100% - 28px));
    max-height: calc(100% - 28px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--map-radius);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .3);
    overflow: hidden;
}

.map-dialog header[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-3);
    padding: var(--map-pad-3);
    border-bottom: 1px solid var(--color-hairline, #d8dbd9);
}

.map-dialog header h3[b-bkcwmrwtlr] { margin: 0; font-size: var(--map-text-lg); }

.map-dialog-close[b-bkcwmrwtlr] {
    margin-left: auto;
    border: 0;
    background: none;
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    color: var(--color-gunmetal, #5a615d);
}

.map-dialog-body[b-bkcwmrwtlr] { padding: var(--map-pad-3); overflow-y: auto; display: grid; gap: var(--map-gap-4); }

.map-dialog-body h4[b-bkcwmrwtlr] {
    margin: 0 0 var(--map-gap-2);
    font-size: var(--map-text-xs);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-gunmetal, #5a615d);
    display: flex;
    gap: var(--map-gap-3);
}

.map-dialog-body h4 span[b-bkcwmrwtlr] { text-transform: none; letter-spacing: 0; font-weight: 400; }

.map-dialog-row[b-bkcwmrwtlr] { display: flex; gap: var(--map-gap-2); flex-wrap: wrap; margin-bottom: var(--map-gap-2); }

.map-dialog-layers[b-bkcwmrwtlr] {
    max-height: 190px;
    overflow-y: auto;
    border: 1px solid var(--color-hairline, #d8dbd9);
    border-radius: var(--map-radius);
    padding: var(--map-gap-2);
    display: grid;
    gap: var(--map-gap-1);
}

.map-dialog-layers label[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-2);
    padding: var(--map-pad-1);
    border-radius: var(--map-radius-sm);
    cursor: pointer;
    font-size: var(--map-text-md);
}

.map-dialog-layers label:hover[b-bkcwmrwtlr] { background: rgba(0, 0, 0, .04); }
.map-dialog-layers label.is-superseded[b-bkcwmrwtlr] { color: var(--color-gunmetal, #5a615d); }
.map-dialog-layers em[b-bkcwmrwtlr] { margin-left: auto; font-size: var(--map-text-xs); color: #6b1b12; }

/* Two columns of cards rather than a select, so the "what is this for" line is readable without
   opening anything. Choosing a format is the decision people get wrong. */
.map-dialog-choices[b-bkcwmrwtlr] { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--map-gap-2); }

.map-dialog-choices button[b-bkcwmrwtlr] {
    font: inherit;
    text-align: left;
    padding: var(--map-pad-2);
    border-radius: var(--map-radius);
    border: 1px solid var(--color-hairline, #d8dbd9);
    background: none;
    cursor: pointer;
    display: grid;
    gap: var(--map-gap-1);
}

.map-dialog-choices button strong[b-bkcwmrwtlr] { font-size: var(--map-text-md); }
.map-dialog-choices button small[b-bkcwmrwtlr] { font-size: var(--map-text-xs); color: var(--color-gunmetal, #5a615d); }

.map-dialog-choices button.is-on[b-bkcwmrwtlr] {
    border-color: var(--archex-accent, #F18F3C);
    background: rgba(241, 143, 60, .12);
}

.map-dialog-note[b-bkcwmrwtlr], .map-dialog-warn[b-bkcwmrwtlr] {
    margin: var(--map-gap-2) 0 0;
    font-size: var(--map-text-sm);
    line-height: 1.4;
}

.map-dialog-note[b-bkcwmrwtlr] { color: var(--color-gunmetal, #5a615d); }
.map-dialog-warn[b-bkcwmrwtlr] { color: #6b1b12; }

.map-dialog footer[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    gap: var(--map-gap-3);
    padding: var(--map-pad-3);
    border-top: 1px solid var(--color-hairline, #d8dbd9);
}

.map-dialog-summary[b-bkcwmrwtlr] { font-size: var(--map-text-sm); color: var(--color-gunmetal, #5a615d); }
.map-dialog footer a[b-bkcwmrwtlr] { margin-left: auto; text-decoration: none; }

@media (max-width: 520px) {
    .map-dialog-choices[b-bkcwmrwtlr] { grid-template-columns: 1fr; }
}

/* The make-shapefile controls. They replace themselves in place - two buttons, then the hint while
   you draw, then the name box - so the panel does not jump about and there is only ever one thing
   to do next. */
.map-draw[b-bkcwmrwtlr] {
    display: grid;
    gap: var(--map-gap-2);
    padding: var(--map-gap-2);
    margin-bottom: var(--map-gap-3);
    border: 1px solid var(--color-hairline, #d8dbd9);
    border-radius: var(--map-radius);
}

.map-draw-row[b-bkcwmrwtlr] { display: flex; gap: var(--map-gap-2); flex-wrap: wrap; }

.map-draw-hint[b-bkcwmrwtlr] {
    margin: 0;
    font-size: var(--map-text-sm);
    line-height: 1.35;
    color: var(--color-gunmetal, #5a615d);
}

.map-draw-name[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-1); font-size: var(--map-text-sm); }

/* One box per drawn shape, numbered in the order they were clicked, so what you type beside 3 is
   what lands on the third thing you drew. */
.map-draw-labels[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-1); }

.map-draw-labels-head[b-bkcwmrwtlr] {
    font-size: var(--map-text-xs);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-gunmetal, #5a615d);
}

.map-draw-labels label[b-bkcwmrwtlr] { display: flex; align-items: center; gap: var(--map-gap-2); }

.map-draw-labels label > span[b-bkcwmrwtlr] {
    flex: none;
    width: 16px;
    text-align: right;
    font-size: var(--map-text-xs);
    color: var(--color-gunmetal, #5a615d);
}

.map-draw-labels input[b-bkcwmrwtlr] { flex: 1; min-width: 0; }

.map-draw-labels input[b-bkcwmrwtlr], .map-draw-name input[b-bkcwmrwtlr] {
    font: inherit;
    padding: var(--map-pad-1);
    border: 1px solid var(--color-hairline, #d8dbd9);
    border-radius: var(--map-radius-sm);
}

/* Said on the control, not only in the file. Somebody drawing a boundary over aerial imagery at
   zoom 14 should be told before they save, not after somebody measures off it. */
.map-draw-warn[b-bkcwmrwtlr] {
    margin: 0;
    font-size: var(--map-text-xs);
    line-height: 1.3;
    color: #6b1b12;
}

/* The export menu. A <details> rather than a dropdown so it needs no script and no round trip,
   and the four links are ordinary anchors the browser downloads by itself. */
.layer-export[b-bkcwmrwtlr] { flex: none; }

.layer-export > summary[b-bkcwmrwtlr] {
    cursor: pointer;
    font-size: var(--map-text-sm);
    padding: var(--map-pad-1);
    border-radius: var(--map-radius-sm);
    border: 1px solid var(--color-hairline, #d8dbd9);
    white-space: nowrap;
    list-style: none;
}

.layer-export > summary[b-bkcwmrwtlr]::-webkit-details-marker { display: none; }

.layer-export[open] > summary[b-bkcwmrwtlr] { background: var(--color-hairline, #d8dbd9); }

.layer-export a[b-bkcwmrwtlr] {
    display: block;
    font-size: var(--map-text-sm);
    padding: var(--map-pad-1);
    white-space: nowrap;
}

.layer-export-warn[b-bkcwmrwtlr] {
    margin: var(--map-gap-1) var(--map-gap-2) var(--map-gap-1);
    font-size: var(--map-text-xs);
    line-height: 1.3;
    color: #6b1b12;
    max-width: 180px;
}

/* Across the top of the map, not tucked into the panel: the panel can be shut. */
.map-superseded-warning[b-bkcwmrwtlr] {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    max-width: min(560px, calc(100% - 24px));
    display: grid;
    gap: var(--map-gap-1);
    padding: var(--map-pad-2);
    border-radius: var(--map-radius);
    border: 1px solid #b42318;
    background: #fff4f2;
    color: #6b1b12;
    font-size: var(--map-text-sm);
    line-height: 1.35;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .14);
}

.map-sensitivity-swatch[b-bkcwmrwtlr] {
    width: 14px;
    height: 14px;
    flex: none;
    border-radius: var(--map-radius-sm);
    background: rgba(114, 155, 111, .70);
    border: 1px solid #729b6f;
}

/* The list no longer needs a height of its own - the floating panel it sits in has one, and it
   scrolls. Two scrollbars inside each other was the thing that made the rows unreachable. */
.layer-list[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-1); }

/* A ROW PER LAYER, NOT A PARAGRAPH PER LAYER (28 September 2026).
   Each row was wrapping to four lines - "AS4 North Salvage" over two, then feature count, geometry
   type, full CRS name and status over two more - so a project with sixteen layers showed three and
   a half. The name gets two lines at most and the rest is held to one, ellipsised, with the whole
   string on the element's title for anyone who wants it. */
.layer-row[b-bkcwmrwtlr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--map-gap-2);
    padding: var(--map-pad-1);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
}

    .layer-row label[b-bkcwmrwtlr] { display: flex; align-items: center; gap: var(--map-gap-3); cursor: pointer; min-width: 0; flex: 1 1 auto; }

    .layer-row strong[b-bkcwmrwtlr] {
        font-size: var(--map-text-md);
        line-height: 1.25;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .layer-row .ax-btn[b-bkcwmrwtlr] { flex: none; }

.layer-evidence[b-bkcwmrwtlr] { margin-top: var(--map-gap-1); }

    .layer-evidence summary[b-bkcwmrwtlr] {
        cursor: pointer;
        font-size: var(--map-text-xs);
        color: var(--color-gunmetal);
        text-decoration: underline dotted;
    }

    .layer-evidence p[b-bkcwmrwtlr] {
        margin: var(--map-gap-1) 0 0;
        font-size: var(--map-text-xs);
        line-height: 1.4;
        color: var(--color-gunmetal);
    }

.layer-swatch[b-bkcwmrwtlr] { width: 14px; height: 14px; border-radius: var(--map-radius-sm); flex: none; }
.layer-copy[b-bkcwmrwtlr] { display: grid; min-width: 0; }

    .layer-copy small[b-bkcwmrwtlr] {
        color: var(--color-gunmetal);
        font-size: var(--map-text-xs);
        line-height: 1.3;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.text-button[b-bkcwmrwtlr] {
    border: 0;
    background: none;
    color: var(--color-primary-dark);
    font-weight: 700;
    font-size: var(--map-text-md);
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.package-list[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-3); }

.package-row[b-bkcwmrwtlr] {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto minmax(0, 2fr) auto;
    align-items: center;
    gap: var(--map-gap-4);
    padding: var(--map-pad-3);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
}

.package-identity[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-1); }
    .package-identity small[b-bkcwmrwtlr] { color: var(--color-gunmetal); }

.package-notes[b-bkcwmrwtlr] { font-size: var(--map-text-md); color: var(--color-gunmetal); }
    .package-notes ul[b-bkcwmrwtlr] { margin: 0; padding-left: 16px; }
    .package-notes p[b-bkcwmrwtlr] { margin: var(--map-gap-1) 0 0; }

.package-actions[b-bkcwmrwtlr] { display: grid; gap: var(--map-gap-2); justify-items: end; }

.status-chip[b-bkcwmrwtlr] {
    padding: var(--map-pad-2);
    border-radius: 999px;
    font-size: var(--map-text-xs);
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}

    .status-chip.ok[b-bkcwmrwtlr] { background: #dff5e4; color: #237a37; }
    .status-chip.pending[b-bkcwmrwtlr] { background: #ececec; color: #555; }
    .status-chip.busy[b-bkcwmrwtlr] { background: var(--color-panel); color: #3551b5; }
    .status-chip.review[b-bkcwmrwtlr] { background: #fff2d8; color: #996100; }
    .status-chip.failed[b-bkcwmrwtlr] { background: #fde3e1; color: #b42318; }



@media (max-width: 900px) {
    .project-spatial-page[b-bkcwmrwtlr] { padding: 18px; }

    /* On a phone a 300 px panel pinned over the map hides the map. It spans the width instead and
       is capped at half the height, so folding it away gives the whole screen back. */
    .map-layers[b-bkcwmrwtlr] { top: 8px; right: 8px; left: 8px; width: auto; max-height: 55%; }
    .map-layers.is-shut[b-bkcwmrwtlr] { left: auto; }

    .ax-maplayout > .ax-mapsurface[b-bkcwmrwtlr] { min-height: 72vh; }
    .package-row[b-bkcwmrwtlr] { grid-template-columns: 1fr; align-items: start; }
    .package-actions[b-bkcwmrwtlr] { justify-items: start; }
    .spatial-header[b-bkcwmrwtlr] { flex-direction: column; }
}

/* WR-64 slice 5 — the way in to activity-area preparation.
   Highlighted only while there is no activity area yet: once one exists this is a
   link like any other, and a permanently loud card teaches people to ignore it. */
.activity-area-entry[b-bkcwmrwtlr] { border-left: 5px solid #b9b2a8; }

.activity-area-entry.is-next[b-bkcwmrwtlr] {
    border-left-color: #c8862a;
    background: #fffaf1;
}

.activity-area-entry p[b-bkcwmrwtlr] {
    font-size: var(--map-text-lg);
    line-height: 1.6;
    margin: var(--map-gap-3) 0 0;
}
/* /Components/Pages/ProjectWorkspace.razor.rz.scp.css */

.project-workbench[b-cdsaewa816] {
    /* UI-01 repair: border-box so the padding never pushes the page 52px past
       the viewport (the old content-box width clipped the right edge). */
    box-sizing: border-box;
    width: min(1540px, 100%);
    margin: 0 auto;
    padding: 22px 26px 34px;
    color: var(--color-charcoal);
    font-family:var(--font-body);
    background: var(--color-background);
}
.state-page[b-cdsaewa816] {
    min-height: 50vh;
    display: grid;
    place-content: center;
    gap: 16px;
    text-align: center;
}
.project-identity[b-cdsaewa816] {
    display: grid;
    grid-template-columns: 185px minmax(280px, 1fr) minmax(520px, 1.4fr) auto;
    align-items: center;
    gap: 20px;
    padding: 0 0 20px;
    border-bottom: 1px solid var(--color-divider);
}
.project-image[b-cdsaewa816] {
    min-height: 112px;
    border: 0;
    border-radius:var(--archex-radius-small);
    background:
        linear-gradient(rgba(26,26,26,.16), rgba(26,26,26,.35)),
        radial-gradient(circle at 70% 30%, #b78354 0 8%, transparent 9%),
        linear-gradient(135deg,#866f54,#c6b18b 54%,#71624d);
    color: #fff;
    display:flex;
    align-items:flex-end;
    justify-content:flex-start;
    padding:12px;
    cursor:pointer;
    box-shadow:var(--archex-shadow);
}
.project-image span[b-cdsaewa816] {
    padding: 7px 10px;
    background: rgba(20,20,20,.72);
    border-radius:var(--archex-radius-small);
    font-size: .76rem;
    font-weight: 800;
}
.identity-title[b-cdsaewa816] {display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.identity-title h1[b-cdsaewa816] {
    margin: 0;
    font-family:var(--font-heading);
    font-size: var(--archex-text-2xl);
    line-height:1.05;
    letter-spacing:-.035em;
}
.identity-copy p[b-cdsaewa816] {margin:5px 0;color:var(--color-gunmetal);font-size:.88rem}
.identity-copy .identity-location[b-cdsaewa816] {font-size:1rem;color:var(--color-charcoal)}
.status-pill[b-cdsaewa816] {
    display:inline-flex;padding:6px 12px;border-radius:999px;font-size:.72rem;font-weight:800;
    background:#edf1ed;color:#365f3c;border:1px solid var(--color-divider);
}
.status-pill.warning[b-cdsaewa816]{background:#fff0e6;color:var(--color-primary-dark);border-color:var(--color-primary-light)}
.status-pill.completed[b-cdsaewa816]{background:#eef0f4;color:#4f5968;border-color:#d9dde5}
.status-pill.danger[b-cdsaewa816]{background:#fbe8e4;color:#a23122;border-color:#efc9c1}
.status-pill.reporting[b-cdsaewa816]{background:#fff3de;color:#8c6300;border-color:var(--color-divider)}
.status-pill.planning[b-cdsaewa816]{background:#f0eeec;color:var(--color-gunmetal);border-color:var(--color-divider)}
.identity-metrics[b-cdsaewa816] {
    display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));
    align-items:stretch;
}
.identity-metrics>div[b-cdsaewa816] {
    min-height:70px;padding:6px 16px;border-left:1px solid var(--color-divider);
    display:flex;flex-direction:column;justify-content:center;gap:6px;
}
.identity-metrics span[b-cdsaewa816] {font-size:.68rem;color:#666;text-transform:uppercase;letter-spacing:.04em}
.identity-metrics strong[b-cdsaewa816] {font-size:.86rem}
.health-badge[b-cdsaewa816] {
    display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:800;
    width:fit-content;
}
.health-badge.health-excellent[b-cdsaewa816] {background:#eaf6ea;color:var(--color-success);border:1px solid var(--color-divider)}
.health-badge.health-good[b-cdsaewa816] {background:var(--color-panel);color:#1f5f9c;border:1px solid var(--color-divider)}
.health-badge.health-warning[b-cdsaewa816] {background:#fff3de;color:#8c6300;border:1px solid #ecd9a8}
.health-badge.health-critical[b-cdsaewa816] {background:#fbe8e4;color:#a23122;border:1px solid var(--color-divider)}
.progress-metric i[b-cdsaewa816] {height:5px;border-radius:999px;background:#ddd;overflow:hidden}
.progress-metric i b[b-cdsaewa816] {display:block;height:100%;border-radius:inherit;background:#4e9b46}
.identity-actions[b-cdsaewa816] {display:grid;gap:8px}
.primary-button[b-cdsaewa816],.secondary-button[b-cdsaewa816],.card-action[b-cdsaewa816] {
    padding:0 16px;border-radius:var(--archex-radius-small);font:800 .78rem var(--font-body);cursor:pointer
}
.primary-button[b-cdsaewa816],.card-action[b-cdsaewa816] {border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}
.primary-button:hover[b-cdsaewa816],.card-action:hover[b-cdsaewa816] {background:var(--color-primary-dark)}
.secondary-button[b-cdsaewa816] {border:1px solid var(--color-divider);background:#fff;color:#222}

.workbench-top[b-cdsaewa816] {
    display:grid;grid-template-columns:minmax(0,3fr) minmax(270px,1fr);gap:14px;margin-top:18px;
}
.work-card[b-cdsaewa816] {
    min-width:0;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:#fff;
    box-shadow:var(--archex-shadow);padding:15px;
}
.work-card header[b-cdsaewa816] {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.work-card header h2[b-cdsaewa816] {
    margin:0;font-family:var(--font-heading);font-size:.79rem;letter-spacing:.01em;text-transform:uppercase
}
.work-card header button[b-cdsaewa816] {
    border:0;background:transparent;color:var(--color-primary);font:700 .72rem var(--font-body);cursor:pointer
}
.workflow-track[b-cdsaewa816] {display:flex;align-items:flex-start;overflow-x:auto;padding:10px 5px 1px}
.workflow-node[b-cdsaewa816] {
    position:relative;min-width:112px;flex:1;border:0;background:transparent;cursor:pointer;text-align:center;color:#333
}
.workflow-node:not(:last-child)[b-cdsaewa816]::after {
    content:"";position:absolute;top:22px;left:65%;width:70%;height:3px;background:#dedede;z-index:0
}
.workflow-node.completed:not(:last-child)[b-cdsaewa816]::after {background:#4b9d45}
.workflow-node span[b-cdsaewa816] {
    position:relative;z-index:1;display:grid;place-items:center;width:43px;height:43px;margin:0 auto 8px;
    border-radius:50%;background:#cfcfcf;color:#fff;font-size:1.05rem;font-weight:900
}
.workflow-node.completed span[b-cdsaewa816]{background:#4b9d45}
.workflow-node.current span[b-cdsaewa816],.workflow-node.active span[b-cdsaewa816]{background:var(--color-primary)}
.workflow-node strong[b-cdsaewa816],.workflow-node small[b-cdsaewa816]{display:block}
.workflow-node strong[b-cdsaewa816]{font-size:.74rem;line-height:1.25}
.workflow-node small[b-cdsaewa816]{margin-top:4px;font-size:.65rem;color:#777}
.workflow-node.completed small[b-cdsaewa816]{color:#40943b}
.workflow-node.current small[b-cdsaewa816],.workflow-node.active small[b-cdsaewa816]{color:var(--color-primary)}
.workflow-waiting-list[b-cdsaewa816] {
    list-style:none;margin:8px 0 0;padding:8px 8px;text-align:left;
    background:var(--color-panel);border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);font-size:.62rem;line-height:1.4;
    max-width:170px;
}
.workflow-waiting-heading[b-cdsaewa816] {font-weight:800;color:#a5772f;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.workflow-waiting-list li[b-cdsaewa816] {color:#6b5a3f}
.workflow-waiting-list li:not(.workflow-waiting-heading)[b-cdsaewa816] {padding:1px 0}
.next-card[b-cdsaewa816] {display:grid;grid-template-columns:42px 1fr;align-content:start;column-gap:12px}
.next-card header[b-cdsaewa816] {grid-column:1/-1}
.next-action-icon[b-cdsaewa816] {grid-row:2/4;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--color-panel);color:var(--color-primary);font-size:1.3rem}
.next-card>strong[b-cdsaewa816] {font-size:.96rem}
.next-card p[b-cdsaewa816] {margin:5px 0 12px;color:#666;font-size:.76rem;line-height:1.45}
.next-action-meta[b-cdsaewa816] {grid-column:1/-1;margin:0 0 12px;display:grid;gap:0}
.next-action-meta div[b-cdsaewa816] {display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #eee;font-size:.72rem}
.next-action-meta dt[b-cdsaewa816] {color:#888;text-transform:uppercase;letter-spacing:.03em;font-size:.62rem;font-weight:700}
.next-action-meta dd[b-cdsaewa816] {margin:0;color:#333;text-align:right;max-width:70%}
.next-card .primary-button[b-cdsaewa816]{grid-column:1/-1;width:100%}
.attention-strip[b-cdsaewa816] {
    display:flex;align-items:center;gap:14px;margin:14px 0 0;padding:11px 14px;
    border:1px solid var(--color-primary-light);border-radius:var(--archex-radius-small);background:#fff8f1;font-size:.77rem
}
.attention-strip strong[b-cdsaewa816]{color:var(--color-primary-dark)}
.attention-strip span[b-cdsaewa816]{flex:1}
.attention-strip button[b-cdsaewa816]{border:0;background:transparent;color:var(--color-primary);font-weight:800;cursor:pointer}
.waiting-for-strip[b-cdsaewa816]{border-color:var(--color-divider);background:var(--color-panel)}
.waiting-for-strip strong[b-cdsaewa816]{color:#245a86}
.waiting-for-strip button[b-cdsaewa816]{color:#1c6fb8}
.requirement-list[b-cdsaewa816]{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.requirement-item[b-cdsaewa816]{
    display:grid;gap:4px;padding:10px 12px;border:1px solid #eee;border-radius:var(--archex-radius-small);background:var(--color-surface);
    border-left:3px solid var(--color-divider);font-size:.78rem
}
.requirement-item strong[b-cdsaewa816]{font-size:.82rem;color:#222}
.requirement-item small[b-cdsaewa816]{color:#666;line-height:1.4}
.requirement-item.requirement-satisfied[b-cdsaewa816]{border-left-color:#2e9e5b;background:var(--color-panel)}
.requirement-item.requirement-awaitingapproval[b-cdsaewa816]{border-left-color:#e0932a;background:var(--color-panel)}
.requirement-item.requirement-blocked[b-cdsaewa816]{border-left-color:#d34747;background:#fdf3f3}
.requirement-item.requirement-returnedforreview[b-cdsaewa816]{border-left-color:#d34747;background:#fdf3f3}
.requirement-item.requirement-pending[b-cdsaewa816]{border-left-color:#c9c9c9}
.requirement-action[b-cdsaewa816]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.requirement-action input[type="text"][b-cdsaewa816]{
    flex:1 1 180px;min-width:140px;padding:7px 9px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);font-size:.76rem
}
.requirement-error[b-cdsaewa816]{color:#c0392b;width:100%}
/* UI-01 repair: the four preview cards work in TWO columns at desktop widths —
   four narrow columns were unusable — and one column below 850px. Every grid
   child is fully constrained so no card can overlap its neighbour. */
.workbench-grid[b-cdsaewa816] {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;
}
.workbench-grid > *[b-cdsaewa816] {min-width:0;overflow:hidden}
.overview-card[b-cdsaewa816],.team-card[b-cdsaewa816] {grid-column:span 1}
.activity-card[b-cdsaewa816],.documents-card[b-cdsaewa816] {grid-column:span 1}
.spatial-card[b-cdsaewa816] {grid-column:span 1}
.metric-list[b-cdsaewa816],.finance-list[b-cdsaewa816] {margin:0;display:grid;gap:0}
.metric-list div[b-cdsaewa816],.finance-list div[b-cdsaewa816] {display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eee}
.metric-list dt[b-cdsaewa816],.finance-list dt[b-cdsaewa816] {color:#555;font-size:.75rem}
.metric-list dd[b-cdsaewa816],.finance-list dd[b-cdsaewa816] {margin:0;font-weight:800;font-size:.78rem}
.card-action[b-cdsaewa816] {width:100%;margin-top:12px}
.card-action.light[b-cdsaewa816]{border-color:var(--color-divider);background:#fff;color:#222}
.live-list[b-cdsaewa816],.schedule-list[b-cdsaewa816],.team-list[b-cdsaewa816] {display:grid;gap:2px;min-width:0}
.live-list>button[b-cdsaewa816],.schedule-list>button[b-cdsaewa816] {
    display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:8px 0;
    border:0;border-bottom:1px solid #eee;background:transparent;text-align:left;cursor:pointer;
    min-width:0;overflow:hidden
}
.list-icon[b-cdsaewa816] {display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#f6eee9;color:var(--color-primary);font-weight:900}
.live-list>button>span:nth-child(2)[b-cdsaewa816],.schedule-list>button>span:nth-child(2)[b-cdsaewa816]{min-width:0;overflow:hidden}
.live-list span span[b-cdsaewa816],.schedule-list span span[b-cdsaewa816]{min-width:0}
.live-list strong[b-cdsaewa816],.live-list small[b-cdsaewa816],.schedule-list strong[b-cdsaewa816],.schedule-list small[b-cdsaewa816]{display:block}
/* UI-01 repair: long document names wrap to at most two lines inside their own
   card — never across a card boundary. */
.live-list strong[b-cdsaewa816],.schedule-list strong[b-cdsaewa816]{
    font-size:.75rem;white-space:normal;overflow-wrap:anywhere;overflow:hidden;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical
}
.live-list small[b-cdsaewa816],.schedule-list small[b-cdsaewa816]{margin-top:3px;color:#777;font-size:.65rem}
.live-list em[b-cdsaewa816],.schedule-list em[b-cdsaewa816] {padding:4px 7px;border-radius:var(--archex-radius-small);background:#f1f1f1;font-size:.62rem;font-style:normal}
.live-list em.approved[b-cdsaewa816]{background:#e5f4e3;color:#397338}
.live-list em.review[b-cdsaewa816]{background:#fff0e8;color:var(--color-primary-dark)}
/* UI-01: genuine read-only spatial preview — the decorative gradient
   placeholder that pretended to be a map is gone. The container stays a
   light neutral so processed vector geometry remains visible even when
   basemap tiles are unavailable. */
.spatial-preview[b-cdsaewa816] {
    position:relative;width:100%;min-height:200px;border:1px solid #ddd6cc;border-radius:var(--archex-radius-small);
    overflow:hidden;background:#edeae3;cursor:pointer;
}
.spatial-preview:hover[b-cdsaewa816],.spatial-preview:focus-visible[b-cdsaewa816] {border-color:var(--color-primary)}
.spatial-preview-map[b-cdsaewa816] {position:absolute;inset:0;pointer-events:none}
.spatial-preview-error[b-cdsaewa816] {
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    padding:16px;background:#faf8f4;color:#6b6459;font-size:.76rem;text-align:center;
}
/* The rule above is author-origin, so it outranks the browser's own
   [hidden]{display:none} and would leave this opaque panel covering the map at
   all times. The `hidden` attribute is the only switch the JS uses, so it needs
   an author-origin rule of its own to mean anything. */
.spatial-preview-error[hidden][b-cdsaewa816] {display:none}
.spatial-preview-summary[b-cdsaewa816] {display:block;margin:8px 0 2px;color:#666;font-size:.72rem}
.team-list>div[b-cdsaewa816] {display:flex;align-items:center;gap:9px;padding:6px 0}
.avatar[b-cdsaewa816] {display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#eee2d8;color:var(--color-primary-dark);font-size:.68rem;font-weight:900}
.team-list strong[b-cdsaewa816],.team-list small[b-cdsaewa816]{display:block}
.team-list strong[b-cdsaewa816]{font-size:.75rem}.team-list small[b-cdsaewa816]{font-size:.65rem;color:#777}
.schedule-list>button span:first-child[b-cdsaewa816]{font-size:1.2rem;color:#555}
.finance-list dd[b-cdsaewa816]{color:#222}
.communications-summary[b-cdsaewa816]{margin-bottom:10px}
.team-status-line[b-cdsaewa816] {display:flex;justify-content:space-between;gap:10px;padding:8px 0 2px;margin-top:4px;border-top:1px solid #eee;font-size:.7rem}
.team-status-line span[b-cdsaewa816] {color:#888;text-transform:uppercase;letter-spacing:.03em;font-size:.62rem;font-weight:700}
.team-status-line strong[b-cdsaewa816] {font-size:.72rem;color:#333}
.empty-guidance[b-cdsaewa816] {padding:4px 0}
.empty-guidance-label[b-cdsaewa816] {margin:8px 0 6px;color:#888;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.empty-actions[b-cdsaewa816] {display:flex;flex-wrap:wrap;gap:8px}
.empty-actions button[b-cdsaewa816] {
    min-height:32px;padding:0 12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-panel);
    color:var(--color-primary-dark);font-weight:700;font-size:.68rem;cursor:pointer
}
.empty-actions button:hover[b-cdsaewa816] {background:#fff0e0}
.ai-strip[b-cdsaewa816] {
    display:flex;align-items:center;gap:9px;margin-top:14px;padding:11px 16px;border-radius:var(--archex-radius-small);
    background:linear-gradient(90deg,#fff0e5,var(--color-panel));font-size:.76rem
}
.ai-strip>span[b-cdsaewa816]{color:var(--color-primary);font-size:1.1rem}.ai-strip p[b-cdsaewa816]{flex:1;margin:0}
.ai-strip button[b-cdsaewa816]{min-height:34px;padding:0 14px;border:1px solid var(--color-primary-light);border-radius:var(--archex-radius-small);background:#fff;color:var(--color-primary-dark);font-weight:800;cursor:pointer}
.workspace-more[b-cdsaewa816] {
    margin-top:12px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:#fff;overflow:hidden
}
.workspace-more summary[b-cdsaewa816] {padding:11px 14px;cursor:pointer;font:800 .76rem var(--font-heading)}
.more-actions[b-cdsaewa816] {display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 14px}
.more-actions button[b-cdsaewa816] {min-height:34px;padding:0 12px;border:1px solid #ddd;border-radius:var(--archex-radius-small);background:#fff;cursor:pointer;font-weight:700}
.quick-update[b-cdsaewa816] {margin:0 14px 14px;padding:14px;border-radius:var(--archex-radius-small);background:var(--color-panel);display:grid;gap:10px}
.quick-update label[b-cdsaewa816] {display:grid;gap:5px;font-size:.72rem;font-weight:800}
.quick-update input[b-cdsaewa816],.quick-update textarea[b-cdsaewa816] {padding:9px;border:1px solid #ccc;border-radius:var(--archex-radius-small);font:inherit}
.quick-update .check[b-cdsaewa816]{display:flex;align-items:center}
.quick-update>div[b-cdsaewa816]{display:flex;justify-content:flex-end;gap:8px}
.advanced-grid[b-cdsaewa816]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 14px}
.advanced-grid div[b-cdsaewa816]{padding:10px;border-radius:var(--archex-radius-small);background:var(--color-panel)}
.advanced-grid span[b-cdsaewa816],.advanced-grid strong[b-cdsaewa816]{display:block}.advanced-grid span[b-cdsaewa816]{font-size:.63rem;color:#777}.advanced-grid strong[b-cdsaewa816]{margin-top:4px;font-size:.72rem;word-break:break-word}
.empty-compact[b-cdsaewa816]{margin:6px 0;color:#777;font-size:.73rem}
.error[b-cdsaewa816]{color:#a12e22;font-size:.72rem}

.quick-actions-bar[b-cdsaewa816] {
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:14px;
    padding:9px 11px;
    border:1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background:#fff;
    box-shadow:var(--archex-shadow);
    overflow-x:auto;
}
.quick-actions-bar strong[b-cdsaewa816] {
    flex:0 0 auto;
    margin-right:4px;
    font:800 .7rem var(--font-heading);
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#555;
}
.quick-actions-bar button[b-cdsaewa816] {
    flex:0 0 auto;
    min-height:32px;
    padding:0 11px;
    border:1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background:#fff;
    color:#222;
    font:800 .7rem var(--font-body);
    cursor:pointer;
}
.quick-actions-bar button:hover[b-cdsaewa816] {
    border-color:var(--color-primary);
    color:var(--color-primary-dark);
    background:var(--color-panel);
}
.ai-briefing[b-cdsaewa816] {
    display:grid;
    grid-template-columns:minmax(190px,.8fr) minmax(0,2.4fr) auto;
    align-items:center;
    gap:14px;
    margin-top:10px;
    padding:11px 14px;
    border:1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-small);
    background:linear-gradient(90deg,var(--color-panel),var(--color-surface));
}
.ai-briefing-title[b-cdsaewa816] {
    display:flex;
    align-items:center;
    gap:9px;
}
.ai-briefing-title>span[b-cdsaewa816] {
    display:grid;
    place-items:center;
    width:31px;
    height:31px;
    border-radius:50%;
    background:var(--color-primary);
    color:#fff;
}
.ai-briefing-title strong[b-cdsaewa816],
.ai-briefing-title small[b-cdsaewa816] {
    display:block;
}
.ai-briefing-title strong[b-cdsaewa816] {
    font:800 .76rem var(--font-heading);
}
.ai-briefing-title small[b-cdsaewa816] {
    margin-top:2px;
    color:#777;
    font-size:.62rem;
}
.ai-briefing ul[b-cdsaewa816] {
    display:flex;
    flex-wrap:wrap;
    gap:5px 18px;
    margin:0;
    padding-left:18px;
    color:var(--color-gunmetal);
    font-size:.7rem;
}
.ai-briefing button[b-cdsaewa816] {
    min-height:32px;
    padding:0 11px;
    border:1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-small);
    background:#fff;
    color:var(--color-primary-dark);
    font-weight:800;
    cursor:pointer;
}
.team-list>div[b-cdsaewa816] {
    position:relative;
}
.team-list .work-status[b-cdsaewa816] {
    margin-left:auto;
    padding:4px 7px;
    border-radius:999px;
    background:#f0f0f0;
    color:#555;
    font-size:.59rem;
    font-style:normal;
    font-weight:800;
    white-space:nowrap;
}
.team-list .work-status.active[b-cdsaewa816] {
    background:#e5f4e3;
    color:#397338;
}
.team-list .work-status.travel[b-cdsaewa816] {
    background:#e9f2fb;
    color:#356b9d;
}
.team-list .work-status.break[b-cdsaewa816] {
    background:#fff2d9;
    color:#8c6300;
}
.team-list .work-status.complete[b-cdsaewa816] {
    background:#eef0f4;
    color:#4f5968;
}
.team-list .work-status.pending[b-cdsaewa816] {
    background:#fff0e8;
    color:var(--color-primary-dark);
}
@media(max-width:900px) {
    .ai-briefing[b-cdsaewa816] {
        grid-template-columns:1fr;
    }
    .ai-briefing button[b-cdsaewa816] {
        justify-self:start;
    }
}

@media(max-width:1200px){
 .project-identity[b-cdsaewa816]{grid-template-columns:150px 1fr}.identity-metrics[b-cdsaewa816]{grid-column:1/-1}.identity-actions[b-cdsaewa816]{position:absolute;right:26px;top:22px}
 .workbench-grid[b-cdsaewa816]{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
 .workbench-grid[b-cdsaewa816]{grid-template-columns:1fr}
}
@media(max-width:760px){
 .project-workbench[b-cdsaewa816]{padding:14px}
 .project-identity[b-cdsaewa816]{grid-template-columns:1fr;padding-top:0}.project-image[b-cdsaewa816]{min-height:150px}.identity-actions[b-cdsaewa816]{position:static;grid-template-columns:1fr 1fr}
 .identity-metrics[b-cdsaewa816]{grid-template-columns:repeat(2,1fr)}.identity-metrics>div:nth-child(odd)[b-cdsaewa816]{border-left:0}
 .workbench-top[b-cdsaewa816],.workbench-grid[b-cdsaewa816]{grid-template-columns:1fr}.workflow-card[b-cdsaewa816],.next-card[b-cdsaewa816]{grid-column:auto}
 .workflow-track[b-cdsaewa816]{padding-bottom:8px}.workflow-node[b-cdsaewa816]{min-width:100px}
 .advanced-grid[b-cdsaewa816]{grid-template-columns:1fr}.ai-strip[b-cdsaewa816]{align-items:flex-start;flex-wrap:wrap}.ai-strip p[b-cdsaewa816]{flex-basis:70%}
}

/* Stage 5.1 — organisation relationships (More) */
.more-relationships[b-cdsaewa816] { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--color-divider); }
.more-relationships-heading[b-cdsaewa816] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.more-relationships-heading strong[b-cdsaewa816] { font-size: .82rem; }
.more-relationships-heading button[b-cdsaewa816] {
    border: 1px solid #ccc; background: #fff; border-radius:var(--archex-radius-small); padding: 4px 10px;
    font-size: .72rem; cursor: pointer; color: #333;
}
.more-relationships-heading button:hover[b-cdsaewa816] { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.relationship-summary-list[b-cdsaewa816] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.relationship-summary-list li[b-cdsaewa816] { display: flex; flex-direction: column; gap: 1px; }
.relationship-summary-list span[b-cdsaewa816] { font-size: .8rem; }
.relationship-summary-list small[b-cdsaewa816] { color: #777; font-size: .71rem; }

/* Owner simplification (20 Aug 2026): compact identity header, five primary
   actions, preview-first main grid, demoted secondary zone. */
.project-identity.compact-identity[b-cdsaewa816] {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: flex-start;
}

    /* UI-01 repair: fully constrain the header so long client/address facts can
       never push the page wider than the viewport. */
    .project-identity.compact-identity > *[b-cdsaewa816] { min-width: 0; }

.identity-eyebrow[b-cdsaewa816] {
    margin: 0 0 4px;
    color: var(--color-primary-dark);
    font:800 .68rem var(--font-heading);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.identity-facts[b-cdsaewa816] {
    display: grid;
    /* UI-01 repair: 1fr caps (not max-content) so a long site address wraps
       inside the header instead of overflowing the viewport. */
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 4px 26px;
    margin: 10px 0 0;
    min-width: 0;
}

    .identity-facts > div[b-cdsaewa816] { min-width: 0; }
    .identity-facts dd[b-cdsaewa816] { overflow-wrap: anywhere; }

    .identity-facts dt[b-cdsaewa816] {
        color: #666;
        font-size: .66rem;
        letter-spacing: .05em;
        text-transform: uppercase;
    }

    .identity-facts dd[b-cdsaewa816] {
        margin: 1px 0 0;
        font-size: .85rem;
        font-weight: 700;
        color: var(--color-charcoal);
    }

.identity-next[b-cdsaewa816] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    padding: 8px 12px;
    border: 1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
}

    .identity-next span[b-cdsaewa816] {
        color: var(--color-primary-dark);
        font:800 .64rem var(--font-heading);
        letter-spacing: .08em;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .identity-next strong[b-cdsaewa816] { font-size: .84rem; }

.primary-actions button[b-cdsaewa816] {
    min-height: 44px;
    padding: 0 16px;
    font:800 .8rem var(--font-body);
}

    .primary-actions button span[b-cdsaewa816] {
        margin-right: 6px;
        color: var(--color-primary-dark);
    }

.workspace-secondary[b-cdsaewa816] {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--color-divider);
    opacity: .96;
}

    .workspace-secondary .work-card[b-cdsaewa816] { background: var(--color-panel); }

.workflow-card[b-cdsaewa816] { grid-column: span 2; }

.briefing-card .briefing-note[b-cdsaewa816] {
    display: block;
    margin: 2px 0 6px;
    color: #777;
    font-size: .66rem;
}

.briefing-card .briefing-list[b-cdsaewa816] {
    margin: 0;
    padding-left: 16px;
    display: grid;
    gap: 4px;
    font-size: .78rem;
    color: var(--color-charcoal);
}

.empty-compact .ax-link-button[b-cdsaewa816],
.ax-link-button[b-cdsaewa816] {
    border: 0;
    background: none;
    padding: 0;
    color: var(--color-primary-dark);
    font:700 .73rem var(--font-body);
    cursor: pointer;
    text-decoration: underline;
}

.status-ok[b-cdsaewa816] { color: #237a37; }
.status-draft[b-cdsaewa816] { color: #996100; }

@media (max-width: 1100px) {
    .project-identity.compact-identity[b-cdsaewa816] { grid-template-columns: 1fr; }
    .workflow-card[b-cdsaewa816] { grid-column: span 1; }
}

/* WR-64 slice 5 — where this job came from.
   First card on a promoted project, because it is what a person checks first on
   work they have just won or are picking up cold. Quiet by default; the "next"
   line is the only thing styled to pull the eye, because there is exactly one
   thing to do next and it is not on this card. */
.promotion-provenance[b-cdsaewa816] {
    border-left: 5px solid #2f7d44;
    background: #fbfdfb;
}

.promotion-provenance .provenance-grid[b-cdsaewa816] {
    display: grid;
    grid-template-columns: minmax(160px, 230px) 1fr;
    gap: 10px 20px;
    margin: 12px 0 0;
    font-size: .9rem;
}

.promotion-provenance .provenance-grid dt[b-cdsaewa816] {
    color: var(--color-gunmetal);
    font-weight: 600;
}

.promotion-provenance .provenance-grid dd[b-cdsaewa816] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.promotion-provenance .provenance-note[b-cdsaewa816] {
    font-size: .78rem;
    color: var(--color-gunmetal);
    line-height: 1.5;
}

.promotion-provenance .outcome-strong[b-cdsaewa816] {
    font-weight: 700;
    color: #8f231a;
}

.promotion-provenance .provenance-next[b-cdsaewa816] {
    margin: 16px 0 0;
    padding: 11px 14px;
    background: var(--color-panel);
    border: 1px solid var(--color-divider);
    border-left: 4px solid #c8862a;
    border-radius:var(--archex-radius-small);
    font-size: .88rem;
    line-height: 1.6;
    color: #4a4238;
}

/* ---- The ServiceM8 jobs behind the project --------------------------------
   Adam Deane, 25 September 2026: "ensure that all realated job numbers
   assoicated with the project are easy".

   This markup IS in ProjectWorkspace.razor, so these rules reach it. The
   parties card is a separate component and carries its own stylesheet — scoped
   CSS does not cross a component boundary, and rules for it left here would
   have matched nothing at all. */
.jobs-list[b-cdsaewa816] { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }

.jobs-list li[b-cdsaewa816] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-divider);
}

.jobs-list li:last-child[b-cdsaewa816] { border-bottom: 0; padding-bottom: 0; }

.jobs-number[b-cdsaewa816] {
    font: 800 .82rem var(--font-heading);
    color: var(--color-primary-dark);
    text-decoration: none;
    white-space: nowrap;
}

.jobs-number:hover[b-cdsaewa816] { text-decoration: underline; }

.jobs-body[b-cdsaewa816] { min-width: 0; display: grid; gap: 2px; }
.jobs-body strong[b-cdsaewa816] { font-size: .88rem; overflow-wrap: anywhere; }
.jobs-body small[b-cdsaewa816] { font-size: .75rem; color: #6b6b66; }
.jobs-basis[b-cdsaewa816] { color: #8a8a84 !important; font-style: italic; }

@media (max-width: 560px) {
    .jobs-list li[b-cdsaewa816] { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ---- The identity row, and the folded secondary zone -----------------------
   Adam Deane, 25 September 2026, having opened a job after the first attempt:
   "Still alot of infomation, no layout being better, im not sure what you did
   earlier but i dont see it."

   He was right on both counts. The parties card had been put in the secondary
   zone - the one whose own comment says "visual priority reduced" - so the
   thing he asked to be prominent was below seven other cards. And adding two
   cards to a twelve-card page makes it longer, not better. */
.identity-grid[b-cdsaewa816] { margin-top: 14px; }

.workspace-secondary-fold[b-cdsaewa816] {
    margin-top: 16px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: #fff;
}

.workspace-secondary-fold > summary[b-cdsaewa816] {
    padding: 11px 15px;
    cursor: pointer;
    font: 800 .74rem var(--font-heading);
    letter-spacing: .02em;
    color: #444;
    list-style: none;
}

/* The arrow, drawn rather than inherited, because the native marker is
   inconsistent across browsers and invisible at this weight. */
.workspace-secondary-fold > summary[b-cdsaewa816]::-webkit-details-marker { display: none; }

.workspace-secondary-fold > summary[b-cdsaewa816]::before {
    content: "▸";
    display: inline-block;
    width: 1em;
    margin-right: 4px;
    color: var(--color-primary);
    transition: transform 140ms ease;
}

.workspace-secondary-fold[open] > summary[b-cdsaewa816]::before { transform: rotate(90deg); }

.workspace-secondary-fold > summary:hover[b-cdsaewa816] { color: var(--color-primary-dark); }

/* Open, the cards inside keep their own spacing; the wrapper only adds the
   gutter that the section used to get from the page. */
.workspace-secondary-fold[open] > .workspace-secondary[b-cdsaewa816] { padding: 0 15px 15px; }
/* /Components/Pages/RateCard.razor.rz.scp.css */
/* ================================================================================================
   THE RATE CARD (25 September 2026)

   A table somebody reads down a column of, comparing numbers. So the numbers are right-aligned and
   tabular, the service names carry the weight, and a row nobody has decided yet is marked rather
   than left to be spotted.

   The next-step card at the top is dressed in archex-components.css, shared with the enquiry and
   screening pages — not copied here.
   ================================================================================================ */

.rate-card[b-dkyys1hib4] {
    display: flex;
    flex-direction: column;
    gap: var(--archex-gap-4, 16px);
}

.rate-table[b-dkyys1hib4] {
    width: 100%;
    margin-top: 12px;
    border-collapse: collapse;
}

.rate-table th[b-dkyys1hib4] {
    padding: 8px 10px;
    border-bottom: 2px solid var(--archex-border, #E3DCD1);
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-align: left;
    text-transform: uppercase;
}

.rate-table td[b-dkyys1hib4] {
    padding: 10px;
    border-bottom: 1px solid var(--archex-border-soft, #E6E3DE);
    vertical-align: top;
}

/* LINING FIGURES, RIGHT-ALIGNED. A column of money compared by eye needs the decimal points under
   one another; proportional digits put $1,400.00 and $175.00 out of line and the comparison has to
   be done by reading rather than by looking. */
.rate-table .num[b-dkyys1hib4] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rate-table td.num small[b-dkyys1hib4] {
    display: block;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.75rem;
}

.rate-table input[b-dkyys1hib4] {
    width: 100%;
    min-width: 0;
}

.rate-table input.num[b-dkyys1hib4] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rate-table input.note[b-dkyys1hib4],
.rate-table input.unit[b-dkyys1hib4] {
    margin-top: 6px;
    font-size: 0.82rem;
}

.rate-note[b-dkyys1hib4] {
    display: block;
    margin-top: 4px;
    max-width: 52ch;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.8rem;
    line-height: 1.45;
}

.row-actions[b-dkyys1hib4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    white-space: nowrap;
}

/* A ROW NOBODY HAS DECIDED. Marked with a stripe rather than a colour wash, so it reads as "this
   one needs you" rather than as an error — none of these is wrong, they are unanswered. */
.rate-table tr.needs-attention td:first-child[b-dkyys1hib4] {
    border-left: 3px solid var(--archex-ochre, #F26C21);
    padding-left: 7px;
}

.rate-table tr.is-editing td[b-dkyys1hib4] {
    background: var(--archex-panel, #F2EDE6);
    border-bottom: 0;
}

.reason[b-dkyys1hib4] {
    display: block;
}

.reason span[b-dkyys1hib4] {
    display: block;
    margin-bottom: 4px;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.8rem;
}

.attention-list[b-dkyys1hib4] {
    margin: 14px 0 0;
    padding-left: 18px;
}

.attention-list li[b-dkyys1hib4] {
    margin-bottom: 8px;
    line-height: 1.5;
}

.attention-list span[b-dkyys1hib4] {
    display: block;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.85rem;
}

/* ---- NARROW ------------------------------------------------------------------------------------

   A seven-column table of money does not fit a phone and there is no honest way to make it. It
   scrolls sideways INSIDE its own card rather than taking the page with it — which is the failure
   this application has already had, where a wide element let every page be dragged 833px sideways
   at 375px and looked correct in every screenshot because what overflowed was off the side. */

@media (max-width: 900px) {
    .rate-group[b-dkyys1hib4] {
        overflow-x: auto;
    }

    .rate-table[b-dkyys1hib4] {
        min-width: 760px;
    }
}

/* Read-only for anybody who is not a director. A note, not a warning: nothing is wrong, and
   colouring it like a refusal would train the reader to dismiss the refusals. */
.rate-readonly[b-dkyys1hib4] {
    margin: 0;
    padding: 12px 14px;
    border-left: 3px solid var(--archex-border, #E3DCD1);
    border-radius: 0 6px 6px 0;
    background: var(--archex-panel, #F2EDE6);
    line-height: 1.55;
}
/* /Components/Pages/ReferenceCollection.razor.rz.scp.css */
/* The page root. AxOperatingHeader and the contour layer expect a bounded, padded column, and a
   page-root class with no rule of its own is the shape of a half-finished screen — which is
   exactly what the UI regression check exists to catch. */
.reference-page[b-t3arefl5hz] {
    max-width: 1240px;
    margin: 0 auto;
    padding: 28px;
}

/* Scoped to this page. The .status-pill variants in Library.razor.css cannot be reused here:
   CSS isolation rewrites them with that component's own scope attribute, so they simply do not
   apply to this markup. These are named reference-* so nobody later assumes they are shared. */

.reference-loading[b-t3arefl5hz],
.reference-empty[b-t3arefl5hz] {
    padding: 1.5rem 0;
    color: #556;
}

.reference-standing-note[b-t3arefl5hz] {
    margin: 1rem 0 1.5rem;
    padding: 0.9rem 1.1rem;
    border: 1px solid var(--color-divider);
    border-left: 4px solid #b08d00;
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
}

.reference-standing-note p[b-t3arefl5hz] {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.55;
    color: #40391f;
}

.reference-card[b-t3arefl5hz] {
    margin-bottom: 0.85rem;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    overflow: hidden;
}

.reference-card > header[b-t3arefl5hz] {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 0.9rem 1.1rem;
    cursor: pointer;
}

.reference-card > header:hover[b-t3arefl5hz] {
    background: var(--color-panel);
}

.reference-title[b-t3arefl5hz] {
    flex: 1 1 auto;
    min-width: 0;
}

.reference-title h2[b-t3arefl5hz] {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 600;
    color: #16202e;
}

.reference-meta[b-t3arefl5hz] {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    color: var(--color-gunmetal);
}

.reference-pills[b-t3arefl5hz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.reference-chevron[b-t3arefl5hz] {
    width: 1.2rem;
    font-size: 1.25rem;
    color: var(--color-gunmetal);
    text-align: center;
}

.reference-pill[b-t3arefl5hz] {
    display: inline-block;
    padding: 0.16rem 0.55rem;
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    background: var(--color-panel);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #4a5464;
    white-space: nowrap;
}

.reference-pill-verified[b-t3arefl5hz] {
    border-color: var(--color-divider);
    background: var(--color-panel);
    color: #1d5c39;
}

/* Deliberately not red. An unverified value is not an error — most of them are perfectly
   correct — it is a value nobody has checked, and colouring it as a fault trains the reader
   to clear it rather than to read it. */
.reference-pill-unverified[b-t3arefl5hz] {
    border-color: #d8cfa8;
    background: #fdfaef;
    color: #7a5c00;
}

.reference-pill-conflict[b-t3arefl5hz] {
    border-color: #e0b4b1;
    background: #fdf1f0;
    color: #a2312d;
}

.reference-body[b-t3arefl5hz] {
    padding: 0.4rem 1.1rem 1.2rem;
    border-top: 1px solid var(--color-divider);
}

.reference-body h3[b-t3arefl5hz] {
    margin: 1.1rem 0 0.6rem;
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-gunmetal);
}

.reference-none[b-t3arefl5hz] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--color-gunmetal);
}

.reference-field[b-t3arefl5hz] {
    margin-bottom: 0.9rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
}

.reference-field-unverified[b-t3arefl5hz] {
    border-left: 3px solid var(--color-divider);
}

.reference-field-head[b-t3arefl5hz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: baseline;
}

.reference-field-name[b-t3arefl5hz] {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--color-gunmetal);
}

.reference-field-value[b-t3arefl5hz] {
    font-size: 0.95rem;
    font-weight: 600;
    color: #16202e;
}

.reference-passage[b-t3arefl5hz] {
    margin: 0.55rem 0 0;
    padding: 0.5rem 0.8rem;
    border-left: 3px solid var(--color-divider);
    background: var(--color-panel);
    font-size: 0.9rem;
    font-style: italic;
    line-height: 1.5;
    color: #2b3543;
}

.reference-reason[b-t3arefl5hz],
.reference-where[b-t3arefl5hz] {
    margin: 0.4rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--color-gunmetal);
}

.reference-superseded[b-t3arefl5hz] {
    margin-top: 0.55rem;
}

.reference-superseded summary[b-t3arefl5hz] {
    cursor: pointer;
    font-size: 0.82rem;
    color: #4a5464;
}

.reference-earlier[b-t3arefl5hz] {
    margin-top: 0.45rem;
    padding: 0.45rem 0.7rem;
    border-left: 2px solid var(--color-divider);
    background: var(--color-surface);
}

.reference-actions[b-t3arefl5hz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    align-items: center;
    margin-top: 1.1rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--color-divider);
}

/* The two independent states, side by side. Deliberately equal weight: neither answers the
   other, and a layout that subordinates one teaches the reader that it follows from the other. */
.reference-states[b-t3arefl5hz] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 0.9rem;
    margin: 0.9rem 0 0.4rem;
}

.reference-state[b-t3arefl5hz] {
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
}

.reference-state-label[b-t3arefl5hz] {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-gunmetal);
}
/* /Components/Pages/Regulation62Recording.razor.rz.scp.css */
.hash[b-82gjvh6y89] {
    word-break: break-all;
}

.reason[b-82gjvh6y89] {
    width: 100%;
    margin: 0.5rem 0 1rem;
}

.choice[b-82gjvh6y89] {
    display: block;
    margin: 0.5rem 0 1rem;
}

.blockers li[b-82gjvh6y89],
.refusals li[b-82gjvh6y89] {
    margin-bottom: 0.5rem;
}

/* The recommendation this project has written, read against a proposed boundary. */
.r62-statement[b-82gjvh6y89] { white-space: pre-wrap; margin-bottom: 0.25rem; }
.r62-meta[b-82gjvh6y89] { font-size: 0.82rem; color: var(--ax-ink-muted, var(--color-gunmetal)); }
.r62-evidence[b-82gjvh6y89], .r62-limitations[b-82gjvh6y89] { display: grid; gap: 0.6rem; }
.r62-evidence li[b-82gjvh6y89] { border-left: 3px solid var(--ax-rule, var(--color-divider)); padding-left: 0.6rem; }
/* /Components/Pages/RegulatoryScreening.razor.rz.scp.css */
/* WR-63 slice 4 — the preliminary Aboriginal cultural heritage screen.

   The visual weight is deliberately on two things: the limitation, and what could
   not be established. A screening result that looks like a determination will
   eventually be used as one, so the proxy warning is styled to be read rather than
   skipped, and an unanswered fact is marked rather than left blank.

   is needed wherever the markup comes from a child component (AxTriState,
   AxOperatingHeader): scoped CSS only stamps this component's own elements. */

.regulatory-screen .screen-map[b-leo30bnd4t] {
    height: 420px;
    border-radius:var(--archex-radius-small);
    overflow: hidden;
    border: 1px solid #e2d9cd;
    margin: 12px 0 8px;
    background: #f4f1ec;
}

/* Stated before any result, and coloured as a caution rather than an error: it is
   a limitation of the method, not something going wrong. */
.regulatory-screen .proxy-warning[b-leo30bnd4t] {
    border-left: 5px solid #c8862a;
    background: #fffaf1;
}

.regulatory-screen .proxy-warning h2[b-leo30bnd4t] { font-size: 1rem; margin: 0 0 8px; }

.regulatory-screen .proxy-warning p[b-leo30bnd4t] {
    font-size: .88rem;
    line-height: 1.6;
    margin: 0;
    color: #4a4238;
}

.regulatory-screen .fact-grid[b-leo30bnd4t] {
    display: grid;
    grid-template-columns: minmax(150px, 220px) 1fr;
    gap: 6px 18px;
    margin: 12px 0 0;
    font-size: .9rem;
}

.regulatory-screen .fact-grid dt[b-leo30bnd4t] { color: var(--color-gunmetal); font-weight: 600; }
.regulatory-screen .fact-grid dd[b-leo30bnd4t] { margin: 0; }

.regulatory-screen .mono[b-leo30bnd4t] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .78rem;
    word-break: break-all;
}

.regulatory-screen .small[b-leo30bnd4t] { font-size: .78rem; }

.regulatory-screen .parcel-list[b-leo30bnd4t] { margin-top: 14px; }

.regulatory-screen .parcel-list summary[b-leo30bnd4t] {
    cursor: pointer;
    font-size: .88rem;
    color: #8a5a00;
    font-weight: 600;
}

.regulatory-screen .parcel-list ul[b-leo30bnd4t] {
    list-style: none;
    padding: 10px 0 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 6px;
}

.regulatory-screen .parcel-list li[b-leo30bnd4t] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 10px;
    background: var(--color-panel);
    border-radius:var(--archex-radius-small);
    font-size: .84rem;
}

.regulatory-screen .facts-grid[b-leo30bnd4t] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px 20px;
    margin: 14px 0;
    align-items: start;
}

.regulatory-screen .field[b-leo30bnd4t] { display: flex; flex-direction: column; gap: 5px; }
.regulatory-screen .field.wide[b-leo30bnd4t] { grid-column: 1 / -1; }

.regulatory-screen .field > span[b-leo30bnd4t] {
    font-size: .82rem;
    font-weight: 600;
    color: #4a4238;
    line-height: 1.4;
}

.regulatory-screen .field input[b-leo30bnd4t],
.regulatory-screen .field select[b-leo30bnd4t],
.regulatory-screen .field textarea[b-leo30bnd4t] {
    padding: 7px 10px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    font: inherit;
    font-size: .9rem;
    background: #fff;
}

.regulatory-screen textarea[b-leo30bnd4t] { resize: vertical; }

.regulatory-screen .row-actions[b-leo30bnd4t] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin: 14px 0 4px;
}

.regulatory-screen .inline-check[b-leo30bnd4t] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .86rem;
}

.regulatory-screen .suggestion-notes[b-leo30bnd4t] {
    margin: 12px 0;
    padding: 12px 14px;
    background: var(--color-panel);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    font-size: .86rem;
}

.regulatory-screen .suggestion-notes ul[b-leo30bnd4t] { margin: 8px 0 0; padding-left: 18px; }
.regulatory-screen .suggestion-notes li[b-leo30bnd4t] { margin: 4px 0; line-height: 1.5; }

/* The four outcomes, each visually distinct. "Unable to determine" must never read
   as a milder version of "no trigger identified". */
.regulatory-screen .result-card[b-leo30bnd4t] { border-left: 6px solid var(--color-divider); }

.regulatory-screen .result-card .outcome[b-leo30bnd4t] {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 4px 0 8px;
}

.regulatory-screen .outcome-likely[b-leo30bnd4t] { border-left-color: #a52a1e; background: var(--color-panel); }
.regulatory-screen .outcome-potential[b-leo30bnd4t] { border-left-color: #c8862a; background: var(--color-panel); }
.regulatory-screen .outcome-none[b-leo30bnd4t] { border-left-color: #2f7d44; background: var(--color-panel); }
.regulatory-screen .outcome-unknown[b-leo30bnd4t] { border-left-color: #5b5b7a; background: var(--color-panel); }

.regulatory-screen .evidence-incomplete[b-leo30bnd4t] {
    margin-top: 10px;
    padding: 10px 12px;
    background: #fff4f2;
    border: 1px solid #f0cfc8;
    border-radius:var(--archex-radius-small);
    font-size: .88rem;
    color: #7a2318;
}

.regulatory-screen .area-list[b-leo30bnd4t] { list-style: none; padding: 0; margin: 10px 0 0; }

.regulatory-screen .area-list li[b-leo30bnd4t] {
    padding: 8px 12px;
    background: var(--color-panel);
    border-radius:var(--archex-radius-small);
    margin-bottom: 6px;
    font-size: .86rem;
}

.regulatory-screen .pill[b-leo30bnd4t] {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--color-primary-light);
    color: #8a5a00;
    font-size: .74rem;
    font-weight: 600;
}

/* A question is a finding, not a blank. Severity sits on the left edge. */
.regulatory-screen .questions-card[b-leo30bnd4t] { border-left: 5px solid #c8862a; }

.regulatory-screen .question[b-leo30bnd4t] {
    padding: 10px 14px;
    margin: 10px 0;
    border-radius:var(--archex-radius-small);
    border-left: 4px solid var(--color-divider);
    background: var(--color-panel);
}

.regulatory-screen .question.blocking[b-leo30bnd4t] { border-left-color: #a52a1e; background: var(--color-panel); }
.regulatory-screen .question.material[b-leo30bnd4t] { border-left-color: #c8862a; background: var(--color-panel); }
.regulatory-screen .question.advisory[b-leo30bnd4t] { border-left-color: #9a9a9a; }

.regulatory-screen .question p[b-leo30bnd4t] {
    margin: 5px 0;
    font-size: .86rem;
    line-height: 1.55;
    color: #4a4238;
}

.regulatory-screen .question .ref[b-leo30bnd4t] { font-size: .76rem; color: var(--color-gunmetal); }

.regulatory-screen .provision-table[b-leo30bnd4t] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 12px;
    font-size: .85rem;
}

.regulatory-screen .provision-table th[b-leo30bnd4t] {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 2px solid var(--color-divider);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-gunmetal);
}

.regulatory-screen .provision-table td[b-leo30bnd4t] {
    padding: 9px 10px;
    border-bottom: 1px solid var(--color-divider);
    vertical-align: top;
    line-height: 1.5;
}

.regulatory-screen .provision-table tr:nth-child(even) td[b-leo30bnd4t] { background: var(--color-panel); }
.regulatory-screen .failed[b-leo30bnd4t] { color: #a52a1e; font-weight: 600; }

.regulatory-screen .outcome-pill[b-leo30bnd4t] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 600;
    white-space: nowrap;
}

.regulatory-screen .outcome-pill.triggered[b-leo30bnd4t] { background: var(--color-panel); color: #8f231a; }
.regulatory-screen .outcome-pill.nottriggered[b-leo30bnd4t] { background: var(--color-panel); color: #22623a; }
.regulatory-screen .outcome-pill.cannotdetermine[b-leo30bnd4t] { background: #fdf1e0; color: #8a5a00; }
.regulatory-screen .outcome-pill.considered[b-leo30bnd4t] { background: #f2f2f2; color: var(--color-gunmetal); }
.regulatory-screen .outcome-pill.notapplicable[b-leo30bnd4t] { background: #f2f2f2; color: var(--color-gunmetal); }

.regulatory-screen .confirm-card[b-leo30bnd4t] { border-left: 5px solid #2f7d44; }

.regulatory-screen .confirmed[b-leo30bnd4t] {
    padding: 10px 12px;
    background: #f2f9f4;
    border: 1px solid #cfe6d6;
    border-radius:var(--archex-radius-small);
    font-size: .9rem;
}

.regulatory-screen .banner[b-leo30bnd4t] { font-size: .9rem; }
.regulatory-screen .banner-ok[b-leo30bnd4t] { border-left: 5px solid #2f7d44; background: #f5fbf6; }
.regulatory-screen .banner-error[b-leo30bnd4t] { border-left: 5px solid #a52a1e; background: #fff6f4; }

/* The three-state control is rendered by AxTriState, so it needs to be
   reached from this component's scope. */
.regulatory-screen .ax-tristate[b-leo30bnd4t] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.regulatory-screen .ax-tristate-label[b-leo30bnd4t] {
    font-size: .82rem;
    font-weight: 600;
    color: #4a4238;
    line-height: 1.4;
}

.regulatory-screen .ax-tristate-options[b-leo30bnd4t] { display: flex; gap: 6px; }

.regulatory-screen .ax-tristate-option[b-leo30bnd4t] {
    padding: 4px 12px;
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    font-size: .82rem;
    cursor: pointer;
    background: #fff;
    white-space: nowrap;
    font-family: inherit;
    color: #4a4238;
}

.regulatory-screen .ax-tristate-option:hover[b-leo30bnd4t] { border-color: #c8862a; }

.regulatory-screen .ax-tristate-option.is-selected[b-leo30bnd4t] {
    border-color: var(--color-primary-dark);
    background: var(--color-primary-light);
    font-weight: 600;
    color: var(--color-primary-dark);
}

.regulatory-screen .ax-tristate-unanswered[b-leo30bnd4t] {
    font-size: .74rem;
    color: var(--color-gunmetal);
    font-style: italic;
}

/* The radio inside each option is visible, matching the works questions on the
   activity-area review page. A hidden radio looks tidier and loses the keyboard
   and screen-reader behaviour that comes free with a real radio group. */
.regulatory-screen .ax-tristate-option[b-leo30bnd4t] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.regulatory-screen .ax-tristate-option input[type="radio"][b-leo30bnd4t] { margin: 0; }
/* /Components/Pages/Reports.razor.rz.scp.css */
.reports-page[b-9x1c5pvrje]{min-height:100vh;padding:clamp(28px,4vw,64px);background:var(--color-background);color:var(--color-charcoal)}.reports-hero[b-9x1c5pvrje]{width:min(1480px,100%);margin:0 auto 28px;display:flex;justify-content:space-between;align-items:flex-end;gap:28px}.eyebrow[b-9x1c5pvrje],.section-kicker[b-9x1c5pvrje]{margin:0 0 10px;color:var(--color-primary-dark);font-size:.69rem;font-weight:800;letter-spacing:.22em}.reports-hero h1[b-9x1c5pvrje]{margin:0;font-family:var(--font-heading);font-size:var(--archex-text-2xl);line-height:.92;letter-spacing:-.05em}.intro[b-9x1c5pvrje]{max-width:720px;margin:18px 0 0;color:var(--color-gunmetal);line-height:1.6}.hero-actions[b-9x1c5pvrje]{display:flex;gap:10px;flex-wrap:wrap}.hero-action[b-9x1c5pvrje]{min-height:46px;padding:0 18px;border:1px solid var(--color-primary-dark);border-radius:var(--archex-radius-small);background:var(--color-primary-dark);color:#fff;font-weight:800;cursor:pointer}.hero-action.secondary[b-9x1c5pvrje]{border-color:#2e2a26;background:transparent;color:var(--color-charcoal)}.hero-action:disabled[b-9x1c5pvrje]{opacity:.45;cursor:not-allowed}.summary-grid[b-9x1c5pvrje],.priority-panel[b-9x1c5pvrje],.reports-toolbar[b-9x1c5pvrje],.pipeline-board[b-9x1c5pvrje]{width:min(1480px,100%);margin-left:auto;margin-right:auto}.summary-grid[b-9x1c5pvrje]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.summary-card[b-9x1c5pvrje]{padding:18px;text-align:left;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:rgba(255,255,255,.84);cursor:pointer;transition:.16s ease}.summary-card:hover[b-9x1c5pvrje],.summary-card.selected[b-9x1c5pvrje]{border-color:var(--color-primary-dark);box-shadow:var(--archex-shadow);transform:translateY(-1px)}.summary-card span[b-9x1c5pvrje],.summary-card small[b-9x1c5pvrje]{display:block}.summary-card span[b-9x1c5pvrje]{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.summary-card strong[b-9x1c5pvrje]{display:block;margin:8px 0 4px;font-family:var(--font-heading);font-size:2rem}.summary-card small[b-9x1c5pvrje]{color:var(--color-gunmetal)}.priority-panel[b-9x1c5pvrje]{margin-bottom:18px;padding:22px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);background:rgba(255,255,255,.78);box-shadow:var(--archex-shadow-hover)}.priority-heading[b-9x1c5pvrje]{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.priority-heading h2[b-9x1c5pvrje]{margin:0;font-family:var(--font-heading);font-size:clamp(1.45rem,2.5vw,2.35rem);line-height:1.08}.priority-details[b-9x1c5pvrje]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--color-divider)}.priority-details span[b-9x1c5pvrje],.priority-details strong[b-9x1c5pvrje]{display:block}.priority-details span[b-9x1c5pvrje]{color:var(--color-gunmetal);font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.priority-details strong[b-9x1c5pvrje]{margin-top:5px;font-size:.83rem}.priority-empty[b-9x1c5pvrje]{margin:14px 0 0;color:var(--color-gunmetal)}.reports-toolbar[b-9x1c5pvrje]{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(170px,.65fr) minmax(180px,.65fr) auto;gap:10px;margin-bottom:18px;align-items:end}.reports-toolbar label[b-9x1c5pvrje]{display:grid;gap:6px}.reports-toolbar label>span[b-9x1c5pvrje]{color:var(--color-gunmetal);font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.reports-toolbar input[b-9x1c5pvrje],.reports-toolbar select[b-9x1c5pvrje]{width:100%;min-height:44px;padding:0 14px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;font:inherit}.pipeline-board[b-9x1c5pvrje]{display:grid;grid-template-columns:repeat(4,minmax(285px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:18px}.pipeline-lane[b-9x1c5pvrje]{min-width:285px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);background:rgba(255,255,255,.55);overflow:hidden}.lane-heading[b-9x1c5pvrje]{display:flex;justify-content:space-between;align-items:flex-start;padding:18px;border-bottom:1px solid var(--color-divider)}.lane-kicker[b-9x1c5pvrje]{color:var(--color-primary-dark);font-size:.65rem;font-weight:800;letter-spacing:.18em}.lane-heading h2[b-9x1c5pvrje]{margin:4px 0 2px;font-family:var(--font-heading);font-size:1.45rem}.lane-heading p[b-9x1c5pvrje]{margin:0;color:var(--color-gunmetal);font-size:.7rem;line-height:1.35}.lane-heading>strong[b-9x1c5pvrje]{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eee6df}.lane-list[b-9x1c5pvrje]{display:grid;gap:10px;padding:10px}.lane-empty[b-9x1c5pvrje]{padding:26px 15px;color:var(--color-gunmetal);text-align:center;font-size:.85rem}.report-card[b-9x1c5pvrje]{padding:16px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow);cursor:pointer;transition:.16s ease}.report-card:hover[b-9x1c5pvrje]{transform:translateY(-1px);box-shadow:var(--archex-shadow-hover)}.report-card-topline[b-9x1c5pvrje]{display:flex;justify-content:space-between;gap:8px;align-items:center}.project-type[b-9x1c5pvrje]{color:var(--color-gunmetal);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.readiness-pill[b-9x1c5pvrje]{display:inline-flex;align-items:center;padding:5px 8px;border-radius:99px;font-size:.59rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.readiness-pill.attention[b-9x1c5pvrje]{background:var(--color-primary-light);color:var(--color-primary-dark)}.readiness-pill.warning[b-9x1c5pvrje]{background:#f6edc8;color:#7b6413}.readiness-pill.review[b-9x1c5pvrje]{background:#ebe7f7;color:#5f5287}.readiness-pill.draft[b-9x1c5pvrje]{background:#e8edf7;color:#4f628d}.readiness-pill.delivered[b-9x1c5pvrje]{background:#e4f1e8;color:#446f52}.readiness-pill.field[b-9x1c5pvrje]{background:#edf1ed;color:var(--color-gunmetal)}.report-card h3[b-9x1c5pvrje]{margin:10px 0 5px;font-family:var(--font-heading);font-size:1.17rem;line-height:1.15}.project-reference[b-9x1c5pvrje]{margin:0 0 14px;color:var(--color-primary-dark);font-size:.72rem;font-weight:750}.meta-grid[b-9x1c5pvrje]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.meta-grid span[b-9x1c5pvrje],.meta-grid strong[b-9x1c5pvrje]{display:block}.meta-grid span[b-9x1c5pvrje]{color:var(--color-gunmetal);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em}.meta-grid strong[b-9x1c5pvrje]{margin-top:3px;font-size:.75rem;line-height:1.25}.overdue-text[b-9x1c5pvrje]{color:var(--color-primary-dark)}.next-action[b-9x1c5pvrje]{margin-top:14px;padding:11px 12px;border-radius:var(--archex-radius-small);background:#f5f1ec}.next-action span[b-9x1c5pvrje],.next-action strong[b-9x1c5pvrje]{display:block}.next-action span[b-9x1c5pvrje]{color:var(--color-gunmetal);font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.next-action strong[b-9x1c5pvrje]{margin-top:4px;font-size:.76rem}.report-actions[b-9x1c5pvrje]{display:flex;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--color-divider)}.report-actions button[b-9x1c5pvrje]{flex:1;padding:0 9px!important;font-size:.68rem!important;border:1px solid var(--color-primary-dark);border-radius:var(--archex-radius-small);background:var(--color-primary-dark);color:#fff;font-size:.68rem;font-weight:750;cursor:pointer}.report-actions button.quiet[b-9x1c5pvrje]{border-color:var(--color-divider);background:#fff;color:var(--color-charcoal)}@media(max-width:1180px){.summary-grid[b-9x1c5pvrje]{grid-template-columns:repeat(2,1fr)}.reports-toolbar[b-9x1c5pvrje]{grid-template-columns:1fr 1fr}.pipeline-board[b-9x1c5pvrje]{grid-template-columns:repeat(4,310px)}.priority-details[b-9x1c5pvrje]{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.reports-page[b-9x1c5pvrje]{padding:24px 14px}.reports-hero[b-9x1c5pvrje]{align-items:flex-start;flex-direction:column}.hero-actions[b-9x1c5pvrje]{width:100%}.hero-action[b-9x1c5pvrje]{flex:1}.summary-grid[b-9x1c5pvrje],.reports-toolbar[b-9x1c5pvrje]{grid-template-columns:1fr}.priority-heading[b-9x1c5pvrje]{flex-direction:column}.priority-details[b-9x1c5pvrje]{grid-template-columns:1fr}}

/* A DENSE THREE-UP ROW STATES ITS OWN EXCEPTION (21 September 2026). The shared sheet gives every
   button 40px and 12px of side padding, which is right nearly everywhere. Here three buttons share
   a 230px card footer, and at the shared font size "Open project" no longer fits on one line — it
   wrapped, and stood 51px tall beside its 40px neighbours. The override is !important because the
   shared rule is, and it is written here rather than by loosening the shared rule, so it reads as
   the deliberate exception it is. */
/* /Components/Pages/Resources.razor.rz.scp.css */
.resources-page[b-rw31da0913]{max-width:1500px;margin:auto;padding:40px}.resources-header[b-rw31da0913],.section-heading[b-rw31da0913],.form-heading[b-rw31da0913],.toolbar[b-rw31da0913],.card-top[b-rw31da0913],.form-actions[b-rw31da0913]{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.resources-header[b-rw31da0913]{margin-bottom:28px}.resources-header h1[b-rw31da0913]{font-size:var(--archex-text-2xl);margin:8px 0}.resources-header p[b-rw31da0913]{max-width:700px;color:var(--color-gunmetal)}.eyebrow[b-rw31da0913]{margin:0;text-transform:uppercase;letter-spacing:3px;font-size:12px;color:var(--color-primary-dark);font-weight:800}.summary-grid[b-rw31da0913]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.summary-grid article[b-rw31da0913],.resource-card[b-rw31da0913],.form-card[b-rw31da0913]{background:#fff;border:1px solid rgba(31,25,21,.08);border-radius:var(--archex-radius-large);box-shadow:var(--archex-shadow-hover)}.summary-grid article[b-rw31da0913]{padding:22px}.summary-grid span[b-rw31da0913],.resource-card dt[b-rw31da0913]{display:block;color:var(--color-gunmetal);font-size:12px;text-transform:uppercase;letter-spacing:1.3px}.summary-grid strong[b-rw31da0913]{display:block;font-size:34px;margin:8px 0}.summary-grid small[b-rw31da0913]{color:#777}.summary-grid .warning[b-rw31da0913]{border-left:5px solid var(--color-primary-dark)}.toolbar[b-rw31da0913]{align-items:center;background:#fff;padding:14px 18px;border-radius:var(--archex-radius-medium);margin-bottom:22px}.tabs[b-rw31da0913]{display:flex;gap:8px}.tabs button[b-rw31da0913]{border:0;background:#f1ece7;padding:11px 16px;border-radius:var(--archex-radius-small);font-weight:700;cursor:pointer}.tabs button.active[b-rw31da0913]{background:#1f1b18;color:#fff}.toolbar input[b-rw31da0913]{width:min(420px,100%);padding:12px 14px;border:1px solid #ddd;border-radius:var(--archex-radius-small)}.primary-button[b-rw31da0913],.secondary-button[b-rw31da0913],.text-button[b-rw31da0913]{border:0;border-radius:var(--archex-radius-small);padding:12px 20px;font-weight:750;cursor:pointer}.primary-button[b-rw31da0913]{background:var(--color-primary-dark);color:#fff}.secondary-button[b-rw31da0913]{background:#eee8e3;color:var(--color-charcoal)}.text-button[b-rw31da0913]{background:transparent;padding:8px 0}.danger[b-rw31da0913]{color:#a53f2d}.form-card[b-rw31da0913]{padding:28px;margin-bottom:24px}.form-heading h2[b-rw31da0913],.section-heading h2[b-rw31da0913]{margin:5px 0}.close-button[b-rw31da0913]{border:0;background:#eee8e3;border-radius:50%;width:40px;height:40px;font-size:24px}.form-grid[b-rw31da0913]{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.form-field[b-rw31da0913]{display:flex;flex-direction:column;gap:7px}.form-field label[b-rw31da0913]{font-weight:700}.form-field input[b-rw31da0913],.form-field select[b-rw31da0913],.form-field textarea[b-rw31da0913]{padding:12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff}.full-width[b-rw31da0913]{grid-column:1/-1}.checkbox[b-rw31da0913]{justify-content:flex-end}.form-actions[b-rw31da0913]{justify-content:flex-end;margin-top:20px}.section-heading[b-rw31da0913]{align-items:end;margin:30px 0 16px}.resource-grid[b-rw31da0913]{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}.resource-card[b-rw31da0913]{padding:22px}.resource-card h3[b-rw31da0913]{font-size:21px;margin:18px 0 6px}.resource-card p[b-rw31da0913]{color:var(--color-gunmetal)}.type-pill[b-rw31da0913],.status-pill[b-rw31da0913]{padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;background:#f0ebe6}.status-pill[b-rw31da0913]{background:#e5f1e7;color:#2e6239}.resource-card dl[b-rw31da0913]{display:grid;gap:12px;margin:20px 0}.resource-card dl div[b-rw31da0913]{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--color-divider);padding-top:10px}.resource-card dd[b-rw31da0913]{margin:0;text-align:right;font-weight:650}.resource-card.conflict[b-rw31da0913]{border-left:5px solid var(--color-primary-dark)}.warning-text[b-rw31da0913]{color:var(--color-primary-dark)!important;font-weight:700}@media(max-width:1000px){.summary-grid[b-rw31da0913]{grid-template-columns:repeat(2,1fr)}.form-grid[b-rw31da0913]{grid-template-columns:1fr 1fr}}@media(max-width:700px){.resources-page[b-rw31da0913]{padding:22px}.resources-header[b-rw31da0913],.toolbar[b-rw31da0913],.section-heading[b-rw31da0913]{flex-direction:column}.resources-header h1[b-rw31da0913]{font-size:40px}.summary-grid[b-rw31da0913],.form-grid[b-rw31da0913]{grid-template-columns:1fr}.toolbar input[b-rw31da0913]{width:100%}.tabs[b-rw31da0913]{flex-wrap:wrap}.full-width[b-rw31da0913]{grid-column:auto}}

.overview-grid[b-rw31da0913] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.overview-card[b-rw31da0913],
.project-allocation-card[b-rw31da0913] {
    background: #fff;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    padding: 1.15rem;
}

.overview-card.attention[b-rw31da0913] {
    border-color: #d7a35d;
}

.compact-list[b-rw31da0913] {
    display: grid;
    gap: .65rem;
    margin-top: .9rem;
}

.compact-list div[b-rw31da0913] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .65rem;
    border-top: 1px solid var(--color-divider);
}

.compact-list span[b-rw31da0913],
.project-allocation-card span[b-rw31da0913] {
    color: var(--color-gunmetal);
    font-size: .88rem;
}

.project-allocation-grid[b-rw31da0913] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.project-allocation-card > div[b-rw31da0913] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.project-allocation-card dl[b-rw31da0913] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin: 1rem 0 0;
}

.project-allocation-card dl div[b-rw31da0913] {
    background: var(--color-panel);
    border-radius:var(--archex-radius-small);
    padding: .65rem;
}

.project-allocation-card dt[b-rw31da0913] {
    color: var(--color-gunmetal);
    font-size: .75rem;
}

.project-allocation-card dd[b-rw31da0913] {
    margin: .2rem 0 0;
    font-size: 1.1rem;
    font-weight: 700;
}

@media (max-width: 900px) {
    .overview-grid[b-rw31da0913],
    .project-allocation-grid[b-rw31da0913] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Scheduling.razor.rz.scp.css */
.dispatch-page[b-za03o3godb]{min-height:calc(100vh - 72px);background:var(--color-background);color:var(--color-charcoal);font-family:var(--font-body)}.dispatch-tabs[b-za03o3godb]{display:flex;align-items:stretch;gap:2px;min-height:64px;padding:0 24px;border-bottom:1px solid var(--color-divider);background:#fff;box-shadow:var(--archex-shadow)}.dispatch-tab[b-za03o3godb]{display:flex;align-items:center;gap:9px;padding:0 20px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--color-gunmetal);font-size:.92rem;font-weight:700;cursor:pointer}.dispatch-tab:hover[b-za03o3godb]{background:var(--color-panel);color:var(--color-primary-dark)}.dispatch-tab.active[b-za03o3godb]{border-bottom-color:var(--color-primary);color:var(--color-primary-dark);background:#fffaf6}.tab-icon[b-za03o3godb]{display:grid;width:28px;height:28px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);place-items:center;color:var(--color-primary);background:#fff}.period-controls[b-za03o3godb]{display:flex;align-items:center;gap:8px;margin-left:auto;padding:10px 0}.period-arrow[b-za03o3godb],.period-date[b-za03o3godb]{border:1px solid var(--color-divider);background:#fff;color:var(--color-charcoal);cursor:pointer}.period-arrow[b-za03o3godb]{width:38px;height:38px;border-radius:var(--archex-radius-small);font-size:1.35rem}.period-date[b-za03o3godb]{min-width:154px;height:38px;padding:4px 14px;border-radius:var(--archex-radius-small);text-align:left}.period-date small[b-za03o3godb]{display:block;color:var(--color-gunmetal);font-size:.55rem;font-weight:800;letter-spacing:.12em}.period-date strong[b-za03o3godb]{display:block;margin-top:1px;font-size:.78rem}.page-message[b-za03o3godb]{display:flex;align-items:center;gap:10px;margin:12px 24px 0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#edf6ef;color:#355b40}.page-message.error[b-za03o3godb]{border-color:#e4b9a7;background:#fff0e9;color:var(--color-primary-dark)}.page-message>span[b-za03o3godb]{display:grid;width:22px;height:22px;border-radius:50%;place-items:center;background:var(--color-success);color:#fff;font-weight:900}.page-message.error>span[b-za03o3godb]{background:var(--color-danger)}.page-message strong[b-za03o3godb]{font-size:.8rem}.page-message button[b-za03o3godb]{margin-left:auto;border:0;background:transparent;color:inherit;font-size:1.2rem;cursor:pointer}.dispatch-workspace[b-za03o3godb]{display:grid;grid-template-columns:320px minmax(0,1fr);height:calc(100vh - 137px);min-height:620px;padding:14px 18px 18px;gap:14px}.jobs-panel[b-za03o3godb],.schedule-panel[b-za03o3godb]{min-height:0;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow-hover);overflow:hidden}.jobs-panel[b-za03o3godb]{display:flex;flex-direction:column}.jobs-panel-head[b-za03o3godb]{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 10px}.jobs-panel-head small[b-za03o3godb],.schedule-title small[b-za03o3godb]{display:block;color:var(--color-primary-dark);font-size:.56rem;font-weight:900;letter-spacing:.14em}.jobs-panel-head h1[b-za03o3godb]{margin:3px 0 0;font-family:var(--font-heading);font-size:1.15rem}.job-count[b-za03o3godb]{display:grid;width:30px;height:30px;border-radius:50%;place-items:center;background:var(--color-charcoal);color:#fff;font-size:.72rem;font-weight:800}.job-search[b-za03o3godb],.staff-search[b-za03o3godb]{display:flex;align-items:center;gap:8px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff}.job-search[b-za03o3godb]{margin:0 14px 10px;padding:9px 10px}.job-search span[b-za03o3godb],.staff-search span[b-za03o3godb]{color:var(--color-gunmetal)}.job-search input[b-za03o3godb],.staff-search input[b-za03o3godb]{width:100%;border:0;outline:0;background:transparent;color:var(--color-charcoal);font:inherit;font-size:.78rem}.job-filters[b-za03o3godb]{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:0 14px 12px}.job-filters button[b-za03o3godb]{min-width:0;padding:7px 3px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-panel);color:var(--color-gunmetal);font-size:.62rem;font-weight:800;cursor:pointer}.job-filters button.active[b-za03o3godb]{border-color:var(--color-primary);background:#fff1e9;color:var(--color-primary-dark)}.jobs-list[b-za03o3godb]{flex:1;min-height:0;padding:0 9px 8px;overflow-y:auto}.job-card[b-za03o3godb]{position:relative;margin:0 0 7px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;overflow:hidden;box-shadow:var(--archex-shadow);cursor:grab}.job-card[b-za03o3godb]:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--color-info)}.job-card.quoted[b-za03o3godb]:before{background:var(--color-warning)}.job-card.hold[b-za03o3godb]:before{background:var(--color-danger)}.job-card.reporting[b-za03o3godb]:before{background:#7b5aa6}.job-card:hover[b-za03o3godb]{border-color:var(--color-divider);box-shadow:var(--archex-shadow);transform:translateY(-1px)}.job-card.dragging[b-za03o3godb]{opacity:.4}.job-card-main[b-za03o3godb]{display:grid;width:100%;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:start;padding:11px 10px 11px 13px;border:0;background:transparent;text-align:left;cursor:pointer}.job-marker[b-za03o3godb]{display:grid;width:30px;height:30px;border-radius:50%;place-items:center;background:var(--color-panel);color:var(--color-info);font-weight:900}.quoted .job-marker[b-za03o3godb]{background:#fff1cf;color:#a86c00}.hold .job-marker[b-za03o3godb]{background:var(--color-panel);color:var(--color-danger)}.reporting .job-marker[b-za03o3godb]{background:#eee7f7;color:#6a438c}.job-copy[b-za03o3godb]{min-width:0}.job-copy strong[b-za03o3godb]{display:block;overflow:hidden;color:var(--color-charcoal);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.job-copy b[b-za03o3godb]{display:block;margin-top:2px;color:var(--color-charcoal);font-size:.63rem}.job-copy small[b-za03o3godb]{display:block;margin-top:2px;overflow:hidden;color:var(--color-gunmetal);font-size:.64rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.job-copy em[b-za03o3godb]{display:block;margin-top:6px;color:var(--color-info);font-size:.58rem;font-style:normal;font-weight:800}.quoted .job-copy em[b-za03o3godb]{color:#a86c00}.hold .job-copy em[b-za03o3godb]{color:var(--color-danger)}.reporting .job-copy em[b-za03o3godb]{color:#6a438c}.job-number[b-za03o3godb]{color:var(--color-gunmetal);font-size:.58rem}.jobs-panel-foot[b-za03o3godb]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-top:1px solid var(--color-divider);background:var(--color-panel);color:var(--color-gunmetal);font-size:.62rem}.jobs-panel-foot button[b-za03o3godb]{border:0;background:transparent;color:var(--color-primary-dark);font-weight:800;cursor:pointer}.panel-empty[b-za03o3godb]{padding:36px 14px;color:var(--color-gunmetal);font-size:.75rem;text-align:center}.schedule-panel[b-za03o3godb]{display:flex;flex-direction:column}.schedule-toolbar[b-za03o3godb]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--color-divider)}.schedule-title h2[b-za03o3godb]{margin:3px 0 0;font-family:var(--font-heading);font-size:1rem}.schedule-tools[b-za03o3godb]{display:flex;align-items:center;gap:8px}.staff-search[b-za03o3godb]{width:240px;padding:8px 10px}.today-button[b-za03o3godb]{height:35px;padding:0 13px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;color:var(--color-primary-dark);font-weight:800;cursor:pointer}.schedule-legend[b-za03o3godb]{display:flex;align-items:center;gap:18px;padding:8px 16px;border-bottom:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-gunmetal);font-size:.62rem}.schedule-legend span[b-za03o3godb]{display:flex;align-items:center;gap:5px}.schedule-legend i[b-za03o3godb]{width:8px;height:8px;border-radius:50%}.schedule-legend i.fieldwork[b-za03o3godb]{background:var(--color-info)}.schedule-legend i.office[b-za03o3godb]{background:var(--color-primary)}.schedule-legend i.reporting[b-za03o3godb]{background:#7b5aa6}.schedule-legend i.hold[b-za03o3godb]{background:var(--color-danger)}.schedule-legend small[b-za03o3godb]{margin-left:auto;color:var(--color-gunmetal)}.schedule-scroll[b-za03o3godb]{flex:1;min-height:0;overflow:auto}.schedule-grid[b-za03o3godb]{display:grid;min-width:980px;grid-template-columns:190px repeat(var(--day-count),minmax(150px,1fr));align-content:start}.staff-heading[b-za03o3godb],.day-heading[b-za03o3godb]{position:sticky;top:0;z-index:5;min-height:58px;border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);background:var(--color-panel)}.staff-heading[b-za03o3godb]{display:flex;align-items:center;padding:0 14px;color:var(--color-gunmetal);font-size:.61rem;font-weight:900;letter-spacing:.12em}.day-heading[b-za03o3godb]{display:grid;grid-template-columns:auto auto;align-content:center;justify-content:center;column-gap:5px;text-align:center}.day-heading small[b-za03o3godb]{grid-column:1/-1;color:var(--color-gunmetal);font-size:.52rem;font-weight:800}.day-heading strong[b-za03o3godb]{font-size:1.2rem}.day-heading span[b-za03o3godb]{align-self:end;color:var(--color-gunmetal);font-size:.56rem}.day-heading.today[b-za03o3godb]{background:var(--color-panel);box-shadow:inset 0 3px 0 var(--color-primary)}.staff-cell[b-za03o3godb]{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 34px;align-items:center;gap:9px;min-height:92px;padding:10px 9px;border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);background:#fff}.staff-avatar[b-za03o3godb]{display:grid;width:34px;height:34px;border-radius:50%;place-items:center;background:var(--color-charcoal);color:#fff;font-size:.63rem;font-weight:900}.staff-details[b-za03o3godb]{min-width:0}.staff-details strong[b-za03o3godb]{display:block;overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.staff-details small[b-za03o3godb]{display:block;margin-top:3px;overflow:hidden;color:var(--color-gunmetal);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.staff-details em[b-za03o3godb]{display:block;margin-top:5px;color:var(--color-success);font-size:.55rem;font-style:normal;font-weight:800}.staff-menu-button[b-za03o3godb]{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:var(--archex-radius-small);background:transparent;color:var(--color-gunmetal);font-size:1.1rem;cursor:pointer}.staff-menu-button:hover[b-za03o3godb]{background:var(--color-panel);color:var(--color-primary-dark)}.staff-menu[b-za03o3godb]{position:absolute;top:58px;right:8px;z-index:20;width:154px;padding:5px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;box-shadow:var(--archex-shadow-hover)}.staff-menu button[b-za03o3godb]{display:block;width:100%;padding:8px 9px;border:0;border-radius:var(--archex-radius-small);background:transparent;text-align:left;font-size:.68rem;cursor:pointer}.staff-menu button:hover[b-za03o3godb]{background:var(--color-panel);color:var(--color-primary-dark)}.schedule-cell[b-za03o3godb]{position:relative;display:flex;flex-direction:column;gap:5px;min-height:92px;padding:6px;border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);background:#fff}.schedule-cell.today[b-za03o3godb]{background:var(--color-surface)}.schedule-cell.drop-target[b-za03o3godb]{background:#edf7ef;box-shadow:inset 0 0 0 2px var(--color-success)}.schedule-cell.drop-target[b-za03o3godb]:after{content:"DROP JOB HERE";position:absolute;inset:5px;display:grid;border:1px dashed var(--color-success);border-radius:var(--archex-radius-small);place-items:center;background:rgba(237,247,239,.93);color:var(--color-success);font-size:.54rem;font-weight:900;pointer-events:none}.available[b-za03o3godb]{margin:auto;color:var(--color-gunmetal);font-size:.58rem}.booking-card[b-za03o3godb]{display:block;width:100%;padding:8px 8px 7px;border:1px solid var(--color-divider);border-left:4px solid var(--color-info);border-radius:var(--archex-radius-small);background:var(--color-panel);text-align:left;cursor:pointer}.booking-card:hover[b-za03o3godb]{filter:brightness(.98);box-shadow:var(--archex-shadow)}.booking-card strong[b-za03o3godb]{display:block;overflow:hidden;font-size:.64rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.booking-card span[b-za03o3godb]{display:block;margin-top:2px;color:#4e5968;font-size:.53rem}.booking-card small[b-za03o3godb]{display:block;margin-top:5px;color:var(--color-info);font-size:.52rem;font-weight:800}.booking-card.office[b-za03o3godb]{border-color:var(--color-primary-light);border-left-color:var(--color-primary);background:var(--color-panel)}.booking-card.office small[b-za03o3godb]{color:var(--color-primary-dark)}.booking-card.reporting[b-za03o3godb]{border-color:var(--color-divider);border-left-color:#7b5aa6;background:var(--color-panel)}.booking-card.reporting small[b-za03o3godb]{color:#6a438c}.booking-card.hold[b-za03o3godb]{border-color:var(--color-divider);border-left-color:var(--color-danger);background:var(--color-panel)}.booking-card.hold small[b-za03o3godb]{color:var(--color-danger)}.staff-cell.unassigned[b-za03o3godb]{background:var(--color-panel)}.unassigned-cell[b-za03o3godb]{background:var(--color-panel)}.unassigned-booking[b-za03o3godb]{cursor:grab}.modal-backdrop[b-za03o3godb]{position:fixed;inset:0;z-index:1000;display:grid;padding:24px;background:rgba(18,18,18,.38);place-items:center}.booking-modal[b-za03o3godb]{width:min(760px,100%);max-height:calc(100vh - 48px);border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow-hover);overflow:auto}.booking-modal-head[b-za03o3godb]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--color-divider)}.booking-project-summary[b-za03o3godb]{display:flex;align-items:center;gap:13px}.modal-project-marker[b-za03o3godb]{display:grid;width:42px;height:42px;border-radius:50%;place-items:center;background:var(--color-panel);color:var(--color-info);font-weight:900}.booking-project-summary small[b-za03o3godb]{color:var(--color-primary-dark);font-size:.55rem;font-weight:900;letter-spacing:.13em}.booking-project-summary h2[b-za03o3godb]{margin:3px 0 0;font-family:var(--font-heading);font-size:1.1rem}.booking-project-summary p[b-za03o3godb]{margin:3px 0 0;color:var(--color-gunmetal);font-size:.68rem}.modal-close[b-za03o3godb]{border:0;background:transparent;color:var(--color-gunmetal);font-size:1.4rem;cursor:pointer}.booking-modal-body[b-za03o3godb]{padding:18px 20px}.duration-options[b-za03o3godb]{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 17px;padding:0;border:0}.duration-options legend[b-za03o3godb]{width:100%;margin-bottom:6px;font-size:.7rem;font-weight:800}.duration-option input[b-za03o3godb]{position:absolute;opacity:0;pointer-events:none}.duration-option span[b-za03o3godb]{display:block;padding:8px 11px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-panel);color:var(--color-gunmetal);font-size:.66rem;font-weight:800;cursor:pointer}.duration-option.selected span[b-za03o3godb]{border-color:var(--color-primary);background:#fff1e9;color:var(--color-primary-dark)}.booking-form-grid[b-za03o3godb]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.booking-form-grid label>span[b-za03o3godb]{display:block;margin-bottom:6px;color:var(--color-gunmetal);font-size:.63rem;font-weight:800}.date-control[b-za03o3godb]{display:flex;width:100%;min-width:0;padding:9px 10px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff}.date-control input[b-za03o3godb]{display:block;width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;font:inherit;font-size:.75rem}.timezone-field select[b-za03o3godb]{width:100%;padding:9px 10px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;font:inherit;font-size:.75rem}.weekend-check[b-za03o3godb]{display:flex!important;align-items:center;gap:8px;padding-top:24px}.weekend-check>span[b-za03o3godb]{margin:0!important}.staff-selector[b-za03o3godb]{margin-top:18px;padding-top:16px;border-top:1px solid var(--color-divider)}.staff-selector>div:first-child small[b-za03o3godb]{color:var(--color-primary-dark);font-size:.55rem;font-weight:900;letter-spacing:.13em}.staff-selector h3[b-za03o3godb]{margin:3px 0 10px;font-size:.86rem}.staff-selector-list[b-za03o3godb]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:180px;overflow:auto}.staff-choice[b-za03o3godb]{display:grid;grid-template-columns:20px 30px minmax(0,1fr);align-items:center;gap:7px;padding:8px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;cursor:pointer}.staff-choice.selected[b-za03o3godb]{border-color:var(--color-primary);background:#fff8f4}.staff-choice-avatar[b-za03o3godb]{display:grid;width:28px;height:28px;border-radius:50%;place-items:center;background:var(--color-charcoal);color:#fff;font-size:.53rem;font-weight:900}.staff-choice strong[b-za03o3godb]{display:block;overflow:hidden;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.staff-choice small[b-za03o3godb]{display:block;margin-top:2px;overflow:hidden;color:var(--color-gunmetal);font-size:.52rem;text-overflow:ellipsis;white-space:nowrap}.booking-error[b-za03o3godb]{margin-top:14px;padding:10px 12px;border:1px solid var(--color-primary-light);border-radius:var(--archex-radius-small);background:#fff0e9;color:var(--color-primary-dark);font-size:.7rem;font-weight:700}.booking-modal-foot[b-za03o3godb]{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;padding:13px 20px;border-top:1px solid var(--color-divider);background:var(--color-panel)}.booking-modal-foot button[b-za03o3godb]{min-height:38px;padding:0 14px;border-radius:var(--archex-radius-small);font-weight:800;cursor:pointer}.booking-cancel-actions[b-za03o3godb]{display:flex;flex-wrap:wrap;gap:7px}.remove-staff-booking[b-za03o3godb]{border:1px solid var(--color-divider);background:#fff;color:var(--color-gunmetal)}.remove-staff-booking:hover[b-za03o3godb]{border-color:var(--color-primary);background:var(--color-panel);color:var(--color-primary-dark)}.cancel-booking[b-za03o3godb]{border:1px solid var(--color-divider);background:#fff;color:var(--color-danger)}.secondary-button[b-za03o3godb]{border:1px solid var(--color-divider);background:#fff;color:var(--color-gunmetal)}.save-booking[b-za03o3godb]{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.save-booking:disabled[b-za03o3godb]{opacity:.55;cursor:wait}@media(max-width:1100px){.dispatch-workspace[b-za03o3godb]{grid-template-columns:280px minmax(0,1fr)}.schedule-grid[b-za03o3godb]{grid-template-columns:170px repeat(var(--day-count),minmax(145px,1fr))}.dispatch-tab[b-za03o3godb]{padding:0 12px}.staff-selector-list[b-za03o3godb]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.dispatch-tabs[b-za03o3godb]{overflow-x:auto;padding:0 10px}.dispatch-tab[b-za03o3godb]{flex:0 0 auto}.period-controls[b-za03o3godb]{flex:0 0 auto}.dispatch-workspace[b-za03o3godb]{display:block;height:auto;padding:10px}.jobs-panel[b-za03o3godb]{max-height:340px;margin-bottom:10px}.schedule-panel[b-za03o3godb]{height:650px}.schedule-legend small[b-za03o3godb]{display:none}.booking-form-grid[b-za03o3godb]{grid-template-columns:1fr}.staff-selector-list[b-za03o3godb]{grid-template-columns:1fr}.booking-modal-foot[b-za03o3godb]{grid-template-columns:1fr 1fr}.booking-modal-foot span[b-za03o3godb]{display:none}.booking-cancel-actions[b-za03o3godb]{grid-column:1/-1}.cancel-booking[b-za03o3godb]{grid-column:auto}} 

/* Tap to place: the other half of drag and drop, for the device this page is meant to be used on. */
.job-place[b-za03o3godb] {
    display: block;
    width: 100%;
    min-height: 34px;
    margin: 0;
    padding: 7px 10px;
    border: 0;
    border-top: 1px solid var(--color-divider);
    border-radius: 0 0 10px 10px;
    background: var(--color-panel);
    color: var(--color-primary-dark);
    font: inherit;
    font-size: .68rem;
    font-weight: 800;
    cursor: pointer;
}

.job-place:hover[b-za03o3godb] { background: color-mix(in srgb, var(--color-primary) 10%, white); }
.job-place.is-on[b-za03o3godb] { background: var(--color-primary); color: #fff; }

/* While a job is waiting to be put down, every empty cell says so and invites the tap. */
.schedule-cell.is-placing[b-za03o3godb] { cursor: pointer; }
.schedule-cell.is-placing:hover[b-za03o3godb] { background: color-mix(in srgb, var(--color-primary) 8%, white); }
.schedule-cell.is-placing .available[b-za03o3godb] { color: var(--color-primary-dark); font-weight: 800; }
/* /Components/Pages/SearchRegionAudit.razor.rz.scp.css */
/* Only what the design system does not already provide.
   ax-card, ax-table, ax-quote and ax-button come from archex-foundation.css and
   archex-components.css and are deliberately NOT redefined here. */

.ax-subcard[b-yejo57t8ie] { border-top: 1px solid var(--color-divider); padding-top: .75rem; margin-top: 1rem; }

.ax-row-ok[b-yejo57t8ie] { background: #f2f9f2; }

.ax-warn[b-yejo57t8ie] { color: var(--color-primary-dark); font-weight: 600; }

.ax-note[b-yejo57t8ie] { color: var(--color-gunmetal); font-size: .9rem; }

/* Generated comparison prose: pre-wrapped so the bullet structure survives, but set in
   the body face rather than a monospace one - it is argument, not code. */
.ax-pre[b-yejo57t8ie] {
    white-space: pre-wrap;
    font-family: inherit;
    font-size: .88rem;
    background: var(--color-panel);
    padding: .6rem .8rem;
    border-radius: 4px;
}

.ax-dl[b-yejo57t8ie] { display: grid; grid-template-columns: 12rem 1fr; gap: .25rem .75rem; font-size: .9rem; }
.ax-dl dt[b-yejo57t8ie] { font-weight: 600; color: var(--color-gunmetal); }
.ax-dl dd[b-yejo57t8ie] { margin: 0; }

/* Hashes and long paths must wrap rather than widen the page. */
.ax-wrap[b-yejo57t8ie] { overflow-wrap: anywhere; }

@media (max-width: 640px) {
    .ax-dl[b-yejo57t8ie] { grid-template-columns: 1fr; }
    .ax-dl dd[b-yejo57t8ie] { margin-bottom: .5rem; }
}

/* The coverage warning. Deliberately loud: it governs how every component count on the page
   may be read, and an earlier version of the comparison drew a conclusion it forbids. */
.ax-coverage-warning[b-yejo57t8ie] {
    border: 1px solid var(--color-primary-dark);
    border-left: 4px solid var(--color-primary-dark);
    background: #fffbeb;
    padding: .7rem .9rem;
    border-radius: 4px;
    margin: .75rem 0 1rem;
}

.ax-coverage-warning strong[b-yejo57t8ie] { color: var(--color-primary-dark); display: block; margin-bottom: .35rem; }
.ax-coverage-warning p[b-yejo57t8ie] { margin: 0; font-size: .88rem; color: #44403c; }

/* Counts that must not be read as evidence are set back from the measured figures. */
.ax-table-muted[b-yejo57t8ie] { opacity: .88; }
.ax-table-muted th[b-yejo57t8ie] { font-weight: 500; }
/* /Components/Pages/SearchRegionReview.razor.rz.scp.css */
.srr[b-2960dkj8wt] { max-width: 1860px; font-size: 15px; }

/* ---- header ---- */

.srr-head[b-2960dkj8wt] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 10px;
}

/* The title block: takes the space the status chips do not, and is allowed to shrink.
   Without min-width:0 a flex child refuses to go below its longest word, so a long
   address pushes the status chips off the right-hand edge instead of wrapping. */
.srr-headmain[b-2960dkj8wt] { flex: 1 1 auto; min-width: 0; }

.srr-head h1[b-2960dkj8wt] { margin: 2px 0 0; font-size: 1.5rem; }

.srr-status[b-2960dkj8wt] { display: flex; gap: 8px; align-items: center; }

.srr-chip[b-2960dkj8wt] {
    display: inline-block;
    padding: 5px 13px;
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 700;
    background: var(--color-panel);
    color: var(--color-charcoal);
    white-space: nowrap;
}

.srr-chip-ok[b-2960dkj8wt] { background: #dcfce7; color: #14532d; }
.srr-chip-warn[b-2960dkj8wt] { background: #fef3c7; color: var(--color-primary-dark); }
.srr-chip-area[b-2960dkj8wt] { background: #ffedd5; color: var(--color-primary-dark); }

.srr-message[b-2960dkj8wt] {
    margin: 0 0 12px;
    padding: 12px 16px;
    border-left: 4px solid var(--color-primary-dark);
    background: var(--color-panel);
    font-size: 0.98rem;
}

/* ---- one-click views ---- */

.srr-views[b-2960dkj8wt] {
    display: flex;
    gap: 8px;
    align-items: stretch;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.srr-view[b-2960dkj8wt] {
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--color-divider);
    background: #fff;
    border-radius:var(--archex-radius-small);
    padding: 9px 15px;
    font-size: 0.95rem;
    cursor: pointer;
    text-align: left;
}

.srr-view:hover[b-2960dkj8wt] { background: var(--color-panel); }

.srr-view.is-on[b-2960dkj8wt] {
    border-color: var(--color-primary-dark);
    background: #fff7ed;
    box-shadow: inset 0 -3px 0 var(--color-primary-dark);
    font-weight: 700;
}

.srr-viewnum[b-2960dkj8wt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #e7e5e4;
    font-size: 0.82rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.srr-view.is-on .srr-viewnum[b-2960dkj8wt] { background: var(--color-primary-dark); color: #fff; }

.srr-mapnav[b-2960dkj8wt] { display: flex; gap: 4px; margin-left: auto; align-items: center; }

.srr-tool[b-2960dkj8wt] {
    border: 1px solid var(--color-divider);
    background: #fff;
    border-radius:var(--archex-radius-small);
    padding: 7px 12px;
    font-size: 0.92rem;
    cursor: pointer;
    line-height: 1;
}

.srr-tool:hover[b-2960dkj8wt] { background: var(--color-panel); }
.srr-toolwide[b-2960dkj8wt] { display: block; width: 100%; margin: 10px 0 14px; padding: 10px; font-weight: 600; }

/* ---- layout ---- */

.srr-layout[b-2960dkj8wt] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 440px;
    gap: 16px;
    align-items: start;
}

@media (max-width: 1500px) {
    .srr-layout[b-2960dkj8wt] { grid-template-columns: minmax(0, 1fr) 400px; }
}

@media (max-width: 1180px) {
    .srr-layout[b-2960dkj8wt] { grid-template-columns: minmax(0, 1fr); }
}

/* ---- map ---- */

.srr-map-panel[b-2960dkj8wt] {
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    overflow: hidden;
}

.srr-mapwrap[b-2960dkj8wt] { position: relative; }

.srr-map[b-2960dkj8wt] {
    width: 100%;
    height: 74vh;
    min-height: 560px;
    display: block;
    background: var(--color-surface);
}

.srr-shape[b-2960dkj8wt] { cursor: pointer; }
.srr-shape:hover[b-2960dkj8wt] { filter: brightness(0.8); }
.srr-maplabel[b-2960dkj8wt] { pointer-events: none; }

.srr-north[b-2960dkj8wt] {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 34px;
    text-align: center;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    padding: 5px 2px 2px;
}

.srr-north svg[b-2960dkj8wt] { width: 17px; height: 22px; display: block; margin: 0 auto; }
.srr-north span[b-2960dkj8wt] { font-size: 0.78rem; font-weight: 700; }

/* ---- permanent legend ---- */

.srr-legend[b-2960dkj8wt] {
    position: absolute;
    left: 14px;
    top: 14px;
    max-width: 310px;
    max-height: calc(74vh - 110px);
    overflow-y: auto;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    padding: 10px 12px;
    box-shadow:var(--archex-shadow);
}

.srr-legend h3[b-2960dkj8wt] {
    margin: 0 0 7px;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--color-gunmetal);
}

.srr-legrow[b-2960dkj8wt] { display: flex; gap: 9px; align-items: center; margin-bottom: 5px; }
.srr-legtext[b-2960dkj8wt] { font-size: 0.83rem; line-height: 1.3; }

.srr-legsplit[b-2960dkj8wt] {
    margin: 8px 0 5px;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #a8a29e;
    border-top: 1px solid var(--color-divider);
    padding-top: 7px;
}

/* ---- legend symbols ---- */

.srr-sym[b-2960dkj8wt] { width: 18px; height: 14px; flex: 0 0 auto; display: inline-block; }
.srr-sym-fill[b-2960dkj8wt] { background: color-mix(in srgb, var(--c) 16%, transparent); border: 2px solid var(--c); border-radius: 2px; }
.srr-sym-outline[b-2960dkj8wt] { border: 1.5px solid var(--c); border-radius: 2px; }
.srr-sym-region[b-2960dkj8wt] { background: color-mix(in srgb, var(--c) 12%, transparent); border: 3px solid var(--c); border-radius: 2px; }
.srr-sym-dashed[b-2960dkj8wt] { border: 2px dashed var(--c); border-radius: 2px; }
.srr-sym-line[b-2960dkj8wt] { height: 0; border-top: 3px solid var(--c); margin: 6px 0; }
.srr-sym-place[b-2960dkj8wt] { border: 2px dashed var(--c); border-radius: 50%; width: 15px; height: 15px; background: color-mix(in srgb, var(--c) 10%, transparent); }
.srr-sym-component[b-2960dkj8wt] { background: var(--c); border-radius: 50%; width: 11px; height: 11px; border: 1.5px solid #fff; outline: 1px solid #d6d3d1; margin-left: 3px; }

/* ---- map footer ---- */

.srr-mapfoot[b-2960dkj8wt] { border-top: 1px solid var(--color-divider); padding: 9px 14px 11px; background: var(--color-panel); }

.srr-mapfootrow[b-2960dkj8wt] {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: var(--color-gunmetal);
    margin-bottom: 6px;
}

.srr-viewtitle[b-2960dkj8wt] { font-weight: 700; color: var(--color-charcoal); }

.srr-clipproof[b-2960dkj8wt] { margin: 0 0 5px; font-size: 0.85rem; display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; }
.srr-ok[b-2960dkj8wt] { color: #15803d; font-weight: 700; white-space: nowrap; }
.srr-bad[b-2960dkj8wt] { color: #b91c1c; font-weight: 700; white-space: nowrap; }

.srr-datadate[b-2960dkj8wt] { margin: 0; font-size: 0.79rem; color: var(--color-gunmetal); line-height: 1.5; }

/* ---- side panel ---- */

.srr-side[b-2960dkj8wt] {
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    display: flex;
    flex-direction: column;
    height: calc(74vh + 92px);
    min-height: 652px;
}

.srr-tabs[b-2960dkj8wt] { display: flex; border-bottom: 1px solid var(--color-divider); flex: 0 0 auto; }

.srr-tab[b-2960dkj8wt] {
    flex: 1;
    border: 0;
    background: var(--color-panel);
    padding: 11px 4px;
    font-size: 0.9rem;
    cursor: pointer;
    border-right: 1px solid var(--color-divider);
}

.srr-tab:last-child[b-2960dkj8wt] { border-right: 0; }
.srr-tab.is-on[b-2960dkj8wt] { background: #fff; font-weight: 700; box-shadow: inset 0 -3px 0 var(--color-primary-dark); }

.srr-scroll[b-2960dkj8wt] { overflow-y: auto; padding: 14px 16px; flex: 1 1 auto; }

.srr-h2[b-2960dkj8wt] { margin: 0 0 6px; font-size: 1.1rem; }
.srr-lead[b-2960dkj8wt] { margin: 0 0 14px; font-size: 0.93rem; line-height: 1.55; color: var(--color-charcoal); }

.srr-group[b-2960dkj8wt] {
    margin: 16px 0 7px;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #a8a29e;
}

.srr-group:first-child[b-2960dkj8wt] { margin-top: 0; }

.srr-layerrow[b-2960dkj8wt] {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    padding: 7px 5px;
    border-radius:var(--archex-radius-small);
    cursor: pointer;
}

.srr-layerrow:hover[b-2960dkj8wt] { background: var(--color-panel); }
.srr-layerrow .srr-sym[b-2960dkj8wt] { margin-top: 3px; }

.srr-layertext[b-2960dkj8wt] { display: flex; flex-direction: column; font-size: 0.9rem; line-height: 1.4; }
.srr-layermeta[b-2960dkj8wt] { color: var(--color-gunmetal); font-size: 0.78rem; }
.srr-layerscale[b-2960dkj8wt] { color: #a8a29e; font-size: 0.76rem; font-style: italic; }
.srr-layercaveat[b-2960dkj8wt] { color: var(--color-primary-dark); font-size: 0.76rem; }

/* ---- inspector ---- */

.srr-inspect[b-2960dkj8wt] { border-left: 3px solid var(--color-primary-dark); padding-left: 12px; margin-bottom: 14px; }
.srr-inspect h3[b-2960dkj8wt] { margin: 0 0 4px; font-size: 1.02rem; }
.srr-detail[b-2960dkj8wt] { margin: 0 0 10px; color: var(--color-gunmetal); font-size: 0.9rem; }

.srr-facts[b-2960dkj8wt] { display: flex; gap: 18px; flex-wrap: wrap; margin-bottom: 12px; }
.srr-facts > div[b-2960dkj8wt] { display: flex; flex-direction: column; }
.srr-factlabel[b-2960dkj8wt] { font-size: 0.74rem; color: var(--color-gunmetal); text-transform: uppercase; letter-spacing: 0.04em; }
.srr-factvalue[b-2960dkj8wt] { font-size: 1.05rem; font-weight: 700; font-variant-numeric: tabular-nums; }

.srr-reason[b-2960dkj8wt] { margin: 0 0 9px; font-size: 0.9rem; line-height: 1.6; }
.srr-hint[b-2960dkj8wt] { margin: 0 0 12px; font-size: 0.87rem; color: var(--color-gunmetal); line-height: 1.55; }
.srr-scroll h4[b-2960dkj8wt] { margin: 14px 0 5px; font-size: 0.9rem; }

.srr-details[b-2960dkj8wt] { margin: 12px 0; border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); padding: 0; }
.srr-details > summary[b-2960dkj8wt] { cursor: pointer; padding: 9px 12px; font-size: 0.88rem; font-weight: 600; background: var(--color-panel); border-radius:var(--archex-radius-small); }
.srr-details[open] > summary[b-2960dkj8wt] { border-bottom: 1px solid var(--color-divider); border-radius: 6px 6px 0 0; }
.srr-details > *:not(summary)[b-2960dkj8wt] { margin-left: 12px; margin-right: 12px; }
.srr-details > *:last-child[b-2960dkj8wt] { margin-bottom: 12px; }

.srr-attrs[b-2960dkj8wt] {
    padding: 9px;
    background: var(--color-panel);
    border-radius:var(--archex-radius-small);
    font-size: 0.8rem;
    white-space: pre-wrap;
    color: var(--color-charcoal);
}

/* ---- alternatives ---- */

.srr-altpicker[b-2960dkj8wt] { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 12px; }

.srr-altbutton[b-2960dkj8wt] {
    border: 1px solid var(--color-divider);
    background: #fff;
    border-radius:var(--archex-radius-small);
    padding: 7px 9px;
    font-size: 0.8rem;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.srr-altbutton:hover[b-2960dkj8wt] { background: var(--color-panel); }
.srr-altbutton.is-on[b-2960dkj8wt] { border-color: var(--color-primary); background: color-mix(in srgb, var(--color-primary) 8%, white); font-weight: 700; }

.srr-compare[b-2960dkj8wt] { width: 100%; border-collapse: collapse; font-size: 0.85rem; margin-bottom: 14px; }
.srr-compare th[b-2960dkj8wt], .srr-compare td[b-2960dkj8wt] { border: 1px solid var(--color-divider); padding: 5px 8px; vertical-align: top; }
.srr-compare thead th[b-2960dkj8wt] { background: var(--color-panel); font-size: 0.82rem; }
.srr-compare thead th.is-proposal[b-2960dkj8wt] { color: var(--color-primary-dark); }
.srr-compare thead th.is-alt[b-2960dkj8wt] { color: var(--color-primary-dark); }
.srr-compare tbody th[b-2960dkj8wt] { background: var(--color-panel); text-align: left; font-weight: 600; width: 36%; }
.srr-compare td[b-2960dkj8wt] { font-variant-numeric: tabular-nums; }
.srr-compare td.is-add[b-2960dkj8wt] { color: #15803d; font-weight: 700; }
.srr-compare td.is-drop[b-2960dkj8wt] { color: #b91c1c; font-weight: 700; }
.srr-small[b-2960dkj8wt] { font-size: 0.78rem; }

/* ---- method ---- */

.srr-param[b-2960dkj8wt] { border-left: 3px solid var(--color-primary-dark); padding-left: 12px; margin-bottom: 18px; }
.srr-paramvalue[b-2960dkj8wt] { margin: 0; font-size: 1.7rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }
.srr-param h4[b-2960dkj8wt] { margin: 2px 0 4px; font-size: 0.92rem; }

.srr-prov[b-2960dkj8wt] {
    margin: 0 0 8px;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.srr-prov-ArchExAnalyticalChoice[b-2960dkj8wt] { color: var(--color-primary-dark); }
.srr-prov-AcquisitionArtefact[b-2960dkj8wt] { color: #b91c1c; }

.srr-sweepwrap[b-2960dkj8wt] { overflow-x: auto; }
.srr-sweep[b-2960dkj8wt] { border-collapse: collapse; font-size: 0.8rem; width: 100%; }
.srr-sweep th[b-2960dkj8wt], .srr-sweep td[b-2960dkj8wt] { border: 1px solid var(--color-divider); padding: 5px 7px; text-align: right; }
.srr-sweep thead th[b-2960dkj8wt] { background: var(--color-panel); }
.srr-sweep tbody th[b-2960dkj8wt] { background: var(--color-panel); text-align: left; }
.srr-sweep td[b-2960dkj8wt] { font-variant-numeric: tabular-nums; }
.srr-cellcount[b-2960dkj8wt] { color: #a8a29e; margin-left: 3px; }
.srr-sweep td.is-adopted[b-2960dkj8wt] { background: #fff7ed; font-weight: 700; outline: 2px solid var(--color-primary-dark); outline-offset: -2px; }
.srr-sweep th.is-edge[b-2960dkj8wt], .srr-sweep td.is-edge[b-2960dkj8wt] { background: #fef2f2; color: #7f1d1d; }

.srr-key[b-2960dkj8wt] { display: inline-block; padding: 2px 9px; border-radius: 4px; margin-right: 8px; font-size: 0.78rem; }
.srr-key.is-adopted[b-2960dkj8wt] { background: #fff7ed; outline: 1px solid var(--color-primary-dark); }
.srr-key.is-edge[b-2960dkj8wt] { background: #fef2f2; color: #7f1d1d; }

.srr-intake[b-2960dkj8wt] { margin: 0 0 6px; font-size: 0.84rem; padding: 7px 10px; border-radius:var(--archex-radius-small); }
.srr-intake.is-ok[b-2960dkj8wt] { background: #f0fdf4; }
.srr-intake.is-bad[b-2960dkj8wt] { background: #fef2f2; }

/* ---- confirmation ---- */

.srr-confirm[b-2960dkj8wt] {
    margin-top: 16px;
    border: 2px solid var(--color-primary-dark);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
    padding: 18px 22px 22px;
}

.srr-confirm h2[b-2960dkj8wt] { margin: 0 0 12px; font-size: 1.2rem; }
.srr-confirmed[b-2960dkj8wt] { margin: 0 0 8px; font-size: 0.98rem; }

.srr-summary[b-2960dkj8wt] {
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 12px 24px;
}

.srr-summary li[b-2960dkj8wt] {
    font-size: 0.92rem;
    line-height: 1.55;
    padding-left: 15px;
    border-left: 3px solid var(--color-primary-light);
}

.srr-confirmgrid[b-2960dkj8wt] {
    display: grid;
    grid-template-columns: minmax(280px, 460px) minmax(320px, 1fr);
    gap: 18px;
    margin-bottom: 14px;
}

@media (max-width: 900px) { .srr-confirmgrid[b-2960dkj8wt] { grid-template-columns: minmax(0, 1fr); } }

.srr-field[b-2960dkj8wt] { display: block; }
.srr-field span[b-2960dkj8wt] { display: block; font-size: 0.88rem; margin-bottom: 5px; color: var(--color-charcoal); font-weight: 600; }

.srr-field select[b-2960dkj8wt], .srr-field textarea[b-2960dkj8wt] {
    width: 100%;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    padding: 9px 11px;
    font: inherit;
    font-size: 0.92rem;
}

.srr-confirmbutton[b-2960dkj8wt] { font-size: 1rem; padding: 12px 22px; }
.srr-confirmbutton:disabled[b-2960dkj8wt] { opacity: 0.45; cursor: not-allowed; }

/* ---- map navigation ---- */

.srr-navsplit[b-2960dkj8wt] { width: 1px; height: 22px; background: #d6d3d1; margin: 0 4px; }
.srr-tool.is-on[b-2960dkj8wt] { border-color: var(--color-primary-dark); background: #fff7ed; font-weight: 700; }
.srr-tool:disabled[b-2960dkj8wt] { opacity: 0.35; cursor: not-allowed; }

.srr-map:focus[b-2960dkj8wt] { outline: 2px solid var(--color-primary-dark); outline-offset: -2px; }

.srr-maphint[b-2960dkj8wt] {
    position: absolute;
    right: 14px;
    bottom: 12px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    padding: 5px 9px;
    font-size: 0.74rem;
    color: var(--color-gunmetal);
    max-width: 340px;
    line-height: 1.4;
}

.srr-opacity[b-2960dkj8wt] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 8px 30px;
    font-size: 0.74rem;
    color: var(--color-gunmetal);
}

.srr-opacity input[type=range][b-2960dkj8wt] { flex: 1 1 auto; max-width: 150px; accent-color: var(--color-primary-dark); }
.srr-opacity span[b-2960dkj8wt] { min-width: 34px; text-align: right; font-variant-numeric: tabular-nums; }
.srr-chip-link[b-2960dkj8wt] { background: #e0e7ff; color: #1e1b4b; text-decoration: none; }
.srr-chip-link:hover[b-2960dkj8wt] { text-decoration: underline; }

/* Which zip goes into ACHRIS. Two archives are produced and only one is uploaded, so the
   distinction is made loudly here as well as in the file names themselves. */
.srr-uploadnote[b-2960dkj8wt] { margin-top: .8rem; border-left: 3px solid var(--color-divider); padding-left: .8rem; }
.srr-uploadnote p[b-2960dkj8wt] { margin: .35rem 0; font-size: .88rem; }

.srr-uploadthis[b-2960dkj8wt] {
    background: var(--color-panel);
    border: 1px solid #16a34a;
    border-radius: 4px;
    padding: .5rem .7rem;
    color: #14532d;
}

.srr-uploadnot[b-2960dkj8wt] {
    background: var(--color-panel);
    border: 1px solid #dc2626;
    border-radius: 4px;
    padding: .5rem .7rem;
    color: #7f1d1d;
}

/* The generated package and its certification. */
.srr-package[b-2960dkj8wt] { margin-top: .9rem; border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); padding: .8rem 1rem; }
.srr-package h4[b-2960dkj8wt] { margin: 0 0 .5rem; font-size: .95rem; }
.srr-certok[b-2960dkj8wt] { color: #14532d; background: var(--color-panel); border-radius: 4px; padding: .4rem .6rem; margin: 0 0 .7rem; font-size: .88rem; }

/* One unmistakable button. The supporting package is deliberately quieter: the two are not
   equal choices, and a person scanning this must not have to read to tell which is which. */
.srr-bigdownload[b-2960dkj8wt] {
    display: block;
    background: #15803d;
    color: #fff;
    text-decoration: none;
    padding: .85rem 1.1rem;
    border-radius:var(--archex-radius-small);
    font-size: 1.05rem;
    font-weight: 700;
    text-align: center;
}

.srr-bigdownload span[b-2960dkj8wt] { display: block; font-size: .78rem; font-weight: 400; opacity: .92; margin-top: .25rem; }
.srr-bigdownload:hover[b-2960dkj8wt] { background: #166534; }

.srr-smalldownload[b-2960dkj8wt] {
    display: inline-block;
    margin-top: .6rem;
    font-size: .85rem;
    color: var(--color-gunmetal);
}

/* Draft review material: a map drawn around an activity-area version the client has not accepted (14 September 2026). */
.srr-draft[b-2960dkj8wt] {
    border-left-color: #b91c1c;
    background: #fef2f2;
}
/* /Components/Pages/Settings/KnowledgeVault.razor.rz.scp.css */
.vault-page[b-mn1zugse8k]{width:min(1050px,100%);margin:0 auto;padding:40px;color:var(--color-charcoal)}.vault-page header[b-mn1zugse8k]{margin-bottom:28px}.vault-page h1[b-mn1zugse8k]{margin:0;font-size:var(--archex-text-2xl);letter-spacing:-.05em}.vault-page header p:last-child[b-mn1zugse8k]{max-width:760px;color:var(--color-gunmetal);line-height:1.6}.eyebrow[b-mn1zugse8k]{margin:0 0 10px;color:var(--color-primary-dark);font-size:.72rem;font-weight:800;letter-spacing:.2em}.vault-card[b-mn1zugse8k]{padding:28px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-large);background:#fff;box-shadow:var(--archex-shadow-hover)}.status-row[b-mn1zugse8k]{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.status-row h2[b-mn1zugse8k]{margin:0 0 8px}.status-row p[b-mn1zugse8k]{margin:0 0 24px;color:var(--color-gunmetal)}.status[b-mn1zugse8k]{padding:8px 12px;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}.connected[b-mn1zugse8k]{background:#e2f4e8;color:#24643c}.notconnected[b-mn1zugse8k],.foldernotfound[b-mn1zugse8k]{background:#fff2d9;color:#805d14}.accessdenied[b-mn1zugse8k]{background:#fde4e2;color:#8b2922}.vault-card>label[b-mn1zugse8k]{display:block;margin-bottom:8px;font-size:.78rem;font-weight:800}.vault-card>input[b-mn1zugse8k]{width:100%;min-height:46px;padding:0 14px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);font:inherit}.vault-card dl[b-mn1zugse8k]{display:grid;grid-template-columns:145px 1fr;gap:10px;margin:22px 0 0;padding:18px;background:var(--color-background);border-radius:var(--archex-radius-small)}.vault-card dt[b-mn1zugse8k]{font-weight:800}.vault-card dd[b-mn1zugse8k]{margin:0;word-break:break-all}.actions[b-mn1zugse8k]{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.primary-button[b-mn1zugse8k],.secondary-button[b-mn1zugse8k]{padding:0 20px;border-radius:var(--archex-radius-small);font:inherit;font-weight:800;cursor:pointer}.primary-button[b-mn1zugse8k]{border:1px solid var(--color-primary-dark);background:var(--color-primary);color:#fff}.secondary-button[b-mn1zugse8k]{border:1px solid var(--color-divider);background:#fff;color:#28231f}@media(max-width:700px){.vault-page[b-mn1zugse8k]{padding:24px}.status-row[b-mn1zugse8k]{display:block}.status[b-mn1zugse8k]{display:inline-flex;margin-bottom:18px}.vault-card dl[b-mn1zugse8k]{grid-template-columns:1fr}.actions[b-mn1zugse8k]{flex-direction:column}.actions button[b-mn1zugse8k]{width:100%}}
/* /Components/Pages/Spatial.razor.rz.scp.css */
.spatial-hub-page[b-hgxbhz69b0]{display:grid;grid-template-columns:minmax(0,1fr);gap:1.35rem;padding:1.5rem;max-width:1550px;margin:0 auto}.spatial-hero[b-hgxbhz69b0],.panel[b-hgxbhz69b0],.map-panel[b-hgxbhz69b0]{background:#fff;border:1px solid var(--archex-border-soft);border-radius:var(--archex-radius-large);padding:1.45rem}.spatial-hero[b-hgxbhz69b0]{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem}.eyebrow[b-hgxbhz69b0]{margin:0;font-size:.72rem;font-weight:850;letter-spacing:.13em;color:var(--archex-muted)}.spatial-hero h1[b-hgxbhz69b0]{margin:.25rem 0 .5rem;font-size:2.05rem}.intro[b-hgxbhz69b0]{margin:0;max-width:780px;color:var(--archex-muted)}.hero-actions[b-hgxbhz69b0],.selected-actions[b-hgxbhz69b0]{display:flex;gap:.65rem}button[b-hgxbhz69b0]{border:0;border-radius:var(--archex-radius-small);background:var(--archex-charcoal);color:#fff;padding:.72rem 1rem;font-weight:750;cursor:pointer}button.secondary[b-hgxbhz69b0]{background:var(--archex-panel);color:var(--archex-charcoal)}button:disabled[b-hgxbhz69b0]{opacity:.45;cursor:not-allowed}.summary-grid[b-hgxbhz69b0]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.summary-grid article[b-hgxbhz69b0]{background:#fff;border:1px solid var(--archex-border-soft);border-top:4px solid var(--archex-ochre-strong);border-radius:var(--archex-radius-medium);padding:1.05rem;display:grid;gap:.25rem}.summary-grid article.attention[b-hgxbhz69b0]{border-top-color:var(--archex-warning)}.summary-grid span[b-hgxbhz69b0]{font-size:.75rem;text-transform:uppercase;font-weight:850;color:var(--archex-muted)}.summary-grid strong[b-hgxbhz69b0]{font-size:2rem}.summary-grid small[b-hgxbhz69b0]{color:var(--archex-muted)}.map-panel[b-hgxbhz69b0]{display:grid;gap:1rem}.map-toolbar[b-hgxbhz69b0],.section-heading[b-hgxbhz69b0],.selected-panel[b-hgxbhz69b0]{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.map-toolbar h2[b-hgxbhz69b0],.section-heading h2[b-hgxbhz69b0],.selected-panel h2[b-hgxbhz69b0]{margin:.2rem 0}.section-heading p[b-hgxbhz69b0],.selected-panel p[b-hgxbhz69b0]{margin:.2rem 0;color:var(--archex-muted)}.filters[b-hgxbhz69b0]{display:flex;gap:.65rem;align-items:end}.filters label[b-hgxbhz69b0]{display:grid;gap:.28rem;font-size:.7rem;font-weight:800;color:var(--archex-muted)}.filters select[b-hgxbhz69b0],.filters input[b-hgxbhz69b0]{border:1px solid var(--archex-border);border-radius:var(--archex-radius-small);padding:.68rem;background:#fff}.filters .search input[b-hgxbhz69b0]{min-width:250px}.map-workspace[b-hgxbhz69b0]{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,.75fr);gap:1rem;min-height:500px}.map-canvas[b-hgxbhz69b0]{position:relative;overflow:hidden;border-radius:var(--archex-radius-medium);border:1px solid var(--archex-border);background:var(--archex-panel);min-height:500px}.spatial-map[b-hgxbhz69b0]{position:absolute;inset:0;width:100%;height:100%;min-height:500px}.spatial-map .ol-viewport[b-hgxbhz69b0]{border-radius:var(--archex-radius-medium)}.spatial-map .ol-control button[b-hgxbhz69b0]{background:var(--archex-charcoal);color:#fff}.spatial-map .ol-control button:hover[b-hgxbhz69b0],.spatial-map .ol-control button:focus[b-hgxbhz69b0]{background:var(--archex-ochre-strong)}.spatial-map .ol-attribution[b-hgxbhz69b0]{font-size:.68rem}.map-load-error[b-hgxbhz69b0]{position:absolute;left:1rem;right:1rem;top:1rem;z-index:5;background:rgba(255,255,255,.96);border:1px solid var(--archex-warning);border-radius:var(--archex-radius-small);padding:.75rem 1rem;color:#8A5A00;font-size:.82rem;font-weight:700;box-shadow:var(--archex-shadow)}.map-popup[b-hgxbhz69b0]{display:grid;gap:.18rem;min-width:190px;max-width:280px;background:#fff;border:1px solid var(--archex-border-soft);border-radius:var(--archex-radius-small);padding:.75rem .85rem;color:var(--archex-text);box-shadow:var(--archex-shadow);font-size:.78rem}.map-popup strong[b-hgxbhz69b0]{font-size:.86rem}.map-popup span[b-hgxbhz69b0]{color:var(--archex-muted)}.map-popup a[b-hgxbhz69b0]{margin-top:.25rem;color:var(--archex-charcoal);font-weight:800;text-decoration:underline}.map-popup[hidden][b-hgxbhz69b0],.map-load-error[hidden][b-hgxbhz69b0]{display:none}.map-register[b-hgxbhz69b0]{border:1px solid var(--archex-border-soft);border-radius:var(--archex-radius-medium);overflow:auto;max-height:500px;background:var(--archex-canvas)}.register-heading[b-hgxbhz69b0]{padding:1rem;display:flex;justify-content:space-between;border-bottom:1px solid var(--archex-border-soft)}.register-heading span[b-hgxbhz69b0]{color:var(--archex-muted);font-size:.75rem}.project-entry[b-hgxbhz69b0]{width:100%;display:grid;grid-template-columns:auto 1fr;gap:.7rem;text-align:left;background:transparent;color:var(--archex-text);border-radius:0;border-bottom:1px solid var(--archex-border-soft);padding:.85rem}.project-entry.selected[b-hgxbhz69b0]{background:rgba(242, 108, 33, .10)}.project-entry>span:last-child[b-hgxbhz69b0]{display:grid;gap:.12rem}.project-entry small[b-hgxbhz69b0]{font-weight:700}.project-entry em[b-hgxbhz69b0]{font-style:normal;font-size:.72rem;color:var(--archex-muted)}.project-dot[b-hgxbhz69b0]{margin-top:.3rem}.selected-panel[b-hgxbhz69b0]{align-items:center}.selected-metrics[b-hgxbhz69b0]{display:flex;gap:1.2rem}.selected-metrics span[b-hgxbhz69b0]{display:grid;color:var(--archex-muted);font-size:.75rem}.selected-metrics strong[b-hgxbhz69b0]{font-size:1.25rem;color:var(--archex-text)}.workspace-grid[b-hgxbhz69b0]{display:grid;grid-template-columns:1.35fr .65fr;gap:1rem}.stage-pill[b-hgxbhz69b0]{background:rgba(249, 168, 37, .18);color:#8A5A00;border-radius:999px;padding:.35rem .65rem;font-size:.72rem;font-weight:850}.format-grid[b-hgxbhz69b0]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:1rem}.format-grid button[b-hgxbhz69b0]{background:var(--archex-canvas);color:var(--archex-charcoal);border:1px solid var(--archex-border-soft);text-align:left;display:grid;gap:.25rem}.format-grid span[b-hgxbhz69b0],.format-grid small[b-hgxbhz69b0]{font-weight:500;color:var(--archex-muted)}.format-grid small[b-hgxbhz69b0]{margin-top:.25rem;font-size:.68rem;text-transform:uppercase}.import-footer[b-hgxbhz69b0]{margin-top:1rem;border-top:1px solid var(--archex-border-soft);padding-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--archex-muted)}.layer-list[b-hgxbhz69b0]{display:grid;gap:.55rem;margin-top:1rem}.layer-list label[b-hgxbhz69b0]{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:center;border:1px solid var(--archex-border-soft);border-radius:var(--archex-radius-small);padding:.72rem}.layer-list label span[b-hgxbhz69b0]{display:grid}.layer-list small[b-hgxbhz69b0]{color:var(--archex-muted)}.layer-list em[b-hgxbhz69b0]{font-style:normal;font-size:.7rem;font-weight:800;color:var(--archex-muted)}.output-grid[b-hgxbhz69b0]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}.output-grid button[b-hgxbhz69b0]{text-align:left;background:var(--archex-canvas);color:var(--archex-charcoal);border:1px solid var(--archex-border-soft);display:grid;gap:.35rem}.output-grid button>span[b-hgxbhz69b0]{font-size:.7rem;color:var(--archex-muted)}.output-grid small[b-hgxbhz69b0]{font-weight:500;color:var(--archex-muted)}.loading[b-hgxbhz69b0]{padding:2rem;text-align:center;color:var(--archex-muted)}@media(max-width:1050px){.summary-grid[b-hgxbhz69b0],.output-grid[b-hgxbhz69b0]{grid-template-columns:repeat(2,minmax(0,1fr))}.spatial-hero[b-hgxbhz69b0],.map-toolbar[b-hgxbhz69b0],.selected-panel[b-hgxbhz69b0]{display:grid}.filters[b-hgxbhz69b0]{flex-wrap:wrap}.map-workspace[b-hgxbhz69b0],.workspace-grid[b-hgxbhz69b0]{grid-template-columns:1fr}.map-register[b-hgxbhz69b0]{max-height:320px}}@media(max-width:650px){.spatial-hub-page[b-hgxbhz69b0]{padding:.8rem}.summary-grid[b-hgxbhz69b0],.format-grid[b-hgxbhz69b0],.output-grid[b-hgxbhz69b0]{grid-template-columns:1fr}.filters[b-hgxbhz69b0]{display:grid;width:100%}.filters .search input[b-hgxbhz69b0]{min-width:0;width:100%}.hero-actions[b-hgxbhz69b0],.selected-actions[b-hgxbhz69b0],.selected-metrics[b-hgxbhz69b0],.import-footer[b-hgxbhz69b0]{flex-wrap:wrap}.map-canvas[b-hgxbhz69b0]{min-height:420px}}

/* ================================================================================================
   WHAT WE HOLD ON THIS PLACE  (21 September 2026)
   ------------------------------------------------------------------------------------------------
   The popup used to carry three lines and a link. It now carries the plans and reports that
   discuss the place, so it needs a scroll bound: one place can hold several, and a popup that
   grows past the map is worse than one that scrolls.
   ============================================================================================== */

.map-popup-works[b-hgxbhz69b0] {
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--color-divider);
    max-height: 230px;
    overflow-y: auto;
}

.map-popup-works-head[b-hgxbhz69b0] {
    margin: 0 0 7px;
    color: var(--color-gunmetal);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.map-popup-work[b-hgxbhz69b0] {
    display: grid;
    gap: 1px;
    padding: 7px 9px;
    margin-bottom: 6px;
    border-left: 3px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
}

/* The practice's own work is marked, because "what have we done here" is the question most often
   being asked of a map like this. */
.map-popup-work.is-ours[b-hgxbhz69b0] { border-left-color: var(--color-primary); }

.map-popup-work b[b-hgxbhz69b0] { font-size: .78rem; }
.map-popup-work span[b-hgxbhz69b0] { font-size: .74rem; line-height: 1.35; }
.map-popup-work em[b-hgxbhz69b0] { color: var(--color-gunmetal); font-size: .7rem; font-style: normal; }
.map-popup-work a[b-hgxbhz69b0] { margin-top: 3px; font-size: .74rem; font-weight: 800; }

.map-popup-nofile[b-hgxbhz69b0] { color: var(--color-gunmetal); font-size: .7rem; font-style: italic; }

/* ================================================================================================
   JOBS ON THE MAP  (22 September 2026)
   ------------------------------------------------------------------------------------------------
   The popup's contents are written by archex-spatial-map.js, so they carry no scope attribute:
   they are reached through ::deep from the popup element, which is in this component's markup.
   ============================================================================================== */

.map-popup[b-hgxbhz69b0]  .map-popup-exactness { font-weight: 700; color: var(--archex-text); }
.map-popup[b-hgxbhz69b0]  .map-popup-basis { font-style: normal; font-size: .72rem; line-height: 1.4; color: var(--archex-muted); }
.map-popup[b-hgxbhz69b0]  .map-popup-links { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .3rem; }
.map-popup[b-hgxbhz69b0]  .map-popup-links a { color: var(--archex-charcoal); font-weight: 800; text-decoration: underline; }

.job-placing[b-hgxbhz69b0] { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; padding: .6rem .8rem; border-left: 4px solid #1f5f8b; background: rgba(31, 95, 139, .07); border-radius: var(--archex-radius-small); font-size: .86rem; }
.job-placement[b-hgxbhz69b0] { font-size: .84rem; line-height: 1.45; max-width: 75ch; }
.job-links[b-hgxbhz69b0] { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .84rem; }
.job-links a[b-hgxbhz69b0] { color: var(--archex-charcoal); font-weight: 800; text-decoration: underline; }

.jobs-unplaced summary[b-hgxbhz69b0] { cursor: pointer; }
.jobs-unplaced summary span[b-hgxbhz69b0] { color: var(--archex-muted); font-size: .8rem; }
.jobs-unplaced ul[b-hgxbhz69b0] { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .5rem; max-height: 420px; overflow-y: auto; }
.jobs-unplaced li[b-hgxbhz69b0] { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .55rem .2rem; border-top: 1px solid var(--archex-border-soft); font-size: .84rem; }
.jobs-unplaced li > span[b-hgxbhz69b0] { min-width: 0; overflow-wrap: anywhere; }
.jobs-unplaced li em[b-hgxbhz69b0] { display: block; font-style: normal; font-size: .74rem; color: var(--archex-muted); line-height: 1.4; }
@media (max-width: 650px) { .jobs-unplaced li[b-hgxbhz69b0] { display: grid; } }
/* /Components/Pages/SystemInformation.razor.rz.scp.css */
.system-page[b-9ejeq4u98i] { padding: 2rem; max-width: 1200px; margin: 0 auto; color: #14241f; }
.system-hero[b-9ejeq4u98i] { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-end; margin-bottom: 1.5rem; }
.system-hero h1[b-9ejeq4u98i] { margin: .2rem 0; font-size: var(--archex-text-2xl); }
.system-hero p[b-9ejeq4u98i] { margin: 0; color: var(--color-gunmetal); }
.eyebrow[b-9ejeq4u98i] { margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .14em; color: #867045; }
.version-badge[b-9ejeq4u98i] { padding: .65rem 1rem; border-radius: 999px; background: #14241f; color: white; font-weight: 800; white-space: nowrap; }
.status-card[b-9ejeq4u98i], .system-card[b-9ejeq4u98i] { border: 1px solid var(--color-divider); border-radius:var(--archex-radius-large); background: white; box-shadow:var(--archex-shadow-hover); }
.status-card[b-9ejeq4u98i] { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; margin-bottom: 1rem; }
.status-card.current[b-9ejeq4u98i] { border-left: 6px solid #3e8068; }
.status-card.attention[b-9ejeq4u98i] { border-left: 6px solid #b4773b; }
.status-icon[b-9ejeq4u98i] { width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; background: #edf3f0; font-size: 1.35rem; font-weight: 900; }
.status-card h2[b-9ejeq4u98i] { margin: .2rem 0; }
.status-card p:last-child[b-9ejeq4u98i] { margin: 0; color: var(--color-gunmetal); }
.information-grid[b-9ejeq4u98i] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.system-card[b-9ejeq4u98i] { padding: 1.2rem; }
.system-card span[b-9ejeq4u98i] { display: block; color: var(--color-gunmetal); font-size: .8rem; font-weight: 700; margin-bottom: .35rem; }
.system-card strong[b-9ejeq4u98i] { display: block; overflow-wrap: anywhere; }
.update-card[b-9ejeq4u98i] { margin-top: 1rem; }
.update-card h2[b-9ejeq4u98i] { margin: .3rem 0; }
.update-card code[b-9ejeq4u98i] { display: inline-block; margin-top: .5rem; padding: .7rem 1rem; border-radius:var(--archex-radius-small); background: #14241f; color: white; font-weight: 700; }
@media (max-width: 800px) { .system-page[b-9ejeq4u98i] { padding: 1rem; } .system-hero[b-9ejeq4u98i] { align-items: flex-start; flex-direction: column; } .information-grid[b-9ejeq4u98i] { grid-template-columns: 1fr; } }
/* /Components/Pages/Tasks.razor.rz.scp.css */
/* Tokens only. */

/* ---- adding one ------------------------------------------------------------------------------- */

.new-task[b-aa5j5ztbrn] { margin-bottom: var(--space-4, 24px); }

.new-grid[b-aa5j5ztbrn] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: var(--space-3, 16px);
}

.field[b-aa5j5ztbrn] { display: grid; gap: 6px; min-width: 0; }
.field-wide[b-aa5j5ztbrn] { grid-column: 1 / -1; }

.field > span[b-aa5j5ztbrn] {
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.field > span em[b-aa5j5ztbrn] {
    font-style: normal;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    opacity: .7;
}

.field input[b-aa5j5ztbrn],
.field select[b-aa5j5ztbrn],
.field textarea[b-aa5j5ztbrn] {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font: inherit;
}

.field textarea[b-aa5j5ztbrn] { min-height: 62px; resize: vertical; }

.field input:focus-visible[b-aa5j5ztbrn],
.field select:focus-visible[b-aa5j5ztbrn],
.field textarea:focus-visible[b-aa5j5ztbrn] {
    border-color: var(--color-primary);
    outline: 3px solid color-mix(in srgb, var(--color-primary) 22%, transparent);
    outline-offset: 0;
}

.new-actions[b-aa5j5ztbrn] { margin-top: var(--space-4, 24px); }

/* ---- which ones -------------------------------------------------------------------------------- */

/* The filter chips moved to the shared sheet as .ax-chips/.ax-chip/.ax-chip-count: this page and
   Library held byte-for-byte identical copies, kept apart only by scoped CSS. */

/* ---- the list ---------------------------------------------------------------------------------- */

.task-list[b-aa5j5ztbrn] { padding: 8px; }

.task[b-aa5j5ztbrn] {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 14px 12px;
    border-radius:var(--archex-radius-medium);
}

.task + .task[b-aa5j5ztbrn] { border-top: 1px solid var(--color-divider); border-radius: 0; }
.task:hover[b-aa5j5ztbrn] { background: var(--color-panel); }

/* A real target, and round — a circle reads as "tick me" where a square reads as a checkbox that
   might mean anything. */
.task-tick[b-aa5j5ztbrn] {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    margin-top: 2px;
    border: 2px solid var(--color-divider);
    border-radius: 50%;
    background: var(--color-surface);
    color: var(--color-surface);
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.task-tick:hover[b-aa5j5ztbrn] { border-color: var(--color-primary); }

.is-done .task-tick[b-aa5j5ztbrn] {
    border-color: var(--color-success);
    background: var(--color-success);
}

.task-copy[b-aa5j5ztbrn] { display: grid; gap: 5px; min-width: 0; }
.task-copy strong[b-aa5j5ztbrn] { font-size: var(--archex-text-base, 15px); font-weight: 700; line-height: 1.35; }

/* Done work stays legible rather than being struck through into illegibility — it is still the
   record of what happened. */
.is-done .task-copy strong[b-aa5j5ztbrn] { color: var(--color-gunmetal); text-decoration: line-through; text-decoration-thickness: 1px; }

.task-meta[b-aa5j5ztbrn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
}

.chip[b-aa5j5ztbrn] {
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--color-panel);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 700;
}

.chip-high[b-aa5j5ztbrn] { background: color-mix(in srgb, var(--color-warning) 26%, transparent); color: #7a4d00; }
.chip-overdue[b-aa5j5ztbrn] { background: color-mix(in srgb, var(--color-danger) 16%, transparent); color: var(--color-danger); }

.task-who[b-aa5j5ztbrn] { font-weight: 700; }

.task-project[b-aa5j5ztbrn] {
    padding: 2px 9px;
    border-radius:var(--archex-radius-small);
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
    color: var(--color-primary-dark);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 700;
}

.task-notes[b-aa5j5ztbrn] {
    margin: 2px 0 0;
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    line-height: 1.5;
    white-space: pre-wrap;
}

/* ---- nothing here ------------------------------------------------------------------------------ */

.task-empty[b-aa5j5ztbrn] { text-align: center; padding: 42px 20px; }
.task-empty p[b-aa5j5ztbrn] { margin: 0 0 6px; }
.task-empty-copy[b-aa5j5ztbrn] { color: var(--color-gunmetal); font-size: var(--archex-text-sm, 13.5px); }

.ax-visually-hidden[b-aa5j5ztbrn] {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Said once, directly under the action that caused it. */
.task-added[b-aa5j5ztbrn] {
    margin: 0 0 var(--space-2);
    padding: 10px 14px;
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, var(--color-divider));
    border-radius: var(--radius-component);
    background: color-mix(in srgb, var(--color-primary) 7%, white);
    color: var(--color-charcoal);
    font-size: var(--archex-text-sm);
}
/* /Components/Pages/Today.razor.rz.scp.css */
/* ============================================================================
   TODAY (23 September 2026, rebuilt).

   Adam Deane, looking at the page this replaces: "There is 2 new job buttons,
   The other buttons are not clear ... The good afternoon adam is huge ... The
   date is on twice, the weather is down and not great ... When you scroll down
   the top menu doesnt follow you ... What i want is a sexy, proffesional, new
   age, easy as fuck landing page. Do whatever you would do if you had all the
   freedom in the work to design my landing page only using the colours."

   The shape, top to bottom:

     1. THE BAND    dark charcoal, one ochre edge. Who you are, what the day
                    holds as one line of links, and the weather. No date: the
                    top bar carries the clock, and it was being said twice.
     2. THE ACTION  the single next thing, in the brand orange, full width.
     3. THE DOORS   the approved quick actions, each with a label, a sentence
                    and a count. No New Job: the top bar has it on every page.
     4. THE DETAIL  jobs, the day's work, what needs attention, then activity.

   Every colour here is a token from archex-design-system.css - ochre #F26C21,
   copper #D85A14, sandstone #D9A26B, charcoal #1F1F1F, cream #F7F4EE. Nothing
   new was invented, and no photograph or texture is used: the contrast does the
   work. The old page's contour wash is gone, which he did not care about.
   ========================================================================== */

.activity-page[b-job09jmvc7] {
    position: relative;
    box-sizing: border-box;
    color: var(--color-charcoal);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ---- 1. The band ---------------------------------------------------------- */

/* THE PRACTICE, DRAWN.
   The band is a live map of every job ArchEx holds a place for - 85 of them, from
   Breakwater to Bonshaw - with the greeting and the record over it. It is the one
   thing on this page that no other business's dashboard could show. */
.ax-hero[b-job09jmvc7] {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 340px;
    border-radius: 20px;
    background: #14120F;
    /* The band carries its own ink, which everything inside inherits - including the heading,
       through the .ax-on-dark escape in archex-components.css. Without this the page-wide
       heading rule paints it charcoal on charcoal and it disappears. */
    color: #F4F1EC;
    box-shadow: 0 22px 48px -30px rgba(31, 31, 31, .75);
}

.ax-hero-map[b-job09jmvc7] { position: absolute; inset: 0; }

/* The tiles get their own canvas (layer className in archex-today-map.js) so this
   treatment lands on the map alone: the job dots keep their ochre and sandstone,
   which is the whole point of drawing them. */
.ax-hero-map[b-job09jmvc7]  .ax-todaymap-tiles {
    filter: grayscale(1) brightness(.62) contrast(1.12) sepia(.5) hue-rotate(-10deg) saturate(1.15);
}

/* Enough veil on the left to read type over, clearing to the east so the work shows. */
.ax-hero-veil[b-job09jmvc7] {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(105deg, rgba(20, 18, 15, .94) 0%, rgba(20, 18, 15, .82) 34%, rgba(20, 18, 15, .30) 66%, rgba(20, 18, 15, .62) 100%),
        linear-gradient(0deg, rgba(20, 18, 15, .78) 0%, rgba(20, 18, 15, 0) 42%);
}

.ax-hero-body[b-job09jmvc7] {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 28px 30px 0;
}

/* The record, in four numbers, sitting on the bottom edge of the map. */
.ax-hero-stats[b-job09jmvc7] {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    padding: 0 30px 24px;
}

.ax-hero-stats[b-job09jmvc7]  .ax-hero-stat,
.ax-hero-stat[b-job09jmvc7] { text-decoration: none; display: flex; flex-direction: column; gap: 2px; }
.ax-hero-stat strong[b-job09jmvc7] { font-family: var(--archex-font-heading, inherit); font-size: 1.45rem; font-weight: 700; color: #F4F1EC; line-height: 1; }
.ax-hero-stat span[b-job09jmvc7] { font-size: .64rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; color: #8E8880; }
.ax-hero-stat:hover strong[b-job09jmvc7] { color: var(--color-primary); }
.ax-hero-stat:hover span[b-job09jmvc7] { color: #B9B3AC; }

.ax-hero-sub[b-job09jmvc7] { margin: 4px 0 0; font-size: .86rem; color: #B9B3AC; max-width: 46ch; line-height: 1.5; }

.ax-hero-copy[b-job09jmvc7] { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

.ax-hero-eyebrow[b-job09jmvc7] {
    margin: 0;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-primary-light);
}

/* "The good afternoon adam is huge": 30px, not 44. It greets; it does not shout. */
.ax-hero-title[b-job09jmvc7] {
    margin: 0;
    font-family: var(--archex-font-heading, inherit);
    /* !important because .ax-page h1 in archex-components.css carries it: the page-wide
       heading size is written for the cream canvas, and this heading is not on it. */
    font-size: 1.9rem !important;
    line-height: 1.1;
    font-weight: 700;
    color: #F4F1EC;
}

.ax-hero-line[b-job09jmvc7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin: 2px 0 0;
    font-size: .88rem;
    color: #B9B3AC;
}

.ax-hero-line a[b-job09jmvc7] {
    color: #EDEAE5;
    text-decoration: none;
    border-bottom: 1px solid rgba(242, 108, 33, .55);
    padding-bottom: 1px;
}

.ax-hero-line a:hover[b-job09jmvc7],
.ax-hero-line a:focus-visible[b-job09jmvc7] { color: #fff; border-bottom-color: var(--color-primary); }

.ax-hero-dot[b-job09jmvc7] { width: 3px; height: 3px; border-radius: 50%; background: #6E6862; }

.ax-hero-side[b-job09jmvc7] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* The self-running column reads as ArchEx talking, not as a demand: quieter card,
   counts in sandstone rather than the action colour. */
.ax-selfwork[b-job09jmvc7] { background: var(--color-panel); border-color: transparent; }
.ax-selfwork[b-job09jmvc7]  .ax-issue-count { color: var(--color-sandstone); }

/* The protected weather panel, in its new place: the same live reading, at a
   glance, without scrolling past the day's work to find it. */
.ax-hero-weather[b-job09jmvc7] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
}

.ax-hero-weather-icon[b-job09jmvc7] { display: grid; place-items: center; }
.ax-hero-weather-icon svg[b-job09jmvc7] { width: 30px; height: 30px; stroke: var(--color-sandstone); fill: none; stroke-width: 1.6; stroke-linecap: round; }
.ax-hero-weather-copy[b-job09jmvc7] { display: flex; flex-direction: column; gap: 2px; }
.ax-hero-weather-copy strong[b-job09jmvc7] { font-family: var(--archex-font-heading, inherit); font-size: 1.5rem; font-weight: 700; color: #F4F1EC; line-height: 1; }
.ax-hero-weather-copy small[b-job09jmvc7] { font-size: .72rem; color: #B9B3AC; }
.ax-hero-weather-more[b-job09jmvc7] { color: #8E8880 !important; }
.ax-hero-weather-state[b-job09jmvc7] { font-size: .78rem; color: #B9B3AC; }

.ax-hero-role[b-job09jmvc7] {
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #C9C3BC;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    padding: 7px 12px;
}

/* ---- 2. The one next action ----------------------------------------------- */

.ax-next[b-job09jmvc7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 24px;
    border-radius: 16px;
    color: #fff;
    text-decoration: none;
    background: linear-gradient(100deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    box-shadow: 0 14px 30px -20px rgba(216, 90, 20, .9);
    transition: transform .14s ease, box-shadow .14s ease;
}

.ax-next:hover[b-job09jmvc7],
.ax-next:focus-visible[b-job09jmvc7] { transform: translateY(-2px); box-shadow: 0 20px 36px -20px rgba(216, 90, 20, .95); color: #fff; }
.ax-next-copy[b-job09jmvc7] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ax-next-copy strong[b-job09jmvc7] { font-family: var(--archex-font-heading, inherit); font-size: 1.05rem; font-weight: 700; }
.ax-next-copy small[b-job09jmvc7] { font-size: .82rem; opacity: .92; }
.ax-next-go[b-job09jmvc7] { font-size: 1.4rem; line-height: 1; }

/* ---- 3. The doors --------------------------------------------------------- */

/* FILLS THE ROW, WHATEVER THE ROLE HAS (23 September 2026). A grid of auto-fit
   tracks lays out six tiles in seven cells and leaves a hole at the end - the
   exact fault the page before this one had. An administrator sees six doors, a
   project manager five, field staff three: flex-wrap with a growing basis fills
   the row for every one of them, and wraps rather than shrinking below legible. */
.ax-doors[b-job09jmvc7] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.ax-doors[b-job09jmvc7]  .ax-door,
.ax-doors[b-job09jmvc7]  .ax-door:link,
.ax-doors[b-job09jmvc7]  .ax-door:visited {
    flex: 1 1 200px;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    color: var(--color-charcoal);
    text-decoration: none;
    transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.ax-doors[b-job09jmvc7]  .ax-door:hover,
.ax-doors[b-job09jmvc7]  .ax-door:focus-visible,
.ax-doors[b-job09jmvc7]  .ax-door.active {
    transform: translateY(-2px);
    border-color: var(--color-sandstone);
    box-shadow: 0 14px 26px -20px rgba(31, 31, 31, .55);
}

.ax-doors[b-job09jmvc7]  .ax-door-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 12px;
    background: var(--color-panel);
}

.ax-doors[b-job09jmvc7]  .ax-door-icon svg { width: 21px; height: 21px; stroke: var(--color-primary-dark); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* The door with something waiting behind it wears the brand colour, so "what is
   waiting on me" is answered before a word is read. */
.ax-doors[b-job09jmvc7]  .ax-door.is-hot .ax-door-icon { background: rgba(242, 108, 33, .12); }

.ax-doors[b-job09jmvc7]  .ax-door-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ax-doors[b-job09jmvc7]  .ax-door-label { font-family: var(--archex-font-heading, inherit); font-size: .88rem; font-weight: 700; }
.ax-doors[b-job09jmvc7]  .ax-door-sub { font-size: .74rem; color: var(--color-gunmetal); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ax-doors[b-job09jmvc7]  .ax-door-count { margin-left: auto; font-family: var(--archex-font-heading, inherit); font-size: .95rem; font-weight: 700; color: var(--color-primary-dark); }

/* ---- 4. The detail -------------------------------------------------------- */

.ax-today-clear[b-job09jmvc7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 16px 18px;
    border: 1px solid var(--color-divider);
    border-radius: 14px;
    background: var(--color-surface);
    color: var(--color-gunmetal);
    font-size: .88rem;
}

.activity-layout[b-job09jmvc7] {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

@media (max-width: 720px) {
    .ax-hero[b-job09jmvc7] { padding: 20px; }
    .ax-hero-title[b-job09jmvc7] { font-size: 1.5rem; }
    .ax-hero-side[b-job09jmvc7] { width: 100%; justify-content: space-between; }
    .ax-next[b-job09jmvc7] { padding: 16px 18px; }
}

/* ---- 5. Carried over: the composer, the feed and the company post ----------
   These are unchanged from the page this replaces - the parts Adam did not ask
   about and which work. Only rules the markup still uses were kept. */

.content-stack[b-job09jmvc7] { display: flex; min-width: 0; flex-direction: column; gap: 14px; }
.create-post-panel[b-job09jmvc7] {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 13px;
    padding: 15px 16px;
    border-color: color-mix(in srgb, var(--color-divider) 88%, var(--color-sandstone));
    box-shadow:var(--archex-shadow);
}

.post-avatar[b-job09jmvc7], .tag-avatar[b-job09jmvc7] {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--color-primary-dark);
    color: var(--color-surface);
    font-family: var(--font-heading);
    font-weight: 700;
}
.tag-avatar[b-job09jmvc7] { width: 27px; height: 27px; font-size: .65rem; }
.post-composer[b-job09jmvc7] { min-width: 0; }
.post-composer textarea[b-job09jmvc7] {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-height: 58px;
    padding: 8px 3px 10px;
    resize: vertical;
    border: 0;
    border-bottom: 1px solid var(--color-divider);
    outline: 0;
    background: transparent;
    color: var(--color-charcoal);
    font-family: var(--font-body);
    font-size: .94rem;
    line-height: 1.48;
}
.post-composer textarea[b-job09jmvc7]::placeholder { color: color-mix(in srgb, var(--color-gunmetal) 72%, transparent); }
.post-composer textarea:focus[b-job09jmvc7] { border-bottom-color: color-mix(in srgb, var(--color-primary) 55%, var(--color-divider)); }
.post-toolbar[b-job09jmvc7] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 10px; }
.post-tool[b-job09jmvc7], .post-tools select[b-job09jmvc7], .publish-post[b-job09jmvc7] {
    min-height: 34px;
    border-radius:var(--archex-radius-small);
    font-family: var(--font-body);
    font-size: .74rem;
    font-weight: 700;
}
.publish-post[b-job09jmvc7] { padding: 0 16px; border: 1px solid var(--color-primary-dark); background: var(--color-primary); color: var(--color-surface); cursor: pointer; box-shadow:var(--archex-shadow); }
.publish-post:hover:not(:disabled)[b-job09jmvc7] { background: var(--color-primary-dark); }
.publish-post:disabled[b-job09jmvc7] { opacity: .42; cursor: not-allowed; box-shadow: none; }
.selected-tags button[b-job09jmvc7], .feed-tags span[b-job09jmvc7] { border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-divider)); border-radius: 999px; background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface)); color: var(--color-primary-dark); font-size: .67rem; }
.post-status[b-job09jmvc7] { margin-top: 8px; color: var(--color-gunmetal); font-size: .7rem; }

.panel-heading[b-job09jmvc7] { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding-bottom: var(--space-3); border-bottom: 1px solid var(--color-divider); }
.panel-heading p[b-job09jmvc7] { margin: 0 0 3px; color: var(--color-primary-dark); font-family: var(--font-body); font-size: .66rem; font-weight: 700; letter-spacing: .13em; }
.panel-heading h1[b-job09jmvc7], .panel-heading h2[b-job09jmvc7] { margin: 0; color: var(--color-charcoal); font-family: var(--font-heading); font-weight: 700; letter-spacing: -.025em; }
.panel-heading h1[b-job09jmvc7] { font-size: 1.35rem; } .activity-feed[b-job09jmvc7] { display: flex; flex-direction: column; }
.feed-item[b-job09jmvc7] { position: relative; display: grid; grid-template-columns: 82px 10px minmax(0, 1fr); gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--color-divider); }
.feed-item:last-child[b-job09jmvc7] { border-bottom: 0; }
.feed-item time[b-job09jmvc7] { padding-top: 2px; color: var(--color-gunmetal); font-family: var(--font-body); font-size: .7rem; font-variant-numeric: tabular-nums; }
.feed-marker[b-job09jmvc7] { width: 7px; height: 7px; margin-top: 6px; border-radius: 50%; background: var(--color-primary); }
.feed-item.requires-attention .feed-marker[b-job09jmvc7] { box-shadow: 0 0 0 4px rgba(242, 108, 33, .14); }
.feed-copy h2[b-job09jmvc7] { margin: 0; color: var(--color-charcoal); font-family: var(--font-heading); font-size: .9rem; font-weight: 650; }
.feed-copy p[b-job09jmvc7] { margin: 5px 0 0; color: var(--color-gunmetal); font-family: var(--font-body); font-size: .8rem; line-height: 1.5; }
.feed-tags[b-job09jmvc7] { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.feed-tags span[b-job09jmvc7] { padding: 3px 7px; }
.feed-meta[b-job09jmvc7] { display: flex; flex-wrap: wrap; gap: 5px 14px; margin-top: 7px; color: var(--color-gunmetal); font-family: var(--font-body); font-size: .66rem; }
    .create-post-panel[b-job09jmvc7] { grid-template-columns: 34px minmax(0, 1fr); padding: 12px; }
        .post-toolbar[b-job09jmvc7] { align-items: stretch; flex-direction: column; }
        .feed-panel[b-job09jmvc7] { padding: 16px; }
        .feed-item[b-job09jmvc7] { grid-template-columns: 68px 8px minmax(0, 1fr); gap: 9px; padding: 14px 0; }
.create-post-panel[b-job09jmvc7] { grid-template-columns: 46px minmax(0,1fr); padding:17px 18px; }
.post-monogram[b-job09jmvc7] { display:grid; place-items:center; width:46px; height:46px; border-radius:14px 14px 14px 4px; background:linear-gradient(145deg,var(--color-primary-light),var(--color-primary-dark)); box-shadow:var(--archex-shadow); color:#fff; font-family:var(--font-heading); font-weight:850; font-size:.86rem; letter-spacing:-.04em; }
.post-monogram span[b-job09jmvc7]::first-letter { letter-spacing:-.08em; }
.post-hint[b-job09jmvc7] { color:var(--color-gunmetal); font-size:.68rem; }
.mention-suggestions[b-job09jmvc7] { display:grid; position:absolute; z-index:15; width:min(390px,calc(100% - 72px)); max-height:230px; overflow:auto; margin-top:4px; padding:6px; border:1px solid var(--color-divider); border-radius:var(--archex-radius-medium); background:var(--color-surface); box-shadow:var(--archex-shadow-hover); }
.post-composer[b-job09jmvc7] { position:relative; }
.mention-suggestions button[b-job09jmvc7] { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:9px; width:100%; padding:7px 8px; border:0; border-radius:var(--archex-radius-small); background:transparent; color:var(--color-charcoal); font:inherit; text-align:left; cursor:pointer; }
.mention-suggestions button:hover[b-job09jmvc7] { background:var(--color-panel); }
.mention-suggestions button > span:nth-child(2)[b-job09jmvc7] { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
.mention-suggestions small[b-job09jmvc7] { color:var(--color-primary-dark); font-size:.66rem; }

/* Company-wide staff posts use a human post layout rather than a system-event layout. */
.feed-item.company-post[b-job09jmvc7] {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    padding: 18px 0;
}
.post-author-avatar[b-job09jmvc7] {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-divider));
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-primary-light) 16%, var(--color-surface));
    color: var(--color-primary-dark);
    font-family: var(--font-heading);
    font-size: .72rem;
    font-weight: 750;
}
.company-post-body[b-job09jmvc7] { min-width: 0; }
.company-post-heading[b-job09jmvc7] {
    display: flex;
    align-items: baseline;
    gap: 9px;
    flex-wrap: wrap;
}
.company-post-heading strong[b-job09jmvc7] {
    color: var(--color-charcoal);
    font-family: var(--font-heading);
    font-size: .9rem;
    font-weight: 700;
}
.company-post-heading time[b-job09jmvc7] {
    padding: 0;
    color: var(--color-gunmetal);
    font-size: .68rem;
}
.company-post-message[b-job09jmvc7] {
    margin: 7px 0 0;
    color: var(--color-charcoal);
    font-family: var(--font-body);
    font-size: .84rem;
    line-height: 1.55;
    white-space: pre-wrap;
}
.company-post-meta[b-job09jmvc7] {
    margin-top: 8px;
    color: var(--color-gunmetal);
    font-family: var(--font-body);
    font-size: .66rem;
}

@media (max-width: 700px) {
    .feed-item.company-post[b-job09jmvc7] { grid-template-columns: 36px minmax(0, 1fr); gap: 10px; }
}

@media (max-width: 900px) {
    .ax-hero[b-job09jmvc7] { min-height: 300px; }
    .ax-hero-body[b-job09jmvc7] { padding: 22px 20px 0; }
    .ax-hero-stats[b-job09jmvc7] { gap: 18px; padding: 0 20px 18px; }
    .ax-hero-stat strong[b-job09jmvc7] { font-size: 1.2rem; }
}
/* /Components/Pages/WorkflowStatus.razor.rz.scp.css */
.workflow-status-page[b-h81wxegp6i] { display: grid; gap: 1.25rem; padding: 1.5rem; }
.workflow-status-hero[b-h81wxegp6i], .priority-panel[b-h81wxegp6i], .toolbar[b-h81wxegp6i], .workflow-card[b-h81wxegp6i], 
.workflow-status-hero[b-h81wxegp6i] { display: flex; justify-content: space-between; gap: 1.5rem; padding: 1.5rem; }
.eyebrow[b-h81wxegp6i], .section-kicker[b-h81wxegp6i], .project-type[b-h81wxegp6i] { margin: 0 0 .35rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .68; }
h1[b-h81wxegp6i], h2[b-h81wxegp6i], p[b-h81wxegp6i] { margin-top: 0; }
.intro[b-h81wxegp6i] { max-width: 760px; margin-bottom: 0; opacity: .76; }
.hero-actions[b-h81wxegp6i], .card-actions[b-h81wxegp6i] { display: flex; gap: .65rem; flex-wrap: wrap; align-items: flex-start; }
button[b-h81wxegp6i] { border: 0; border-radius:var(--archex-radius-small); padding: .72rem 1rem; font-weight: 700; cursor: pointer; background: var(--color-primary); color: #fff; }
button.secondary[b-h81wxegp6i], button.quiet[b-h81wxegp6i], .clear-button[b-h81wxegp6i] { background: var(--color-panel); color: var(--color-charcoal); }
.summary-grid[b-h81wxegp6i] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; }
.summary-card[b-h81wxegp6i] { min-height: 112px; display: grid; text-align: left; align-content: start; gap: .2rem; background: #fff; color: inherit; border: 1px solid var(--color-divider); }
.summary-card strong[b-h81wxegp6i] { font-size: 1.85rem; }
.summary-card small[b-h81wxegp6i] { opacity: .67; }
.summary-card.selected[b-h81wxegp6i] { outline: 3px solid color-mix(in srgb, var(--color-primary) 18%, transparent); border-color: var(--color-primary); }
.summary-card.attention strong[b-h81wxegp6i] { color: #a3452f; }
.summary-card.review strong[b-h81wxegp6i] { color: #775d18; }
.summary-card.complete strong[b-h81wxegp6i], .summary-card.ready strong[b-h81wxegp6i] { color: #256445; }
.priority-panel[b-h81wxegp6i] { padding: 1.25rem 1.5rem; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.priority-panel h2[b-h81wxegp6i] { margin-bottom: .3rem; }
.priority-panel p[b-h81wxegp6i] { margin-bottom: 0; opacity: .75; }
.toolbar[b-h81wxegp6i] { display: grid; grid-template-columns: minmax(260px, 1fr) 220px auto; gap: .9rem; padding: 1rem; align-items: end; }
.toolbar label[b-h81wxegp6i] { display: grid; gap: .35rem; font-size: .8rem; font-weight: 750; }
.toolbar input[b-h81wxegp6i], .toolbar select[b-h81wxegp6i] { width: 100%; padding: .72rem .78rem; border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); background: #fff; }
.workflow-list[b-h81wxegp6i] { display: grid; gap: 1rem; }
.workflow-card[b-h81wxegp6i] { padding: 1.25rem; display: grid; gap: 1rem; }
.card-heading[b-h81wxegp6i], .workflow-footer[b-h81wxegp6i], .progress-heading[b-h81wxegp6i] { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.card-heading h2[b-h81wxegp6i] { margin-bottom: .25rem; }
.card-heading p[b-h81wxegp6i] { margin-bottom: 0; opacity: .7; }
.status-pill[b-h81wxegp6i] { white-space: nowrap; border-radius: 999px; padding: .38rem .68rem; font-size: .75rem; font-weight: 800; background: #e9efec; }
.status-pill.review[b-h81wxegp6i], .status-pill.reporting[b-h81wxegp6i] { background: #f5edcf; }
.status-pill.complete[b-h81wxegp6i] { background: #dcefe5; }
.status-pill.hold[b-h81wxegp6i] { background: #ececec; }
.progress-block[b-h81wxegp6i] { display: grid; gap: .45rem; }
.progress-heading[b-h81wxegp6i] { font-size: .84rem; }
.progress-track[b-h81wxegp6i] { height: 9px; border-radius: 999px; background: #e7eae8; overflow: hidden; }
.progress-track span[b-h81wxegp6i] { display: block; height: 100%; background: #2f6a58; border-radius: inherit; }
.readiness-grid[b-h81wxegp6i] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.readiness-item[b-h81wxegp6i] { min-height: 92px; border: 1px solid var(--color-divider); border-radius:var(--archex-radius-small); padding: .8rem; display: grid; align-content: start; gap: .2rem; }
.readiness-item span[b-h81wxegp6i] { font-size: .76rem; font-weight: 760; opacity: .68; }
.readiness-item strong[b-h81wxegp6i] { font-size: 1.05rem; }
.readiness-item small[b-h81wxegp6i] { opacity: .65; }
.readiness-item.ready[b-h81wxegp6i] { background: var(--color-panel); }
.readiness-item.warning[b-h81wxegp6i] { background: #fbf6e7; }
.readiness-item.missing[b-h81wxegp6i] { background: var(--color-primary-light); }
.workflow-footer[b-h81wxegp6i] { border-top: 1px solid var(--color-divider); padding-top: 1rem; align-items: center; }
.workflow-footer > div:first-child[b-h81wxegp6i] { display: grid; gap: .22rem; }
.workflow-footer span[b-h81wxegp6i] { font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; opacity: .62; }


@media (max-width: 1100px) { .summary-grid[b-h81wxegp6i], .readiness-grid[b-h81wxegp6i] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
    .workflow-status-page[b-h81wxegp6i] { padding: .85rem; }
    .workflow-status-hero[b-h81wxegp6i], .priority-panel[b-h81wxegp6i], .card-heading[b-h81wxegp6i], .workflow-footer[b-h81wxegp6i] { flex-direction: column; }
    .toolbar[b-h81wxegp6i] { grid-template-columns: 1fr; }
    .summary-grid[b-h81wxegp6i], .readiness-grid[b-h81wxegp6i] { grid-template-columns: 1fr; }
    .hero-actions[b-h81wxegp6i], .card-actions[b-h81wxegp6i] { width: 100%; }
    .hero-actions button[b-h81wxegp6i], .card-actions button[b-h81wxegp6i] { flex: 1 1 auto; }
}
/* /Components/Projects/JobRecordCard.razor.rz.scp.css */
/* The job's own record and its compliance checklist (22 September 2026). */
.ax-jobrecord[b-qxzk11hsyb] { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 14px; margin-top: 18px; }
.ax-jobrecord-card[b-qxzk11hsyb] { min-width: 0; border: 1px solid #ddd; border-radius: var(--archex-radius-small); background: #fff; box-shadow: var(--archex-shadow); padding: 15px; }
.ax-jobrecord-card header[b-qxzk11hsyb] { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin-bottom: 12px; }
.ax-jobrecord-card header h2[b-qxzk11hsyb] { margin: 0; font-family: var(--font-heading); font-size: .79rem; letter-spacing: .01em; text-transform: uppercase; }
.ax-jobrecord-card header small[b-qxzk11hsyb] { color: var(--archex-muted, #666); font-size: .74rem; overflow-wrap: anywhere; }
.ax-jobrecord-quiet[b-qxzk11hsyb] { margin: 0; color: var(--archex-muted, #666); font-size: .84rem; }

.ax-jobrecord-grid[b-qxzk11hsyb] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ax-jobrecord-grid h3[b-qxzk11hsyb] { margin: 0 0 6px; font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--archex-muted, #666); }
.ax-jobrecord-grid dl[b-qxzk11hsyb] { margin: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 10px; font-size: .82rem; }
.ax-jobrecord-grid dt[b-qxzk11hsyb] { color: var(--archex-muted, #666); }
.ax-jobrecord-grid dd[b-qxzk11hsyb] { margin: 0; overflow-wrap: anywhere; }
.ax-jobrecord-grid dd span[title][b-qxzk11hsyb] { cursor: help; }

.ax-jobrecord-checklist[b-qxzk11hsyb] { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ax-jobrecord-checklist li[b-qxzk11hsyb] { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 6px; font-size: .82rem; }
.ax-jobrecord-checklist li > span:last-child[b-qxzk11hsyb] { display: grid; gap: 1px; min-width: 0; }
.ax-jobrecord-checklist small[b-qxzk11hsyb] { color: var(--archex-muted, #666); font-size: .76rem; line-height: 1.4; overflow-wrap: anywhere; }
.ax-jobrecord-checklist small a[b-qxzk11hsyb] { margin-left: 4px; font-weight: 700; }
.ax-jobrecord-mark[b-qxzk11hsyb] { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; font-size: .78rem; font-weight: 900; background: #e6e6e6; color: #555; }
.ax-jobrecord-checklist li.is-done .ax-jobrecord-mark[b-qxzk11hsyb] { background: #4b9d45; color: #fff; }
.ax-jobrecord-checklist li.is-partly .ax-jobrecord-mark[b-qxzk11hsyb] { background: #f2b33d; color: #222; }

@media (max-width: 1050px) {
    .ax-jobrecord[b-qxzk11hsyb] { grid-template-columns: minmax(0, 1fr); }
    .ax-jobrecord-grid[b-qxzk11hsyb] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/Projects/ProjectDocumentsCard.razor.rz.scp.css */
.documents-panel[b-b9jkttgvse] {
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    box-shadow:var(--archex-shadow);
    padding: 24px;
    margin-top: 20px;
}

.documents-toolbar[b-b9jkttgvse] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.documents-toolbar select[b-b9jkttgvse],
.upload-panel select[b-b9jkttgvse],
.upload-panel input[b-b9jkttgvse],
.upload-panel textarea[b-b9jkttgvse] {
    width: 100%;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    padding: 11px 12px;
    background: var(--color-surface);
    color: var(--color-charcoal);
    font: inherit;
}

.documents-toolbar select[b-b9jkttgvse] {
    width: auto;
    min-width: 190px;
}

.documents-count[b-b9jkttgvse] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--color-panel);
    color: var(--color-primary-dark);
    font-weight: 800;
}

.upload-panel[b-b9jkttgvse] {
    display: grid;
    gap: 16px;
    margin-bottom: 20px;
    padding: 18px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
}

.upload-grid[b-b9jkttgvse] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.upload-panel label[b-b9jkttgvse] {
    display: grid;
    gap: 7px;
    color: var(--color-charcoal);
    font-size: 0.88rem;
    font-weight: 700;
}

.checkbox-label[b-b9jkttgvse] {
    display: flex !important;
    align-items: center;
    gap: 9px !important;
    align-self: end;
    padding-bottom: 11px;
}

.checkbox-label input[b-b9jkttgvse] {
    width: auto;
}

.file-picker[b-b9jkttgvse] {
    display: grid;
    gap: 8px;
    padding: 15px;
    border: 1px dashed var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
}

.documents-empty[b-b9jkttgvse] {
    padding: 30px 20px;
    border: 1px dashed var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    color: var(--color-gunmetal);
    text-align: center;
}

.documents-empty strong[b-b9jkttgvse] {
    display: block;
    margin-bottom: 8px;
    color: #29231f;
}

.documents-empty p[b-b9jkttgvse] {
    margin: 0;
}

.documents-list[b-b9jkttgvse] {
    display: grid;
    gap: 12px;
}

.document-entry[b-b9jkttgvse] {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 15px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
}

.document-icon[b-b9jkttgvse] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius:var(--archex-radius-medium);
    background: var(--color-panel);
    color: var(--color-primary-dark);
    font-size: 0.72rem;
    font-weight: 900;
}

.document-details[b-b9jkttgvse] {
    min-width: 0;
}

.document-title-row[b-b9jkttgvse] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.document-title-row strong[b-b9jkttgvse] {
    overflow-wrap: anywhere;
    color: #29231f;
}

.document-details p[b-b9jkttgvse] {
    margin: 6px 0 0;
    color: var(--color-gunmetal);
}

.document-details small[b-b9jkttgvse] {
    display: block;
    margin-top: 7px;
    color: var(--color-gunmetal);
}

.document-notes[b-b9jkttgvse] {
    font-style: italic;
}

.current-label[b-b9jkttgvse],
.approved-label[b-b9jkttgvse] {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
}

.current-label[b-b9jkttgvse] {
    background: #e8f5eb;
    color: #26713a;
}

.approved-label[b-b9jkttgvse] {
    background: #e9f0ff;
    color: #2458a6;
}

.document-actions[b-b9jkttgvse] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.text-button.danger[b-b9jkttgvse] {
    color: #a53030;
}

.validation-message[b-b9jkttgvse] {
    margin: 0;
    color: #a53030;
    font-weight: 700;
}

@media (max-width: 760px) {
    .documents-panel[b-b9jkttgvse] {
        padding: 18px;
    }

    .documents-toolbar[b-b9jkttgvse] {
        align-items: stretch;
        flex-direction: column;
    }

    .documents-toolbar select[b-b9jkttgvse] {
        width: 100%;
    }

    .upload-grid[b-b9jkttgvse] {
        grid-template-columns: 1fr;
    }

    .document-entry[b-b9jkttgvse] {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .document-icon[b-b9jkttgvse] {
        width: 42px;
        height: 42px;
    }

    .document-actions[b-b9jkttgvse] {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}
/* /Components/Projects/ProjectPhotosCard.razor.rz.scp.css */
/* UI-01 repair: this component owns its COMPLETE styling — parent scoped CSS
   (.work-card, buttons, headings) never crossed the component boundary, which
   left bare links, native inputs and an unstyled card. The values below match
   the surrounding workspace cards exactly: same border, background, padding,
   radius, heading treatment and ArchEx orange actions. */

.photos-card[b-6quahch8pj] {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    box-shadow:var(--archex-shadow);
    padding: 15px;
}

.photos-heading[b-6quahch8pj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 13px;
}

    .photos-heading h2[b-6quahch8pj] {
        margin: 0;
        font-family:var(--font-heading);
        font-size: .79rem;
        letter-spacing: .01em;
        text-transform: uppercase;
    }

.photos-count[b-6quahch8pj] {
    font-weight: 700;
    color: #777;
    font-size: .78rem;
}

.photos-message[b-6quahch8pj] {
    margin: 0 0 10px;
    padding: 7px 10px;
    border-radius:var(--archex-radius-small);
    background: #f6eee9;
    color: var(--color-primary-dark);
    font-size: .74rem;
}

/* Normal state: one clear Add photograph action, nothing else. */
.photos-add[b-6quahch8pj] {
    width: 100%;
    min-height: 40px;
    margin-bottom: 12px;
    border: 1px solid var(--color-primary);
    border-radius:var(--archex-radius-small);
    background: var(--color-primary);
    color: #fff;
    font:800 .78rem var(--font-body);
    cursor: pointer;
}

    .photos-add:hover[b-6quahch8pj] { background: var(--color-primary-dark); }

/* Capture panel: opens only from Add photograph. */
.capture-panel[b-6quahch8pj] {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
}

.capture-field[b-6quahch8pj] {
    display: grid;
    gap: 4px;
    min-width: 0;
}

    .capture-field span[b-6quahch8pj] {
        color: #666;
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .03em;
        text-transform: uppercase;
    }

    .capture-field input[b-6quahch8pj],
    .capture-field select[b-6quahch8pj] {
        width: 100%;
        min-height: 38px;
        padding: 7px 10px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        background: #fff;
        font-size: .78rem;
        font-family: inherit;
    }

        .capture-field input:focus[b-6quahch8pj],
        .capture-field select:focus[b-6quahch8pj] {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 3px rgba(242, 108, 33, .14);
        }

.capture-actions[b-6quahch8pj] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.capture-take[b-6quahch8pj],
.capture-choose[b-6quahch8pj],
.capture-cancel[b-6quahch8pj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 14px;
    border-radius:var(--archex-radius-small);
    font:800 .74rem var(--font-body);
    cursor: pointer;
}

.capture-take[b-6quahch8pj] {
    border: 1px solid var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

    .capture-take:hover[b-6quahch8pj] { background: var(--color-primary-dark); }

.capture-choose[b-6quahch8pj] {
    border: 1px solid var(--color-primary-light);
    background: #fff;
    color: var(--color-primary-dark);
}

    .capture-choose:hover[b-6quahch8pj] { background: var(--color-panel); }

.capture-cancel[b-6quahch8pj] {
    border: 1px solid #ddd;
    background: #fff;
    color: #444;
}

/* The native file inputs are visually hidden; the styled labels ARE the buttons. */
.capture-take[b-6quahch8pj]  input[type="file"],
.capture-choose[b-6quahch8pj]  input[type="file"] {
    display: none;
}

.capture-hint[b-6quahch8pj] {
    color: var(--color-gunmetal);
    font-size: .68rem;
}

/* Thumbnails: up to four in preview, expandable via View all. */
.photo-grid[b-6quahch8pj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    min-width: 0;
}

.photo-tile[b-6quahch8pj] {
    margin: 0;
    display: grid;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
}

    .photo-tile a[b-6quahch8pj] { display: block; }

    .photo-tile img[b-6quahch8pj] {
        display: block;
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        border-radius:var(--archex-radius-small);
        background: #edeae3;
        border: 1px solid var(--color-divider);
    }

    .photo-tile figcaption[b-6quahch8pj] {
        display: grid;
        gap: 2px;
        min-width: 0;
        font-size: .72rem;
    }

        .photo-tile figcaption strong[b-6quahch8pj] {
            font-size: .72rem;
            overflow: hidden;
            overflow-wrap: anywhere;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
        }

        .photo-tile figcaption small[b-6quahch8pj] {
            color: #777;
            font-size: .64rem;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

    .photo-tile figcaption input[b-6quahch8pj] {
        width: 100%;
        min-height: 32px;
        padding: 4px 8px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        font-size: .72rem;
    }

.tile-actions[b-6quahch8pj] {
    display: flex;
    gap: 8px;
}

.text-button[b-6quahch8pj] {
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--color-primary);
    font:700 .68rem var(--font-body);
    cursor: pointer;
}

.photos-view-all[b-6quahch8pj] {
    width: 100%;
    margin-top: 10px;
    min-height: 34px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: #fff;
    color: #222;
    font:700 .72rem var(--font-body);
    cursor: pointer;
}

.photos-empty[b-6quahch8pj] {
    margin: 4px 0;
    color: #777;
    font-size: .74rem;
}
/* /Components/Reports/DeliverablesView.razor.rz.scp.css */
.deliverables-page[b-83stvd00qo]{min-height:100%;padding:32px;background:#f4f0ea;color:var(--color-charcoal)}.deliverables-hero[b-83stvd00qo]{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:22px}.eyebrow[b-83stvd00qo],.section-kicker[b-83stvd00qo]{margin:0 0 7px;color:var(--color-primary-dark);font-size:.67rem;font-weight:900;letter-spacing:.18em}.deliverables-hero h1[b-83stvd00qo]{margin:0;font-family:var(--font-heading);font-size:clamp(2.1rem,4vw,3.8rem);line-height:1}.intro[b-83stvd00qo]{max-width:760px;margin:12px 0 0;color:var(--color-gunmetal);line-height:1.55}.hero-actions[b-83stvd00qo]{display:flex;gap:9px;flex-wrap:wrap}.hero-actions button[b-83stvd00qo],.priority-panel button[b-83stvd00qo],.card-actions button[b-83stvd00qo]{padding:11px 15px;border:1px solid var(--color-primary-dark);border-radius:var(--archex-radius-small);background:var(--color-primary-dark);color:#fff;font:inherit;font-size:.75rem;font-weight:800;cursor:pointer}.hero-actions button.secondary[b-83stvd00qo],.card-actions button.quiet[b-83stvd00qo]{border-color:var(--color-divider);background:#fff;color:var(--color-charcoal)}.summary-grid[b-83stvd00qo]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.summary-card[b-83stvd00qo]{min-height:126px;padding:17px;text-align:left;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;color:inherit;cursor:pointer;transition:.15s ease}.summary-card:hover[b-83stvd00qo],.summary-card.selected[b-83stvd00qo]{transform:translateY(-1px);border-color:var(--color-primary-dark);box-shadow:var(--archex-shadow)}.summary-card span[b-83stvd00qo],.summary-card strong[b-83stvd00qo],.summary-card small[b-83stvd00qo]{display:block}.summary-card span[b-83stvd00qo]{color:var(--color-gunmetal);font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.summary-card strong[b-83stvd00qo]{margin:10px 0 5px;font-family:var(--font-heading);font-size:2.15rem}.summary-card small[b-83stvd00qo]{color:var(--color-gunmetal);font-size:.7rem}.summary-card.draft[b-83stvd00qo]{border-top:4px solid #687ba5}.summary-card.review[b-83stvd00qo]{border-top:4px solid #7665a0}.summary-card.attention[b-83stvd00qo]{border-top:4px solid var(--color-primary-dark)}.summary-card.final[b-83stvd00qo]{border-top:4px solid #4d7b58}.priority-panel[b-83stvd00qo]{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;padding:20px 22px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff}.priority-panel h2[b-83stvd00qo]{margin:0;font-family:var(--font-heading);font-size:1.65rem}.priority-panel p[b-83stvd00qo]{margin:7px 0 0;color:var(--color-gunmetal)}.toolbar[b-83stvd00qo]{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(190px,.45fr) auto;gap:10px;align-items:end;margin-bottom:14px}.toolbar label[b-83stvd00qo]{display:grid;gap:6px}.toolbar label>span[b-83stvd00qo]{color:var(--color-gunmetal);font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.toolbar input[b-83stvd00qo],.toolbar select[b-83stvd00qo]{min-height:43px;padding:0 13px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff;font:inherit}.clear-button[b-83stvd00qo]{min-height:47px;padding:0 17px;border:1px solid #2f2a25;border-radius:var(--archex-radius-small);background:transparent;font-weight:800;cursor:pointer}.deliverables-list[b-83stvd00qo]{display:grid;gap:12px}.deliverable-card[b-83stvd00qo]{padding:20px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-medium);background:#fff;box-shadow:var(--archex-shadow)}.card-heading[b-83stvd00qo]{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.project-type[b-83stvd00qo]{color:var(--color-primary-dark);font-size:.64rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.card-heading h2[b-83stvd00qo]{margin:5px 0 4px;font-family:var(--font-heading);font-size:1.5rem}.card-heading p[b-83stvd00qo]{margin:0;color:var(--color-gunmetal);font-size:.78rem}.status-pill[b-83stvd00qo]{padding:6px 10px;border-radius:99px;font-size:.62rem;font-weight:900;text-transform:uppercase;white-space:nowrap}.status-pill.drafting[b-83stvd00qo]{background:#e8edf7;color:#4f628d}.status-pill.review[b-83stvd00qo]{background:#ebe7f7;color:#5f5287}.status-pill.complete[b-83stvd00qo]{background:#e4f1e8;color:#446f52}.status-pill.hold[b-83stvd00qo]{background:#f4ead1;color:#80661c}.status-pill.active[b-83stvd00qo]{background:#edf1ed;color:#607366}.readiness-grid[b-83stvd00qo]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:17px}.readiness-item[b-83stvd00qo]{padding:13px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:var(--color-panel)}.readiness-item span[b-83stvd00qo],.readiness-item strong[b-83stvd00qo],.readiness-item small[b-83stvd00qo]{display:block}.readiness-item span[b-83stvd00qo]{color:var(--color-gunmetal);font-size:.62rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.readiness-item strong[b-83stvd00qo]{margin:6px 0 3px;font-family:var(--font-heading);font-size:1.55rem}.readiness-item small[b-83stvd00qo]{color:var(--color-gunmetal);font-size:.67rem}.readiness-item.missing[b-83stvd00qo]{background:var(--color-primary-light);border-color:#ead4c8}.readiness-item.ready[b-83stvd00qo]{background:var(--color-panel);border-color:var(--color-divider)}.delivery-footer[b-83stvd00qo]{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--color-divider)}.delivery-footer>div:first-child span[b-83stvd00qo],.delivery-footer>div:first-child strong[b-83stvd00qo]{display:block}.delivery-footer>div:first-child span[b-83stvd00qo]{color:var(--color-gunmetal);font-size:.6rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.delivery-footer>div:first-child strong[b-83stvd00qo]{margin-top:4px;font-size:.78rem}.card-actions[b-83stvd00qo]{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.card-actions button[b-83stvd00qo]{padding:8px 11px;font-size:.67rem}@media(max-width:1200px){.summary-grid[b-83stvd00qo]{grid-template-columns:repeat(3,1fr)}.readiness-grid[b-83stvd00qo]{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.deliverables-page[b-83stvd00qo]{padding:22px 13px}.deliverables-hero[b-83stvd00qo],.priority-panel[b-83stvd00qo],.card-heading[b-83stvd00qo],.delivery-footer[b-83stvd00qo]{align-items:flex-start;flex-direction:column}.hero-actions[b-83stvd00qo],.hero-actions button[b-83stvd00qo],.priority-panel button[b-83stvd00qo]{width:100%}.summary-grid[b-83stvd00qo],.toolbar[b-83stvd00qo],.readiness-grid[b-83stvd00qo]{grid-template-columns:1fr}.card-actions[b-83stvd00qo]{width:100%;justify-content:flex-start}.card-actions button[b-83stvd00qo]{flex:1}.status-pill[b-83stvd00qo]{align-self:flex-start}}
/* /Components/Safety/ToolboxSignOnSheet.razor.rz.scp.css */
/* The toolbox sheet is used standing up, on a tablet, often with gloves or a dusty thumb. Every
   thing that can be pressed is at least 48px tall, and the name field is the largest thing on it. */

.toolbox-sheet[b-wwoj1ej1ng] {
    display: flex;
    flex-direction: column;
    gap: var(--archex-gap-4);
}

.toolbox-head[b-wwoj1ej1ng] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--archex-gap-3);
}

.toolbox-head .ax-title[b-wwoj1ej1ng] { margin: 2px 0 0; }

.toolbox-name[b-wwoj1ej1ng] {
    min-height: 56px;
    font-size: var(--archex-text-lg);
}

.toolbox-matches[b-wwoj1ej1ng] {
    display: grid;
    gap: var(--archex-gap-2);
}

.toolbox-match[b-wwoj1ej1ng] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-height: 56px;
    padding: var(--archex-gap-3) var(--archex-gap-4);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: #fff;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.toolbox-match:hover[b-wwoj1ej1ng],
.toolbox-match:focus-visible[b-wwoj1ej1ng] { border-color: var(--archex-ochre); }

.toolbox-match strong[b-wwoj1ej1ng] { font-size: var(--archex-text-md); }
.toolbox-match small[b-wwoj1ej1ng] { color: var(--color-gunmetal); }

.toolbox-nobody[b-wwoj1ej1ng] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--archex-gap-2);
    margin: 0;
}

.toolbox-person[b-wwoj1ej1ng] {
    display: flex;
    flex-direction: column;
    gap: var(--archex-gap-3);
    padding: var(--archex-gap-4);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
}

.toolbox-person p[b-wwoj1ej1ng] { margin: 0; }

.toolbox-person-head[b-wwoj1ej1ng] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--archex-gap-3);
}

.toolbox-person-head strong[b-wwoj1ej1ng] { font-size: var(--archex-text-lg); }

.toolbox-visitor-fields[b-wwoj1ej1ng] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--archex-gap-3);
}

.toolbox-checks[b-wwoj1ej1ng] {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.toolbox-checks li[b-wwoj1ej1ng] {
    display: flex;
    align-items: center;
    gap: var(--archex-gap-2);
    font-weight: 600;
}

/* A mark, not a colour alone: tick, cross and dash read the same to someone who cannot tell the
   green from the red. */
.toolbox-checks li[b-wwoj1ej1ng]::before {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 800;
    color: #fff;
}

.toolbox-checks li.is-done[b-wwoj1ej1ng]::before { content: "✓"; background: var(--color-success); }
.toolbox-checks li.is-missing[b-wwoj1ej1ng]::before { content: "✕"; background: var(--color-danger); }
.toolbox-checks li.is-unknown[b-wwoj1ej1ng] { color: var(--color-gunmetal); font-weight: 400; }
.toolbox-checks li.is-unknown[b-wwoj1ej1ng]::before { content: "–"; background: var(--color-divider); color: var(--color-gunmetal); }

.toolbox-accept[b-wwoj1ej1ng] {
    min-height: 56px;
    font-size: var(--archex-text-md);
}

.toolbox-blocked[b-wwoj1ej1ng] {
    padding: var(--archex-gap-3);
    border-left: 3px solid var(--color-danger);
    background: rgba(198, 40, 40, .05);
    color: #7F1D1D;
}

.toolbox-actions[b-wwoj1ej1ng] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--archex-gap-2);
}

.toolbox-signed[b-wwoj1ej1ng] {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--color-divider);
}

.toolbox-signed li[b-wwoj1ej1ng] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: var(--archex-gap-3);
    padding: var(--archex-gap-2) 0;
    border-bottom: 1px solid var(--color-divider);
}

.toolbox-signed span[b-wwoj1ej1ng] {
    padding: 2px 10px;
    border-radius: 999px;
    font-size: var(--archex-text-sm);
    font-weight: 700;
}

.toolbox-signed .is-worker[b-wwoj1ej1ng] { background: rgba(46, 125, 50, .10); color: #1B5E20; }
.toolbox-signed .is-visitor[b-wwoj1ej1ng] { background: var(--color-panel); color: var(--color-gunmetal); }
.toolbox-signed time[b-wwoj1ej1ng] { color: var(--color-gunmetal); font-variant-numeric: tabular-nums; }

/* Default display on the details element itself: a display rule on it is what once let a closed
   panel show its contents. The layout lives on its children. */
.toolbox-close > summary[b-wwoj1ej1ng] {
    min-height: 48px;
    display: flex;
    align-items: center;
    font-weight: 700;
    cursor: pointer;
}

.toolbox-close[open] > summary[b-wwoj1ej1ng] { margin-bottom: var(--archex-gap-3); }
.toolbox-close > .ax-field[b-wwoj1ej1ng] { margin-bottom: var(--archex-gap-3); }

@media (max-width: 700px) {
    .toolbox-visitor-fields[b-wwoj1ej1ng] { grid-template-columns: 1fr; }
}

.toolbox-run-by[b-wwoj1ej1ng] { margin: 2px 0 0; }

.toolbox-not-yours[b-wwoj1ej1ng] {
    margin: 0;
    padding: var(--archex-gap-3) var(--archex-gap-4);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
    font-weight: 600;
}

.toolbox-head-side[b-wwoj1ej1ng] {
    display: flex;
    align-items: center;
    gap: var(--archex-gap-2);
}

/* Once work has started: one line, the late-arrival button within reach. */
.toolbox-sheet.is-compact[b-wwoj1ej1ng] { gap: var(--archex-gap-2); }

.toolbox-summary-line[b-wwoj1ej1ng] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--archex-gap-3);
}

.toolbox-summary-line p[b-wwoj1ej1ng] { margin: 0 0 2px; }
/* /Components/Scheduling/ActionCentre.razor.rz.scp.css */
.action-page[b-ng7fd93na2]{min-height:100%;padding:clamp(28px,4vw,58px);background:radial-gradient(circle at top right,rgba(196,85,28,.09),transparent 30rem),linear-gradient(145deg,#fff 0%,#f3eee8 100%);color:var(--color-charcoal)}.action-header[b-ng7fd93na2]{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1380px;margin:0 auto 28px}.eyebrow[b-ng7fd93na2]{margin:0 0 8px;color:var(--color-primary-dark);font-size:.7rem;font-weight:850;letter-spacing:.14em}.action-header h1[b-ng7fd93na2]{margin:0;font-size:clamp(2.8rem,6vw,5.3rem);font-weight:800;line-height:.98;letter-spacing:-.055em}.intro[b-ng7fd93na2]{max-width:760px;margin:18px 0 0;color:var(--color-gunmetal);font-size:1.05rem;line-height:1.6}.header-actions[b-ng7fd93na2]{display:flex;gap:10px;flex-wrap:wrap}.primary-button[b-ng7fd93na2],.secondary-button[b-ng7fd93na2]{padding:0 20px;border-radius:var(--archex-radius-small);font-weight:800;cursor:pointer}.primary-button[b-ng7fd93na2]{border:1px solid var(--color-primary-dark);background:var(--color-primary-dark);color:#fff;box-shadow:var(--archex-shadow-hover)}.secondary-button[b-ng7fd93na2]{border:1px solid var(--color-divider);background:#fff;color:var(--color-charcoal)}.summary-grid[b-ng7fd93na2]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:1380px;margin:0 auto 22px}.summary-card[b-ng7fd93na2]{display:grid;gap:7px;padding:20px;border:1px solid rgba(22,20,18,.08);border-radius:var(--archex-radius-medium);background:rgba(255,255,255,.96);text-align:left;box-shadow:var(--archex-shadow-hover);cursor:pointer}.summary-card:hover[b-ng7fd93na2]{transform:translateY(-2px)}.summary-card span[b-ng7fd93na2]{color:var(--color-gunmetal);font-size:.75rem;font-weight:700}.summary-card strong[b-ng7fd93na2]{font-size:2.25rem;letter-spacing:-.04em}.summary-card small[b-ng7fd93na2]{color:var(--color-gunmetal);font-size:.68rem}.summary-card.urgent[b-ng7fd93na2]{box-shadow:inset 0 3px 0 var(--color-primary-dark),0 18px 48px rgba(42,31,24,.055)}.action-toolbar[b-ng7fd93na2]{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1380px;margin:0 auto 14px;padding:14px 16px;border:1px solid rgba(22,20,18,.08);border-radius:var(--archex-radius-medium);background:rgba(255,255,255,.94)}.view-switch[b-ng7fd93na2]{display:flex;gap:5px;flex-wrap:wrap}.view-switch button[b-ng7fd93na2]{padding:9px 12px;border:1px solid transparent;border-radius:var(--archex-radius-small);background:transparent;color:var(--color-gunmetal);font-weight:800;cursor:pointer}.view-switch button.active[b-ng7fd93na2]{border-color:#d9d0c7;background:#f5eee8;color:var(--color-primary-dark)}.search-box[b-ng7fd93na2]{display:flex;align-items:center;gap:10px;min-width:310px;padding:9px 12px;border:1px solid var(--color-divider);border-radius:var(--archex-radius-small);background:#fff}.search-box span[b-ng7fd93na2]{color:var(--color-gunmetal);font-size:.68rem;font-weight:800}.search-box input[b-ng7fd93na2]{width:100%;border:0;outline:0;background:transparent}.action-layout[b-ng7fd93na2]{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:16px;max-width:1380px;margin:0 auto}.task-panel[b-ng7fd93na2],.calendar-panel[b-ng7fd93na2]{border:1px solid rgba(22,20,18,.08);border-radius:var(--archex-radius-medium);background:rgba(255,255,255,.97);box-shadow:var(--archex-shadow-hover);overflow:hidden}.panel-heading[b-ng7fd93na2]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 20px;border-bottom:1px solid var(--color-divider)}.panel-heading h2[b-ng7fd93na2]{margin:0;font-size:1.2rem}.panel-heading>span[b-ng7fd93na2]{display:grid;min-width:30px;height:30px;padding:0 9px;border-radius:999px;place-items:center;background:#f5eee8;color:var(--color-primary-dark);font-size:.7rem;font-weight:850}.text-button[b-ng7fd93na2]{border:0;background:transparent;color:var(--color-primary-dark);font-weight:800;cursor:pointer}.task-list[b-ng7fd93na2]{display:grid}.task-row[b-ng7fd93na2]{display:grid;width:100%;grid-template-columns:8px minmax(0,1fr) auto;gap:13px;align-items:center;padding:16px 18px;border:0;border-bottom:1px solid var(--color-divider);background:#fff;text-align:left;cursor:pointer}.task-row:hover[b-ng7fd93na2]{background:var(--color-primary-light)}.task-marker[b-ng7fd93na2]{width:8px;height:40px;border-radius:var(--archex-radius-small);background:#9b8065}.task-row.high .task-marker[b-ng7fd93na2]{background:#d59628}.task-row.critical .task-marker[b-ng7fd93na2]{background:#c94f3d}.task-topline[b-ng7fd93na2]{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-topline span[b-ng7fd93na2]{color:var(--color-primary-dark);font-size:.58rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.task-topline time[b-ng7fd93na2]{color:var(--color-gunmetal);font-size:.6rem}.task-content>strong[b-ng7fd93na2]{display:block;margin-top:5px;font-size:.9rem}.task-content p[b-ng7fd93na2]{margin:5px 0 0;color:var(--color-gunmetal);font-size:.72rem;line-height:1.45}.task-content small[b-ng7fd93na2]{display:block;margin-top:7px;color:var(--color-gunmetal);font-size:.62rem;font-weight:700}.task-arrow[b-ng7fd93na2]{color:var(--color-gunmetal);font-size:1.1rem}.calendar-list[b-ng7fd93na2]{display:grid}.calendar-row[b-ng7fd93na2]{display:grid;width:100%;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border:0;border-bottom:1px solid var(--color-divider);background:#fff;text-align:left;cursor:pointer}.calendar-row:hover[b-ng7fd93na2]{background:var(--color-primary-light)}.date-block[b-ng7fd93na2]{display:grid;width:44px;height:48px;border-radius:var(--archex-radius-small);place-items:center;background:#f5eee8;color:var(--color-primary-dark)}.date-block strong[b-ng7fd93na2]{font-size:1rem;line-height:1}.date-block small[b-ng7fd93na2]{margin-top:-8px;font-size:.55rem;font-weight:850;text-transform:uppercase}.calendar-row>div>strong[b-ng7fd93na2]{display:block;overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.calendar-row>div>small[b-ng7fd93na2]{display:block;margin-top:4px;overflow:hidden;color:var(--color-gunmetal);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.status-pill[b-ng7fd93na2]{padding:5px 8px;border-radius:999px;background:#eef2ec;color:#4c7258;font-size:.53rem;font-weight:850;white-space:nowrap}.empty-state[b-ng7fd93na2]{max-width:1380px;margin:0 auto}@media(max-width:1100px){.summary-grid[b-ng7fd93na2]{grid-template-columns:repeat(2,minmax(0,1fr))}.action-layout[b-ng7fd93na2]{grid-template-columns:1fr}.action-header[b-ng7fd93na2]{align-items:flex-start;flex-direction:column}.calendar-panel[b-ng7fd93na2]{order:-1}}@media(max-width:760px){.action-page[b-ng7fd93na2]{padding:20px 12px 28px}.summary-grid[b-ng7fd93na2]{grid-template-columns:1fr 1fr}.action-toolbar[b-ng7fd93na2]{align-items:stretch;flex-direction:column}.search-box[b-ng7fd93na2]{min-width:0}.action-header h1[b-ng7fd93na2]{font-size:2.8rem}.header-actions[b-ng7fd93na2]{width:100%}.header-actions button[b-ng7fd93na2]{flex:1}.calendar-row[b-ng7fd93na2]{grid-template-columns:44px minmax(0,1fr)}.status-pill[b-ng7fd93na2]{grid-column:2}.task-topline[b-ng7fd93na2]{align-items:flex-start;flex-direction:column;gap:3px}}
/* /Components/Scheduling/AxScheduleBoard.razor.rz.scp.css */
/* ================================================================================================
   THE SCHEDULE BOARD
   ------------------------------------------------------------------------------------------------
   Staff are carried as COLOUR, not as a legend you have to consult. Each booking sets --axsb-hue
   from the person's id, and every part of the block — fill, border, text — is derived from that
   one number, so adding a tenth member of staff needs no new rule.
   ============================================================================================== */

.axsb[b-hqqg5c39es] { display: grid; gap: var(--space-3, 12px); }

/* ---- bar ---------------------------------------------------------------------------------- */

.axsb-bar[b-hqqg5c39es] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3, 12px);
}

.axsb-period[b-hqqg5c39es] { display: flex; align-items: center; gap: 8px; min-width: 0; }

.axsb-step[b-hqqg5c39es],
.axsb-today[b-hqqg5c39es] {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.axsb-step[b-hqqg5c39es] { padding: 0 12px; font-size: 1.15rem; line-height: 1; }
.axsb-step:hover[b-hqqg5c39es], .axsb-today:hover[b-hqqg5c39es] { border-color: var(--color-primary); }

.axsb-range[b-hqqg5c39es] { margin: 0 0 0 6px; font-size: var(--archex-text-lg, 22px); white-space: nowrap; }

.axsb-views[b-hqqg5c39es] { margin: 0; }

.axsb-message[b-hqqg5c39es] {
    margin: 0;
    padding: 10px 14px;
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
    color: var(--color-charcoal);
    font-weight: 700;
}

/* ---- layout ------------------------------------------------------------------------------- */

.axsb-body[b-hqqg5c39es] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: var(--space-3, 12px);
    align-items: start;
}

.axsb-grid-wrap[b-hqqg5c39es] {
    min-width: 0;
    overflow-x: auto;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-medium);
    background: var(--color-surface);
}

/* ---- day and week: staff down, days across ------------------------------------------------ */

.axsb-rows[b-hqqg5c39es] { min-width: 640px; }

.axsb-row[b-hqqg5c39es] {
    display: grid;
    grid-template-columns: 180px repeat(var(--axsb-cols, 7), minmax(96px, 1fr));
    border-bottom: 1px solid var(--color-divider);
}

.axsb-row:last-child[b-hqqg5c39es] { border-bottom: 0; }
.axsb-row-head[b-hqqg5c39es] { position: sticky; top: 0; z-index: 2; background: var(--color-panel); }

.axsb-who[b-hqqg5c39es] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-right: 1px solid var(--color-divider);
    font-weight: 700;
    min-width: 0;
}

.axsb-who span:last-child[b-hqqg5c39es] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.axsb-dot[b-hqqg5c39es] {
    flex: 0 0 12px; width: 12px; height: 12px; border-radius: 50%;
    background: hsl(var(--axsb-hue, 0) 62% 46%);
}

.axsb-col-head[b-hqqg5c39es] {
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 1px;
    padding: 8px 4px;
    border-left: 1px solid var(--color-divider);
}

.axsb-col-head small[b-hqqg5c39es] { color: var(--color-gunmetal); font-size: var(--archex-text-xs, 12px); }
.axsb-col-head strong[b-hqqg5c39es] { font-size: var(--archex-text-md, 17px); }
.axsb-col-head.is-today strong[b-hqqg5c39es] { color: var(--color-primary); }

.axsb-cell[b-hqqg5c39es] {
    display: grid;
    align-content: start;
    gap: 4px;
    min-height: 64px;
    padding: 5px;
    border-left: 1px solid var(--color-divider);
}

.axsb-cell.is-today[b-hqqg5c39es] { background: color-mix(in srgb, var(--color-primary) 4%, transparent); }

/* The drop target is named while a drag is in flight, so you can see where it will land before
   you let go rather than after. */
.axsb-cell.is-over[b-hqqg5c39es],
.axsb-month-cell.is-over[b-hqqg5c39es] {
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
    outline: 2px dashed var(--color-primary);
    outline-offset: -3px;
}

/* ---- a booking ---------------------------------------------------------------------------- */

.axsb-block[b-hqqg5c39es] {
    position: relative;
    display: grid;
    gap: 1px;
    padding: 6px 12px 6px 8px;
    border-radius: var(--archex-radius-small);
    border-left: 4px solid hsl(var(--axsb-hue, 0) 62% 40%);
    background: hsl(var(--axsb-hue, 0) 62% 95%);
    color: hsl(var(--axsb-hue, 0) 55% 22%);
    cursor: grab;
    min-width: 0;
}

.axsb-block:active[b-hqqg5c39es] { cursor: grabbing; }
.axsb-block.is-moving[b-hqqg5c39es] { opacity: .45; }

.axsb-block strong[b-hqqg5c39es],
.axsb-block small[b-hqqg5c39es] {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: var(--archex-text-sm, 13.5px);
}

.axsb-block small[b-hqqg5c39es] { color: hsl(var(--axsb-hue, 0) 30% 38%); }

/* The grip is deliberately a real target rather than a 2px edge: this is used on a tablet. */
.axsb-grip[b-hqqg5c39es] {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 11px;
    border-radius: 0 var(--archex-radius-small) var(--archex-radius-small) 0;
    background: hsl(var(--axsb-hue, 0) 62% 40%);
    opacity: .28;
    cursor: ew-resize;
}

.axsb-grip:hover[b-hqqg5c39es] { opacity: .75; }

/* ---- month -------------------------------------------------------------------------------- */

.axsb-month[b-hqqg5c39es] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }

.axsb-month-head[b-hqqg5c39es] {
    padding: 8px 6px;
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
    letter-spacing: .08em;
    text-align: center;
}

.axsb-month-cell[b-hqqg5c39es] {
    display: grid;
    align-content: start;
    gap: 3px;
    min-height: 104px;
    padding: 5px;
    border-bottom: 1px solid var(--color-divider);
    border-left: 1px solid var(--color-divider);
}

.axsb-month-cell:nth-child(7n + 1)[b-hqqg5c39es] { border-left: 0; }
.axsb-month-cell.outside[b-hqqg5c39es] { background: color-mix(in srgb, var(--color-gunmetal) 4%, transparent); }
.axsb-month-cell.outside .axsb-month-date[b-hqqg5c39es] { opacity: .45; }
.axsb-month-cell.is-today[b-hqqg5c39es] { background: color-mix(in srgb, var(--color-primary) 6%, transparent); }

.axsb-month-date[b-hqqg5c39es] { font-weight: 800; font-size: var(--archex-text-sm, 13.5px); }
.axsb-month-cell.is-today .axsb-month-date[b-hqqg5c39es] { color: var(--color-primary); }

.axsb-pill[b-hqqg5c39es] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 7px;
    border-radius: 999px;
    background: hsl(var(--axsb-hue, 0) 62% 92%);
    color: hsl(var(--axsb-hue, 0) 55% 24%);
    font-size: var(--archex-text-xs, 12px);
    cursor: grab;
    min-width: 0;
}

.axsb-pill b[b-hqqg5c39es] {
    flex: 0 0 auto;
    padding: 0 5px;
    border-radius: 999px;
    background: hsl(var(--axsb-hue, 0) 62% 40%);
    color: #fff;
    font-size: 10.5px;
}

.axsb-pill span[b-hqqg5c39es] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- tray --------------------------------------------------------------------------------- */

.axsb-tray[b-hqqg5c39es] {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-medium);
    background: var(--color-surface);
}

.axsb-tray-head[b-hqqg5c39es] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.axsb-tray-head h3[b-hqqg5c39es] { margin: 0; font-size: var(--archex-text-md, 17px); }
.axsb-tray-hint[b-hqqg5c39es] { margin: 0; color: var(--color-gunmetal); font-size: var(--archex-text-sm, 13.5px); }

.axsb-job[b-hqqg5c39es] {
    display: grid;
    gap: 2px;
    padding: 9px 11px;
    border: 1px solid var(--color-divider);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--archex-radius-small);
    background: var(--color-surface);
    cursor: grab;
    min-width: 0;
}

.axsb-job:hover[b-hqqg5c39es] { border-color: var(--color-primary); }
.axsb-job:active[b-hqqg5c39es] { cursor: grabbing; }
.axsb-job strong[b-hqqg5c39es],
.axsb-job small[b-hqqg5c39es] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.axsb-job small[b-hqqg5c39es] { color: var(--color-gunmetal); }

.axsb-none[b-hqqg5c39es] { margin: 0; padding: 12px; color: var(--color-gunmetal); }

/* ---- narrow ------------------------------------------------------------------------------- */

/* Below a laptop the tray goes under the grid rather than squeezing both. A phone gets the day
   view's own column widths through the grid's min-width and horizontal scroll, which is the one
   place in this application a sideways scroll is the right answer: a week has seven days whatever
   the screen is. */
@media (max-width: 1100px) {
    .axsb-body[b-hqqg5c39es] { grid-template-columns: minmax(0, 1fr); }
    .axsb-tray[b-hqqg5c39es] { order: 2; }
}

@media (max-width: 720px) {
    .axsb-range[b-hqqg5c39es] { font-size: var(--archex-text-md, 17px); }
    .axsb-row[b-hqqg5c39es] { grid-template-columns: 124px repeat(var(--axsb-cols, 7), minmax(88px, 1fr)); }
    .axsb-month-cell[b-hqqg5c39es] { min-height: 76px; }
}
/* /Components/Shared/ArchExLoader.razor.rz.scp.css */
/* Every colour here is a token. Nothing in this file is a hex value, because this is the first
   piece of the shared layer and it should not start the habit that put 1,138 distinct hard-coded
   colours into the page stylesheets. */

.ax-loader[b-gnc0zyoft6] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3, 16px);
    color: var(--color-charcoal);
    font-family: var(--font-body, Lato, Arial, sans-serif);
}

.ax-loader--large[b-gnc0zyoft6] {
    /* Owns the middle of an empty page rather than clinging to the corner of one. */
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 24px);
    padding: var(--space-8, 64px) var(--space-4, 24px);
    justify-content: center;
}

/* ---- the trowel ------------------------------------------------------------------------------ */

.ax-loader__trowel[b-gnc0zyoft6] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    /* A weighted easing rather than `linear`. A constant-speed spin reads as a generic web
       spinner; easing in and out gives it the feel of something with mass being turned over. */
    animation: ax-loader-turn-b-gnc0zyoft6 1.5s cubic-bezier(.62, .03, .36, .97) infinite;
}

.ax-loader--small .ax-loader__trowel[b-gnc0zyoft6] { width: 20px; height: 20px; }
.ax-loader--large .ax-loader__trowel[b-gnc0zyoft6] { width: 62px; height: 62px; }

.ax-loader__handle[b-gnc0zyoft6]  { fill: var(--color-sandstone); }
.ax-loader__ferrule[b-gnc0zyoft6] { fill: var(--color-gunmetal); }
.ax-loader__blade[b-gnc0zyoft6]   { fill: var(--color-charcoal); }
.ax-loader__spine[b-gnc0zyoft6]   { stroke: var(--color-surface); stroke-width: 2; opacity: .18; }

@keyframes ax-loader-turn-b-gnc0zyoft6 {
    to { transform: rotate(360deg); }
}

/* ---- the range pole -------------------------------------------------------------------------- */

.ax-loader__pole[b-gnc0zyoft6] {
    position: relative;
    width: 168px;
    height: 12px;
    flex: 0 0 auto;
    overflow: hidden;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-small);
    background: var(--color-surface);
}

.ax-loader--small .ax-loader__pole[b-gnc0zyoft6] { width: 96px; height: 9px; }
.ax-loader--large .ax-loader__pole[b-gnc0zyoft6] { width: 260px; height: 15px; }

.ax-loader__pole[b-gnc0zyoft6]::before {
    content: "";
    position: absolute;
    /* Wider than the box on both sides so the marching bands never reveal an end. */
    inset: 0 -40px;
    background: repeating-linear-gradient(
        90deg,
        var(--color-primary-dark) 0 16px,
        var(--color-surface) 16px 32px);
    animation: ax-loader-march-b-gnc0zyoft6 1.1s linear infinite;
}

@keyframes ax-loader-march-b-gnc0zyoft6 {
    to { transform: translateX(-32px); }
}

/* ---- words ------------------------------------------------------------------------------------ */

.ax-loader__label[b-gnc0zyoft6] {
    font-size: var(--archex-text-sm, 13.5px);
    font-weight: 700;
    letter-spacing: .01em;
    color: var(--archex-faint, var(--color-gunmetal));
}

.ax-loader--large .ax-loader__label[b-gnc0zyoft6] {
    font-size: var(--archex-text-md, 17px);
}

/* Present to a screen reader, absent to everyone else. */
.ax-loader__sr[b-gnc0zyoft6] {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ---- motion is a preference, not a decision this file gets to make --------------------------- */
/*
   Someone who has asked their operating system to reduce motion has usually asked for a reason;
   spinning is a common trigger for vestibular disorders. The waiting state still has to READ as
   waiting, so it is not simply frozen - it breathes instead.
*/
@media (prefers-reduced-motion: reduce) {
    .ax-loader__trowel[b-gnc0zyoft6] {
        animation: ax-loader-breathe-b-gnc0zyoft6 2s ease-in-out infinite;
    }

    .ax-loader__pole[b-gnc0zyoft6]::before {
        animation: ax-loader-breathe-b-gnc0zyoft6 2s ease-in-out infinite;
    }

    @keyframes ax-loader-breathe-b-gnc0zyoft6 {
        0%, 100% { opacity: .38; }
        50%      { opacity: 1; }
    }
}
/* /Components/Shared/AxUnavailable.razor.rz.scp.css */
.ax-unavailable[b-mjnk3mix82] {
    max-width: 640px;
    margin: var(--space-6) auto;
    display: grid;
    justify-items: start;
    gap: var(--space-3);
}

.ax-unavailable p[b-mjnk3mix82] { margin: 0; color: var(--color-gunmetal); }
.ax-unavailable .eyebrow[b-mjnk3mix82] { color: var(--color-primary-dark); }
.ax-unavailable h1[b-mjnk3mix82] { margin: 0; }
/* /Components/Shared/GlobalSearch.razor.rz.scp.css */
/* Tokens only. */

.gsearch[b-tedbsijnno] { position: relative; flex: 1 1 auto; min-width: 0; }

.gsearch-backdrop[b-tedbsijnno] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    background: transparent;
}

.gsearch-panel[b-tedbsijnno] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 3001;
    max-height: min(60vh, 460px);
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
    box-shadow: var(--shadow-dialog, 0 18px 42px rgba(31, 31, 31, .22));
    color: var(--color-charcoal);
}

.gsearch-note[b-tedbsijnno] {
    margin: 0;
    padding: 22px 14px;
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    text-align: center;
}

/* The group heading is what turns a list of matches into an answer: you can tell at a glance
   whether what you wanted was a project or a person before reading a single result. */
.gsearch-group[b-tedbsijnno] {
    margin: 8px 0 3px;
    padding: 0 10px;
    color: var(--archex-faint, var(--color-gunmetal));
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.gsearch-hit[b-tedbsijnno] {
    display: grid;
    gap: 1px;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius:var(--archex-radius-small);
    background: transparent;
    color: var(--color-charcoal);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.gsearch-hit:hover[b-tedbsijnno] { background: var(--color-panel); }

.gsearch-hit:focus-visible[b-tedbsijnno] {
    outline: 3px solid var(--color-primary);
    outline-offset: -2px;
}

.gsearch-hit strong[b-tedbsijnno] { font-size: var(--archex-text-sm, 13.5px); font-weight: 700; }
.gsearch-hit small[b-tedbsijnno] { color: var(--color-gunmetal); font-size: var(--archex-text-xs, 12px); }

.ax-visually-hidden[b-tedbsijnno] {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
/* /Components/Shared/NewEnquiryAlert.razor.rz.scp.css */
/* The new-enquiry popup. Deliberately unmissable and deliberately not a modal that traps you:
   clicking anywhere outside it is "Later", because somebody mid-sentence in a report should not
   have to deal with this before they can carry on typing. */

.enquiry-alert-backdrop[b-v4jjvyzosw] {
    position: fixed;
    inset: 0;
    background: rgba(17, 17, 17, 0.35);
    z-index: 900;
}

.enquiry-alert[b-v4jjvyzosw] {
    position: fixed;
    /* Top right, under the top bar. Not centred: a box in the middle of the screen reads as an
       error, and this is good news. */
    top: 4.5rem;
    right: 1.25rem;
    z-index: 901;

    width: min(26rem, calc(100vw - 2rem));
    max-height: calc(100vh - 6rem);
    overflow-y: auto;

    background: var(--archex-surface, #fff);
    color: var(--archex-text, #111);
    border: 1px solid var(--archex-border, #d9d9d9);
    border-top: 4px solid var(--color-primary, #F26C21);
    border-radius: 8px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
    padding: 1rem 1.15rem 1.15rem;

    animation: enquiry-alert-in-b-v4jjvyzosw 180ms ease-out;
}

/* Nothing moves for somebody who has asked their system to stop moving things. */
@media (prefers-reduced-motion: reduce) {
    .enquiry-alert[b-v4jjvyzosw] { animation: none; }
}

@keyframes enquiry-alert-in-b-v4jjvyzosw {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.enquiry-alert-head[b-v4jjvyzosw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.enquiry-alert-flag[b-v4jjvyzosw] {
    background: var(--color-primary, #F26C21);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
}

.enquiry-alert-when[b-v4jjvyzosw] {
    font-size: 0.78rem;
    opacity: 0.7;
}

/* Scoped, so it beats the global heading colour rather than inheriting a near-black that would
   disappear on a dark surface. */
.enquiry-alert h2[b-v4jjvyzosw] {
    font-size: 1.15rem;
    line-height: 1.25;
    margin: 0;
    color: inherit;
}

.enquiry-alert-org[b-v4jjvyzosw] {
    margin: 0.15rem 0 0;
    font-size: 0.9rem;
    opacity: 0.8;
}

.enquiry-alert-facts[b-v4jjvyzosw] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 0.75rem;
    margin: 0.9rem 0 0.6rem;
    font-size: 0.88rem;
}

.enquiry-alert-facts dt[b-v4jjvyzosw] {
    font-weight: 600;
    opacity: 0.65;
    white-space: nowrap;
}

.enquiry-alert-facts dd[b-v4jjvyzosw] {
    margin: 0;
    /* A client's own words, which may be one very long unbroken string. */
    overflow-wrap: anywhere;
}

.enquiry-alert-ref[b-v4jjvyzosw] {
    margin: 0 0 0.9rem;
    font-size: 0.78rem;
    opacity: 0.6;
    font-variant-numeric: tabular-nums;
}

.enquiry-alert-actions[b-v4jjvyzosw] {
    display: flex;
    gap: 0.5rem;
}

/* .ax-list-button is not used here: these are ordinary buttons and the global button rule is the
   right one for them. Only the colour is stated. */
.enquiry-alert-open[b-v4jjvyzosw] {
    background: var(--color-primary, #F26C21);
    color: #fff;
    border: 1px solid var(--color-primary-dark, #DD580D);
    font-weight: 600;
}

.enquiry-alert-later[b-v4jjvyzosw] {
    background: transparent;
}

.enquiry-alert-more[b-v4jjvyzosw] {
    margin: 0.75rem 0 0;
    font-size: 0.8rem;
    opacity: 0.7;
}

/* On a phone it spans the width with a gutter, rather than hanging off the right edge. */
@media (max-width: 480px) {
    .enquiry-alert[b-v4jjvyzosw] {
        top: 4rem;
        right: 1rem;
        left: 1rem;
        width: auto;
    }
}
/* /Components/Shared/NotificationBell.razor.rz.scp.css */
/* Tokens only. */

.bell-wrap[b-xfjm62qry9] { position: relative; display: inline-flex; }

/* The same badge language as the launcher tiles and the message list: a number in a red circle
   means "this many things are waiting", everywhere in ArchEx. */
.bell-count[b-xfjm62qry9] {
    position: absolute;
    top: -2px;
    right: -3px;
    display: grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border: 2px solid var(--archex-rail-bg, var(--color-charcoal));
    border-radius: 999px;
    background: var(--color-danger);
    color: var(--color-surface);
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

/* Catches the click that dismisses the panel. Transparent, covers everything, sits under the
   panel itself. */
.bell-backdrop[b-xfjm62qry9] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    background: transparent;
}

.bell-panel[b-xfjm62qry9] {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 3001;
    width: min(360px, calc(100vw - 32px));
    max-height: min(460px, 70vh);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--color-divider);
    border-radius:var(--archex-radius-medium);
    background: var(--color-surface);
    box-shadow: var(--shadow-dialog, 0 18px 42px rgba(31, 31, 31, .22));
    color: var(--color-charcoal);
}

.bell-head[b-xfjm62qry9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--color-divider);
    font-family: var(--font-heading);
}

.bell-head strong[b-xfjm62qry9] { font-size: var(--archex-text-md, 17px); }

.bell-head span[b-xfjm62qry9] {
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.bell-clear[b-xfjm62qry9] {
    margin: 0;
    padding: 34px 20px;
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    text-align: center;
}

.bell-list[b-xfjm62qry9] { overflow-y: auto; padding: 6px; }

.notice[b-xfjm62qry9] {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    width: 100%;
    padding: 11px 10px;
    border: 0;
    border-left: 3px solid transparent;
    border-radius:var(--archex-radius-small);
    background: transparent;
    color: var(--color-charcoal);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.notice:hover[b-xfjm62qry9] { background: var(--color-panel); }

/* Urgency shows as a stripe on the edge rather than a coloured row: a list of coloured rows is a
   list where nothing stands out. */
.notice.level-high[b-xfjm62qry9] { border-left-color: var(--color-danger); }
.notice.level-medium[b-xfjm62qry9] { border-left-color: var(--color-primary); }
.notice.level-low[b-xfjm62qry9] { border-left-color: var(--color-divider); }

.notice-kind[b-xfjm62qry9] {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius:var(--archex-radius-small);
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: 14px;
}

.notice.level-high .notice-kind[b-xfjm62qry9] {
    background: color-mix(in srgb, var(--color-danger) 14%, transparent);
    color: var(--color-danger);
}

.notice-copy[b-xfjm62qry9] { display: grid; gap: 1px; min-width: 0; }
.notice-copy strong[b-xfjm62qry9] { font-size: var(--archex-text-sm, 13.5px); font-weight: 700; }
.notice-copy small[b-xfjm62qry9] { color: var(--color-gunmetal); font-size: var(--archex-text-xs, 12px); }
/* /Components/Shared/ProjectDiaryPopup.razor.rz.scp.css */
/* THE DIARY, OVER THE JOB.

   This component owns its complete styling: Blazor scoped CSS stops at the
   component boundary, so nothing from ProjectWorkspace.razor.css reaches here.
   See ProjectParties.razor.css for the same note and the same reason. */

/* BLURRED, NOT JUST DIMMED. Adam Deane, on the first version: "id blur the
   background out a little bit to make it focus ok." The project page behind is
   still legibly there — this sits ON the job rather than replacing it — but the
   eye settles on the diary instead of reading the cards through the dimming.
   The rgba fill stays as the fallback: backdrop-filter is unsupported in a few
   browsers and a transparent backdrop would leave the modal floating over live
   text. */
.ax-diarypop-backdrop[b-xiz11i10oo] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: rgba(20, 20, 20, .38);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

/* NOT A SMALL BOX. This is where the work is — the whole field day, the
   correspondence, the photographs. A 500px dialog would make it something to
   dismiss rather than something to use. It stops short of the edges so the
   project underneath stays visible, because the point is that it is ON TOP of
   the job, not instead of it. */
.ax-diarypop[b-xiz11i10oo] {
    position: fixed;
    z-index: 901;
    top: 3vh;
    bottom: 3vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(1180px, 94vw);
    display: flex;
    flex-direction: column;
    background: var(--color-background, #fbfbf9);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .28);
    overflow: hidden;
}

.ax-diarypop-head[b-xiz11i10oo] {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 18px;
    background: #fff;
    border-bottom: 1px solid var(--color-divider);
}

.ax-diarypop-title[b-xiz11i10oo] { min-width: 0; display: grid; gap: 2px; flex: 1 1 auto; }

.ax-diarypop-eyebrow[b-xiz11i10oo] {
    font: 800 .64rem var(--font-heading);
    letter-spacing: .1em;
    color: var(--color-primary-dark);
}

.ax-diarypop-title strong[b-xiz11i10oo] {
    font-family: var(--font-heading);
    font-size: 1.02rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

/* ALWAYS CLOSEABLE, AND IT SAYS WHERE CLOSING TAKES YOU. The first modal in this
   codebase had no close button and locked the owner out of the application. */
.ax-diarypop-close[b-xiz11i10oo] {
    flex: none;
    padding: 7px 14px;
    font: 800 .76rem var(--font-body);
    color: #fff;
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--archex-radius-small);
    cursor: pointer;
    white-space: nowrap;
}

.ax-diarypop-close:hover[b-xiz11i10oo] { background: var(--color-primary-dark); }

.ax-diarypop-body[b-xiz11i10oo] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0 18px 18px;
}

@media (max-width: 560px) {
    .ax-diarypop[b-xiz11i10oo] {
        top: 0;
        bottom: 0;
        width: 100vw;
        border-radius: 0;
        border: 0;
    }

    .ax-diarypop-head[b-xiz11i10oo] { padding: 11px 14px; }
    .ax-diarypop-body[b-xiz11i10oo] { padding: 0 12px 14px; }
    .ax-diarypop-close[b-xiz11i10oo] { padding: 6px 11px; font-size: .72rem; }
}

/* Print the bound day book, from the diary's own title bar. */
.ax-diarypop-print[b-xiz11i10oo] {
    margin-left: 0;
    flex: none;
    margin-left: auto;
    margin-right: 10px;
    padding: 6px 13px;
    font: 800 .74rem var(--font-body);
    color: var(--color-primary-dark);
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    text-decoration: none;
    white-space: nowrap;
}

.ax-diarypop-print:hover[b-xiz11i10oo] { border-color: var(--color-primary); background: #fffaf4; }

/* FULL SCREEN, AND BACK. Adam Deane: "the diary also needs to be able to be
   expained to full screen and reduced if needed."

   Windowed is the default because the diary sits ON the job rather than
   replacing it — but a field day with fifty photographs and a dozen notes
   wants the whole screen, and reading a long day through a letterbox is its
   own kind of hard to read. */
.ax-diarypop.full[b-xiz11i10oo] {
    top: 0;
    bottom: 0;
    width: 100vw;
    border-radius: 0;
    border: 0;
}

.ax-diarypop-size[b-xiz11i10oo] {
    flex: none;
    margin-right: 8px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    font: 700 1rem var(--font-body);
    color: var(--color-charcoal);
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    cursor: pointer;
    white-space: nowrap;
}

.ax-diarypop-size:hover[b-xiz11i10oo] { border-color: var(--color-primary); color: var(--color-primary-dark); }

@media (max-width: 560px) {
    /* Already full width on a phone, so the control would do nothing. */
    .ax-diarypop-size[b-xiz11i10oo] { display: none; }
}
/* /Components/Shared/ProjectDiaryView.razor.rz.scp.css */
/* UI-01 diary repair: complete scoped styling on new ax-diary-* classes.
   The previous stylesheet's green actions, fixed bottom filter bar and narrow
   920px column are gone. Benchmark: the login page and the uniform Project
   Workspace — ArchEx orange actions, charcoal text, warm off-white ground,
   restrained grey borders. */

.ax-diary-page[b-pwt4hyx6er] {
    box-sizing: border-box;
    width: min(1240px, 100%);
    margin: 0 auto;
    padding: 22px 26px 60px;
    color: var(--color-charcoal);
    font-family:var(--font-body);
}

.ax-diary-page *[b-pwt4hyx6er] { box-sizing: border-box; min-width: 0; }

/* ---- Waiting for the diary ------------------------------------------------
   Adam Deane: "you click on the project and you dont know if its doing anything
   … or even a note that for once looked good that come up and said, hang tight
   while we load the diary for you." */
.ax-diary-state[b-pwt4hyx6er] {
    display: grid;
    justify-items: center;
    gap: 14px;
    text-align: center;
    padding: 70px 20px;
    color: var(--color-charcoal);
}

    .ax-diary-state h1[b-pwt4hyx6er] {
        margin: 0;
        font: 700 1.05rem var(--font-heading);
        letter-spacing: -.01em;
        color: var(--color-charcoal);
    }

    .ax-diary-state p[b-pwt4hyx6er] {
        margin: 0;
        max-width: 42ch;
        font-size: .82rem;
        color: var(--color-gunmetal);
    }

.ax-diary-trowel[b-pwt4hyx6er] {
    width: 58px;
    height: 58px;
    color: var(--color-primary);
    transform-origin: 32px 32px;
    animation: ax-diary-dig-b-pwt4hyx6er 2.4s cubic-bezier(.45, .05, .55, .95) infinite;
}

@keyframes ax-diary-dig-b-pwt4hyx6er {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* STILL FOR ANYONE WHO HAS ASKED FOR STILLNESS. A spinning object is a migraine
   trigger and an accessibility failure, and the words carry the message anyway. */
@media (prefers-reduced-motion: reduce) {
    .ax-diary-trowel[b-pwt4hyx6er] { animation: none; }
}

/* ---- Header --------------------------------------------------------------- */
.ax-diary-header[b-pwt4hyx6er] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(180px, 300px);
    align-items: center;
    gap: 18px;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--color-divider);
}

.ax-diary-back[b-pwt4hyx6er] {
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    padding: 9px 14px;
    font:700 .76rem var(--font-body);
    color: #444;
    cursor: pointer;
    white-space: nowrap;
}

    .ax-diary-back:hover[b-pwt4hyx6er] { border-color: var(--color-primary); color: var(--color-primary-dark); }

.ax-diary-title[b-pwt4hyx6er] { min-width: 0; }

.ax-diary-eyebrow[b-pwt4hyx6er] {
    display: block;
    color: var(--color-primary-dark);
    font:800 .66rem var(--font-heading);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ax-diary-title h1[b-pwt4hyx6er] {
    margin: 3px 0 0;
    font-family:var(--font-heading);
    font-size: clamp(1.15rem, 2vw, 1.6rem);
    line-height: 1.1;
    letter-spacing: -.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ax-diary-search[b-pwt4hyx6er] {
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    font-size: .82rem;
}

    .ax-diary-search:focus[b-pwt4hyx6er] { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(242, 108, 33, .13); }

/* ---- Composer ------------------------------------------------------------- */
.ax-diary-composer[b-pwt4hyx6er] {
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    box-shadow:var(--archex-shadow);
    padding: 14px 16px;
    display: grid;
    gap: 10px;

    /* Anchors the drop catcher and the drop sign over the whole panel. */
    position: relative;
}

/* ---- DROP A FILE ON IT -----------------------------------------------------
   Adam Deane: "you should also be able to drag a file from another screen and
   dump it into the diary."

   The catcher is a real file input covering the panel, which is what makes the
   drop work without any JavaScript. pointer-events: none is load-bearing: the
   input sits ON TOP of the note box and the Attach buttons, so left live it
   would swallow every click in the composer. Dragging something over turns it
   on for exactly as long as the drag lasts. */
.ax-diary-dropcatch[b-pwt4hyx6er] {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: block;

    /* pointer-events IS an inherited property, so switching it here switches the input inside
       with it — which is what .dropping below relies on. */
    pointer-events: none;
}

    /* ::deep, BECAUSE THE INPUT IS NOT OURS. <InputFile> is a child component; the <input> it
       renders carries InputFile's markup identity, never this component's b-xxxxxxxxxx. Without
       ::deep Blazor appends the attribute to `.ax-diary-dropcatch` itself and the rule matches
       nothing — which is exactly how this catcher spent its whole life as a visible, unpositioned
       "Choose files" control. */
    .ax-diary-dropcatch[b-pwt4hyx6er]  input[type="file"] {
        display: block;
        width: 100%;
        height: 100%;
        opacity: 0;
        cursor: copy;
    }

.ax-diary-composer.dropping .ax-diary-dropcatch[b-pwt4hyx6er] { pointer-events: auto; }

.ax-diary-composer.dropping[b-pwt4hyx6er] {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(242, 108, 33, .16);
}

.ax-diary-dropsign[b-pwt4hyx6er] {
    position: absolute;
    inset: 4px;
    z-index: 2;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 8px;
    border-radius: var(--archex-radius-small);
    background: rgba(255, 250, 244, .94);
    color: var(--color-primary-dark);
    font: 600 .82rem var(--font-body);
    pointer-events: none;
}

.ax-diary-dropsign svg[b-pwt4hyx6er] { width: 28px; height: 28px; }

    .ax-diary-composer textarea[b-pwt4hyx6er] {
        width: 100%;
        resize: vertical;
        min-height: 74px;
        padding: 10px 12px;
        border: 1px solid var(--color-divider);
        border-radius:var(--archex-radius-small);
        font:400 .9rem/1.45 var(--font-body);
        color: var(--color-charcoal);
    }

        .ax-diary-composer textarea:focus[b-pwt4hyx6er] { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(242, 108, 33, .13); }
        .ax-diary-composer textarea:disabled[b-pwt4hyx6er] { background: var(--color-panel); }

.ax-diary-composer-actions[b-pwt4hyx6er] {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.ax-diary-attach[b-pwt4hyx6er] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 0 15px;
    border: 1px solid var(--color-primary-light);
    border-radius:var(--archex-radius-small);
    background: #fff;
    color: var(--color-primary-dark);
    font:800 .76rem var(--font-body);
    cursor: pointer;
}

    .ax-diary-attach:hover[b-pwt4hyx6er] { background: var(--color-panel); }

    /* The native file input is never visible; the styled label IS the control. */
    .ax-diary-attach[b-pwt4hyx6er]  input[type="file"] { display: none; }

/* THE CAMERA BUTTON IS FOR PHONES. capture="environment" is ignored by desktop browsers, so on
   a laptop this would be a second button doing exactly what "Attach photographs" already does.
   display:none here and display:inline-flex inside the phone media query below — declared in
   that order so the later rule wins without !important. */
.ax-diary-camera[b-pwt4hyx6er] { display: none; }

.ax-diary-add[b-pwt4hyx6er] {
    margin-left: auto;
    min-height: 40px;
    padding: 0 22px;
    border: 1px solid var(--color-primary);
    border-radius:var(--archex-radius-small);
    background: var(--color-primary);
    color: #fff;
    font:800 .78rem var(--font-body);
    cursor: pointer;
}

    .ax-diary-add:hover:not(:disabled)[b-pwt4hyx6er] { background: var(--color-primary-dark); }
    .ax-diary-add:focus-visible[b-pwt4hyx6er] { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
    .ax-diary-add:disabled[b-pwt4hyx6er] { opacity: .5; cursor: default; }

.ax-diary-hint[b-pwt4hyx6er] { color: var(--color-gunmetal); font-size: .7rem; }

.ax-diary-status[b-pwt4hyx6er] { margin: 0; padding: 8px 12px; border-radius:var(--archex-radius-small); font-size: .78rem; }
    .ax-diary-status.success[b-pwt4hyx6er] { background: #f0f4ee; color: #3c6a42; }
    .ax-diary-status.error[b-pwt4hyx6er] { background: #fdf0ee; color: #a63a2c; }

.ax-diary-pending[b-pwt4hyx6er] { display: flex; gap: 10px; flex-wrap: wrap; }

.ax-diary-pending-photo[b-pwt4hyx6er] {
    position: relative;
    margin: 0;
    width: 108px;
    display: grid;
    gap: 3px;
}

    .ax-diary-pending-photo img[b-pwt4hyx6er],
    .ax-diary-pending-fallback[b-pwt4hyx6er] {
        width: 108px;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        border-radius:var(--archex-radius-small);
        border: 1px solid #e5e0da;
        background: #edeae3;
        display: grid;
        place-items: center;
        color: #999;
        font:800 .7rem var(--font-heading);
    }

    .ax-diary-pending-photo figcaption[b-pwt4hyx6er] {
        font-size: .62rem;
        color: #777;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

/* ---- What you are looking at, when it is not everything --------------------
   Only rendered while the diary is narrowed, so it can afford to be plain and
   sit right above the rows it is describing. */
.ax-diary-narrowed[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 10px 0 2px;
    padding: 7px 12px;
    border: 1px solid var(--color-primary-light);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
    font: 400 .76rem var(--font-body);
    color: var(--color-gunmetal);
}

    .ax-diary-narrowed strong[b-pwt4hyx6er] { color: var(--color-primary-dark); }
    .ax-diary-narrowed .ax-diary-reset[b-pwt4hyx6er] { margin-left: auto; }

@media (max-width: 560px) {
    .ax-diary-narrowed[b-pwt4hyx6er] { flex-direction: column; align-items: stretch; }
    .ax-diary-narrowed .ax-diary-reset[b-pwt4hyx6er] { margin-left: 0; }
}

/* ---- "This happened earlier" ----------------------------------------------
   Same visual weight as the affected-work box: an offered extra, not a demand. */
.ax-diary-happened[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
}

    .ax-diary-happened label[b-pwt4hyx6er] {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font: 800 .7rem var(--font-body);
        color: var(--color-gunmetal);
        text-transform: uppercase;
        letter-spacing: .06em;
    }

    .ax-diary-happened input[type="datetime-local"][b-pwt4hyx6er] {
        min-height: 38px;
        padding: 4px 9px;
        border: 1px solid #ddd;
        border-radius: var(--archex-radius-small);
        background: #fff;
        font: 400 .8rem var(--font-body);
        color: var(--color-charcoal);
        text-transform: none;
        letter-spacing: 0;
    }

.ax-diary-happened-note[b-pwt4hyx6er] { font-size: .72rem; color: var(--color-gunmetal); }
.ax-diary-happened-problem[b-pwt4hyx6er] { font-size: .74rem; font-weight: 700; color: #a63a2c; }

.ax-diary-happened-clear[b-pwt4hyx6er] {
    margin-left: auto;
    border: 0;
    background: none;
    padding: 4px 2px;
    font: 700 .7rem var(--font-body);
    color: var(--color-primary-dark);
    text-decoration: underline;
    cursor: pointer;
}

@media (max-width: 560px) {
    .ax-diary-happened[b-pwt4hyx6er] { flex-direction: column; align-items: stretch; }
    .ax-diary-happened label[b-pwt4hyx6er] { justify-content: space-between; }
    .ax-diary-happened-clear[b-pwt4hyx6er] { margin-left: 0; text-align: left; }
}

/* ---- Printing part of the diary -------------------------------------------
   A quiet secondary control beside "Print the diary" — the whole diary stays
   one click, and choosing dates is the deliberate extra step. */
.ax-diary-print-range[b-pwt4hyx6er] {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #ddd;
    border-radius: var(--archex-radius-small);
    background: #fff;
    color: var(--color-gunmetal);
    font: 700 .72rem var(--font-body);
    cursor: pointer;
    white-space: nowrap;
}

    .ax-diary-print-range:hover[b-pwt4hyx6er] { border-color: var(--color-primary); color: var(--color-primary-dark); }

.ax-diary-range[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    padding: 10px 14px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
}

    .ax-diary-range label[b-pwt4hyx6er] {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        font: 800 .7rem var(--font-body);
        color: var(--color-gunmetal);
        text-transform: uppercase;
        letter-spacing: .06em;
    }

    .ax-diary-range input[type="date"][b-pwt4hyx6er] {
        min-height: 36px;
        padding: 4px 9px;
        border: 1px solid #ddd;
        border-radius: var(--archex-radius-small);
        background: #fff;
        font: 400 .8rem var(--font-body);
        color: var(--color-charcoal);
        text-transform: none;
        letter-spacing: 0;
    }

.ax-diary-range-note[b-pwt4hyx6er] { font-size: .7rem; color: var(--color-gunmetal); }
.ax-diary-range-problem[b-pwt4hyx6er] { font-size: .72rem; font-weight: 700; color: #a63a2c; }

@media (max-width: 560px) {
    .ax-diary-range[b-pwt4hyx6er] { flex-direction: column; align-items: stretch; }
    .ax-diary-range label[b-pwt4hyx6er] { justify-content: space-between; }
}

/* The caption box under a pending photograph. Deliberately plain and full width: it is the one
   thing worth typing here, and a field that looks optional gets treated as decoration. */
.ax-diary-pending-caption[b-pwt4hyx6er] {
    width: 108px;
    min-height: 30px;
    padding: 4px 7px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    font: 400 .68rem var(--font-body);
    color: var(--color-charcoal);
}

    .ax-diary-pending-caption:focus[b-pwt4hyx6er] {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 2px rgba(242, 108, 33, .13);
    }

    .ax-diary-pending-caption[b-pwt4hyx6er]::placeholder { color: #9a948c; }

/* Whether a pending photograph will carry a position. Quiet by default — a recorded position is
   the expected case and should not shout — and grey rather than red when there is none, because
   a photograph without one is still worth keeping. */
.ax-diary-pending-where[b-pwt4hyx6er] {
    font-size: .6rem;
    font-weight: 700;
    color: var(--color-primary-dark);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    .ax-diary-pending-where.nofix[b-pwt4hyx6er] { color: var(--color-gunmetal); font-weight: 600; }

.ax-diary-pending-remove[b-pwt4hyx6er] {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 50%;
    background: rgba(31, 31, 31, .72);
    color: #fff;
    font-size: .7rem;
    cursor: pointer;
}

/* ---- ONE filter row (never a fixed bar) ----------------------------------- */
/* The diary view filters moved to the shared .ax-chips / .ax-chip pattern. */

/* ---- Chronological log ---------------------------------------------------- */
/* THE DAY DIVIDER, QUIETER. Adam Deane: "the dates are huge compared to most
   things". It was uppercase and letter-spaced, which reads as a heading shouting
   over the entries beneath it. Now it is a small line with a rule running off it -
   present enough to find, quiet enough to read past. Sticky, so on a long field
   day you can always see which day you are in. */
.ax-diary-date[b-pwt4hyx6er] {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 16px 0 6px;
    padding: 4px 0;
    font: 700 .7rem var(--font-body);
    letter-spacing: 0;
    text-transform: none;
    color: #8a8a84;
    background: var(--color-background, #fbfbf9);
}

.ax-diary-date[b-pwt4hyx6er]::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: var(--color-divider);
}

/* ---- A ROW READS AS A LINE IN A LIST, NOT AS A CARD ------------------------
   Adam Deane: "not perfect or easy to read ... still average if i was honest
   against something professional." ServiceM8's diary - his own reference - is
   flat rows separated by a hairline, with generous space between them. ArchEx
   boxed every entry in a bordered, shadowed white card, so a field day read as a
   stack of thirty boxes rather than as a day.

   Every property here is in normal flow. Nothing floats, nothing is positioned,
   nothing can size itself to the page. */
.ax-diary-row[b-pwt4hyx6er] {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    padding: 14px 4px 14px 14px;
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--color-divider);
    border-radius: 0;
    background: transparent;

    /* THE STRIPE IS THE ANSWER TO "look for a colour". A pale 30px disc is not visible at
       scrolling speed; a solid edge running the height of every row is. It is drawn with a
       pseudo-element rather than a border so the withdrawn and important rules can still own
       the row's own border and shadow without fighting it. */
    position: relative;
}

.ax-diary-row[b-pwt4hyx6er]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 3px;
    background: var(--kind-ink, transparent);
}

/* The machine's own bookkeeping is not one of the kinds a person scans for. */
.ax-diary-row.kind-other[b-pwt4hyx6er]::before { background: transparent; }

.ax-diary-row:last-child[b-pwt4hyx6er] { border-bottom: 0; }

    /* Marked with a bar in the gutter rather than a full border, so it stands out
       without becoming a box again. */
    .ax-diary-row.important[b-pwt4hyx6er] { box-shadow: inset 3px 0 0 var(--color-primary); padding-left: 10px; }

    /* Automated activity rows stay available but visually quiet. */
    .ax-diary-row.activity[b-pwt4hyx6er] { opacity: .74; padding-top: 10px; padding-bottom: 10px; }
        .ax-diary-row.activity .ax-diary-row-head strong[b-pwt4hyx6er] { font-size: .8rem; font-weight: 700; }

/* ---- THE COLOUR YOU SCAN BY ----------------------------------------------
   Adam Deane: "i think the emails, recording forms, notes should all be a
   differnt colour so you know that if you scrolling down you look for a colour"
   - and "the are small and little hard to see".

   So the disc comes back, bigger, and each kind gets its own tint. One column,
   always in the same place: scrolling past a field day you find the recording
   forms by colour without reading a word.

   NONE OF THESE COLOURS MEANS GOOD OR BAD. A diary records what happened; it
   does not grade it. They are only families. */
/* The disc takes its colour from the row, which takes it from DiaryIcons — one definition, so a
   filter button and the rows it selects can never drift to different colours. */
.ax-diary-icon[b-pwt4hyx6er] {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin-top: 1px;
    border-radius: 50%;
    background: var(--kind-wash, #efece7);
    color: var(--kind-ink, #5f5a52);
}

.ax-diary-icon svg[b-pwt4hyx6er] { width: 17px; height: 17px; display: block; }

.ax-diary-body[b-pwt4hyx6er] { display: block; min-width: 0; }

.ax-diary-row-head[b-pwt4hyx6er] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}

    .ax-diary-row-head strong[b-pwt4hyx6er] { font-size: .92rem; }

.ax-diary-meta[b-pwt4hyx6er] { color: #777; font-size: .74rem; }

.ax-diary-note[b-pwt4hyx6er] {
    margin: 0;
    font-size: .88rem;
    line-height: 1.5;
    color: var(--color-charcoal);
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

/* Documents: compact rows, contained filenames, one Open action. */
/* THE FILE ROW IS THE LINK. Adam Deane: "i click open a file you have to click a little open
   button." It is an <a> now, so the file name, the badge and the whole strip open it. The
   ax-list-button class is the documented opt-out from the global button hammer in
   archex-components.css, which would otherwise paint this orange and box it. */
.ax-diary-file[b-pwt4hyx6er] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 6px 10px 6px 6px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-surface, #fff);
    color: inherit;
    text-decoration: none;
}

a.ax-diary-file:hover[b-pwt4hyx6er] {
    border-color: var(--color-primary);
    background: #fffaf4;
}

a.ax-diary-file:hover .ax-diary-file-copy b[b-pwt4hyx6er] { color: var(--color-primary-dark); }

.ax-diary-open-mark[b-pwt4hyx6er] {
    width: 16px;
    height: 16px;
    flex: none;
    color: #9a948b;
}

a.ax-diary-file:hover .ax-diary-open-mark[b-pwt4hyx6er] { color: var(--color-primary); }

/* Several documents attached to one diary entry stack as compact rows. */
.ax-diary-files[b-pwt4hyx6er] { display: grid; gap: 8px; min-width: 0; }

/* Documents chosen in the composer but not yet saved. Same compact row as a
   filed document, with a remove control in place of the open action. */
.ax-diary-pending-files[b-pwt4hyx6er] {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    min-width: 0;
}

.ax-diary-pending-file[b-pwt4hyx6er] {
    padding: 8px 10px;
    border: 1px solid #e5e0da;
    border-radius:var(--archex-radius-small);
    background: #faf8f4;
}

.ax-diary-pending-file-remove[b-pwt4hyx6er] {
    width: 22px;
    height: 22px;
    border: 1px solid #e5e0da;
    border-radius: 50%;
    background: #fff;
    color: #6b6459;
    font-size: .68rem;
    line-height: 1;
    cursor: pointer;
}

    .ax-diary-pending-file-remove:hover[b-pwt4hyx6er] { border-color: var(--color-primary); color: var(--color-primary-dark); }
    .ax-diary-pending-file-remove:disabled[b-pwt4hyx6er] { opacity: .5; cursor: default; }

.ax-diary-file-badge[b-pwt4hyx6er] {
    display: grid;
    place-items: center;
    min-width: 44px;
    height: 30px;
    padding: 0 6px;
    border-radius:var(--archex-radius-small);
    background: #ece7e0;
    color: var(--color-gunmetal);
    font:800 .64rem var(--font-heading);
}

.ax-diary-file-copy[b-pwt4hyx6er] { display: grid; gap: 1px; min-width: 0; }

    .ax-diary-file-copy b[b-pwt4hyx6er] {
        font-size: .8rem;
        overflow: hidden;
        overflow-wrap: anywhere;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .ax-diary-file-copy small[b-pwt4hyx6er] { color: #777; font-size: .68rem; }

.ax-diary-open[b-pwt4hyx6er],
.ax-diary-actions a[b-pwt4hyx6er] {
    color: var(--color-primary-dark);
    font:700 .74rem var(--font-body);
    text-decoration: none;
    white-space: nowrap;
}

    .ax-diary-open:hover[b-pwt4hyx6er],
    .ax-diary-actions a:hover[b-pwt4hyx6er] { text-decoration: underline; }

.ax-diary-actions[b-pwt4hyx6er] { display: flex; gap: 14px; }

/* Photographs: bounded 4:3 thumbnails — a single photo stays compact. */
.ax-diary-photos[b-pwt4hyx6er] {
    display: grid;
    grid-template-columns: repeat(auto-fill, 148px);
    gap: 10px;
    align-items: start;
}

.ax-diary-photo[b-pwt4hyx6er] {
    display: grid;
    gap: 3px;
    text-decoration: none;
    color: inherit;
}

    /* Whether a filed photograph carries a position. Quiet: a recorded position is the expected
       case and should not shout, and a photograph without one is still worth keeping — the line
       says which it is, and PhotoAugerLinking can only match the ones that have it. */
    .ax-diary-photo-where[b-pwt4hyx6er] {
        font-size: .58rem;
        font-weight: 700;
        color: var(--color-primary-dark);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

        .ax-diary-photo-where.nofix[b-pwt4hyx6er] { color: #999; font-weight: 600; }

    .ax-diary-photo img[b-pwt4hyx6er] {
        width: 148px;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        border-radius:var(--archex-radius-small);
        border: 1px solid var(--color-divider);
        background: #edeae3;
        display: block;
    }

    .ax-diary-photo span[b-pwt4hyx6er] {
        font-size: .64rem;
        color: #777;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 148px;
    }

.ax-diary-more-photos[b-pwt4hyx6er] { align-self: center; color: #777; font-size: .74rem; }

.ax-diary-empty[b-pwt4hyx6er] {
    padding: 34px;
    text-align: center;
    border: 1px dashed var(--color-divider);
    border-radius:var(--archex-radius-small);
    color: #777;
}

    .ax-diary-empty p[b-pwt4hyx6er] { margin: 6px 0 0; font-size: .8rem; }

.ax-diary-secondary[b-pwt4hyx6er] {
    min-height: 40px;
    padding: 0 18px;
    border: 1px solid #ddd;
    border-radius:var(--archex-radius-small);
    background: #fff;
    font:700 .78rem var(--font-body);
    cursor: pointer;
}

/* ---- Responsive ----------------------------------------------------------- */
@media (max-width: 850px) {
    .ax-diary-page[b-pwt4hyx6er] { padding: 16px 14px 50px; }

    .ax-diary-header[b-pwt4hyx6er] {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .ax-diary-back[b-pwt4hyx6er] { justify-self: start; }
    .ax-diary-search[b-pwt4hyx6er] { width: 100%; }
    .ax-diary-title h1[b-pwt4hyx6er] { white-space: normal; }
}

@media (max-width: 480px) {
    .ax-diary-composer-actions[b-pwt4hyx6er] { flex-direction: column; align-items: stretch; }
    .ax-diary-add[b-pwt4hyx6er] { margin-left: 0; }
    .ax-diary-photos[b-pwt4hyx6er] { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
    .ax-diary-photo img[b-pwt4hyx6er] { width: 100%; }
}

/* A COARSE POINTER, NOT A NARROW WINDOW. Width would put the camera button on a half-screened
   laptop, where capture="environment" does nothing, and take it off a tablet in the field,
   which is exactly where it is wanted. `pointer: coarse` asks whether the PRIMARY input is a
   finger: true on phones and tablets, false on a laptop even when it has a touchscreen. */
@media (pointer: coarse) {
    .ax-diary-camera[b-pwt4hyx6er] {
        display: inline-flex;
        justify-content: center;
        /* The one action taken standing up, mid-job — it leads. */
        order: -1;
        border-color: var(--color-primary);
        background: var(--color-primary);
        color: #fff;
    }

        .ax-diary-camera:hover[b-pwt4hyx6er] { background: var(--color-primary-dark); }
}

/* ---- Email rows -------------------------------------------------------
   Correspondence is visually distinct from notes, photographs and files: a
   quieter blue rail and a lighter ground, so a Diary carrying three years of
   email still reads as a project record rather than an inbox. Everything here
   is additive; no existing diary class is changed. */

.ax-diary-row.ax-diary-email[b-pwt4hyx6er] {
    border-left: 3px solid var(--color-info);
    background: var(--color-panel);
}

.ax-diary-email-icon[b-pwt4hyx6er] {
    color: var(--color-info);
    font-size: 1.05rem;
    font-weight: 700;
}

/* The whole resting row is the control, so the hit target is the row and not a
   small chevron — this is the difference between usable and not on a phone. */
.ax-diary-email-head[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    width: 100%;
    padding: 0.15rem 0;
    background: none;
    border: 0;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    min-height: 2.75rem;
}

.ax-diary-email-head:hover[b-pwt4hyx6er] { background: var(--color-panel); }
.ax-diary-email-head:focus-visible[b-pwt4hyx6er] { outline: 2px solid var(--color-info); outline-offset: 2px; }

.ax-diary-email-dir[b-pwt4hyx6er] {
    flex: 0 0 auto;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-info);
    font-weight: 700;
}

.ax-diary-email-who[b-pwt4hyx6er] {
    flex: 0 1 auto;
    font-weight: 600;
    /* Long addresses must not push the subject off the row. */
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ax-diary-email-subject[b-pwt4hyx6er] {
    flex: 1 1 12rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ax-diary-email-clip[b-pwt4hyx6er] { flex: 0 0 auto; font-size: 0.78rem; color: var(--color-info); }
.ax-diary-email-time[b-pwt4hyx6er] { flex: 0 0 auto; margin-left: auto; font-size: 0.78rem; color: var(--color-gunmetal); }

.ax-diary-email-summary[b-pwt4hyx6er] {
    margin: 0.15rem 0 0;
    font-size: 0.86rem;
    color: #4b5563;
    overflow-wrap: anywhere;
}

/* An honest label: this summary was extracted, not written by a model. */
.ax-diary-email-tag[b-pwt4hyx6er] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0 0.3rem;
    border-radius: 3px;
    background: #e5e7eb;
    color: #4b5563;
    font-size: 0.66rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Deliberately loud. If the analysis should not be relied on, that must be the
   thing the eye lands on. */
.ax-diary-email-warning[b-pwt4hyx6er] {
    margin: 0.4rem 0 0;
    padding: 0.4rem 0.55rem;
    border-left: 3px solid #b91c1c;
    background: #fef2f2;
    color: #7f1d1d;
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.ax-diary-email-detail[b-pwt4hyx6er] {
    margin-top: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--color-divider);
}

.ax-diary-email-fields[b-pwt4hyx6er] {
    display: grid;
    grid-template-columns: minmax(6rem, max-content) 1fr;
    gap: 0.2rem 0.75rem;
    margin: 0 0 0.6rem;
    font-size: 0.84rem;
}

.ax-diary-email-fields dt[b-pwt4hyx6er] { color: var(--color-gunmetal); }
.ax-diary-email-fields dd[b-pwt4hyx6er] { margin: 0; overflow-wrap: anywhere; }

.ax-diary-email-message[b-pwt4hyx6er] {
    padding: 0.6rem 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    border-radius: 4px;
    font-size: 0.88rem;
    /* A forwarded message can carry a very wide table; it scrolls in its own box
       rather than pushing the page sideways. */
    max-height: 28rem;
    overflow: auto;
    overflow-wrap: anywhere;
}

.ax-diary-email-message table[b-pwt4hyx6er] { max-width: 100%; }
.ax-diary-email-plain[b-pwt4hyx6er] { margin: 0; white-space: pre-wrap; font: inherit; }

.ax-diary-email-thread[b-pwt4hyx6er] { margin-top: 0.6rem; font-size: 0.84rem; }
.ax-diary-email-thread summary[b-pwt4hyx6er] { cursor: pointer; color: var(--color-info); min-height: 2.25rem; }
.ax-diary-email-thread ol[b-pwt4hyx6er] { margin: 0.4rem 0 0; padding-left: 1.1rem; display: grid; gap: 0.3rem; }
.ax-diary-email-thread li[b-pwt4hyx6er] { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: baseline; }
.ax-diary-email-thread time[b-pwt4hyx6er] { color: var(--color-gunmetal); }

.ax-diary-email-actions[b-pwt4hyx6er] { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.7rem; }

.ax-diary-email-reassign[b-pwt4hyx6er] {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.6rem;
    padding: 0.7rem;
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    border-radius: 4px;
}

.ax-diary-email-reassign label[b-pwt4hyx6er] { font-size: 0.82rem; color: #4b5563; }
.ax-diary-email-reassign select[b-pwt4hyx6er],
.ax-diary-email-reassign input[b-pwt4hyx6er] { padding: 0.45rem; min-height: 2.5rem; font: inherit; }

.ax-diary-file-unavailable[b-pwt4hyx6er] { font-size: 0.78rem; color: #9ca3af; }

/* Narrow widths: the row becomes two lines rather than truncating everything to
   nothing. Measured at 375px, where the app chrome is 125px, not 88px. */
@media (max-width: 620px) {
    .ax-diary-email-head[b-pwt4hyx6er] { gap: 0.3rem 0.5rem; }
    .ax-diary-email-who[b-pwt4hyx6er] { max-width: 100%; flex-basis: 100%; }
    .ax-diary-email-subject[b-pwt4hyx6er] { flex-basis: 100%; white-space: normal; }
    .ax-diary-email-time[b-pwt4hyx6er] { margin-left: 0; }
    .ax-diary-email-fields[b-pwt4hyx6er] { grid-template-columns: 1fr; gap: 0.05rem; }
    .ax-diary-email-fields dt[b-pwt4hyx6er] { margin-top: 0.35rem; font-weight: 600; }
    .ax-diary-email-message[b-pwt4hyx6er] { max-height: 20rem; }
}

/* WR-64 slice 5 — the record from before this was a project.
   Visually continuous with the diary rather than set apart, because it is the same
   job: the work did not begin at promotion, and a section that looked like an
   attachment would invite people to read it as one. */
.pre-project-record[b-pwt4hyx6er] {
    margin: 0 0 18px;
    border-left: 5px solid #b9b2a8;
}

.pre-project-record .pre-project-list[b-pwt4hyx6er] {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
    counter-reset: none;
}

.pre-project-record .pre-project-list li[b-pwt4hyx6er] {
    padding: 10px 14px;
    margin-bottom: 7px;
    background: var(--color-panel);
    border-radius:var(--archex-radius-small);
    border-left: 3px solid var(--color-divider);
}

.pre-project-record .pre-project-list li.promotion[b-pwt4hyx6er] {
    border-left-color: #2f7d44;
    background: var(--color-panel);
}

.pre-project-record .pre-project-head[b-pwt4hyx6er] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
}

.pre-project-record .pre-project-head time[b-pwt4hyx6er] {
    font-size: .78rem;
    color: var(--color-gunmetal);
    white-space: nowrap;
}

.pre-project-record .pre-project-list p[b-pwt4hyx6er] {
    margin: 5px 0;
    font-size: .86rem;
    line-height: 1.55;
    color: #4a4238;
}

.pre-project-record .pre-project-meta[b-pwt4hyx6er] {
    font-size: .76rem;
    color: var(--color-gunmetal);
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.pre-project-record .pre-project-meta .hash[b-pwt4hyx6er] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
}

/* Long unbroken text in the history carried from the enquiry (a provider URL, an email address)
   ran past a 258 px column to 497 px and made the whole diary 705 px wide at a 375 px phone
   width (14 September 2026). It wraps inside its row instead. */
.pre-project-record .pre-project-list li[b-pwt4hyx6er],
.pre-project-record .pre-project-head[b-pwt4hyx6er],
.pre-project-record .pre-project-list p[b-pwt4hyx6er],
.pre-project-record .pre-project-meta[b-pwt4hyx6er] {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* ---- Narrowing the diary: which job, and who -------------------------------
   Adam Deane, 25 September 2026: "ensure the diary is easy to find, filter and
   see every timestamp ... ensure that all realated job numbers assoicated with
   the project are easy".

   A second row under the view chips rather than more chips. One project's four
   ServiceM8 jobs plus a dozen people would be twenty more chips to read past;
   two named dropdowns say what the question is, and the running tally on the
   right says what the answer cost — so a diary that has been narrowed can never
   be mistaken for a diary that is short. */
.ax-diary-refine[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 6px 0 4px;
    padding: 10px 12px;
    background: var(--color-surface-muted, #f7f7f5);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
}

.ax-diary-refine-field[b-pwt4hyx6er] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.ax-diary-refine-field > span[b-pwt4hyx6er] {
    font: 800 .68rem var(--font-heading);
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #6b6b66;
    white-space: nowrap;
}

.ax-diary-refine-field select[b-pwt4hyx6er] {
    max-width: 100%;
    padding: 5px 8px;
    font-size: .82rem;
    font-family: var(--font-body);
    color: var(--color-charcoal);
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
}

.ax-diary-refine-field select:focus-visible[b-pwt4hyx6er] {
    outline: 2px solid var(--color-primary);
    outline-offset: 1px;
}

.ax-diary-tally[b-pwt4hyx6er] {
    margin-left: auto;
    font-size: .78rem;
    color: #6b6b66;
    white-space: nowrap;
}

.ax-diary-tally strong[b-pwt4hyx6er] { color: var(--color-charcoal); }

.ax-diary-reset[b-pwt4hyx6er] { font-size: .78rem; padding: 4px 10px; }

/* The job tag on a diary row.
   It carries .ax-list-button so the global hammer leaves it alone — see the
   note where it is rendered. Everything it needs is therefore set here. */
.ax-diary-job[b-pwt4hyx6er] {
    flex: none;
    padding: 1px 7px;
    font: 700 .68rem var(--font-heading);
    letter-spacing: .04em;
    color: #6b6b66;
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    cursor: pointer;
}

.ax-diary-job:hover[b-pwt4hyx6er] {
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
}

.ax-diary-job.on[b-pwt4hyx6er] {
    color: #fff;
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}

/* At phone width the two dropdowns stack and the tally stops being pushed to a
   line of its own. Checked against the rule that every page must survive 375px
   without sideways scroll. */
@media (max-width: 560px) {
    .ax-diary-refine[b-pwt4hyx6er] { gap: 8px 10px; }
    .ax-diary-refine-field[b-pwt4hyx6er] { flex: 1 1 100%; }
    .ax-diary-refine-field select[b-pwt4hyx6er] { flex: 1 1 auto; min-width: 0; }
    .ax-diary-tally[b-pwt4hyx6er] { margin-left: 0; }
}

/* ---- The diary as a record -------------------------------------------------
   Adam Deane, 25 September 2026: "there is no running diary that i could use in
   court like every other decient system … build it whatever keeps me legally
   safe."

   Everything below exists to make three facts impossible to miss: when an entry
   was actually written, what it used to say, and that a withdrawn entry was
   withdrawn rather than erased. */

/* WHAT IT PREVENTED. White Constructions [2019] NSWSC 1166 at [212]. */
.ax-diary-affected[b-pwt4hyx6er] {
    width: 100%;
    margin-top: 6px;
    padding: 8px 10px;
    font: inherit;
    font-size: .86rem;
    color: var(--color-charcoal);
    background: #fffaf4;
    border: 1px solid var(--color-primary-light, #e8cdb4);
    border-radius: var(--radius-component);
    resize: vertical;
}

.ax-diary-affected-open[b-pwt4hyx6er] {
    margin-top: 6px;
    padding: 4px 10px;
    font-size: .76rem;
}

.ax-diary-affected-note[b-pwt4hyx6er] {
    margin: 6px 0 0;
    padding: 7px 10px;
    font-size: .84rem;
    line-height: 1.5;
    background: #fffaf4;
    border-left: 3px solid var(--color-primary);
    border-radius: 0 var(--radius-component) var(--radius-component) 0;
}

.ax-diary-affected-note > span[b-pwt4hyx6er] {
    font: 800 .66rem var(--font-heading);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    margin-right: 6px;
}

/* HOW LATE IT WAS WRITTEN. Quiet under a day, marked beyond it — an entry typed
   within the hour carries no badge at all, so a badge always means something. */
.ax-diary-latency[b-pwt4hyx6er] {
    font-size: .68rem;
    color: #8a8a84;
    font-style: italic;
    white-space: nowrap;
}

.ax-diary-latency.late[b-pwt4hyx6er] {
    color: #8c6300;
    background: #fff3de;
    border-radius: 999px;
    padding: 1px 7px;
    font-style: normal;
    font-weight: 700;
}

.ax-diary-edited[b-pwt4hyx6er] {
    font-size: .66rem;
    color: #8a8a84;
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    padding: 0 6px;
}

/* A WITHDRAWN ENTRY IS STILL THERE. Struck through and faded, never removed —
   ArchEx used to delete these rows outright. */
/* ---- THE ENTRY YOU WERE BROUGHT HERE FOR ----------------------------------
   Following a "someone tagged you" notice opened the diary and scrolled to the
   right row — and then nothing distinguished it from the four hundred others.
   This is the answer to "I can see what is happening": arrive, and the row is
   already obvious without having to read the list to find it.

   IT DOES NOT FADE. An animation that has finished by the time the smooth scroll
   settles is no help at all, and on a phone the scroll is slower still. It stays
   for the visit, and it is only ever applied to the entry named in the URL. */
.ax-diary-row.brought-here[b-pwt4hyx6er] {
    background: var(--color-panel);
    box-shadow: inset 0 0 0 1px var(--color-primary-light);
    border-radius: var(--archex-radius-small);
}

    /* The kind stripe widens rather than changing colour, so the row still says
       what KIND of entry it is while also saying "this one". */
    .ax-diary-row.brought-here[b-pwt4hyx6er]::before { width: 5px; background: var(--color-primary); }

.ax-diary-row.withdrawn[b-pwt4hyx6er] { opacity: .72; }

.ax-diary-row.withdrawn .ax-diary-row-head strong[b-pwt4hyx6er],
.ax-diary-row.withdrawn .ax-diary-note[b-pwt4hyx6er] {
    text-decoration: line-through;
    text-decoration-color: #b4443a;
    text-decoration-thickness: 1px;
}

.ax-diary-withdrawn-note[b-pwt4hyx6er] {
    margin: 6px 0 0;
    padding: 6px 10px;
    font-size: .78rem;
    line-height: 1.45;
    color: #8a3f36;
    background: #fdf1ef;
    border-left: 3px solid #b4443a;
    border-radius: 0 var(--radius-component) var(--radius-component) 0;
}

/* WHAT IT USED TO SAY. */
.ax-diary-versions[b-pwt4hyx6er] { margin-top: 7px; }

.ax-diary-versions > summary[b-pwt4hyx6er] {
    font-size: .74rem;
    color: var(--color-primary-dark);
    cursor: pointer;
}

.ax-diary-version[b-pwt4hyx6er] {
    margin-top: 6px;
    padding: 7px 10px;
    background: var(--color-surface-muted, #f7f7f5);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
}

.ax-diary-version small[b-pwt4hyx6er] { display: block; color: #8a8a84; font-size: .7rem; margin-bottom: 3px; }
.ax-diary-version strong[b-pwt4hyx6er] { font-size: .84rem; }
.ax-diary-version p[b-pwt4hyx6er] { margin: 3px 0 0; font-size: .82rem; line-height: 1.45; }

@media (max-width: 560px) {
    .ax-diary-nonevent[b-pwt4hyx6er] { align-items: flex-start; }
}

/* RECORDING A NON-EVENT. There is deliberately no daily nil return — see the note
   in ProjectDiary.razor. Adam Deane: "if it records everything as it should
   recording nothing already speaks for its self … I could go for months without
   needing to work on a project." What is kept is the case that proves a negative:
   something expected that did not occur. */
.ax-diary-nonevent[b-pwt4hyx6er] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed var(--color-divider);
    font-size: .78rem;
    color: #6b6b66;
    cursor: pointer;
}

.ax-diary-nonevent input[b-pwt4hyx6er] { flex: none; }

.ax-diary-nonevent-tag[b-pwt4hyx6er] {
    font: 700 .66rem var(--font-heading);
    letter-spacing: .03em;
    color: #6b4fa8;
    background: #f2eefb;
    border: 1px solid #ddd2f2;
    border-radius: 999px;
    padding: 1px 7px;
    white-space: nowrap;
}

/* THE BOUND DAY BOOK. See ProjectDiaryExport. */
.ax-diary-print[b-pwt4hyx6er] {
    flex: none;
    padding: 5px 12px;
    font: 800 .74rem var(--font-body);
    color: var(--color-primary-dark);
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-component);
    text-decoration: none;
    white-space: nowrap;
}

.ax-diary-print:hover[b-pwt4hyx6er] { border-color: var(--color-primary); background: #fffaf4; }

/* THE ACTIONS, WHEN THE DIARY IS EMBEDDED IN THE POPUP. The modal supplies the
   title bar and the close button, so search and print sit on their own row
   rather than in a page header that is not there. */
.ax-diary-embedded-actions[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 12px 0 4px;
}

.ax-diary-embedded-actions .ax-diary-search[b-pwt4hyx6er] { flex: 1 1 220px; min-width: 0; }

/* ---- THE VIEW RAIL ---------------------------------------------------------
   Adam Deane asked for ServiceM8's shape: "the filters are little symbols on the
   side that follows you one click and you see only photos, another only emails
   and so on."

   WHAT NOT TO DO, LEARNED THE HARD WAY. The first version was `float: left` AND
   `position: sticky`. Those conflict - the float is dropped, the nav becomes a
   full-width block, and `border-radius: 999px` turns it into a white stadium
   lying across the whole page: "now i have a big blob following me down the page
   so i cant see anything."

   So: a plain horizontal row, in flow, with a normal radius. No float, no
   sticky, nothing that can size itself to the page. Boring on purpose. */
.ax-diary-rail[b-pwt4hyx6er] {
    /* STICKY, AND THAT IS SAFE HERE. Adam Deane: "the little icons dont come down
       when you scroll". What blobbed the page before was float AND sticky
       together - the float was dropped and the nav became a full-width block.
       Sticky on an ordinary in-flow element with width: fit-content cannot do
       that: it keeps its own size and simply stops scrolling away. */
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 10px 0 6px;
    padding: 4px;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    width: fit-content;
    max-width: 100%;
}

/* A FILTER SAYS WHAT IT IS. Adam Deane: "the icons look shit for the filters like my 7yr drew
   them." They were Unicode characters in a fallback font. These are drawn on a 24x24 grid at one
   stroke weight, and every one carries its word — an icon alone is a guessing game however well
   it is drawn, and this rail has seven of them. */
.ax-diary-railbtn[b-pwt4hyx6er] {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 12px 0 10px;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    color: #5f5a52;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
}

.ax-diary-railbtn svg[b-pwt4hyx6er] {
    width: 17px;
    height: 17px;
    flex: none;
    /* The icon wears the kind's colour even when the button is not chosen, so the rail reads as a
       colour key for the list below it rather than a row of grey shapes. */
    color: var(--kind-ink, #8a857c);
}

.ax-diary-railbtn:hover[b-pwt4hyx6er] {
    background: var(--kind-wash, #f4f1ec);
    border-color: var(--kind-ink, var(--color-divider));
}

.ax-diary-railbtn.on[b-pwt4hyx6er] {
    color: #fff;
    background: var(--kind-ink, var(--color-primary));
    border-color: var(--kind-ink, var(--color-primary));
}

.ax-diary-railbtn.on svg[b-pwt4hyx6er] { color: #fff; }

/* Refine opens a panel rather than choosing a view, so it sits apart. */
.ax-diary-railmore[b-pwt4hyx6er] { margin-left: 4px; border-left: 1px solid var(--color-divider); border-radius: 0 999px 999px 0; padding-left: 12px; }

/* REPLYING FROM THE DIARY. Adam Deane: "I clicked on an email and i couldnt un
   expain it or reply from that possition. Why?" */
.ax-diary-primary[b-pwt4hyx6er] {
    padding: 6px 15px;
    font: 800 .76rem var(--font-body);
    color: #fff;
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--archex-radius-small);
    cursor: pointer;
}

.ax-diary-primary:hover[b-pwt4hyx6er] { background: var(--color-primary-dark); }

/* Pushed to the far end so it reads as "leave" rather than as another action on
   the email. It exists because the header you would otherwise click to collapse
   has scrolled off the top by the time you have read a long message. */
.ax-diary-collapse[b-pwt4hyx6er] { margin-left: auto; }

.ax-diary-email-reply[b-pwt4hyx6er] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--color-divider);
}

/* ---- THE ENTRY'S OWN TYPOGRAPHY -------------------------------------------
   The heading says WHAT the entry is — "Note", "Photos", "001 - Recording
   Form". The time, the author and the job badge go on a quiet second line
   beneath, instead of competing with it on the same one. */
.ax-diary-row-head[b-pwt4hyx6er] {
    display: block;
    margin-bottom: 2px;
}

.ax-diary-row-head strong[b-pwt4hyx6er] {
    font-family: var(--font-heading);
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-charcoal);
    overflow-wrap: anywhere;
}

.ax-diary-rowmeta[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

/* The note itself, at a size meant for reading rather than for scanning.

   CLAMPED TO FOUR LINES until "Show more" is pressed. Adam Deane: "the question to
   louisa and other things a huge, should be a few sentence and the rest click to
   view like a down button or something." The whole note is still in the page - it
   is only the HEIGHT that is limited - so it searches, copies and reads aloud in
   full. */
.ax-diary-note[b-pwt4hyx6er] {
    margin: 0;
    font-size: .89rem;
    line-height: 1.55;
    color: var(--color-charcoal);
    overflow-wrap: anywhere;
    white-space: pre-wrap;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
}

    /* Opened: no clamp, and the box display goes back to normal flow so long
       paragraphs wrap the way they were written. */
    .ax-diary-note.open[b-pwt4hyx6er] {
        display: block;
        -webkit-line-clamp: none;
        line-clamp: none;
        overflow: visible;
    }

/* The control itself: quiet, and only rendered when there is more to show. */
.ax-diary-more-note[b-pwt4hyx6er] {
    margin-top: 4px;
    padding: 2px 0;
    border: 0;
    background: none;
    font: 700 .74rem var(--font-body);
    color: var(--color-primary-dark);
    cursor: pointer;
    text-decoration: underline;
}

/* EMAIL ROWS GET MORE, NOT LESS. A one-line extract of a booking email is usually
   the greeting; three lines is enough to know whether to open it. */
.ax-diary-email-summary[b-pwt4hyx6er] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
}

/* ---- ASK THE DIARY ---------------------------------------------------------
   Adam Deane: "i also want a magic button or ai button where the systems ai can
   search through the job diary and answer any questions we ask."

   The answer is shown ABOVE the sources, and the sources are always shown. A
   model reading a diary is a way of finding things quickly, not a source — so
   the panel says who wrote the answer and how many entries it read, and puts the
   entries underneath so the reader checks rather than believes. */
/* ---- WHILE IT IS READING --------------------------------------------------
   Adam Deane: "it says reading but i have no idea if it failed or what … it
   should kind feel that its … scanning the diary and finding it … the AI tool is
   the hero of the diary but it looks just a little shit."

   A bar that sweeps rather than fills. Filling implies a percentage, and the
   model reports none — a bar that fills on a timer is a lie about progress. A
   sweep says "working" and claims nothing. */
.ax-diary-scanning[b-pwt4hyx6er] {
    display: grid;
    gap: 6px;
    margin: 10px 0 4px;
    padding: 14px 16px 16px;
    border: 1px solid var(--color-primary-light);
    border-radius: var(--archex-radius-small);
    background: linear-gradient(180deg, #fffaf4 0%, #fff 100%);
}

    .ax-diary-scanning strong[b-pwt4hyx6er] {
        font: 700 .92rem var(--font-heading);
        color: var(--color-charcoal);
    }

.ax-diary-scanbar[b-pwt4hyx6er] {
    position: relative;
    display: block;
    height: 3px;
    border-radius: 3px;
    background: var(--color-divider);
    overflow: hidden;
}

    .ax-diary-scanbar[b-pwt4hyx6er]::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        width: 38%;
        border-radius: 3px;
        background: var(--color-primary);
        animation: ax-diary-sweep-b-pwt4hyx6er 1.5s ease-in-out infinite;
    }

@keyframes ax-diary-sweep-b-pwt4hyx6er {
    0%   { left: -38%; }
    100% { left: 100%; }
}

.ax-diary-scanwhat[b-pwt4hyx6er] { font-size: .78rem; color: var(--color-gunmetal); }

/* Said only once it has been going long enough to worry somebody. */
.ax-diary-scanslow[b-pwt4hyx6er] {
    margin-top: 2px;
    font-size: .76rem;
    color: var(--color-primary-dark);
}

@media (prefers-reduced-motion: reduce) {
    .ax-diary-scanbar[b-pwt4hyx6er]::after { animation: none; left: 0; width: 100%; opacity: .45; }
}

.ax-diary-ask[b-pwt4hyx6er] {
    margin: 10px 0 6px;
    padding: 12px 14px;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
}

.ax-diary-ask-row[b-pwt4hyx6er] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.ax-diary-ask-row input[b-pwt4hyx6er] {
    flex: 1 1 260px;
    min-width: 0;
    min-height: 38px;
    padding: 8px 12px;
    font-size: .86rem;
    color: var(--color-charcoal);
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
}

.ax-diary-ask-row input:focus[b-pwt4hyx6er] { outline: none; border-color: var(--color-primary); }

.ax-diary-ask-row .ax-diary-add[b-pwt4hyx6er] { margin-left: 0; min-height: 38px; }

.ax-diary-ask-answer[b-pwt4hyx6er] {
    margin: 12px 0 4px;
    font-size: .92rem;
    line-height: 1.55;
    color: var(--color-charcoal);
}

.ax-diary-ask-basis[b-pwt4hyx6er] { display: block; font-size: .72rem; color: #8a8a84; }

.ax-diary-ask-problem[b-pwt4hyx6er] {
    margin: 12px 0 0;
    font-size: .84rem;
    line-height: 1.5;
    color: #8a3f36;
}

.ax-diary-ask-sources[b-pwt4hyx6er] { margin: 10px 0 0; padding-left: 18px; display: grid; gap: 6px; }

.ax-diary-ask-sources li[b-pwt4hyx6er] { font-size: .78rem; line-height: 1.45; color: #6b6b66; }
.ax-diary-ask-sources li strong[b-pwt4hyx6er] { color: var(--color-charcoal); }
.ax-diary-ask-sources li span[b-pwt4hyx6er] { display: block; color: #8a8a84; overflow-wrap: anywhere; }

/* THE RECORDING FORMS THE ANSWER CAME OFF, set apart from the diary entries because they are a
   different kind of evidence: a measurement sheet rather than something somebody wrote down. */
.ax-diary-ask-forms[b-pwt4hyx6er] {
    margin: 10px 0 0;
    padding: 8px 10px 8px 26px;
    display: grid;
    gap: 4px;
    border-left: 3px solid var(--color-sandstone);
    background: rgba(217, 162, 107, .10);
    border-radius: 0 6px 6px 0;
}

.ax-diary-ask-forms li[b-pwt4hyx6er] { font-size: .78rem; line-height: 1.45; color: #5f5f5a; }

/* Questions you can click. A suggestion you have to retype is a suggestion nobody uses. */
/* ---- RECORDING FORMS TO CHECK ----------------------------------------------
   One line until opened, and absent entirely when there is nothing. Sandstone
   rather than red: this is "look at this", not "something is wrong" — whether an
   abandoned auger needs a form is an archaeologist's call, not the machine's. */
.ax-diary-gaps[b-pwt4hyx6er] {
    margin: 10px 0 0;
    border: 1px solid var(--color-sandstone);
    border-radius: var(--archex-radius-small);
    background: rgba(217, 162, 107, .10);
    overflow: hidden;
}

.ax-diary-gaps-open[b-pwt4hyx6er] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    font-size: .82rem;
    font-weight: 600;
    text-align: left;
    color: #7a5520;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.ax-diary-gaps-open svg[b-pwt4hyx6er] { width: 18px; height: 18px; flex: none; }
.ax-diary-gaps-open span[b-pwt4hyx6er] { flex: 1 1 auto; min-width: 0; }
.ax-diary-gaps-open small[b-pwt4hyx6er] { font-weight: 600; font-size: .72rem; color: #9a7540; }
.ax-diary-gaps-open:hover[b-pwt4hyx6er] { background: rgba(217, 162, 107, .16); }

.ax-diary-gaps-list[b-pwt4hyx6er] {
    margin: 0;
    padding: 2px 12px 12px 30px;
    display: grid;
    gap: 12px;
    list-style: disc;
}

.ax-diary-gaps-list li[b-pwt4hyx6er] { font-size: .8rem; line-height: 1.5; color: var(--color-charcoal); }
.ax-diary-gaps-list strong[b-pwt4hyx6er] { display: block; }

.ax-diary-gaps-quote[b-pwt4hyx6er] {
    display: block;
    margin-top: 3px;
    color: #6b6660;
    font-style: italic;
    overflow-wrap: anywhere;
}

.ax-diary-gaps-list small[b-pwt4hyx6er] { display: block; margin-top: 3px; color: #8a857c; font-size: .72rem; }

.ax-diary-ask-examples[b-pwt4hyx6er] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

.ax-diary-ask-example[b-pwt4hyx6er] {
    padding: 6px 11px;
    font-size: .74rem;
    line-height: 1.3;
    text-align: left;
    color: #5f5a52;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    cursor: pointer;
}

.ax-diary-ask-example:hover[b-pwt4hyx6er] {
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
    background: #fffaf4;
}

/* ======================================================================
   THE DIARY ON A PHONE
   ======================================================================
   Adam Deane: "It need to be accessable by my staff everywhere they go,
   like servicem8, as i have said every day." Once ServiceM8 is gone this
   is how field staff write the record - standing in a paddock, one hand,
   on a phone - so the diary has to work at 375 px or it does not work.

   None of what was built on 26 September had a phone rule: the filter rail
   is nine labelled pills with nowrap, which at 375 px wraps into a wall of
   buttons taller than the screen with the entries pushed off the bottom. */
@media (max-width: 560px) {

    /* ONE SWIPEABLE ROW, NOT A WALL. The labels stay - an icon with no word
       is a guessing game, which is the fault this rail was rebuilt to fix -
       so the row scrolls sideways instead of wrapping. Scrolling ONE strip
       sideways is normal on a phone; scrolling the PAGE sideways is the bug
       this practice has hit twice, so the strip is clipped, not the page. */
    .ax-diary-rail[b-pwt4hyx6er] {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        max-width: 100%;
        width: 100%;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        gap: 2px;
        padding: 4px 2px;
    }

    .ax-diary-rail[b-pwt4hyx6er]::-webkit-scrollbar { display: none; }

    .ax-diary-railbtn[b-pwt4hyx6er] {
        flex: 0 0 auto;
        height: 38px;             /* a thumb, not a mouse pointer */
        padding: 0 11px 0 9px;
        font-size: .76rem;
    }

    /* The left rule would sit mid-scroll and read as a broken edge. */
    .ax-diary-railmore[b-pwt4hyx6er] { border-left: 0; margin-left: 0; border-radius: 999px; }

    /* ---- EVERYTHING ELSE BUILT TODAY, AT 375 px ---------------------- */

    /* A file row is badge + name + arrow. At 375 the name needs the room,
       so the badge shrinks and the row stays one line per file. */
    .ax-diary-file[b-pwt4hyx6er] { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; padding: 8px; }
    .ax-diary-file-badge[b-pwt4hyx6er] { min-width: 38px; font-size: .6rem; }
    .ax-diary-file-copy b[b-pwt4hyx6er] { font-size: .78rem; }

    /* Tap targets. 44 px is the smallest a thumb reliably hits. */
    .ax-diary-open-mark[b-pwt4hyx6er] { width: 20px; height: 20px; }

    /* The recording-form questions panel and the Ask box both stack. */
    .ax-diary-gaps-open[b-pwt4hyx6er] { padding: 12px; font-size: .8rem; }
    .ax-diary-gaps-list[b-pwt4hyx6er] { padding-left: 24px; padding-right: 10px; }
    .ax-diary-gaps-quote[b-pwt4hyx6er] { font-size: .76rem; }

    .ax-diary-ask-row[b-pwt4hyx6er] { flex-direction: column; align-items: stretch; gap: 8px; }
    .ax-diary-ask-row input[b-pwt4hyx6er] { width: 100%; }
    .ax-diary-ask-example[b-pwt4hyx6er] { font-size: .72rem; padding: 8px 12px; }

    /* Long file names and Munsell cells must wrap, never widen the page. */
    .ax-diary-ask-forms li[b-pwt4hyx6er],
    .ax-diary-ask-sources li span[b-pwt4hyx6er] { overflow-wrap: anywhere; }

    /* The kind stripe and the icon disc: keep the colour, save the width. */
    .ax-diary-row[b-pwt4hyx6er] { grid-template-columns: 26px minmax(0, 1fr); gap: 10px; padding-left: 12px; }
    .ax-diary-icon[b-pwt4hyx6er] { width: 26px; height: 26px; }
    .ax-diary-icon svg[b-pwt4hyx6er] { width: 15px; height: 15px; }

    /* NOTHING MAY PUSH THE PAGE SIDEWAYS. Checked at 375 px: a single
       element wider than the viewport makes every page on the phone scroll
       horizontally, and it has happened here twice - once from display:flex
       beating [hidden], once from a closed details panel. */
    .ax-diary-composer[b-pwt4hyx6er],
    .ax-diary-gaps[b-pwt4hyx6er],
    .ax-diary-ask[b-pwt4hyx6er] { max-width: 100%; }

    .ax-diary-dropsign span[b-pwt4hyx6er] { font-size: .74rem; text-align: center; padding: 0 10px; }
}

/* ---- WHO YOU MEAN, WHILE YOU TYPE ------------------------------------------
   Sits directly under the note box because that is where the eye already is,
   and every row is a real account - so a tag either names somebody who exists
   or it is not offered. */
.ax-diary-mentions[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: -4px 0 0;
    padding: 8px;
    border: 1px solid var(--color-primary-light);
    border-radius: var(--archex-radius-small);
    background: #fffaf4;
}

.ax-diary-mention[b-pwt4hyx6er] {
    padding: 7px 13px;
    font: 700 .76rem var(--font-body);
    color: var(--color-primary-dark);
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    cursor: pointer;
}

.ax-diary-mention:hover[b-pwt4hyx6er],
.ax-diary-mention:focus-visible[b-pwt4hyx6er] {
    border-color: var(--color-primary);
    background: var(--color-panel);
}

/* On a phone the list is one tap target per row - a 28px pill between two
   others is not something a thumb hits while standing in a paddock. */
@media (max-width: 560px) {
    .ax-diary-mentions[b-pwt4hyx6er] { flex-direction: column; }
    .ax-diary-mention[b-pwt4hyx6er] { width: 100%; text-align: left; padding: 11px 14px; font-size: .8rem; }
}

/* ---- A TAGGED NAME, INSIDE A NOTE ------------------------------------------
   Adam Deane wanted to scan the diary and see what concerns him. A name in the
   middle of a page of site notes is not scannable, so it is marked.

   Three states, because they mean three different things:
     a name        somebody was asked
     YOUR name     you were asked
     unknown       nobody was asked, and ServiceM8 would never have said so */
.ax-diary-tag[b-pwt4hyx6er] {
    display: inline;
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(242, 108, 33, .10);
    color: var(--color-primary-dark);
    font-weight: 700;
    white-space: nowrap;
}

/* Yours is the one you are scanning for, so it is the one that is solid. */
.ax-diary-tag.me[b-pwt4hyx6er] {
    background: var(--color-primary);
    color: #fff;
}

/* A name that tagged nobody. Struck through rather than coloured red: nothing
   is wrong with the note, the name simply reached no one. */
.ax-diary-tag.unknown[b-pwt4hyx6er] {
    background: transparent;
    color: #8a857c;
    font-weight: 600;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

/* ---- EARLIER ENTRIES -------------------------------------------------------
   The diary draws the most recent entries and says how many are further back.
   Centred and quiet: it is the end of the list, not an action anybody came for. */
.ax-diary-more[b-pwt4hyx6er] {
    display: grid;
    justify-items: center;
    gap: 6px;
    padding: 18px 0 6px;
}

.ax-diary-more small[b-pwt4hyx6er] { color: #8a857c; font-size: .72rem; }

@media (max-width: 560px) {
    .ax-diary-more button[b-pwt4hyx6er] { width: 100%; padding: 12px; }
}

/* ---- CORRECTING THE RECORD -------------------------------------------------
   Quiet by default. Correcting a diary entry is a deliberate act, not something
   to trip over while reading, so the two actions sit small and plain under the
   entry and only open a form when chosen. */
.ax-diary-recordacts[b-pwt4hyx6er] { display: flex; gap: 8px; margin-top: 8px; }

.ax-diary-recordact[b-pwt4hyx6er] {
    padding: 4px 10px;
    font: 600 .7rem var(--font-body);
    color: #7a756c;
    background: transparent;
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    cursor: pointer;
}

.ax-diary-recordact:hover[b-pwt4hyx6er] {
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
    background: #fffaf4;
}

.ax-diary-amend[b-pwt4hyx6er] {
    display: grid;
    gap: 9px;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid var(--color-primary-light);
    border-radius: var(--archex-radius-small);
    background: #fffaf4;
}

.ax-diary-amend label[b-pwt4hyx6er] { display: grid; gap: 4px; font: 700 .72rem var(--font-body); color: #5f5a52; }

.ax-diary-amend textarea[b-pwt4hyx6er],
.ax-diary-amend input[b-pwt4hyx6er] {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    font: 400 .84rem/1.45 var(--font-body);
    color: var(--color-charcoal);
}

.ax-diary-amend textarea:focus[b-pwt4hyx6er],
.ax-diary-amend input:focus[b-pwt4hyx6er] {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(242, 108, 33, .13);
}

@media (max-width: 560px) {
    .ax-diary-recordacts[b-pwt4hyx6er] { flex-wrap: wrap; }
    .ax-diary-recordact[b-pwt4hyx6er] { padding: 8px 14px; font-size: .74rem; }
    .ax-diary-amend[b-pwt4hyx6er] { padding: 10px; }
}

/* ---- WHICH PART OF THE JOB: CHMP / SALVAGE / COMPLIANCE ----------------------------------
   Adam Deane, 27 September 2026: "you go into the diary on schreenance and then you options
   are CHMP information/data or Salvage ... and a complience on for fencing, inductions".

   Bigger than the rail below it because it is asked first and answered once, where the rail
   is fiddled with all day. .ax-list-button opts these out of the global button hammer; the
   chosen one is said with a colour AND a weight AND aria-current, never colour alone. */
.ax-diary-streams[b-pwt4hyx6er] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 12px;
}

.ax-diary-stream[b-pwt4hyx6er] {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    padding: 9px 16px;
    border: 1px solid var(--color-divider);
    border-radius: 999px;
    background: #fff;
    font: 700 .82rem var(--font-body);
    color: var(--color-charcoal);
    cursor: pointer;
}

.ax-diary-stream:hover[b-pwt4hyx6er] { border-color: var(--color-primary); }

.ax-diary-stream.on[b-pwt4hyx6er] {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

.ax-diary-stream small[b-pwt4hyx6er] {
    font-weight: 400;
    font-size: .72rem;
    opacity: .75;
}

/* The unplaced correspondence line. Full width so it sits under the buttons, not beside them. */
.ax-diary-streams-note[b-pwt4hyx6er] {
    flex-basis: 100%;
    margin: 2px 0 0;
    font: 400 .74rem/1.45 var(--font-body);
    color: var(--color-gunmetal);
}

@media (max-width: 560px) {
    .ax-diary-stream[b-pwt4hyx6er] { padding: 8px 13px; font-size: .78rem; }
}

/* ---- THE DIARY ON A PHONE, SECOND PASS (1 October 2026) --------------------
   Adam Deane, trying it on his phone and saying so through the new feedback
   button: "This is not user friendly very confusing. Needs some very serious
   looking at ... It's terrible tbh." The screen he sent showed why. The first
   screen was all controls and no diary: search, Print the diary, dates, the
   note box, "Did this happen earlier?", "Did this hold anything up?", Take
   photo, Attach photographs, Attach documents, Add entry, a hint and a
   checkbox - then the views, running off the right edge at "Field r…". He had
   come to try the recording forms, and the diary had no way to start one.

   On a phone now: the note box; Take photo and Recording form side by side;
   Add entry across the width; "More options" for everything else, which is all
   still there one tap away. Every view shows at once, four to a row. Print and
   the date range are office work and stay on the larger screens.

   None of this applies above 560 px, and the desktop is exactly as it was. */

/* The way into the recording forms is for touch screens, like the camera
   (see the comment on .ax-diary-camera for why a pointer, not a width). */
.ax-diary-formlink[b-pwt4hyx6er] { display: none; text-decoration: none; }

@media (pointer: coarse) {
    .ax-diary-formlink[b-pwt4hyx6er] { display: inline-flex; justify-content: center; }
}

/* The switch only exists on a phone; above that width everything shows anyway. */
.ax-diary-more-toggle[b-pwt4hyx6er] { display: none; }

@media (max-width: 560px) {
    .ax-diary-print[b-pwt4hyx6er],
    .ax-diary-print-range[b-pwt4hyx6er] { display: none; }

    .ax-diary-embedded-actions .ax-diary-search[b-pwt4hyx6er] { flex-basis: 100%; }

    /* What "More options" holds, until it is opened. */
    .ax-diary-composer:not(.more-open) .ax-diary-affected-open[b-pwt4hyx6er],
    .ax-diary-composer:not(.more-open) .ax-diary-attach:not(.ax-diary-camera):not(.ax-diary-formlink)[b-pwt4hyx6er],
    .ax-diary-composer:not(.more-open) .ax-diary-hint[b-pwt4hyx6er],
    .ax-diary-composer:not(.more-open) .ax-diary-nonevent[b-pwt4hyx6er] { display: none; }

    .ax-diary-composer textarea[b-pwt4hyx6er] { min-height: 60px; }

    /* Take photo and Recording form share a row; Add entry has the next one. */
    .ax-diary-composer-actions[b-pwt4hyx6er] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .ax-diary-composer-actions > *[b-pwt4hyx6er] { min-height: 46px; justify-content: center; text-align: center; }
    .ax-diary-add[b-pwt4hyx6er] { grid-column: 1 / -1; margin-left: 0; min-height: 48px; font-size: .86rem; }

    /* Opened, the extra controls come in UNDER the switch that opened them -
       the composer is a grid, so this is order, not moved markup. A date or a
       hold-up already filled in stays on show with the switch shut. */
    .ax-diary-more-toggle[b-pwt4hyx6er] {
        order: 1;
        display: block;
        justify-self: start;
        padding: 4px 2px;
        border: 0;
        background: none;
        color: var(--color-primary-dark);
        font: 700 .8rem var(--font-body);
        cursor: pointer;
    }

    .ax-diary-more-toggle[b-pwt4hyx6er]::after { content: " ▾"; }
    .ax-diary-composer.more-open .ax-diary-more-toggle[b-pwt4hyx6er]::after { content: " ▴"; }

    .ax-diary-happened[b-pwt4hyx6er],
    .ax-diary-affected-open[b-pwt4hyx6er],
    .ax-diary-affected[b-pwt4hyx6er] { order: 2; }

    .ax-diary-hint[b-pwt4hyx6er],
    .ax-diary-nonevent[b-pwt4hyx6er] { order: 3; }

    /* EVERY VIEW AT ONCE. The swipeable row hid half of them past the edge, and
       a view nobody can see is a view nobody uses. Nine buttons, five to a row,
       the drawing above the word. Words wrap only at a space - drawn first with
       the word beside the drawing, "Photos" came out as "Phot / os". */
    .ax-diary-rail[b-pwt4hyx6er] {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        overflow: visible;
        width: 100%;
        gap: 3px;
        padding: 4px;
    }

    .ax-diary-railbtn[b-pwt4hyx6er] {
        height: auto;
        min-height: 46px;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 3px;
        padding: 5px 2px;
        white-space: normal;
        overflow-wrap: normal;
        word-break: normal;
        text-align: center;
        line-height: 1.1;
        font-size: .66rem;
        border-radius: 10px;
    }

    .ax-diary-railbtn span[b-pwt4hyx6er] { overflow-wrap: normal; word-break: normal; }
    .ax-diary-railbtn svg[b-pwt4hyx6er] { width: 16px; height: 16px; }
}
/* /Components/Shared/ProjectParties.razor.rz.scp.css */
/* THIS COMPONENT OWNS ITS COMPLETE STYLING, AND HAS TO.

   Blazor's scoped CSS stops at the component boundary: .work-card, .card-action
   and .empty-compact all live in ProjectWorkspace.razor.css and none of them
   reach the markup rendered here, so a card that inherited them would arrive on
   the page with no border, no padding and a bare blue link.

   ProjectPhotosCard.razor.css already carries the same note and the same values
   for the same reason. That makes this the SECOND copy, which is the point at
   which the duplication should be called what it is: if a third card needs it,
   .work-card belongs in wwwroot/css/archex-components.css, not pasted again.
   The values below match ProjectWorkspace.razor.css exactly — same border,
   radius, shadow, padding and heading treatment — so the card sits in the grid
   indistinguishable from the ones beside it. */

.parties-card[b-4lralvcuw6] {
    min-width: 0;
    border: 1px solid #ddd;
    border-radius: var(--archex-radius-small);
    background: #fff;
    box-shadow: var(--archex-shadow);
    padding: 15px;
}

.parties-card header[b-4lralvcuw6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 13px;
}

.parties-card header h2[b-4lralvcuw6] {
    margin: 0;
    font-family: var(--font-heading);
    font-size: .79rem;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.empty-compact[b-4lralvcuw6] { margin: 6px 0; color: #777; font-size: .73rem; }

.card-action[b-4lralvcuw6] {
    display: inline-block;
    margin-top: 14px;
    padding: 7px 16px;
    border: 1px solid var(--color-primary);
    border-radius: var(--archex-radius-small);
    background: var(--color-primary);
    color: #fff;
    font: 800 .78rem var(--font-body);
    text-decoration: none;
    cursor: pointer;
}

.card-action:hover[b-4lralvcuw6] { background: var(--color-primary-dark); }

/* ---- The party lines -------------------------------------------------------
   Adam Deane, 25 September 2026: "there is all information filled out, abn,
   acn, job contact, is there a represeative for the project, sponsors name all
   that above and beyond."

   The design rule: a line that is known and a line that nobody has answered
   must not look the same. A blank or a dash reads as "nothing to say here",
   when what it means is "this has not been established" — and on a statutory
   notice those are very different. */

.parties-source[b-4lralvcuw6] {
    font: 700 .64rem var(--font-heading);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b6b66;
    white-space: nowrap;
}

.parties-list[b-4lralvcuw6] { margin: 0; display: grid; gap: 12px; }

.parties-row[b-4lralvcuw6] {
    display: grid;
    grid-template-columns: 148px minmax(0, 1fr);
    gap: 4px 14px;
    align-items: baseline;
}

.parties-row dt[b-4lralvcuw6] {
    font: 800 .66rem var(--font-heading);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b6b66;
}

.parties-row dd[b-4lralvcuw6] { margin: 0; min-width: 0; }
.parties-row dd strong[b-4lralvcuw6] { font-size: .95rem; overflow-wrap: anywhere; }

.parties-row.missing .parties-unknown[b-4lralvcuw6] {
    font-style: italic;
    font-size: .85rem;
    color: #8a8a84;
}

.parties-detail[b-4lralvcuw6] {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 2px;
}

.parties-detail li[b-4lralvcuw6] {
    font-size: .82rem;
    color: var(--color-charcoal);
    overflow-wrap: anywhere;
}

.parties-basis[b-4lralvcuw6] {
    display: block;
    margin-top: 3px;
    font-size: .72rem;
    color: #8a8a84;
}

/* The open questions. One edge, not a box: a project whose sponsor has not been
   settled is normal at this stage, not broken, and an alarm-coloured panel
   would teach the reader to ignore it. */
.parties-open[b-4lralvcuw6] {
    margin-top: 14px;
    padding: 10px 12px;
    border-left: 3px solid var(--color-primary);
    background: #f7f7f5;
    border-radius: 0 var(--archex-radius-small) var(--archex-radius-small) 0;
}

.parties-open h3[b-4lralvcuw6] {
    margin: 0 0 6px;
    font: 800 .66rem var(--font-heading);
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--color-charcoal);
}

.parties-open ul[b-4lralvcuw6] { margin: 0; padding-left: 16px; display: grid; gap: 6px; }
.parties-open li[b-4lralvcuw6] { font-size: .83rem; line-height: 1.5; }

@media (max-width: 560px) {
    .parties-row[b-4lralvcuw6] { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
/* /Components/Shared/PromptHost.razor.rz.scp.css */
/* ================================================================================================
   THE THING THAT COMES TO YOU (25 September 2026)

   Adam Deane wanted a popup "that looks fuckn amazing". What that means in practice, and what this
   is built to do:

   IT STOPS YOU. Centred, over a dimmed page, with nothing else pressable. A notice at the edge of
   the screen is a notice you finish your sentence and then ignore.

   IT IS READ IN THREE SECONDS. One mark, one line of eyebrow, one heading, two sentences, one
   button. The reasoning is behind a fold because a person who wants it will ask for it and a person
   who does not is being delayed.

   IT ARRIVES RATHER THAN APPEARING. A short rise and fade, once. Anything longer is a thing you
   wait for; anything bouncier is a toy. And it is dropped entirely for anybody who has asked their
   machine to stop animating things.

   Brand colours only — the ochre and the warm neutrals — because those are the one thing Adam
   asked to keep.
   ================================================================================================ */

.ax-prompt-backdrop[b-l54jsmiysh] {
    position: fixed;
    inset: 0;
    z-index: 900;

    background: rgba(28, 25, 22, 0.55);
    backdrop-filter: blur(3px);

    animation: ax-prompt-dim-b-l54jsmiysh 180ms ease-out both;
}

.ax-prompt[b-l54jsmiysh] {
    position: fixed;
    z-index: 901;
    top: 50%;
    left: 50%;

    width: min(560px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    overflow-y: auto;

    padding: 32px 34px 26px;

    border: 1px solid var(--archex-border, #E3DCD1);
    border-radius: 14px;
    background: var(--archex-white, #FFFFFF);
    box-shadow: 0 24px 70px rgba(28, 25, 22, 0.32), 0 2px 8px rgba(28, 25, 22, 0.12);

    /* The ochre edge is the only colour on the card, and it is the brand's. */
    border-top: 4px solid var(--archex-ochre, #F26C21);

    animation: ax-prompt-arrive-b-l54jsmiysh 240ms cubic-bezier(0.16, 0.84, 0.44, 1) both;
}

@keyframes ax-prompt-dim-b-l54jsmiysh {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ax-prompt-arrive-b-l54jsmiysh {
    from { opacity: 0; transform: translate(-50%, calc(-50% + 14px)) scale(0.985); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* ASKED TO STOP MOVING, SO IT STOPS. Not a nicety: motion sensitivity is a real condition and a
   modal that lurches at somebody who has switched animation off is a fault. It still arrives — it
   just arrives already there. */
@media (prefers-reduced-motion: reduce) {
    .ax-prompt-backdrop[b-l54jsmiysh],
    .ax-prompt[b-l54jsmiysh] {
        animation: none;
    }

    .ax-prompt[b-l54jsmiysh] {
        transform: translate(-50%, -50%);
    }
}

.ax-prompt-mark[b-l54jsmiysh] {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;
    margin-bottom: 18px;

    border-radius: 12px;
    background: var(--archex-panel, #F2EDE6);
    color: var(--archex-ochre-strong, #D85A14);
    font-size: 1.35rem;
    line-height: 1;
}

.ax-prompt-eyebrow[b-l54jsmiysh] {
    margin: 0;
    color: var(--archex-ochre-strong, #D85A14);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ax-prompt-title[b-l54jsmiysh] {
    /* SET, NOT INHERITED — a global heading colour is why headings elsewhere in this application
       rendered near-black on near-black surfaces. */
    margin: 8px 0 0;
    color: var(--archex-text, #2B2B2B);
    font-family: var(--archex-font-heading, inherit);
    font-size: 1.5rem;
    line-height: 1.22;
}

.ax-prompt-body[b-l54jsmiysh] {
    margin: 12px 0 0;
    color: var(--archex-muted, #3B3B3B);
    font-size: 1rem;
    line-height: 1.6;
}

.ax-prompt-detail[b-l54jsmiysh] {
    margin-top: 16px;
}

.ax-prompt-detail summary[b-l54jsmiysh] {
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.86rem;
    cursor: pointer;
}

.ax-prompt-detail p[b-l54jsmiysh] {
    margin: 10px 0 0;
    padding: 12px 14px;
    border-radius: 8px;
    background: var(--archex-panel, #F2EDE6);
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.9rem;
    line-height: 1.6;
}

.ax-prompt-note[b-l54jsmiysh] {
    margin-top: 18px;
}

.ax-prompt-note span[b-l54jsmiysh] {
    display: block;
    margin-bottom: 6px;
    color: var(--archex-muted, #3B3B3B);
    font-size: 0.85rem;
}

.ax-prompt-note input[b-l54jsmiysh] {
    width: 100%;
}

/* THE BUTTONS. The one that answers is first and solid; the one that takes you away is quiet; the
   one that disagrees is quieter still and never red, because disagreeing is an ordinary thing to
   do and colouring it like a hazard discourages the honesty this depends on. */
.ax-prompt-do[b-l54jsmiysh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 24px;
}

.ax-prompt-do .primary-button[b-l54jsmiysh] {
    min-width: 132px;
}

.ax-prompt-when[b-l54jsmiysh] {
    margin: 16px 0 0;
    color: var(--archex-faint, #6E6E6E);
    font-size: 0.78rem;
}

/* ---- NARROW -----------------------------------------------------------------------------------

   On a phone it sits at the bottom rather than the middle: a centred card pushes its buttons under
   the thumb's reach, and this is a thing people will answer one-handed while doing something else. */

@media (max-width: 560px) {
    .ax-prompt[b-l54jsmiysh] {
        top: auto;
        bottom: 0;
        left: 0;

        width: 100%;
        max-height: 86vh;
        padding: 26px 20px 22px;

        border-radius: 16px 16px 0 0;
        border-left: 0;
        border-right: 0;
        border-bottom: 0;

        transform: none;
        animation: ax-prompt-arrive-sheet-b-l54jsmiysh 240ms cubic-bezier(0.16, 0.84, 0.44, 1) both;
    }

    @keyframes ax-prompt-arrive-sheet-b-l54jsmiysh {
        from { opacity: 0; transform: translateY(18px); }
        to { opacity: 1; transform: translateY(0); }
    }

    @media (prefers-reduced-motion: reduce) {
        .ax-prompt[b-l54jsmiysh] { animation: none; transform: none; }
    }

    .ax-prompt-do > *[b-l54jsmiysh] {
        flex: 1 1 auto;
    }
}

/* THE WAY OUT (25 September 2026).

   Adam Deane, locked out of the application by the first version: "i cant use the app at the minute
   cos the pop up for the booking is there and there is no way to close it."

   Top-right, where every close button in the world is. Quiet until you go near it, because it is
   the escape and not the action — but always there, always reachable, and never smaller than a
   fingertip. */

.ax-prompt-close[b-l54jsmiysh] {
    position: absolute;
    top: 12px;
    right: 12px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;
    padding: 0;

    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--archex-faint, #6E6E6E);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.ax-prompt-close:hover[b-l54jsmiysh],
.ax-prompt-close:focus-visible[b-l54jsmiysh] {
    background: var(--archex-panel, #F2EDE6);
    color: var(--archex-text, #2B2B2B);
}

@media (pointer: coarse) {
    .ax-prompt-close[b-l54jsmiysh] { width: 44px; height: 44px; }
}

/* SAID, NOT LEFT TO BE GUESSED. A close button on a modal usually means "gone" — here it means
   "not now", and the difference matters enough to spend a line on. */
.ax-prompt-escape[b-l54jsmiysh] {
    display: block;
    margin-top: 2px;
}
/* /Components/Shared/TeamChat.razor.rz.scp.css */
/* THE TOP BAR'S CHAT (24 September 2026).

   Deliberately the same shape, badge, backdrop and panel geometry as NotificationBell beside it:
   two buttons an inch apart that behave differently is how a top bar stops feeling like one thing.
   Tokens only - no hard-coded colours except the message bubbles, which need a tint that exists
   nowhere else in the system. */

.chat-wrap[b-h6r4593jt8] { position: relative; display: inline-flex; }

/* The same badge language as the bell and the launcher tiles: a number in a red circle means
   "this many things are waiting", everywhere in ArchEx. */
.chat-count[b-h6r4593jt8] {
    position: absolute;
    top: -2px;
    right: -3px;
    display: grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border: 2px solid var(--archex-rail-bg, var(--color-charcoal));
    border-radius: 999px;
    background: var(--color-danger);
    color: var(--color-surface);
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.chat-backdrop[b-h6r4593jt8] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    background: transparent;
}

.chat-panel[b-h6r4593jt8] {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 3001;
    width: min(380px, calc(100vw - 32px));
    max-height: min(520px, 74vh);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-medium);
    background: var(--color-surface);
    box-shadow: var(--shadow-dialog, 0 18px 42px rgba(31, 31, 31, .22));
    color: var(--color-charcoal);
}

.chat-head[b-h6r4593jt8] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--color-divider);
    font-family: var(--font-heading);
}

.chat-head strong[b-h6r4593jt8] { font-size: var(--archex-text-md, 17px); flex: 1 1 auto; min-width: 0; }
.chat-head a[b-h6r4593jt8] { font-family: var(--font-body); font-size: var(--archex-text-xs, 12px); font-weight: 700; }

.chat-back[b-h6r4593jt8] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: var(--archex-radius-small);
    background: var(--color-panel);
    color: var(--color-charcoal);
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
}

.chat-back:hover[b-h6r4593jt8] { background: var(--color-divider); }

.chat-empty[b-h6r4593jt8] {
    margin: 0;
    padding: 30px 22px;
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    text-align: center;
    line-height: 1.5;
}

/* ---- the team, as faces ----------------------------------------------------
   Adam Deane, of ServiceM8's staff panel: "i dont like the sytle but i like how its so easy."
   The idea is theirs - the people ARE the interface, and clicking one is the conversation. The
   style is ours: initials in a ring rather than clip-art, and the practice's own colour for the
   one thing that needs attention. */
.chat-people[b-h6r4593jt8] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(62px, 1fr));
    gap: 4px;
    padding: 12px 10px;
    border-bottom: 1px solid var(--color-divider);
}

.chat-person-wrap[b-h6r4593jt8] { position: relative; }

.chat-person[b-h6r4593jt8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 100%;
    padding: 7px 2px;
    border: 0;
    border-radius: var(--archex-radius-small);
    background: transparent;
    color: var(--color-charcoal);
    font: inherit;
    cursor: pointer;
}

.chat-person:hover[b-h6r4593jt8] { background: var(--color-panel); }
.chat-person:disabled[b-h6r4593jt8] { opacity: .55; cursor: default; }

.chat-face[b-h6r4593jt8] {
    position: relative;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--color-panel);
    border: 2px solid transparent;
    color: var(--color-gunmetal);
    font-size: var(--archex-text-sm, 13.5px);
    font-weight: 800;
}

/* Someone waiting on you gets the ring. Nothing else in this panel is ochre, so it is the only
   thing your eye goes to. */
.chat-face.has-unread[b-h6r4593jt8] {
    border-color: var(--archex-ochre, #F26C21);
    background: var(--color-surface);
    color: var(--color-charcoal);
}

.chat-facecount[b-h6r4593jt8] {
    position: absolute;
    top: -4px;
    right: -6px;
    display: grid;
    place-items: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid var(--color-surface);
    border-radius: 999px;
    background: var(--color-danger);
    color: var(--color-surface);
    font-size: 10px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.chat-personname[b-h6r4593jt8] {
    max-width: 100%;
    font-size: 11px;
    font-weight: 700;
    color: var(--color-gunmetal);
}

/* The caret, small and out of the way - the face is the target that matters. */
.chat-caret[b-h6r4593jt8] {
    position: absolute;
    top: 4px;
    right: 2px;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: var(--archex-radius-small);
    background: transparent;
    color: var(--color-gunmetal);
    font-size: 11px;
    line-height: 1;
    cursor: pointer;
    opacity: .55;
}

.chat-person-wrap:hover .chat-caret[b-h6r4593jt8] { opacity: 1; background: var(--color-panel); }
.chat-caret[aria-expanded="true"][b-h6r4593jt8] { opacity: 1; background: var(--color-divider); }

.chat-menu[b-h6r4593jt8] {
    position: absolute;
    top: calc(100% - 4px);
    left: 0;
    z-index: 5;
    min-width: 210px;
    padding: 5px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-surface);
    box-shadow: var(--shadow-dialog, 0 12px 28px rgba(31, 31, 31, .2));
    text-align: left;
}

.chat-menu button[b-h6r4593jt8],
.chat-menu a[b-h6r4593jt8],
.chat-menu .chat-locate[b-h6r4593jt8],
.chat-menu .chat-menu-none[b-h6r4593jt8] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    border: 0;
    border-radius: var(--archex-radius-small);
    background: transparent;
    color: var(--color-charcoal);
    font: inherit;
    font-size: var(--archex-text-xs, 12px);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.chat-menu button:hover[b-h6r4593jt8],
.chat-menu a:hover[b-h6r4593jt8] { background: var(--color-panel); }

/* Not actions - things ArchEx knows. They read as information, not as buttons that do nothing. */
.chat-menu .chat-locate[b-h6r4593jt8],
.chat-menu .chat-menu-none[b-h6r4593jt8] { cursor: default; color: var(--color-gunmetal); line-height: 1.4; }

.chat-menu-icon[b-h6r4593jt8] { flex: 0 0 auto; width: 14px; text-align: center; opacity: .8; }
.chat-locate-copy[b-h6r4593jt8] { min-width: 0; }

/* The last person in a row would open a menu off the edge of the panel. */
.chat-person-wrap:nth-child(3n) .chat-menu[b-h6r4593jt8],
.chat-person-wrap:last-child .chat-menu[b-h6r4593jt8] { left: auto; right: 0; }

/* ---- the conversations ---------------------------------------------------- */
.chat-listhead[b-h6r4593jt8] {
    padding: 10px 14px 4px;
    font-family: var(--font-heading);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-gunmetal);
}

.chat-list[b-h6r4593jt8] { overflow-y: auto; padding: 6px; }

.chat-row[b-h6r4593jt8] {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
    width: 100%;
    padding: 10px;
    border: 0;
    border-radius: var(--archex-radius-small);
    background: transparent;
    color: var(--color-charcoal);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.chat-row:hover[b-h6r4593jt8] { background: var(--color-panel); }

/* Unread is weight, not colour. A list where every unread row is tinted is a list you stop reading. */
.chat-row.is-unread strong[b-h6r4593jt8] { font-weight: 800; }
.chat-row.is-unread small[b-h6r4593jt8] { color: var(--color-charcoal); }

.chat-avatar[b-h6r4593jt8] {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--color-panel);
    color: var(--color-gunmetal);
    font-size: var(--archex-text-xs, 12px);
    font-weight: 800;
}

.chat-copy[b-h6r4593jt8] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.chat-copy strong[b-h6r4593jt8] { font-size: var(--archex-text-sm, 13.5px); }
.chat-copy small[b-h6r4593jt8] { font-size: var(--archex-text-xs, 12px); color: var(--color-gunmetal); }

.chat-when[b-h6r4593jt8] {
    font-size: 11px;
    color: var(--color-gunmetal);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.chat-rowcount[b-h6r4593jt8] {
    display: grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--color-danger);
    color: var(--color-surface);
    font-size: 10px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* ---- one conversation ----------------------------------------------------- */
.chat-thread[b-h6r4593jt8] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    background: var(--color-panel);
}

.chat-msg[b-h6r4593jt8] {
    align-self: flex-start;
    max-width: 82%;
    padding: 7px 11px;
    border-radius: 13px 13px 13px 3px;
    background: var(--color-surface);
    border: 1px solid var(--color-divider);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Yours on the right, in the practice's colour. The oldest convention in messaging, and the one
   that means nobody has to read a name to know who said what. */
.chat-msg.is-mine[b-h6r4593jt8] {
    align-self: flex-end;
    border-radius: 13px 13px 3px 13px;
    background: var(--archex-ochre, #F26C21);
    border-color: transparent;
    color: #fff;
}

.chat-who[b-h6r4593jt8] { font-size: 11px; font-weight: 800; color: var(--color-gunmetal); }
.chat-body[b-h6r4593jt8] { font-size: var(--archex-text-sm, 13.5px); line-height: 1.4; overflow-wrap: anywhere; white-space: pre-wrap; }
.chat-time[b-h6r4593jt8] { font-size: 10px; opacity: .65; font-variant-numeric: tabular-nums; align-self: flex-end; }

/* ---- replying ------------------------------------------------------------- */
.chat-reply[b-h6r4593jt8] {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    padding: 10px 12px;
    border-top: 1px solid var(--color-divider);
}

.chat-reply textarea[b-h6r4593jt8] {
    flex: 1 1 auto;
    min-width: 0;
    resize: none;
    padding: 8px 10px;
    border: 1px solid var(--color-divider);
    border-radius: var(--archex-radius-small);
    background: var(--color-surface);
    color: var(--color-charcoal);
    font: inherit;
    font-size: var(--archex-text-sm, 13.5px);
    line-height: 1.4;
}

.chat-reply textarea:focus-visible[b-h6r4593jt8] { outline: 2px solid var(--archex-ochre, #F26C21); outline-offset: 1px; }

.chat-sendfail[b-h6r4593jt8] {
    margin: 0;
    padding: 0 14px 10px;
    color: var(--color-danger);
    font-size: var(--archex-text-xs, 12px);
}

/* On a phone the panel is the width of the screen, less a gutter, and taller - a 380px panel
   pinned right goes off the edge at 375px. */
@media (max-width: 520px) {
    .chat-panel[b-h6r4593jt8] {
        position: fixed;
        top: auto;
        right: 16px;
        left: 16px;
        width: auto;
        max-height: 78vh;
    }
}
