/* /Components/Activity/AuditRow.razor.rz.scp.css */
/* The gap between cards lives inside the virtualised item as transparent bottom
   padding, so the fixed ItemSize stays accurate and the page scrollbar doesn't drift
   (mirrors the resources list). */
.row-item[b-mqjw1xmoci] {
    height: 84px;
    padding-bottom: 12px;
    box-sizing: border-box;
}

.row[b-mqjw1xmoci] {
    display: grid;
    grid-template-columns: 120px 44px 1fr 180px 140px;
    gap: 16px;
    padding: 0 24px;
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    transition: background .15s, border-color .15s;
}

.row:hover[b-mqjw1xmoci] {
    background: var(--white-a05);
    border-color: var(--white-a14);
}

.time[b-mqjw1xmoci] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.time__rel[b-mqjw1xmoci] {
    font-size: 12px;
    color: var(--white);
    font-weight: 500;
    font-family: var(--font-mono);
}

.time__abs[b-mqjw1xmoci] {
    font-size: 10px;
    color: var(--white-a60);
    font-family: var(--font-mono);
}

.icon-cell[b-mqjw1xmoci] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--icon-bg);
    color: var(--icon-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.event[b-mqjw1xmoci] {
    min-width: 0;
}

.event__text[b-mqjw1xmoci] {
    font-size: 13px;
    color: var(--white);
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.event__category[b-mqjw1xmoci] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
}

.actor[b-mqjw1xmoci] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.actor__name[b-mqjw1xmoci] {
    font-size: 12px;
    color: var(--white-a75);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.entity[b-mqjw1xmoci] {
    min-width: 0;
}

.entity__pill[b-mqjw1xmoci] {
    display: inline-block;
    max-width: 100%;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--cyan-a10);
    border: 1px solid var(--cyan-a30);
    color: var(--color-cyan);
    font-size: 11px;
    font-family: var(--font-mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 768px) {
    .row[b-mqjw1xmoci] { grid-template-columns: 100px 36px minmax(0, 1fr); }
    .actor[b-mqjw1xmoci], .entity[b-mqjw1xmoci] { display: none; }
}
/* /Components/Activity/LogRow.razor.rz.scp.css */
/* The gap between cards lives inside the virtualised item as transparent bottom
   padding, so the fixed ItemSize stays accurate and the page scrollbar doesn't drift
   (mirrors AuditRow and the resources list). */
.row-item[b-8wx334lqoo] {
    height: 84px;
    padding-bottom: 12px;
    box-sizing: border-box;
}

.row[b-8wx334lqoo] {
    display: grid;
    grid-template-columns: 120px 44px 1fr 180px 140px;
    gap: 16px;
    padding: 0 24px;
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    transition: background .15s, border-color .15s;
}

.row:hover[b-8wx334lqoo] {
    background: var(--white-a05);
    border-color: var(--white-a14);
}

.time[b-8wx334lqoo] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.time__rel[b-8wx334lqoo] {
    font-size: 12px;
    color: var(--white);
    font-weight: 500;
    font-family: var(--font-mono);
}

.time__abs[b-8wx334lqoo] {
    font-size: 10px;
    color: var(--white-a60);
    font-family: var(--font-mono);
}

.icon-cell[b-8wx334lqoo] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--icon-bg);
    color: var(--icon-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.event[b-8wx334lqoo] {
    min-width: 0;
}

/* A log line, not a sentence: monospace, one line, the rest behind the title tooltip. */
.event__text[b-8wx334lqoo] {
    font-size: 12px;
    font-family: var(--font-mono);
    color: var(--white);
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: default;
}

.event__category[b-8wx334lqoo] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
}

.actor[b-8wx334lqoo] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.actor__name[b-8wx334lqoo] {
    font-size: 12px;
    color: var(--white-a75);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.entity[b-8wx334lqoo] {
    min-width: 0;
}

.entity__pill[b-8wx334lqoo] {
    display: inline-block;
    max-width: 100%;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--cyan-a10);
    border: 1px solid var(--cyan-a30);
    color: var(--color-cyan);
    font-size: 11px;
    font-family: var(--font-mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 768px) {
    .row[b-8wx334lqoo] { grid-template-columns: 100px 36px minmax(0, 1fr); }
    .actor[b-8wx334lqoo], .entity[b-8wx334lqoo] { display: none; }
}
/* /Components/Brand/DashCard.razor.rz.scp.css */
.card[b-qmm1w99wve] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
}

.card__header[b-qmm1w99wve] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    border-bottom: 1px solid var(--white-a06);
}

.card__title[b-qmm1w99wve] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 13px;
    color: var(--white);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.card__sub[b-qmm1w99wve] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--white-a60);
    margin: 4px 0 0;
}
/* /Components/Brand/List.razor.rz.scp.css */
.ca-list[b-em96lk8kcz] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ca-list[b-em96lk8kcz]  li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 8px;
    font-family: var(--font-body);
    line-height: var(--lh-relaxed);
}

.ca-list--dot[b-em96lk8kcz]  li::before {
    content: '';
    position: absolute;
    left: 6px;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-cyan);
}

.ca-list--check[b-em96lk8kcz]  li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: 0;
}

.ca-list--numbered[b-em96lk8kcz] {
    counter-reset: ca-list;
}
.ca-list--numbered[b-em96lk8kcz]  li {
    counter-increment: ca-list;
}
.ca-list--numbered[b-em96lk8kcz]  li::before {
    content: counter(ca-list) ".";
    position: absolute;
    left: 0;
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--color-cyan);
}

.ca-list--plain[b-em96lk8kcz]  li {
    padding-left: 0;
}
/* /Components/Brand/ProfileCard.razor.rz.scp.css */
.card[b-lyy69wg5bx] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
}

.card__header[b-lyy69wg5bx] {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--white-a06);
}

.card__title[b-lyy69wg5bx] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    color: var(--white);
    margin: 0;
}

.card__sub[b-lyy69wg5bx] {
    font-size: 13px;
    color: var(--white-a55);
    margin: 4px 0 0;
}

.card__body[b-lyy69wg5bx] {
    padding: 24px;
}
/* /Components/Brand/SectionHeader.razor.rz.scp.css */
.eyebrow--centered[b-pqb8piize1] {
    justify-content: center;
}
/* /Components/Brand/Sparkline.razor.rz.scp.css */
svg[b-ujbzcicg61] {
    overflow: visible;
}
/* /Components/Brand/StatCard.razor.rz.scp.css */
.card[b-nrlpfifo0c] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    padding: 22px;
}

.card__header[b-nrlpfifo0c] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.card__label[b-nrlpfifo0c] {
    font-size: 10px;
    color: var(--white-a50);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.card__value-row[b-nrlpfifo0c] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 6px;
}

.card__value[b-nrlpfifo0c] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 36px;
    color: var(--white);
    letter-spacing: -0.04em;
    line-height: 1;
}

.card__unit[b-nrlpfifo0c] {
    font-size: 12px;
    color: var(--white-a50);
    font-family: var(--font-mono);
}

.card__trend[b-nrlpfifo0c] {
    font-size: 11px;
    font-family: var(--font-mono);
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--trend-color);
}
/* /Components/Brand/Tag.razor.rz.scp.css */
/* Tag pill — three style variants. All sit on dark surfaces. */

.ca-tag[b-w4tenbc1qt] {
    white-space: nowrap;
    line-height: 1.4;
    font-family: var(--font-mono);
    display: inline-block;
}

/* minimal — terse mono `key : value`, ultra-subtle background */
.ca-tag--minimal[b-w4tenbc1qt] {
    font-size: 10px;
    color: var(--white-a55);
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--white-a04);
    border: 1px solid var(--white-a06);
    line-height: 1.6;
}

/* soft — pill, key in muted mono, value beside in body font */
.ca-tag--soft[b-w4tenbc1qt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--white-a06);
    border: 1px solid var(--white-a06);
    font-size: 11px;
    color: var(--white-a85);
    font-family: var(--font-body);
    line-height: 1.2;
}
.ca-tag--soft .ca-tag__key[b-w4tenbc1qt] {
    color: var(--white-a50);
    font-family: var(--font-mono);
    font-size: 10px;
}
.ca-tag--soft .ca-tag__val[b-w4tenbc1qt] {
    font-weight: 500;
}

/* colored — uniform neutral chip, mono `key : value` with weighted value */
.ca-tag--colored[b-w4tenbc1qt] {
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--white-a05);
    border: 1px solid var(--white-a10);
    font-size: 10px;
    color: var(--white-a75);
}
.ca-tag--colored .ca-tag__key[b-w4tenbc1qt] { opacity: 0.70; }
.ca-tag--colored .ca-tag__sep[b-w4tenbc1qt] { opacity: 0.45; }
.ca-tag--colored .ca-tag__val[b-w4tenbc1qt] { font-weight: 600; }

/* interactive — selectable filter pill; resets native button chrome so the
   variant classes above own the look. */
.ca-tag--interactive[b-w4tenbc1qt] {
    cursor: pointer;
    font-family: var(--font-mono);
    appearance: none;
    -webkit-appearance: none;
    transition: background .12s, border-color .12s, color .12s;
}

/* selected — active filter, cyan accent (mirrors FilterChip's active state) */
.ca-tag--selected[b-w4tenbc1qt] {
    background: var(--color-cyan);
    border-color: var(--color-cyan);
    color: var(--white);
}
.ca-tag--selected .ca-tag__key[b-w4tenbc1qt],
.ca-tag--selected .ca-tag__sep[b-w4tenbc1qt],
.ca-tag--selected .ca-tag__val[b-w4tenbc1qt] {
    color: var(--white);
    opacity: 1;
}
/* /Components/Brand/TagList.razor.rz.scp.css */
.ca-taglist[b-wuo1q8hb81] {
    display: flex;
    gap: 8px;
    align-items: center;
    min-width: 0;
}

.ca-taglist__label[b-wuo1q8hb81] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    flex: 0 0 auto;
    font-weight: 700;
}

.ca-taglist__items[b-wuo1q8hb81] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.ca-taglist__more[b-wuo1q8hb81] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    background: var(--cyan-a10);
    border: 1px solid var(--cyan-a35);
    color: var(--color-cyan);
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    line-height: 1.3;
    transition: background .15s;
    flex: 0 0 auto;
}

.ca-taglist__more:hover[b-wuo1q8hb81] {
    background: var(--cyan-a14);
}
/* /Components/Dashboard/ActivityItem.razor.rz.scp.css */
.row[b-foduju3d9t] {
    display: grid;
    grid-template-columns: 52px 28px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 0;
}

.row--bordered[b-foduju3d9t] {
    border-bottom: 1px dashed var(--white-a06);
}

.timestamp[b-foduju3d9t] {
    font-size: 11px;
    color: var(--white-a60);
}

.icon-wrap[b-foduju3d9t] {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--white-a04);
    display: flex;
    align-items: center;
    justify-content: center;
}

.text[b-foduju3d9t] {
    font-size: 13px;
    color: var(--white-a90);
    line-height: 1.5;
}

.actor[b-foduju3d9t] {
    font-size: 11px;
    color: var(--white-a60);
    font-family: var(--font-mono);
}
/* /Components/Dashboard/DashCompany.razor.rz.scp.css */
.empty[b-378uk9s4y9] {
    padding: 12px 0;
    color: var(--white-a50);
    font-size: 13px;
}

.title-line[b-378uk9s4y9] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Mirrors DashCard's .card__title so the company name reads as the card heading. */
.company-name[b-378uk9s4y9] {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--white);
}

.primary-chip[b-378uk9s4y9] {
    font-family: var(--font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    line-height: 1;
    color: var(--color-cyan);
    background: var(--cyan-a12);
    border: 1px solid var(--cyan-a35);
    border-radius: 999px;
    padding: 3px 8px;
}

.metric-row[b-378uk9s4y9] {
    display: flex;
    gap: 12px;
}

.metric[b-378uk9s4y9] {
    flex: 1;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.metric__head[b-378uk9s4y9] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--white-a50);
}

.metric__label[b-378uk9s4y9] {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.metric__value[b-378uk9s4y9] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--white);
}
/* /Components/Dashboard/DashLicences.razor.rz.scp.css */
.licence-row[b-6xl49x3ks2] {
    padding: 12px 0;
}

.licence-row--bordered[b-6xl49x3ks2] {
    border-bottom: 1px dashed var(--white-a06);
}

.licence-header[b-6xl49x3ks2] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}

.licence-name[b-6xl49x3ks2] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
}

.licence-count[b-6xl49x3ks2] {
    font-size: 12px;
    color: var(--white-a85);
}

.licence-total[b-6xl49x3ks2] {
    color: var(--white-a60);
}

.bar-track[b-6xl49x3ks2] {
    height: 4px;
    background: var(--white-a06);
    border-radius: 2px;
}

.bar-fill[b-6xl49x3ks2] {
    height: 100%;
    border-radius: 2px;
}

/* The fold and freshness lines share the ticket card's muted small-print voice. */
.licence-more[b-6xl49x3ks2] {
    padding: 10px 0 0;
    font-size: 11px;
    color: var(--white-a60);
}

.licence-updated[b-6xl49x3ks2] {
    padding: 8px 0 0;
    font-size: 11px;
    color: var(--white-a50);
}

.licence-empty[b-6xl49x3ks2] {
    padding: 12px 0;
    color: var(--white-a50);
    font-size: 13px;
}
/* /Components/Dashboard/DashSecurity.razor.rz.scp.css */
.title-line[b-hodi95qtp3] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Mirrors DashCard's .card__title — the TitleContent slot replaces the default h3. */
.card-title[b-hodi95qtp3] {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--white);
}

/* Neutral scope chip naming the company this posture belongs to. Distinct from the
   cyan "primary" status chip on the company card — this one reads as a scope tag. */
.company-chip[b-hodi95qtp3] {
    display: inline-block;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-mono);
    font-size: 10px;
    line-height: 1.4;
    color: var(--white-a70);
    background: var(--white-a05);
    border: 1px solid var(--white-a14);
    border-radius: 999px;
    padding: 3px 9px;
}

/* The score as a percentage, in the action slot. */
.status-indicator[b-hodi95qtp3] {
    font-size: 11px;
    color: var(--color-cyan);
}

/* The points behind the percentage: the ticket card's large-figure + muted-unit layout, a
   size down, so the card reads as the same family. */
.posture-headline[b-hodi95qtp3] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 0 0 12px;
}

.posture-headline--bordered[b-hodi95qtp3] {
    border-bottom: 1px dashed var(--white-a06);
}

.posture-points[b-hodi95qtp3] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 28px;
    color: var(--white);
    letter-spacing: -0.04em;
    line-height: 1;
}

.posture-unit[b-hodi95qtp3] {
    font-size: 12px;
    color: var(--white-a50);
}

.control-row[b-hodi95qtp3] {
    padding: 10px 0;
}

.control-row--bordered[b-hodi95qtp3] {
    border-bottom: 1px dashed var(--white-a06);
}

.control-header[b-hodi95qtp3] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 6px;
}

.control-label[b-hodi95qtp3] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
}

/* A title that carries Microsoft's description as a tooltip (16 Oct 2026): the dotted underline is
   the visible hint, since a native title shows nothing until the pointer rests. */
.control-label--described[b-hodi95qtp3] {
    text-decoration: underline dotted var(--white-a50);
    text-underline-offset: 3px;
    cursor: help;
}

/* Every listed control is incomplete and needs action: one colour for its figure and bar. */
.control-score[b-hodi95qtp3] {
    font-size: 11px;
    color: var(--color-gold);
    white-space: nowrap;
}

.bar-track[b-hodi95qtp3] {
    height: 4px;
    background: var(--white-a06);
    border-radius: 2px;
    overflow: hidden;
}

.bar-fill[b-hodi95qtp3] {
    height: 100%;
    border-radius: 2px;
    background: var(--color-gold);
}

/* The way into the full list (15 Oct 2026; a "+N more" line until then): that line's mono small
   print and spacing, in cyan and underlined on hover and keyboard focus, with the focus ring, so it
   reads as something to press. A real button, stripped of the button chrome. */
.posture-view-all[b-hodi95qtp3] {
    display: inline-block;
    margin: 10px 0 0;
    padding: 0;
    border: 0;
    background: none;
    font-size: 11px;
    color: var(--color-cyan);
    text-align: left;
    cursor: pointer;
}

.posture-view-all:hover[b-hodi95qtp3],
.posture-view-all:focus-visible[b-hodi95qtp3] {
    text-decoration: underline;
}

.posture-view-all:focus-visible[b-hodi95qtp3] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
    border-radius: 2px;
}

/* The freshness and all-complete lines share the Licences card's muted small print. */
.posture-updated[b-hodi95qtp3] {
    padding: 8px 0 0;
    font-size: 11px;
    color: var(--white-a50);
}

.posture-complete[b-hodi95qtp3] {
    padding: 12px 0 0;
    font-size: 13px;
    color: var(--white-a60);
}

.posture-empty[b-hodi95qtp3] {
    padding: 12px 0;
    color: var(--white-a50);
    font-size: 13px;
}
/* /Components/Dashboard/DashTickets.razor.rz.scp.css */
/* The figure block mirrors the stat cards' large-figure + muted-unit layout so the card
   reads as the same family, inside a panel card frame. */
.ticket-value-row[b-l70e6eloqe] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 8px;
}

.ticket-value[b-l70e6eloqe] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 36px;
    color: var(--white);
    letter-spacing: -0.04em;
    line-height: 1;
}

.ticket-unit[b-l70e6eloqe] {
    font-size: 12px;
    color: var(--white-a50);
}

.ticket-resolved[b-l70e6eloqe] {
    font-size: 11px;
    color: var(--white-a60);
}

.ticket-resolved__count[b-l70e6eloqe] {
    color: var(--color-cyan);
    font-weight: 600;
}

.ticket-empty[b-l70e6eloqe] {
    padding: 12px 0;
    color: var(--white-a50);
    font-size: 13px;
}
/* /Components/Dashboard/DashWelcome.razor.rz.scp.css */
.banner[b-4833pt51l6] {
    background: linear-gradient(135deg, var(--purple-a28) 0%, var(--cyan-a16) 100%);
    border: 1px solid var(--white-a08);
    border-radius: 20px;
    padding: 28px 32px;
    margin-bottom: 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

.eyebrow[b-4833pt51l6] {
    font-size: 11px;
    color: var(--white-a55);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.greeting[b-4833pt51l6] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.4vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.summary[b-4833pt51l6] {
    color: var(--white-a70);
    font-size: 15px;
    margin: 8px 0 0;
    max-width: 480px;
}

.summary strong[b-4833pt51l6] {
    color: var(--white);
}

.ctas[b-4833pt51l6] {
    display: flex;
    gap: 10px;
}
/* /Components/Dashboard/SecureScoreSheet.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. The score, then every
   control with the Security posture card's row, bar and mono small print, copied from
   DashSecurity.razor.css so the panel reads as the card opened out. */

.posture-section[b-j2nnv9jj8z] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* The card's large-figure + muted-unit headline, the percentage leading. */
.posture-headline[b-j2nnv9jj8z] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.posture-percent[b-j2nnv9jj8z] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 28px;
    color: var(--white);
    letter-spacing: -0.04em;
    line-height: 1;
}

.posture-unit[b-j2nnv9jj8z] {
    font-size: 12px;
    color: var(--white-a50);
}

.posture-subtitle[b-j2nnv9jj8z] {
    margin: 0;
    font-size: 11px;
    color: var(--white-a60);
}

.posture-company[b-j2nnv9jj8z] {
    margin: 0;
    font-size: 13px;
    color: var(--white-a70);
}

/* Every control, numbered in the BFF's order (most points to gain first). */
.control-list[b-j2nnv9jj8z] {
    margin: 0;
    padding: 0 0 0 26px;
    list-style: decimal;
}

/* Tightened from 12px on 16 Oct 2026 so more controls fit on screen. */
.control-row[b-j2nnv9jj8z] {
    padding: 8px 0;
    border-bottom: 1px dashed var(--white-a06);
}

.control-row:last-child[b-j2nnv9jj8z] {
    border-bottom: 0;
}

.control-row[b-j2nnv9jj8z]::marker {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--white-a50);
}

/* The title with the Microsoft link on its right: the card's header line, so the link no longer
   takes a line of its own. */
.control-header[b-j2nnv9jj8z] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.control-label[b-j2nnv9jj8z] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
}

/* The visible hint that the title carries a tooltip (Microsoft's description of the control): a
   native title attribute shows nothing until the pointer rests, so without it nobody would try. */
.control-label--described[b-j2nnv9jj8z] {
    text-decoration: underline dotted var(--white-a50);
    text-underline-offset: 3px;
    cursor: help;
}

/* The known parts on the left, Microsoft's link on the right, between the title line and the bar;
   drawn only when one of them exists. */
.control-meta-line[b-j2nnv9jj8z] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin: 2px 0 6px;
}

.control-meta[b-j2nnv9jj8z] {
    font-size: 11px;
    color: var(--white-a60);
}

/* How complete the control is, at the right of its title — the card's .control-score look, so the
   card and the panel read the same way (Mark, 16 Oct 2026). */
.control-percent[b-j2nnv9jj8z] {
    font-size: 11px;
    color: var(--color-gold);
    white-space: nowrap;
}

.control-header + .bar-track[b-j2nnv9jj8z] {
    margin-top: 6px;
}

/* Every listed control is incomplete and needs action: one colour for its bar, as on the card. */
.bar-track[b-j2nnv9jj8z] {
    flex: 1;
    height: 4px;
    background: var(--white-a06);
    border-radius: 2px;
    overflow: hidden;
}

.bar-fill[b-j2nnv9jj8z] {
    height: 100%;
    border-radius: 2px;
    background: var(--color-gold);
}

/* Microsoft's link to the recommendation; it opens in a new tab. It sits on the title's line, so it
   never wraps or shrinks. */
.control-action[b-j2nnv9jj8z] {
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-cyan);
    text-decoration: none;
}

.control-action:hover[b-j2nnv9jj8z],
.control-action:focus-visible[b-j2nnv9jj8z] {
    text-decoration: underline;
}

/* The Microsoft link and the Ask button, together at the line's right. They wrap under the known
   parts, and the button under the link, when the panel is too narrow for them (a phone). */
.control-actions[b-j2nnv9jj8z] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px 12px;
    margin-left: auto;
}

/* "Ask Cloudatmo to fix this": a small button, kept compact so the row stays short. */
.control-ask[b-j2nnv9jj8z] {
    padding: 4px 10px;
    font-size: 12px;
    white-space: nowrap;
}

/* The closing, all-complete and empty lines share the card's muted small print. */
.posture-source[b-j2nnv9jj8z] {
    margin: 4px 0 0;
    font-size: 11px;
    color: var(--white-a50);
}

.posture-complete[b-j2nnv9jj8z] {
    margin: 0;
    font-size: 13px;
    color: var(--white-a60);
}

.posture-empty[b-j2nnv9jj8z] {
    margin: 0;
    color: var(--white-a50);
    font-size: 13px;
}
/* /Components/Editing/BulkTagEditor.razor.rz.scp.css */
.tag-list[b-6zdkn2j40d] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.tag-empty[b-6zdkn2j40d] {
    color: var(--white-a50);
    font-size: 14px;
    margin: 0;
}

/* Name box on the left, value control (input + remove/undo) on the right —
   mirrors the property editor's two-column rhythm. */
.tag-row[b-6zdkn2j40d] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.tag-namebox[b-6zdkn2j40d] {
    flex-shrink: 0;
    width: 40%;
    max-width: 40%;
    padding: 7px 10px;
}

.tag-control[b-6zdkn2j40d] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tag-control__field[b-6zdkn2j40d] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tag-input[b-6zdkn2j40d] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 7px 10px;
}

.tag-remove[b-6zdkn2j40d] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--white-a50);
    cursor: pointer;
}

.tag-remove:hover[b-6zdkn2j40d] {
    background: var(--danger-a12);
    color: var(--color-danger);
}

.tag-undo[b-6zdkn2j40d] {
    flex-shrink: 0;
    background: transparent;
    border: none;
    padding: 0 4px;
    color: var(--color-cyan);
    font-size: 12px;
    cursor: pointer;
}

.tag-row--deleted .tag-namebox[b-6zdkn2j40d],
.tag-row--deleted .tag-input[b-6zdkn2j40d] {
    text-decoration: line-through;
    opacity: 0.5;
}

.tag-row--invalid .tag-namebox[b-6zdkn2j40d] {
    border-color: var(--color-danger);
}

/* A tag a sync owns: shown for context, not editable here — the system that wrote it
   rewrites it on its next run. */
.tag-row--managed .tag-namebox[b-6zdkn2j40d],
.tag-row--managed .tag-input[b-6zdkn2j40d] {
    opacity: 0.6;
}

.tag-source[b-6zdkn2j40d] {
    flex-shrink: 0;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--white-a16);
    color: var(--white-a60);
    font-size: 11px;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.tag-error[b-6zdkn2j40d] {
    color: var(--color-danger);
    font-size: 12px;
}

.tag-add[b-6zdkn2j40d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    margin-top: 4px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px dashed var(--white-a16);
    background: transparent;
    color: var(--white-a70);
    font-size: 13px;
    cursor: pointer;
}

.tag-add:hover[b-6zdkn2j40d] {
    border-color: var(--white-a32);
    color: var(--white);
}

/* A saved Hub edit the nightly sync has yet to carry to Azure. */
.tag-pending[b-6zdkn2j40d] {
    flex-shrink: 0;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--color-cyan);
    color: var(--color-cyan);
    font-size: 11px;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* Editor-level notes: Azure refusing tags on the resource, removals still to reach Azure. */
.tag-note[b-6zdkn2j40d] {
    margin: 0;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid var(--white-a16);
    color: var(--white-a70);
    font-size: 12px;
}

.tag-note--hub-only[b-6zdkn2j40d] {
    border-color: var(--danger-a12);
    color: var(--color-danger);
}

/* Bulk-only: the name column carries the "on N of M" count under the box. */
.tag-name[b-6zdkn2j40d] {
    flex-shrink: 0;
    width: 40%;
    max-width: 40%;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tag-name .tag-namebox[b-6zdkn2j40d] {
    width: 100%;
    max-width: none;
}

.tag-count[b-6zdkn2j40d] {
    font-size: 11px;
    color: var(--dk-text-3);
    padding-left: 2px;
}

.tag-hint[b-6zdkn2j40d] {
    color: var(--dk-text-3);
    font-size: 12px;
}
/* /Components/Editing/BulkTagSheet.razor.rz.scp.css */
.scope[b-822wy3hi54],
.outcome[b-822wy3hi54],
.loading[b-822wy3hi54] {
    margin: 0;
    color: var(--dk-text-2);
    font-size: 14px;
    line-height: 1.5;
}

.outcome + .outcome[b-822wy3hi54] {
    margin-top: 8px;
}

.outcome--warn[b-822wy3hi54] {
    color: var(--status-warn);
}

.children[b-822wy3hi54] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--dk-border);
    background: var(--dk-surface);
    color: var(--dk-text-2);
    font-size: 13px;
    line-height: 1.45;
    cursor: pointer;
}

.children input[b-822wy3hi54] {
    margin-top: 3px;
    accent-color: var(--color-cyan);
}

.children__note[b-822wy3hi54] {
    color: var(--dk-text-3);
}

.failures[b-822wy3hi54] {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.failures li[b-822wy3hi54] {
    display: flex;
    gap: 10px;
    align-items: baseline;
    font-size: 13px;
}

.failure-name[b-822wy3hi54] {
    color: var(--dk-text-1);
    font-weight: 600;
}

.failure-why[b-822wy3hi54] {
    color: var(--dk-text-3);
}
/* /Components/Editing/DetailRow.razor.rz.scp.css */
.detail-row[b-jw52q2p591] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    padding: 8px 0;
    border-bottom: 1px solid var(--white-a05);
}

.detail-row__label[b-jw52q2p591] {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--white-a60);
    flex-shrink: 0;
}

.detail-row__value[b-jw52q2p591] {
    font-size: 14px;
    color: var(--white);
    text-align: right;
    word-break: break-word;
}

.detail-row__value--mono[b-jw52q2p591] {
    font-family: var(--font-mono);
}
/* /Components/Editing/EditPanel.razor.rz.scp.css */
/* Body styles only — the slide-over chrome (overlay, sheet, header, footer, error banner)
   lives in EditSheet.razor.css. */

.edit-section[b-rpi8hmadk2] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-rpi8hmadk2] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

/* Tags | Properties tab strip — styled off the section labels, with a cyan
   underline on the active tab. */
.edit-tabs[b-rpi8hmadk2] {
    display: flex;
    gap: 20px;
    border-bottom: 1px solid var(--white-a08);
}

.edit-tab[b-rpi8hmadk2] {
    padding: 0 2px 10px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
    cursor: pointer;
}

.edit-tab:hover[b-rpi8hmadk2] {
    color: var(--white-a75);
}

.edit-tab--active[b-rpi8hmadk2] {
    color: var(--white);
    border-bottom-color: var(--color-cyan);
}

.edit-tab--invalid[b-rpi8hmadk2] {
    color: var(--color-danger);
}

.edit-tab-panel--hidden[b-rpi8hmadk2] {
    display: none;
}

/* /Components/Editing/EditSheet.razor.rz.scp.css */
/* The slide-over chrome, owned here and only here — the panels that render inside the
   sheet (EditPanel, TeamEditPanel, UbiquitiEditPanel) keep just their body styles. */

/* Dimmed backdrop covering the viewport; the panel is anchored to the right edge,
   30px in, and fills the viewport height with a 10px gap top and bottom. */
.edit-overlay[b-5zpxq0ztoe] {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: var(--dk-scrim);
    backdrop-filter: blur(2px);
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    padding: 10px 30px;
    overflow: hidden;
}

/* Vertical sheet: header, scrolling body, optional error/confirm strip, footer. */
.edit-panel[b-5zpxq0ztoe] {
    width: 100%;
    max-width: 720px;
    display: flex;
    flex-direction: column;
    /* Lightened ultramarine (the .ca-bg-space canvas hue) so the sheet reads as the
       same material as the app; kept flat — the canvas washes/stars stay off work
       surfaces deliberately. */
    background: linear-gradient(180deg, var(--dk-sheet-top), var(--dk-sheet-bottom));
    border: 1px solid var(--white-a10);
    border-radius: 18px;
    box-shadow: 0 24px 80px var(--black-a50);
}

/* The panel itself is focusable (tabindex="-1") only as the trap's fallback target. */
.edit-panel:focus[b-5zpxq0ztoe] {
    outline: none;
}

.edit-panel__header[b-5zpxq0ztoe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--white-a08);
}

.edit-panel__title[b-5zpxq0ztoe] {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--white);
}

.edit-panel__close[b-5zpxq0ztoe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--white-a60);
    cursor: pointer;
}

.edit-panel__close:hover[b-5zpxq0ztoe] {
    background: var(--white-a06);
    color: var(--white);
}

.edit-panel__close:focus-visible[b-5zpxq0ztoe] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.edit-panel__body[b-5zpxq0ztoe] {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.edit-panel__footer[b-5zpxq0ztoe] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 18px 24px;
    border-top: 1px solid var(--white-a08);
}

/* Inline save-failure banner. */
.edit-error[b-5zpxq0ztoe] {
    margin: 0 24px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--danger-a40);
    background: var(--danger-a10);
    color: var(--color-danger);
    font-size: 13px;
}

/* "Discard your unsaved changes?" strip — shown in the error banner's slot when a close
   is requested on a dirty sheet. Gold rather than pink: a question, not a failure. */
.edit-confirm[b-5zpxq0ztoe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin: 0 24px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--gold-a40);
    background: var(--gold-a10);
    color: var(--white);
    font-size: 13px;
}

.edit-confirm__actions[b-5zpxq0ztoe] {
    display: flex;
    gap: 8px;
}
/* /Components/Editing/ProjectActionSheet.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. A sentence and, for a
   delete, the list of what goes with it. */

.edit-section[b-uv1y6pkgcd] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-uv1y6pkgcd] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.action-text[b-uv1y6pkgcd] {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--white-a80);
}

.action-list[b-uv1y6pkgcd] {
    margin: 0;
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--white-a60);
}
/* /Components/Editing/ProjectCreatePanel.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. Two stacked selects
   and a note saying what Create will do. */

.edit-section[b-3ihq4ulww1] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-3ihq4ulww1] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.create-fields[b-3ihq4ulww1] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.create-select[b-3ihq4ulww1] {
    width: 100%;
    padding: 8px 12px;
    font-size: 13px;
}

.create-note[b-3ihq4ulww1] {
    margin-top: 6px;
    color: var(--white-a50);
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
/* /Components/Editing/PropertyEditor.razor.rz.scp.css */
.prop-list[b-gok05dncpa] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.prop-empty[b-gok05dncpa] {
    color: var(--white-a50);
    font-size: 14px;
    margin: 0;
}

/* Name box (+ scope chips) on the left, value control on the right. */
.prop-row[b-gok05dncpa] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

/* Left column: name box stacked above its scope chips. */
.prop-name[b-gok05dncpa] {
    flex-shrink: 0;
    max-width: 40%;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.prop-control[b-gok05dncpa] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Value field and its remove/undo control share a row. */
.prop-control__field[b-gok05dncpa] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.prop-input[b-gok05dncpa] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 7px 10px;
}

.prop-namebox[b-gok05dncpa] {
    width: 100%;
    padding: 7px 10px;
}

.prop-remove[b-gok05dncpa] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--white-a50);
    cursor: pointer;
}

.prop-remove:hover[b-gok05dncpa] {
    background: var(--danger-a12);
    color: var(--color-danger);
}

.prop-undo[b-gok05dncpa] {
    flex-shrink: 0;
    background: transparent;
    border: none;
    padding: 0 4px;
    color: var(--color-cyan);
    font-size: 12px;
    cursor: pointer;
}

.prop-row--deleted .prop-namebox[b-gok05dncpa] {
    text-decoration: line-through;
    opacity: 0.5;
}

.prop-add[b-gok05dncpa] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    margin-top: 4px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px dashed var(--white-a16);
    background: transparent;
    color: var(--white-a70);
    font-size: 13px;
    cursor: pointer;
}

.prop-add:hover[b-gok05dncpa] {
    border-color: var(--white-a32);
    color: var(--white);
}

/* Scope chips sit just below the name box, aligned left and smaller. */
.prop-flags[b-gok05dncpa] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.prop-flag[b-gok05dncpa] {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 2px 5px;
    border-radius: 999px;
    border: 1px solid var(--white-a14);
    color: var(--white-a50);
}

.prop-flag--secret[b-gok05dncpa] {
    color: var(--color-gold);
    border-color: var(--amber-a35);
}

/* Which system reported the value — cyan, so it reads as provenance rather than a rule. */
.prop-flag--source[b-gok05dncpa] {
    color: var(--color-cyan);
    border-color: var(--cyan-a35);
}

.prop-flag--required[b-gok05dncpa] {
    color: var(--color-danger);
    border-color: var(--danger-a35);
}

.prop-row--invalid .prop-input[b-gok05dncpa] {
    border-color: var(--color-danger);
}

.prop-error[b-gok05dncpa] {
    color: var(--color-danger);
    font-size: 12px;
}

/* A new row's "secret" tick (7 Oct 2026) — sits where a stored row shows its flags, in the
   flags' own voice, so the choice reads as the flag it will become. */
.prop-secret-tick[b-gok05dncpa] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--white-a60);
    cursor: pointer;
    user-select: none;
}

.prop-secret-tick input[b-gok05dncpa] {
    margin: 0;
    accent-color: var(--color-gold);
}

.prop-secret-tick:has(input:checked)[b-gok05dncpa] {
    color: var(--color-gold);
}
/* /Components/Editing/SharePointEditPanel.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. The site fields, then
   the certificate block. */

.edit-section[b-ci1zad923v] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-ci1zad923v] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.sharepoint-fields[b-ci1zad923v] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sharepoint-input--invalid[b-ci1zad923v] {
    border-color: var(--color-danger);
}

/* The site's relative Url: the fixed "/sites/" beside the one part that is asked for. */
.site-box[b-ci1zad923v] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.site-box__affix[b-ci1zad923v] {
    flex-shrink: 0;
    color: var(--white-a50);
    font-size: 13px;
    white-space: nowrap;
}

.site-box__site[b-ci1zad923v] {
    flex: 1 1 auto;
    min-width: 0;
}

.site-box--invalid .site-box__site[b-ci1zad923v] {
    border-color: var(--color-danger);
}

.sharepoint-note[b-ci1zad923v] {
    margin-top: 6px;
    color: var(--white-a50);
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.sharepoint-note--error[b-ci1zad923v] {
    color: var(--color-danger);
}

/* The "switch back to Cloudatmo's certificate" choice. */
.sharepoint-option[b-ci1zad923v] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--white-a80);
    cursor: pointer;
}

.sharepoint-option input[b-ci1zad923v] {
    margin-top: 3px;
    flex-shrink: 0;
}
/* /Components/Editing/SupportRequestSheet.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. A subject box, a
   details box and a note saying where the request goes; once sent, the confirmation instead. */

.edit-section[b-vb2hakql7v] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.request-fields[b-vb2hakql7v] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.request-input[b-vb2hakql7v] {
    padding: 8px 12px;
    font-size: 13px;
}

.request-note[b-vb2hakql7v] {
    color: var(--white-a50);
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.sent[b-vb2hakql7v] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sent__headline[b-vb2hakql7v] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--status-ok);
    font-size: 15px;
    font-weight: 600;
}

.sent__line[b-vb2hakql7v] {
    margin: 0;
    color: var(--dk-text-2);
    font-size: 14px;
    line-height: 1.5;
}

.sent__line strong[b-vb2hakql7v] {
    color: var(--dk-text-1);
    letter-spacing: 0.04em;
}
/* /Components/Editing/TagEditor.razor.rz.scp.css */
.tag-list[b-ibtnz1733v] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.tag-empty[b-ibtnz1733v] {
    color: var(--white-a50);
    font-size: 14px;
    margin: 0;
}

/* Name box on the left, value control (input + remove/undo) on the right —
   mirrors the property editor's two-column rhythm. */
.tag-row[b-ibtnz1733v] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.tag-namebox[b-ibtnz1733v] {
    flex-shrink: 0;
    width: 40%;
    max-width: 40%;
    padding: 7px 10px;
}

.tag-control[b-ibtnz1733v] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tag-control__field[b-ibtnz1733v] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tag-input[b-ibtnz1733v] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 7px 10px;
}

.tag-remove[b-ibtnz1733v] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--white-a50);
    cursor: pointer;
}

.tag-remove:hover[b-ibtnz1733v] {
    background: var(--danger-a12);
    color: var(--color-danger);
}

.tag-undo[b-ibtnz1733v] {
    flex-shrink: 0;
    background: transparent;
    border: none;
    padding: 0 4px;
    color: var(--color-cyan);
    font-size: 12px;
    cursor: pointer;
}

.tag-row--deleted .tag-namebox[b-ibtnz1733v],
.tag-row--deleted .tag-input[b-ibtnz1733v] {
    text-decoration: line-through;
    opacity: 0.5;
}

.tag-row--invalid .tag-namebox[b-ibtnz1733v] {
    border-color: var(--color-danger);
}

/* A tag a sync owns: shown for context, not editable here — the system that wrote it
   rewrites it on its next run. */
.tag-row--managed .tag-namebox[b-ibtnz1733v],
.tag-row--managed .tag-input[b-ibtnz1733v] {
    opacity: 0.6;
}

.tag-source[b-ibtnz1733v] {
    flex-shrink: 0;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--white-a16);
    color: var(--white-a60);
    font-size: 11px;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.tag-error[b-ibtnz1733v] {
    color: var(--color-danger);
    font-size: 12px;
}

.tag-add[b-ibtnz1733v] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    margin-top: 4px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px dashed var(--white-a16);
    background: transparent;
    color: var(--white-a70);
    font-size: 13px;
    cursor: pointer;
}

.tag-add:hover:not(:disabled)[b-ibtnz1733v] {
    border-color: var(--white-a32);
    color: var(--white);
}

.tag-add:disabled[b-ibtnz1733v] {
    opacity: 0.45;
    cursor: default;
}

/* "Add tag" and, on a grouping, "Include child tags" side by side. */
.tag-actions[b-ibtnz1733v] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* A grouping's "apply to children" choice — the bulk sheet's checkbox, in this editor's tones. */
.tag-children[b-ibtnz1733v] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--white-a16);
    color: var(--white-a70);
    font-size: 13px;
    line-height: 1.45;
    cursor: pointer;
}

.tag-children input[b-ibtnz1733v] {
    margin-top: 3px;
    accent-color: var(--color-cyan);
}

.tag-children__note[b-ibtnz1733v] {
    color: var(--white-a50);
}

/* A saved Hub edit the nightly sync has yet to carry to Azure. */
.tag-pending[b-ibtnz1733v] {
    flex-shrink: 0;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--color-cyan);
    color: var(--color-cyan);
    font-size: 11px;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* Editor-level notes: Azure refusing tags on the resource, removals still to reach Azure. */
.tag-note[b-ibtnz1733v] {
    margin: 0;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid var(--white-a16);
    color: var(--white-a70);
    font-size: 12px;
}

.tag-note--hub-only[b-ibtnz1733v] {
    border-color: var(--danger-a12);
    color: var(--color-danger);
}
/* /Components/Editing/TeamEditPanel.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. Deliberately
   mirrors PropertyEditor / TagEditor so the Team panel reads as the same family of editor:
   same row rhythm, same dashed ghost add button, same danger for invalid and cyan for undo. */

.edit-section[b-nhem8gylik] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-nhem8gylik] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.team-list[b-nhem8gylik] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.team-empty[b-nhem8gylik] {
    color: var(--white-a50);
    font-size: 14px;
    margin: 0;
}

/* UPN on the left, controls right-aligned; the row error spans the full width beneath. */
.team-row[b-nhem8gylik] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.team-upn[b-nhem8gylik] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
}

.team-upn > .ca-mono[b-nhem8gylik] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.team-upnbox[b-nhem8gylik] {
    width: 100%;
    max-width: 320px;
    padding: 7px 10px;
}

.team-controls[b-nhem8gylik] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.team-role[b-nhem8gylik] {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--white-a50);
}

.team-flag[b-nhem8gylik] {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 2px 5px;
    border-radius: 999px;
    border: 1px solid var(--white-a14);
    color: var(--white-a50);
    white-space: nowrap;
}

/* Inherited rows are read-only here; the chip is the only cue the row is not editable,
   so it gets the gold treatment rather than blending into the neutral chips. */
.team-flag--inherited[b-nhem8gylik] {
    color: var(--color-gold);
    border-color: var(--amber-a35);
}

.team-verified[b-nhem8gylik] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.team-verified__label[b-nhem8gylik] {
    font-size: 9px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--white-a45);
}

.team-remove[b-nhem8gylik] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--white-a50);
    cursor: pointer;
}

.team-remove:hover[b-nhem8gylik] {
    background: var(--danger-a12);
    color: var(--color-danger);
}

.team-undo[b-nhem8gylik] {
    flex-shrink: 0;
    background: transparent;
    border: none;
    padding: 0 4px;
    color: var(--color-cyan);
    font-size: 12px;
    cursor: pointer;
}

.team-row--deleted .team-upn[b-nhem8gylik] {
    text-decoration: line-through;
    opacity: 0.5;
}

.team-row--invalid .team-upnbox[b-nhem8gylik] {
    border-color: var(--color-danger);
}

.team-rowerror[b-nhem8gylik] {
    flex-basis: 100%;
    color: var(--color-danger);
    font-size: 12px;
}

/* A member's role on the company (30 Sep 2026): Reader / Contributor / Owner. A compact select
   in the row's control strip, sized to its longest option. */
.team-roleselect[b-nhem8gylik] {
    width: auto;
    min-width: 118px;
    height: 30px;
    padding: 0 8px;
    font-size: 12px;
}

.team-check[b-nhem8gylik] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid var(--white-a16);
    background: transparent;
    color: var(--white-a70);
    font-size: 12px;
    cursor: pointer;
}

.team-check:hover[b-nhem8gylik] {
    border-color: var(--white-a32);
    color: var(--white);
}

.team-checkresult[b-nhem8gylik] {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.team-checkresult--ok[b-nhem8gylik] {
    color: var(--color-cyan);
}

.team-checkresult--bad[b-nhem8gylik] {
    color: var(--color-danger);
}

.team-add[b-nhem8gylik] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    margin-top: 4px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px dashed var(--white-a16);
    background: transparent;
    color: var(--white-a70);
    font-size: 13px;
    cursor: pointer;
}

.team-add:hover[b-nhem8gylik] {
    border-color: var(--white-a32);
    color: var(--white);
}

/* Banner shown to anyone who is not an owner, so the disabled controls have an explanation. */
.team-readonly[b-nhem8gylik] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--white-a10);
    background: var(--white-a04);
    color: var(--white-a60);
    font-size: 13px;
}

.team-error[b-nhem8gylik] {
    margin-bottom: 20px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--danger-a40);
    background: var(--danger-a10);
    color: var(--color-danger);
    font-size: 13px;
}
/* /Components/Editing/TenantEditPanel.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. Two stacked fields,
   then the credentials as facts. */

.edit-section[b-2xfq0hnimq] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-2xfq0hnimq] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.tenant-fields[b-2xfq0hnimq] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.tenant-input--invalid[b-2xfq0hnimq] {
    border-color: var(--color-danger);
}

.tenant-facts[b-2xfq0hnimq] {
    display: flex;
    flex-direction: column;
}

.tenant-note[b-2xfq0hnimq] {
    margin-top: 6px;
    color: var(--white-a50);
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.tenant-note--error[b-2xfq0hnimq] {
    color: var(--color-danger);
}

.tenant-note--warn[b-2xfq0hnimq] {
    color: var(--color-gold);
}
/* /Components/Editing/UbiquitiEditPanel.razor.rz.scp.css */
/* Body styles only — the slide-over chrome lives in EditSheet.razor.css. A simple stacked
   layout for the fixed Ubiquiti fields. */

.edit-section[b-3psmvorhvp] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.edit-section__label[b-3psmvorhvp] {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.ubiquiti-fields[b-3psmvorhvp] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* The console address: the Uri's fixed parts either side of the one part that is asked for. */
.uri-box[b-3psmvorhvp] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.uri-box__affix[b-3psmvorhvp] {
    flex-shrink: 0;
    color: var(--white-a50);
    font-size: 13px;
    white-space: nowrap;
}

.uri-box__host[b-3psmvorhvp] {
    flex: 1 1 auto;
    min-width: 0;
}

.uri-box--invalid .uri-box__host[b-3psmvorhvp] {
    border-color: var(--color-danger);
}

.uri-note[b-3psmvorhvp] {
    margin-top: 6px;
    color: var(--white-a50);
    font-size: 12px;
    overflow-wrap: anywhere;
}

.uri-note--error[b-3psmvorhvp] {
    color: var(--color-danger);
}

/* "Test connection" and what it said — the button, then a hint or the last answer beside it. */
.ubiquiti-test[b-3psmvorhvp] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 4px;
}

.ubiquiti-test__hint[b-3psmvorhvp] {
    color: var(--white-a50);
    font-size: 12px;
}

.ubiquiti-test__result[b-3psmvorhvp] {
    flex: 1 1 240px;
    min-width: 0;
    font-size: 13px;
    line-height: 1.45;
}

.ubiquiti-test__result--ok[b-3psmvorhvp] {
    color: var(--success);
}

.ubiquiti-test__result--failed[b-3psmvorhvp] {
    color: var(--color-danger);
}

/* /Components/Help/HelpChat.razor.rz.scp.css */
/* The assistant beneath the article: a divider, a heading, the disclosure, the thread and a
   one-line question box. */

.help-chat[b-6fag5sy126] {
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid var(--dk-divider);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.help-chat__head[b-6fag5sy126] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.help-chat__title[b-6fag5sy126] {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--dk-text-1);
    text-transform: none;
    letter-spacing: normal;
}

.help-chat__clear[b-6fag5sy126] {
    background: none;
    border: 0;
    padding: 4px 6px;
    font: inherit;
    font-size: 12px;
    color: var(--dk-text-3);
    cursor: pointer;
    border-radius: 6px;
}

.help-chat__clear:hover[b-6fag5sy126] {
    color: var(--dk-text-1);
    background: var(--dk-surface-3);
}

.help-chat__disclosure[b-6fag5sy126] {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--dk-text-3);
}

.help-chat__thread[b-6fag5sy126] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.help-chat__turn[b-6fag5sy126] {
    max-width: 100%;
    border-radius: 12px;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.55;
}

.help-chat__turn--user[b-6fag5sy126] {
    align-self: flex-end;
    max-width: 85%;
    background: var(--dk-accent-soft);
    border: 1px solid var(--dk-accent-border);
    color: var(--dk-text-1);
}

.help-chat__turn--assistant[b-6fag5sy126] {
    align-self: stretch;
    background: var(--dk-surface);
    border: 1px solid var(--dk-border);
    color: var(--dk-text-2);
}

.help-chat__question[b-6fag5sy126] {
    margin: 0;
    white-space: pre-wrap;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.help-chat__thinking[b-6fag5sy126] {
    margin: 0;
    color: var(--dk-text-3);
    font-size: inherit;
    line-height: inherit;
    font-style: italic;
}

/* The answer's paragraphs take the bubble's colour and size. The global stylesheet's "p" rule
   (tokens.css) would otherwise paint them light-theme grey at 1rem — an element rule beats
   inheritance, and CSS isolation keeps the drawer's article rules out of this component. The
   question paragraph above needs the same. The last paragraph loses its trailing margin so the
   bubble hugs the text. */
.help-chat__turn--assistant[b-6fag5sy126]  p {
    margin: 0 0 8px;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.help-chat__turn--assistant[b-6fag5sy126]  .ca-markdown > :last-child {
    margin-bottom: 0;
}

.help-chat__notice[b-6fag5sy126] {
    margin: 0;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid var(--gold-a40);
    background: var(--gold-a10);
    color: var(--dk-text-1);
    font-size: 13px;
}

.help-chat__form[b-6fag5sy126] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.help-chat__input[b-6fag5sy126] {
    flex: 1 1 auto;
    min-width: 0;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--dk-border-strong);
    background: var(--dk-well-1);
    color: var(--dk-text-1);
    font: inherit;
    font-size: 14px;
}

.help-chat__input[b-6fag5sy126]::placeholder {
    color: var(--dk-text-5);
}

.help-chat__input:focus-visible[b-6fag5sy126] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 1px;
}

.help-chat__input:disabled[b-6fag5sy126] {
    opacity: 0.6;
}

.help-chat__send[b-6fag5sy126] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 0;
    background: var(--color-cyan);
    color: var(--white);
    cursor: pointer;
    box-shadow: 0 8px 20px var(--cyan-a30);
}

.help-chat__send:disabled[b-6fag5sy126] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

.help-chat__send:focus-visible[b-6fag5sy126] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}
/* /Components/Help/HelpDrawer.razor.rz.scp.css */
/* The help slide-over's chrome — the same material and geometry as EditSheet (which owns the
   edit-* classes for the editing panels), kept separate because this sheet has no footer, no
   dirty state and a reading layout. One deliberate difference: the backdrop is a lighter scrim
   with no blur, because the help is about the page behind it — the page stays readable while
   the drawer is open, where an editing sheet dims what it is about to change. */

.help-overlay[b-6tl4tsivdk] {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: var(--dk-scrim-light);
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    padding: 10px 30px;
    overflow: hidden;
}

.help-panel[b-6tl4tsivdk] {
    width: 100%;
    max-width: 640px;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, var(--dk-sheet-top), var(--dk-sheet-bottom));
    border: 1px solid var(--white-a10);
    border-radius: 18px;
    box-shadow: 0 24px 80px var(--black-a50);
}

.help-panel:focus[b-6tl4tsivdk] {
    outline: none;
}

.help-panel__header[b-6tl4tsivdk] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--white-a08);
}

.help-panel__heading[b-6tl4tsivdk] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.help-panel__eyebrow[b-6tl4tsivdk] {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-cyan);
}

.help-panel__title[b-6tl4tsivdk] {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--white);
}

.help-panel__close[b-6tl4tsivdk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--white-a60);
    cursor: pointer;
}

.help-panel__close:hover[b-6tl4tsivdk] {
    background: var(--white-a06);
    color: var(--white);
}

.help-panel__close:focus-visible[b-6tl4tsivdk] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.help-panel__body[b-6tl4tsivdk] {
    flex: 1 1 auto;
    min-height: 0;
    padding: 20px 24px 24px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.help-panel__back[b-6tl4tsivdk] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid var(--dk-border-strong);
    background: var(--dk-surface);
    color: var(--dk-text-2);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.help-panel__back:hover[b-6tl4tsivdk] {
    background: var(--dk-surface-3);
    color: var(--dk-text-1);
}

.help-panel__back:focus-visible[b-6tl4tsivdk] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.help-panel__summary[b-6tl4tsivdk] {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--dk-text-3);
}

/* Reading typography for the article. MarkdownView is a child component, so its output is
   reached through ::deep. (CSS isolation keeps these rules to this component: the assistant's
   answers in HelpChat carry that component's scope and dress themselves.)

   Paragraphs name their colour and size: the global stylesheet's "p" rule (tokens.css) paints
   every paragraph in the light-theme ink tone at 1rem, and an element rule beats inheritance,
   so without this the body text sat dark grey on the dark sheet while lists and headings —
   which no global rule touches — read fine. */
.help-panel__article[b-6tl4tsivdk] {
    font-size: 14px;
    line-height: 1.6;
    color: var(--dk-text-2);
}

.help-panel__article[b-6tl4tsivdk]  .ca-markdown > :first-child {
    margin-top: 0;
}

.help-panel__article[b-6tl4tsivdk]  .ca-markdown > :last-child {
    margin-bottom: 0;
}

.help-panel__article[b-6tl4tsivdk]  h2,
.help-panel__article[b-6tl4tsivdk]  h3,
.help-panel__article[b-6tl4tsivdk]  h4 {
    font-family: var(--font-heading);
    color: var(--dk-text-1);
    text-transform: none;
    letter-spacing: normal;
    margin: 22px 0 8px;
    line-height: 1.3;
}

.help-panel__article[b-6tl4tsivdk]  h2 { font-size: 17px; }
.help-panel__article[b-6tl4tsivdk]  h3 { font-size: 15px; }
.help-panel__article[b-6tl4tsivdk]  h4 { font-size: 14px; }

.help-panel__article[b-6tl4tsivdk]  p {
    margin: 0 0 10px;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.help-panel__article[b-6tl4tsivdk]  ul,
.help-panel__article[b-6tl4tsivdk]  ol {
    margin: 0 0 10px;
    padding-left: 22px;
}

.help-panel__article[b-6tl4tsivdk]  li {
    margin: 3px 0;
}

.help-panel__article[b-6tl4tsivdk]  li > ul,
.help-panel__article[b-6tl4tsivdk]  li > ol {
    margin-top: 4px;
}

.help-panel__article[b-6tl4tsivdk]  strong {
    color: var(--dk-text-1);
    font-weight: 600;
}

.help-panel__article[b-6tl4tsivdk]  code {
    font-family: var(--font-mono);
    font-size: 12.5px;
    padding: 1px 5px;
    border-radius: 5px;
    background: var(--white-a06);
    color: var(--dk-text-1);
}

.help-panel__article[b-6tl4tsivdk]  pre {
    margin: 0 0 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--dk-well-1);
    overflow-x: auto;
}

.help-panel__article[b-6tl4tsivdk]  pre code {
    padding: 0;
    background: none;
}

.help-panel__article[b-6tl4tsivdk]  blockquote {
    margin: 0 0 10px;
    padding: 8px 14px;
    border-left: 3px solid var(--dk-accent-border);
    background: var(--dk-accent-soft);
    border-radius: 0 10px 10px 0;
}

.help-panel__article[b-6tl4tsivdk]  hr {
    border: 0;
    border-top: 1px solid var(--dk-divider);
    margin: 16px 0;
}

.help-panel__article[b-6tl4tsivdk]  table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 12px;
    font-size: 13px;
}

.help-panel__article[b-6tl4tsivdk]  th,
.help-panel__article[b-6tl4tsivdk]  td {
    text-align: left;
    vertical-align: top;
    padding: 7px 10px;
    border-bottom: 1px solid var(--dk-divider);
}

.help-panel__article[b-6tl4tsivdk]  th {
    color: var(--dk-text-3);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.02em;
}

.help-panel__article[b-6tl4tsivdk]  a {
    color: var(--color-cyan);
    text-decoration: none;
    font-weight: 600;
}

.help-panel__article[b-6tl4tsivdk]  a:hover {
    text-decoration: underline;
}

.help-panel__article[b-6tl4tsivdk]  a:focus-visible {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
    border-radius: 3px;
}

/* The fold between the overview and the rest of the article: a link-styled disclosure whose
   chevron turns while the details are open. The Icon is a child component, hence ::deep. */
.help-panel__details-toggle[b-6tl4tsivdk] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    border: 0;
    border-radius: 4px;
    background: none;
    color: var(--color-cyan);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.help-panel__details-toggle:hover[b-6tl4tsivdk] {
    text-decoration: underline;
}

.help-panel__details-toggle:focus-visible[b-6tl4tsivdk] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.help-panel__details-toggle[b-6tl4tsivdk]  .help-panel__details-chevron {
    transition: transform 0.15s;
}

.help-panel__details-toggle[aria-expanded="true"][b-6tl4tsivdk]  .help-panel__details-chevron {
    transform: rotate(180deg);
}

@media (max-width: 600px) {
    .help-overlay[b-6tl4tsivdk] {
        padding: 0;
    }

    .help-panel[b-6tl4tsivdk] {
        max-width: none;
        border-radius: 0;
        border: 0;
    }
}
/* /Components/Layout/DashboardNav.razor.rz.scp.css */
.ca-nav__brand[b-9hrmim5w27] {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    cursor: pointer;
}

.ca-nav__badge[b-9hrmim5w27] {
    padding: 3px 8px;
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: var(--cyan-a14);
    color: var(--color-cyan);
    border-radius: 4px;
    border: 1px solid var(--cyan-a30);
    font-weight: 600;
}


.ca-nav__public[b-9hrmim5w27] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: var(--white-a04);
    border: 1px solid var(--white-a18);
    color: var(--white-a92);
    font-size: 13px;
    font-weight: 500;
    border-radius: 8px;
    text-decoration: none;
    font-family: var(--font-mono);
    margin-right: 12px;
    transition: background .15s;
}
.ca-nav__public:hover[b-9hrmim5w27] {
    background: var(--white-a08);
    opacity: 1;
}

/* Help button + account menu, tighter than the bar's 32px gap. */
.ca-nav__actions[b-9hrmim5w27] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ca-nav__help[b-9hrmim5w27] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid var(--white-a12);
    background: var(--white-a04);
    color: var(--white-a85);
    cursor: pointer;
    transition: background .15s, color .15s;
}
.ca-nav__help:hover[b-9hrmim5w27],
.ca-nav__help[aria-expanded="true"][b-9hrmim5w27] {
    background: var(--white-a08);
    color: var(--white);
}
.ca-nav__help:focus-visible[b-9hrmim5w27] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

/* Away-from-home pill (14 Oct 2026): the zone times are shown in, when it is not the user's
   home zone. A quiet gold so it reads as a notice, not an alarm. */
.ca-nav__zone[b-9hrmim5w27] {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--gold-a40);
    background: var(--gold-a10);
    color: var(--color-gold);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: background .15s;
}
.ca-nav__zone:hover[b-9hrmim5w27] {
    background: var(--gold-a14);
    opacity: 1;
}
.ca-nav__zone:focus-visible[b-9hrmim5w27] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.ca-nav__user-wrap[b-9hrmim5w27] {
    position: relative;
}

.ca-nav__user[b-9hrmim5w27] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 6px 4px 4px;
    background: var(--white-a04);
    border: 1px solid var(--white-a12);
    border-radius: 999px;
    cursor: pointer;
    transition: background .15s;
}
.ca-nav__user:hover[b-9hrmim5w27] { background: var(--white-a08); }

.ca-nav__avatar[b-9hrmim5w27] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: radial-gradient(120% 100% at 30% 30%, var(--cyan-bright) 0%, var(--color-mulberry) 70%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
}
.ca-nav__avatar--lg[b-9hrmim5w27] {
    width: 36px;
    height: 36px;
    font-size: 13px;
}

.ca-nav__user-name[b-9hrmim5w27] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
}

.ca-nav__caret[b-9hrmim5w27] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--white-a08);
    color: var(--white-a85);
    transition: transform .2s;
}
.ca-nav__caret--open[b-9hrmim5w27] { transform: rotate(180deg); }

.ca-nav__backdrop[b-9hrmim5w27] {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 99;
}

.ca-nav__menu[b-9hrmim5w27] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 240px;
    background: var(--dk-elevated);
    border: 1px solid var(--white-a08);
    border-radius: 12px;
    box-shadow: 0 24px 60px var(--black-a40);
    overflow: hidden;
    z-index: 100;
}

.ca-nav__menu-head[b-9hrmim5w27] {
    padding: 14px 16px;
    border-bottom: 1px solid var(--white-a06);
    display: flex;
    align-items: center;
    gap: 12px;
}

.ca-nav__menu-id[b-9hrmim5w27] { min-width: 0; }
.ca-nav__menu-name[b-9hrmim5w27] {
    font-size: 13px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
}
.ca-nav__menu-email[b-9hrmim5w27] {
    font-size: 11px;
    color: var(--white-a55);
    font-family: var(--font-mono);
    margin-top: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ca-nav__menu-items[b-9hrmim5w27] {
    padding: 6px;
    display: flex;
    flex-direction: column;
}

.ca-nav__menu-divider[b-9hrmim5w27] {
    height: 1px;
    background: var(--white-a06);
    margin: 6px 4px;
}

.ca-nav__menu-item[b-9hrmim5w27] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: none;
    border: 0;
    color: var(--white);
    font-size: 13px;
    font-family: inherit;
    font-weight: 500;
    text-align: left;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s;
}
.ca-nav__menu-item:hover[b-9hrmim5w27] {
    background: var(--white-a06);
    opacity: 1;
}

.ca-nav__menu-item--danger[b-9hrmim5w27] {
    color: var(--white-a70);
}
.ca-nav__menu-item--danger:hover[b-9hrmim5w27] {
    background: var(--red-a12);
    color: var(--status-error);
}

/* The user-menu trigger is a <button>: reset the UA styles it would pick up. */
.ca-nav__user[b-9hrmim5w27] {
    font: inherit;
    color: inherit;
}

.ca-nav__user:focus-visible[b-9hrmim5w27],
.ca-nav__burger:focus-visible[b-9hrmim5w27],
.ca-nav__menu-item:focus-visible[b-9hrmim5w27] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

/* Hamburger — hidden on desktop; under 980px hub.css hides .ca-nav__links, so the
   burger takes over and the strip becomes a dropdown under the bar when open. */
.ca-nav__burger[b-9hrmim5w27] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: 1px solid var(--white-a12);
    background: var(--white-a04);
    color: var(--white);
    cursor: pointer;
}

@media (max-width: 980px) {
    .ca-nav__inner[b-9hrmim5w27] {
        position: relative;
        gap: 16px;
    }

    .ca-nav__burger[b-9hrmim5w27] {
        display: inline-flex;
    }

    .ca-nav__links--open[b-9hrmim5w27] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        padding: 8px;
        background: var(--dk-elevated);
        border: 1px solid var(--white-a08);
        border-radius: 0 0 12px 12px;
        box-shadow: 0 24px 60px var(--black-a40);
        z-index: 100;
    }

    .ca-nav__links--open .ca-nav__link[b-9hrmim5w27] {
        display: block;
        padding: 12px 14px;
    }

    .ca-nav__user-name[b-9hrmim5w27] {
        display: none;
    }
}
/* /Components/Layout/HubLandingNav.razor.rz.scp.css */
.ca-nav__brand[b-jj3p4nli9g] {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    cursor: pointer;
}

.ca-nav__badge[b-jj3p4nli9g] {
    padding: 3px 8px;
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: var(--cyan-a14);
    color: var(--color-cyan);
    border-radius: 4px;
    border: 1px solid var(--cyan-a30);
    font-weight: 600;
}

.ca-nav__signin[b-jj3p4nli9g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: var(--white-a04);
    border: 1px solid var(--white-a18);
    color: var(--white-a92);
    font-size: 13px;
    font-weight: 500;
    border-radius: 8px;
    text-decoration: none;
    font-family: var(--font-mono);
    transition: background .15s, border-color .15s;
}

.ca-nav__signin:hover[b-jj3p4nli9g] {
    background: var(--white-a08);
    opacity: 1;
}

.ca-nav__signup[b-jj3p4nli9g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 6px 12px;
    background: var(--color-cyan);
    border: 1px solid var(--color-cyan);
    color: var(--white);
    font-size: 13px;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    font-family: var(--font-mono);
    transition: filter .15s;
}

.ca-nav__signup:hover[b-jj3p4nli9g] {
    filter: brightness(1.08);
    opacity: 1;
}
/* /Components/Network/NetworkDiagram.razor.rz.scp.css */
.diagram[b-qvg8jrozh7] {
    position: relative;
    height: clamp(420px, 68vh, 860px);
    border-radius: 16px;
    border: 1px solid var(--dk-border);
    background: var(--dk-surface);
    overflow: hidden;
}

.diagram__tools[b-qvg8jrozh7] {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    gap: 6px;
    z-index: 1;
}

.tool[b-qvg8jrozh7] {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border-radius: 8px;
    border: 1px solid var(--dk-border-strong);
    background: var(--dk-elevated);
    color: var(--dk-text-1);
    font: inherit;
    font-size: 15px;
    cursor: pointer;
}

.tool--wide[b-qvg8jrozh7] {
    font-size: 12px;
}

.tool:hover[b-qvg8jrozh7],
.tool:focus-visible[b-qvg8jrozh7] {
    border-color: var(--dk-accent-border);
}

.diagram__svg[b-qvg8jrozh7] {
    width: 100%;
    height: 100%;
    display: block;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.diagram__svg.is-panning[b-qvg8jrozh7] {
    cursor: grabbing;
}

/* Wires */

.wire__base[b-qvg8jrozh7],
.wire__flow[b-qvg8jrozh7] {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wire__base[b-qvg8jrozh7] {
    stroke: var(--net-wire);
}

.wire--wireless .wire__base[b-qvg8jrozh7] {
    stroke-dasharray: 2 7;
}

.wire--offline .wire__base[b-qvg8jrozh7] {
    stroke: var(--net-offline);
    opacity: 0.45;
}

.wire__flow[b-qvg8jrozh7] {
    stroke: var(--net-flow);
    stroke-dasharray: 1 23;
    opacity: 0.85;
}

.wire--none .wire__flow[b-qvg8jrozh7],
.wire--plain .wire__flow[b-qvg8jrozh7],
.wire--offline .wire__flow[b-qvg8jrozh7] {
    display: none;
}

.wire--slow .wire__flow[b-qvg8jrozh7] {
    animation: flow-down-b-qvg8jrozh7 3.2s linear infinite;
}

.wire--medium .wire__flow[b-qvg8jrozh7] {
    animation: flow-down-b-qvg8jrozh7 1.6s linear infinite;
}

.wire--fast .wire__flow[b-qvg8jrozh7] {
    animation: flow-down-b-qvg8jrozh7 0.8s linear infinite;
}

.wire--up .wire__flow[b-qvg8jrozh7] {
    animation-name: flow-up-b-qvg8jrozh7;
}

@keyframes flow-down-b-qvg8jrozh7 {
    from { stroke-dashoffset: 24; }
    to { stroke-dashoffset: 0; }
}

@keyframes flow-up-b-qvg8jrozh7 {
    from { stroke-dashoffset: 0; }
    to { stroke-dashoffset: 24; }
}

@media (prefers-reduced-motion: reduce) {
    .wire__flow[b-qvg8jrozh7] {
        display: none;
    }
}

/* Nodes */

.node[b-qvg8jrozh7] {
    color: var(--net-other);
    outline: none;
}

.node--actionable[b-qvg8jrozh7] {
    cursor: pointer;
}

.node--gateway[b-qvg8jrozh7] { color: var(--net-gateway); }
.node--switch[b-qvg8jrozh7] { color: var(--net-switch); }
.node--ap[b-qvg8jrozh7] { color: var(--net-ap); }
.node--internet[b-qvg8jrozh7],
.node--site[b-qvg8jrozh7],
.node--unplaced[b-qvg8jrozh7],
.node--more[b-qvg8jrozh7] { color: var(--dk-text-3); }

.node__box[b-qvg8jrozh7] {
    fill: var(--net-node);
    stroke: var(--dk-border-strong);
    stroke-width: 1;
}

.node--actionable:hover .node__box[b-qvg8jrozh7],
.node:focus-visible .node__box[b-qvg8jrozh7] {
    stroke: var(--dk-accent-border);
}

.node--selected .node__box[b-qvg8jrozh7] {
    stroke: var(--net-flow);
    stroke-width: 2;
}

.node--group .node__box[b-qvg8jrozh7],
.node--unplaced .node__box[b-qvg8jrozh7],
.node--more .node__box[b-qvg8jrozh7] {
    stroke-dasharray: 5 4;
}

.node__accent[b-qvg8jrozh7] {
    fill: currentColor;
}

.node__icon[b-qvg8jrozh7] {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* The labels are built in C# (NetworkDiagram.SvgText), outside this file's scope attribute. */
.diagram[b-qvg8jrozh7]  .node__label {
    fill: var(--dk-text-1);
    font-size: 13px;
    font-weight: 600;
}

.diagram[b-qvg8jrozh7]  .node__detail {
    fill: var(--dk-text-3);
    font-size: 11px;
    font-family: var(--font-mono);
}

.node__state[b-qvg8jrozh7] {
    fill: var(--status-ok);
}

.node--offline .node__state[b-qvg8jrozh7] {
    fill: var(--net-offline);
}

.node--pending .node__state[b-qvg8jrozh7],
.node--unknown .node__state[b-qvg8jrozh7] {
    fill: var(--status-warn);
}

.diagram[b-qvg8jrozh7]  .node--offline .node__label,
.node--offline .node__icon[b-qvg8jrozh7] {
    opacity: 0.6;
}
/* /Components/Pages/ActivityPage.razor.rz.scp.css */
.stars[b-pjggdvwa9a] {
    opacity: 0.4;
}

.not-found[b-pjggdvwa9a] {
    color: var(--white);
}

.back-link[b-pjggdvwa9a] {
    margin-bottom: 16px;
    gap: 6px;
}

.header-row[b-pjggdvwa9a] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 16px;
}

.eyebrow[b-pjggdvwa9a] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow__rule[b-pjggdvwa9a] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-pjggdvwa9a] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.subtitle[b-pjggdvwa9a] {
    color: var(--white-a65);
    font-size: 14px;
    margin: 8px 0 0;
}

.highlight[b-pjggdvwa9a] {
    color: var(--white);
}

.stat-pill[b-pjggdvwa9a] {
    display: flex;
    gap: 24px;
    padding: 14px 20px;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 12px;
}

.scope-banner[b-pjggdvwa9a] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--scope-bg);
    /* 25% of the scope colour — was a C#-built "{colour}40" hex-alpha suffix, invalid
       whenever the colour is var(--color-cyan) (the project and fallback scopes). */
    border: 1px solid color-mix(in srgb, var(--scope-color) 25%, transparent);
    border-radius: 10px;
    margin-bottom: 20px;
}

.scope-badge[b-pjggdvwa9a] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--black-a35);
    color: var(--scope-color);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.scope-text[b-pjggdvwa9a] {
    font-size: 13px;
    color: var(--white);
    flex: 1;
}

.scope-text strong[b-pjggdvwa9a] {
    font-family: var(--font-mono);
}

.widen-btn[b-pjggdvwa9a] {
    background: var(--white-a06);
    border: 1px solid var(--white-a12);
    color: var(--white);
    font-size: 12px;
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.filter-chips[b-pjggdvwa9a] {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: center;
}

.entity-select[b-pjggdvwa9a] {
    margin-left: auto;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--white-a04);
    border: 1px solid var(--white-a10);
    color: var(--white-a75);
    font-size: 12px;
    font-family: inherit;
    cursor: pointer;
}

.entity-select option[b-pjggdvwa9a] {
    background: var(--dk-well-2);
    color: var(--white);
}

/* Placeholder while a server page loads — same footprint as a row card so the
   virtualised scrollbar stays honest. */
.row-placeholder[b-pjggdvwa9a] {
    height: 72px;
    margin-bottom: 12px;
    border-radius: 14px;
    background: var(--white-a02);
    border: 1px solid var(--white-a05);
}

.empty-state[b-pjggdvwa9a] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    padding: 60px;
    text-align: center;
    color: var(--white-a60);
    font-size: 13px;
}

/* Flat list of card rows — no wrapping panel, no inner scroll. The cards provide
   their own chrome and the list rides the page scrollbar (mirrors the resources list).
   The column header aligns to the card grid: card content sits at 24px padding + 1px
   border = 25px, so the header matches. */
.table-head[b-pjggdvwa9a] {
    display: grid;
    grid-template-columns: 120px 44px 1fr 180px 140px;
    gap: 16px;
    padding: 0 25px 12px;
}

.col-label[b-pjggdvwa9a] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
}

.table-foot[b-pjggdvwa9a] {
    padding: 16px 24px 0;
    text-align: center;
    font-size: 11px;
    color: var(--white-a60);
    font-family: var(--font-mono);
}

@media (max-width: 768px) {
    .table-head[b-pjggdvwa9a] { grid-template-columns: 100px 36px minmax(0, 1fr); }
    .table-head > :nth-child(4)[b-pjggdvwa9a], .table-head > :nth-child(5)[b-pjggdvwa9a] { display: none; }
    .header-row[b-pjggdvwa9a] { flex-wrap: wrap; gap: 16px; }
}
/* /Components/Pages/AdministrationPage.razor.rz.scp.css */
.stars[b-1mq1er5jtm] {
    opacity: 0.4;
}

.wrap[b-1mq1er5jtm] {
    padding: 32px 32px 64px;
}

.header[b-1mq1er5jtm] {
    margin-bottom: 24px;
}

.back-btn[b-1mq1er5jtm] {
    margin-bottom: 16px;
    gap: 6px;
}

.eyebrow[b-1mq1er5jtm] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow-rule[b-1mq1er5jtm] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-1mq1er5jtm] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.layout[b-1mq1er5jtm] {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 20px;
    align-items: start;
}

.side-nav[b-1mq1er5jtm] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    padding: 8px;
    position: sticky;
    top: 80px;
}

@media (max-width: 980px) {
    .layout[b-1mq1er5jtm] { grid-template-columns: 1fr; }
    .side-nav[b-1mq1er5jtm] { position: static; }
}
/* /Components/Pages/AuditRequestedPage.razor.rz.scp.css */
/* The audit-requested landing page: the dashboard's ground and starfield, one narrow column of
   text and a single way back. */

.stars[b-qtr5e5v0j9] {
    opacity: 0.5;
}

.wrap[b-qtr5e5v0j9] {
    padding: 64px 32px 96px;
}

.requested[b-qtr5e5v0j9] {
    max-width: 640px;
}

.eyebrow[b-qtr5e5v0j9] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.title[b-qtr5e5v0j9] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.4vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.lead[b-qtr5e5v0j9] {
    color: var(--white-a70);
    font-size: 15px;
    line-height: 1.6;
    margin: 16px 0 0;
}

.reference[b-qtr5e5v0j9] {
    color: var(--white-a55);
    font-size: 13px;
    letter-spacing: 0.04em;
    margin: 12px 0 0;
}

.actions[b-qtr5e5v0j9] {
    margin-top: 32px;
}
/* /Components/Pages/CompanyPage.razor.rz.scp.css */
.stars[b-87ft73op5h] {
    opacity: 0.4;
}

.not-found[b-87ft73op5h] {
    color: var(--white);
}

.loading[b-87ft73op5h] {
    font-size: 13px;
    color: var(--white-a55);
}

.back-link[b-87ft73op5h] {
    margin-bottom: 16px;
    gap: 6px;
}

.intro[b-87ft73op5h] {
    margin-bottom: 28px;
}

.edit-fields[b-87ft73op5h] {
    display: flex;
    flex-direction: column;
}

.eyebrow[b-87ft73op5h] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow__rule[b-87ft73op5h] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-87ft73op5h] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.projects-section[b-87ft73op5h] {
    margin-top: 32px;
}

.section-header[b-87ft73op5h] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 16px;
}

.section-label[b-87ft73op5h] {
    font-size: 11px;
    color: var(--white-a50);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.section-title[b-87ft73op5h] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.count-accent[b-87ft73op5h] {
    color: var(--color-cyan);
    margin-left: 12px;
}

.project-list[b-87ft73op5h] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.capacity-hint[b-87ft73op5h] {
    margin-top: 20px;
    padding: 14px 16px;
    background: var(--cyan-a06);
    border-radius: 10px;
    font-size: 12px;
    color: var(--white-a65);
    border-left: 2px solid var(--color-cyan);
}
/* /Components/Pages/DashboardPage.razor.rz.scp.css */
.stars[b-70yzcjdfr3] {
    opacity: 0.5;
}

.wrap[b-70yzcjdfr3] {
    padding: 40px 32px 80px;
}

/* The Azure stat row: the three cards share the full width (a fourth slots in as another
   column when there is one). */
.stat-grid[b-70yzcjdfr3] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.panels[b-70yzcjdfr3] {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 20px;
}

.panel-col[b-70yzcjdfr3] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@media (max-width: 980px) {
    .stat-grid[b-70yzcjdfr3] { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
    .panels[b-70yzcjdfr3] { grid-template-columns: 1fr; }
}
/* /Components/Pages/LogsPage.razor.rz.scp.css */
.stars[b-f2rcikv2sn] {
    opacity: 0.4;
}

.not-found[b-f2rcikv2sn] {
    color: var(--white);
}

.back-link[b-f2rcikv2sn] {
    margin-bottom: 16px;
    gap: 6px;
}

.header-row[b-f2rcikv2sn] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 16px;
}

.eyebrow[b-f2rcikv2sn] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow__rule[b-f2rcikv2sn] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-f2rcikv2sn] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.subtitle[b-f2rcikv2sn] {
    color: var(--white-a65);
    font-size: 14px;
    margin: 8px 0 0;
}

.highlight[b-f2rcikv2sn] {
    color: var(--white);
}

.stat-pill[b-f2rcikv2sn] {
    display: flex;
    gap: 24px;
    padding: 14px 20px;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 12px;
}

.scope-banner[b-f2rcikv2sn] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--scope-bg);
    /* 25% of the scope colour — was a C#-built "{colour}40" hex-alpha suffix, invalid
       whenever the colour is var(--color-cyan) (the project and fallback scopes). */
    border: 1px solid color-mix(in srgb, var(--scope-color) 25%, transparent);
    border-radius: 10px;
    margin-bottom: 20px;
}

.scope-badge[b-f2rcikv2sn] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--black-a35);
    color: var(--scope-color);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.scope-text[b-f2rcikv2sn] {
    font-size: 13px;
    color: var(--white);
    flex: 1;
}

.scope-text strong[b-f2rcikv2sn] {
    font-family: var(--font-mono);
}

.widen-btn[b-f2rcikv2sn] {
    background: var(--white-a06);
    border: 1px solid var(--white-a12);
    color: var(--white);
    font-size: 12px;
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.filter-chips[b-f2rcikv2sn] {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: center;
}

.entity-select[b-f2rcikv2sn] {
    margin-left: auto;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--white-a04);
    border: 1px solid var(--white-a10);
    color: var(--white-a75);
    font-size: 12px;
    font-family: inherit;
    cursor: pointer;
}

.entity-select option[b-f2rcikv2sn] {
    background: var(--dk-well-2);
    color: var(--white);
}

/* Placeholder while a server page loads — same footprint as a row card so the
   virtualised scrollbar stays honest. */
.row-placeholder[b-f2rcikv2sn] {
    height: 72px;
    margin-bottom: 12px;
    border-radius: 14px;
    background: var(--white-a02);
    border: 1px solid var(--white-a05);
}

.empty-state[b-f2rcikv2sn] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    padding: 60px;
    text-align: center;
    color: var(--white-a60);
    font-size: 13px;
}

/* Flat list of card rows — no wrapping panel, no inner scroll. The cards provide
   their own chrome and the list rides the page scrollbar (mirrors the resources list).
   The column header aligns to the card grid: card content sits at 24px padding + 1px
   border = 25px, so the header matches. */
.table-head[b-f2rcikv2sn] {
    display: grid;
    grid-template-columns: 120px 44px 1fr 180px 140px;
    gap: 16px;
    padding: 0 25px 12px;
}

.col-label[b-f2rcikv2sn] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
}

.table-foot[b-f2rcikv2sn] {
    padding: 16px 24px 0;
    text-align: center;
    font-size: 11px;
    color: var(--white-a60);
    font-family: var(--font-mono);
}

@media (max-width: 768px) {
    .table-head[b-f2rcikv2sn] { grid-template-columns: 100px 36px minmax(0, 1fr); }
    .table-head > :nth-child(4)[b-f2rcikv2sn], .table-head > :nth-child(5)[b-f2rcikv2sn] { display: none; }
    .header-row[b-f2rcikv2sn] { flex-wrap: wrap; gap: 16px; }
}
/* /Components/Pages/NetworkPage.razor.rz.scp.css */
.stars[b-qxbtre04ig] {
    opacity: 0.4;
}

.loading[b-qxbtre04ig],
.empty[b-qxbtre04ig] {
    color: var(--dk-text-2);
}

.back-link[b-qxbtre04ig] {
    margin-bottom: 16px;
    gap: 6px;
}

.header-row[b-qxbtre04ig] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 16px;
}

.eyebrow[b-qxbtre04ig] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow__rule[b-qxbtre04ig] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-qxbtre04ig] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.subtitle[b-qxbtre04ig] {
    color: var(--white-a65);
    font-size: 14px;
    margin: 8px 0 0;
    max-width: 640px;
}

.highlight[b-qxbtre04ig] {
    color: var(--white);
}

.stat-pill[b-qxbtre04ig] {
    display: flex;
    gap: 24px;
    padding: 14px 20px;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 12px;
    flex-wrap: wrap;
}

.notice[b-qxbtre04ig] {
    padding: 12px 16px;
    margin-bottom: 16px;
    border-radius: 10px;
    border: 1px solid var(--dk-accent-border);
    background: var(--dk-accent-soft);
    color: var(--dk-text-2);
    font-size: 13px;
}

.trail[b-qxbtre04ig] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
    font-size: 13px;
}

.trail__link[b-qxbtre04ig] {
    font-size: 13px;
}

.trail__sep[b-qxbtre04ig] {
    color: var(--dk-text-5);
}

.trail__here[b-qxbtre04ig] {
    color: var(--dk-text-1);
    font-weight: 600;
}

.stage[b-qxbtre04ig] {
    position: relative;
}

.stage__diagram[b-qxbtre04ig] {
    min-width: 0;
}

.legend[b-qxbtre04ig] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: 10px;
    font-size: 12px;
    color: var(--dk-text-3);
}

.legend__item[b-qxbtre04ig] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.legend__note[b-qxbtre04ig] {
    flex-basis: 100%;
}

.swatch[b-qxbtre04ig] {
    width: 10px;
    height: 10px;
    border-radius: 3px;
}

.swatch--gateway[b-qxbtre04ig] { background: var(--net-gateway); }
.swatch--switch[b-qxbtre04ig] { background: var(--net-switch); }
.swatch--ap[b-qxbtre04ig] { background: var(--net-ap); }
.swatch--other[b-qxbtre04ig] { background: var(--net-other); }

/* Over the diagram rather than beside it, so opening it never rescales the drawing. */
.panel[b-qxbtre04ig] {
    position: absolute;
    top: 56px;
    right: 12px;
    width: 320px;
    max-height: calc(clamp(420px, 68vh, 860px) - 68px);
    overflow-y: auto;
    z-index: 2;
    padding: 18px;
    border-radius: 16px;
    border: 1px solid var(--dk-border-strong);
    background: var(--dk-elevated);
}

.panel__head[b-qxbtre04ig] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.panel__kind[b-qxbtre04ig] {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dk-text-3);
}

.panel__title[b-qxbtre04ig] {
    margin: 4px 0 0;
    font-family: inherit;
    text-transform: none;
    letter-spacing: normal;
    font-size: 18px;
    color: var(--dk-text-1);
    word-break: break-word;
}

.panel__close[b-qxbtre04ig] {
    background: none;
    border: none;
    color: var(--dk-text-3);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.panel__text[b-qxbtre04ig] {
    color: var(--dk-text-2);
    font-size: 13px;
    margin: 0 0 12px;
}

.facts[b-qxbtre04ig] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 8px 14px;
    margin: 0 0 16px;
    font-size: 13px;
}

.facts dt[b-qxbtre04ig] {
    color: var(--dk-text-3);
}

.facts dd[b-qxbtre04ig] {
    margin: 0;
    color: var(--dk-text-1);
    display: flex;
    align-items: center;
    gap: 6px;
    word-break: break-word;
}

.facts__mono[b-qxbtre04ig] {
    font-family: var(--font-mono);
    font-size: 12px;
}

.dot[b-qxbtre04ig] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--status-warn);
}

.dot--online[b-qxbtre04ig] { background: var(--status-ok); }
.dot--offline[b-qxbtre04ig] { background: var(--net-offline); }

.members[b-qxbtre04ig] {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    max-height: 260px;
    overflow-y: auto;
    display: grid;
    gap: 6px;
    font-size: 13px;
    color: var(--dk-text-2);
}

.members li[b-qxbtre04ig] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.members__more[b-qxbtre04ig] {
    color: var(--dk-text-3);
}

.panel__actions[b-qxbtre04ig] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

@media (max-width: 960px) {
    .panel[b-qxbtre04ig] {
        position: static;
        width: 100%;
        max-height: none;
        margin-top: 12px;
    }
}
/* /Components/Pages/ProfilePage.razor.rz.scp.css */
.stars[b-msbrznrqp4] {
    opacity: 0.4;
}

.wrap[b-msbrznrqp4] {
    padding: 32px 32px 64px;
}

.header[b-msbrznrqp4] {
    margin-bottom: 24px;
}

.back-btn[b-msbrznrqp4] {
    margin-bottom: 16px;
    gap: 6px;
}

.eyebrow[b-msbrznrqp4] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow-rule[b-msbrznrqp4] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-msbrznrqp4] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.layout[b-msbrznrqp4] {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 20px;
    align-items: start;
}

.side-nav[b-msbrznrqp4] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    padding: 8px;
    position: sticky;
    top: 80px;
}

.side-nav-divider[b-msbrznrqp4] {
    height: 1px;
    background: var(--white-a06);
    margin: 8px 0;
}

.sign-out-link[b-msbrznrqp4] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    background: transparent;
    border: 0;
    border-radius: 10px;
    color: var(--white-a60);
    font-size: 13px;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    text-align: left;
    border-left: 2px solid transparent;
    text-decoration: none;
}

@media (max-width: 980px) {
    .layout[b-msbrznrqp4] { grid-template-columns: 1fr; }
    .side-nav[b-msbrznrqp4] { position: static; }
}
/* /Components/Pages/ProjectPage.razor.rz.scp.css */
.stars[b-9so3qlm8wa] {
    opacity: 0.4;
}

.empty[b-9so3qlm8wa] {
    color: var(--white);
}

.loading[b-9so3qlm8wa] {
    font-size: 13px;
    color: var(--white-a55);
}

.backlink[b-9so3qlm8wa] {
    margin-bottom: 16px;
    gap: 6px;
}

.header[b-9so3qlm8wa] {
    margin-bottom: 28px;
}

/* Pillar accent is supplied at runtime via the --pillar custom property. */
.eyebrow[b-9so3qlm8wa] {
    font-size: 11px;
    color: var(--pillar);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow__rule[b-9so3qlm8wa] {
    width: 24px;
    height: 1px;
    background: var(--pillar);
}

.title[b-9so3qlm8wa] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.resource-filter[b-9so3qlm8wa] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 12px 0 16px;
}

.resource-filter__search[b-9so3qlm8wa] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.search[b-9so3qlm8wa] {
    max-width: 420px;
}

.resource-filter__tags[b-9so3qlm8wa] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

/* The "no tags" pill (17 Sep 2026; moved and restyled 19 Sep 2026): a filter that closes the
   tag strip, after the chips and the "+ N more" pill. It is not a tag, so it wears that pill's
   look rather than a chip's — TagList's .ca-taglist__more restated here because that sheet is
   scoped to TagList. On, it fills cyan and shows only the resources carrying no tags (and
   drops any tag chips). */
.untagged[b-9so3qlm8wa] {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    background: var(--cyan-a10);
    border: 1px solid var(--cyan-a35);
    color: var(--color-cyan);
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    line-height: 1.3;
    transition: background .15s, color .15s;
    flex: 0 0 auto;
}

.untagged:hover[b-9so3qlm8wa] {
    background: var(--cyan-a14);
}

.untagged--selected[b-9so3qlm8wa],
.untagged--selected:hover[b-9so3qlm8wa] {
    background: var(--color-cyan);
    border-color: var(--color-cyan);
    color: var(--white);
}

.tag-clear[b-9so3qlm8wa] {
    flex-shrink: 0;
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-cyan);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 0;
}

/* Card chrome for each row in the flat, tag-filtered view (mirrors the tree's leaf-card). */
.match-card[b-9so3qlm8wa] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    overflow: hidden;
}

.no-match[b-9so3qlm8wa] {
    color: var(--white-a50);
    font-family: var(--font-mono);
    font-size: 13px;
}

.resources[b-9so3qlm8wa] {
    margin-top: 32px;
}

.resources-head[b-9so3qlm8wa] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 16px;
}

.resources-label[b-9so3qlm8wa] {
    font-size: 11px;
    color: var(--white-a50);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.section-title[b-9so3qlm8wa] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.resources-meta[b-9so3qlm8wa] {
    color: var(--white-a60);
    margin-left: 12px;
    font-size: 0.6em;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-family: var(--font-mono);
}

.resource-list[b-9so3qlm8wa] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* The edit panel's manifest selector — the ca-input chrome compacted to row scale. */
.manifest-select[b-9so3qlm8wa] {
    width: auto;
    min-width: 220px;
    padding: 8px 12px;
    font-size: 13px;
}

/* Selector plus its download link, stacked. */
.manifest-field[b-9so3qlm8wa] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}

/* The meta-card "Download agent" action as a quiet link under the selector. */
.manifest-download[b-9so3qlm8wa] {
    font-size: 12px;
}
/* /Components/Pages/ProjectsPage.razor.rz.scp.css */
.stars[b-apn914vgft] {
    opacity: 0.4;
}

.header[b-apn914vgft] {
    margin-bottom: 32px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
}

.eyebrow[b-apn914vgft] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow-rule[b-apn914vgft] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-apn914vgft] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.subtitle[b-apn914vgft] {
    color: var(--white-a65);
    font-size: 14px;
    margin: 8px 0 0;
}

.subtitle-accent[b-apn914vgft] {
    color: var(--color-cyan);
}

.company-list[b-apn914vgft] {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* ---- Filter bar (mirrors ResourcesPage) ---- */

.filter-bar[b-apn914vgft] {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: flex-end;
}

.field[b-apn914vgft] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 220px;
}

.field--grow[b-apn914vgft] {
    flex: 1 1 200px;
}

.field-label[b-apn914vgft] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
}

.control[b-apn914vgft] {
    width: 100%;
    padding: 9px 12px;
    background: var(--white-a04);
    border: 1px solid var(--white-a12);
    border-radius: 8px;
    color: var(--white);
    font-family: inherit;
    font-size: 13px;
    transition: border-color .15s, background .15s;
}

.control:focus[b-apn914vgft] {
    outline: none;
    border-color: var(--color-cyan);
    background: var(--white-a06);
}

.control[b-apn914vgft]::placeholder {
    color: var(--white-a50);
}

select.control option[b-apn914vgft] {
    background: var(--dk-well-1);
    color: var(--white);
}

/* ---- Empty state (mirrors ResourcesPage) ---- */

.empty-panel[b-apn914vgft] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 90px 24px;
    border: 1px dashed var(--white-a12);
    border-radius: 16px;
    background: var(--white-a02);
}

.empty-panel__title[b-apn914vgft] {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    color: var(--white);
}

.empty-panel__sub[b-apn914vgft] {
    margin: 0 0 12px;
    font-size: 13px;
    color: var(--white-a65);
    max-width: 52ch;
    line-height: 1.5;
}

.loading[b-apn914vgft] {
    font-size: 13px;
    color: var(--white-a55);
}
/* /Components/Pages/ResourcePage.razor.rz.scp.css */
.stars[b-l3bcp7tlz6] {
    opacity: 0.4;
}

.not-found[b-l3bcp7tlz6] {
    color: var(--white);
}

.loading[b-l3bcp7tlz6] {
    font-size: 13px;
    color: var(--white-a55);
}

.back-btn[b-l3bcp7tlz6] {
    margin-bottom: 16px;
    gap: 6px;
}

.resource-header[b-l3bcp7tlz6] {
    margin-bottom: 28px;
}

.eyebrow[b-l3bcp7tlz6] {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--resource-color);
}

.eyebrow-rule[b-l3bcp7tlz6] {
    width: 24px;
    height: 1px;
    background: var(--resource-color);
}

.title[b-l3bcp7tlz6] {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: clamp(1.5rem, 2.6vw, 2.25rem);
    letter-spacing: -0.01em;
    line-height: 1.1;
    color: var(--white);
    margin: 0;
    word-break: break-all;
}

.device-toggle[b-l3bcp7tlz6] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.device-state[b-l3bcp7tlz6] {
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--white-a60);
}

/* The systems reporting this machine, one per row, with the split action for a merged device. */
.sources[b-l3bcp7tlz6] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.source-row[b-l3bcp7tlz6] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.source-system[b-l3bcp7tlz6] {
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.source-project[b-l3bcp7tlz6] {
    color: var(--white);
    font-size: 13px;
}

.source-split[b-l3bcp7tlz6] {
    margin-left: auto;
    font-size: 12px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

.split-confirm[b-l3bcp7tlz6] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--white-a12);
    border-radius: 10px;
    background: var(--white-a03);
}

.split-note[b-l3bcp7tlz6] {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--white-a60);
}

.split-name[b-l3bcp7tlz6] {
    padding: 7px 10px;
}

.split-actions[b-l3bcp7tlz6] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.split-error[b-l3bcp7tlz6] {
    font-size: 12px;
    color: var(--color-danger);
}

/* The join flow: search, pick, confirm — mirrors the split confirm's rhythm. */
.join-begin[b-l3bcp7tlz6] {
    font-size: 12px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

.join-confirm[b-l3bcp7tlz6] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--white-a12);
    border-radius: 10px;
    background: var(--white-a03);
}

.join-note[b-l3bcp7tlz6] {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--white-a60);
}

.join-note--picked strong[b-l3bcp7tlz6] {
    color: var(--white);
}

.join-search[b-l3bcp7tlz6] {
    padding: 7px 10px;
}

.join-candidates[b-l3bcp7tlz6] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--white-a10);
    border-radius: 8px;
    overflow: hidden;
}

.join-candidate[b-l3bcp7tlz6] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 8px 10px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--white-a06);
    color: var(--white);
    text-align: left;
    cursor: pointer;
}

.join-candidate:last-child[b-l3bcp7tlz6] {
    border-bottom: none;
}

.join-candidate:hover[b-l3bcp7tlz6] {
    background: var(--white-a06);
}

.join-candidate__name[b-l3bcp7tlz6] {
    font-size: 13px;
}

.join-candidate__meta[b-l3bcp7tlz6] {
    font-size: 10px;
    color: var(--white-a50);
}

.join-actions[b-l3bcp7tlz6] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.join-error[b-l3bcp7tlz6] {
    font-size: 12px;
    color: var(--color-danger);
}

.tags[b-l3bcp7tlz6] {
    margin-top: 24px;
}

/* The tag sync state under the strip: edits waiting for tonight's Azure sync, or Azure
   refusing tags on this resource. */
.tags-note[b-l3bcp7tlz6] {
    margin-top: 8px;
    color: var(--white-a50);
    font-size: 12px;
}

.children[b-l3bcp7tlz6] {
    margin-top: 32px;
}

.children-label[b-l3bcp7tlz6] {
    font-size: 11px;
    color: var(--white-a50);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.children-list[b-l3bcp7tlz6] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    overflow: hidden;
}

/* Inline failure line under the device-access toggle. */
.device-error[b-l3bcp7tlz6] {
    margin-top: 6px;
    color: var(--color-danger);
    font-size: 12px;
}

/* When the Hub last heard from the device (8 Oct 2026), beneath the access switch. */
.device-seen[b-l3bcp7tlz6] {
    margin-top: 6px;
    font-size: 12px;
    color: var(--white-a55);
}
/* /Components/Pages/ResourcesPage.razor.rz.scp.css */
.stars[b-0ca61rsmav] {
    opacity: 0.4;
}

.page-header[b-0ca61rsmav] {
    margin-bottom: 24px;
}

.eyebrow[b-0ca61rsmav] {
    font-size: 11px;
    color: var(--color-cyan);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eyebrow__rule[b-0ca61rsmav] {
    width: 24px;
    height: 1px;
    background: var(--color-cyan);
}

.title[b-0ca61rsmav] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    text-transform: lowercase;
    letter-spacing: -0.025em;
    line-height: 1;
    color: var(--white);
    margin: 0;
}

.subtitle[b-0ca61rsmav] {
    color: var(--white-a65);
    font-size: 14px;
    margin: 8px 0 0;
}

.highlight[b-0ca61rsmav] {
    color: var(--white);
}

.empty-state[b-0ca61rsmav] {
    padding: 40px;
    text-align: center;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    color: var(--white-a55);
    font-size: 13px;
}

/* ---- Filter bar ---- */

.filter-bar[b-0ca61rsmav] {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: flex-end;
}

.field[b-0ca61rsmav] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 180px;
}

.field--grow[b-0ca61rsmav] {
    flex: 1 1 200px;
}

.field-label[b-0ca61rsmav] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
}

.control[b-0ca61rsmav] {
    width: 100%;
    padding: 9px 12px;
    background: var(--white-a04);
    border: 1px solid var(--white-a12);
    border-radius: 8px;
    color: var(--white);
    font-family: inherit;
    font-size: 13px;
    transition: border-color .15s, background .15s;
}

.control:focus[b-0ca61rsmav] {
    outline: none;
    border-color: var(--color-cyan);
    background: var(--white-a06);
}

.control[b-0ca61rsmav]::placeholder {
    color: var(--white-a50);
}

select.control option[b-0ca61rsmav] {
    background: var(--dk-well-1);
    color: var(--white);
}

/* ---- Empty state — holds the space the grid would occupy, says why it's empty ---- */

.empty-panel[b-0ca61rsmav] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 90px 24px;
    border: 1px dashed var(--white-a12);
    border-radius: 16px;
    background: var(--white-a02);
}

.empty-panel__icon[b-0ca61rsmav] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--white-a05);
    color: var(--white-a60);
    margin-bottom: 8px;
}

.empty-panel__title[b-0ca61rsmav] {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    color: var(--white);
}

.empty-panel__sub[b-0ca61rsmav] {
    margin: 0 0 12px;
    font-size: 13px;
    color: var(--white-a65);
    max-width: 52ch;
    line-height: 1.5;
}

/* ---- Results count + sort ---- */

.results-bar[b-0ca61rsmav] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    padding: 0 2px;
}

.result-count[b-0ca61rsmav] {
    font-size: 14px;
    font-weight: 700;
    color: var(--white);
}

.result-scope[b-0ca61rsmav] {
    font-size: 11px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.sort-controls[b-0ca61rsmav] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.sort-label[b-0ca61rsmav] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.sort-btn[b-0ca61rsmav] {
    background: var(--white-a04);
    border: 1px solid var(--white-a12);
    color: var(--white-a70);
    font-family: var(--font-mono);
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 6px;
    cursor: pointer;
    transition: color .15s, border-color .15s, background .15s;
}

.sort-btn:hover[b-0ca61rsmav] {
    color: var(--white);
}

.sort-btn.active[b-0ca61rsmav] {
    color: var(--white);
    border-color: var(--cyan-a55);
    background: var(--cyan-a12);
}

/* ---- Resource cards (flat — one panel per resource, mirrors the project page) ---- */

/* The gap lives inside the virtualised item as transparent bottom padding, so the
   fixed ItemSize stays accurate and the page scrollbar doesn't drift. */
.res-item[b-0ca61rsmav] {
    height: 60px;
    padding-bottom: 10px;
    box-sizing: border-box;
}

.res-card[b-0ca61rsmav] {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) 360px 16px;
    gap: 16px;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 0 18px;
    text-align: left;
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    cursor: pointer;
    font-family: inherit;
    color: var(--white);
    transition: background .15s, border-color .15s;
}

.res-card:hover[b-0ca61rsmav] {
    background: var(--white-a05);
    border-color: var(--white-a14);
}

.type-badge[b-0ca61rsmav] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: 4px 0;
    border-radius: 4px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
}

.name-row[b-0ca61rsmav] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
}

.name[b-0ca61rsmav] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
    font-family: var(--font-mono);
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.sep[b-0ca61rsmav] {
    color: var(--white-a20);
    font-size: 11px;
    flex: 0 0 auto;
}

.type-label[b-0ca61rsmav] {
    font-size: 11px;
    color: var(--white-a55);
    flex: 0 0 auto;
}

.meta-project[b-0ca61rsmav] {
    font-size: 11px;
    color: var(--white-a70);
    flex: 0 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.meta-company[b-0ca61rsmav] {
    font-size: 10px;
    color: var(--white-a60);
    flex: 0 0 auto;
}

.tags-row[b-0ca61rsmav] {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
    overflow: hidden;
}

/* ---- Placeholder (loading) ---- */

.res-card--placeholder[b-0ca61rsmav] {
    cursor: default;
}

.res-card--placeholder:hover[b-0ca61rsmav] {
    background: var(--white-a03);
    border-color: var(--white-a08);
}

.ph[b-0ca61rsmav] {
    display: block;
    height: 12px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--white-a05), var(--white-a10), var(--white-a05));
    animation: ph-pulse-b-0ca61rsmav 1.2s ease-in-out infinite;
}

.ph-badge[b-0ca61rsmav] {
    width: 44px;
    height: 22px;
}

.ph-line[b-0ca61rsmav] {
    width: 60%;
}

.ph-line--tags[b-0ca61rsmav] {
    width: 80%;
}

@keyframes ph-pulse-b-0ca61rsmav {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

@media (max-width: 768px) {
    .res-card[b-0ca61rsmav] { grid-template-columns: 50px minmax(0, 1fr) 16px; }
    .res-card .tags-row[b-0ca61rsmav] { display: none; }
    .results-bar[b-0ca61rsmav] { flex-wrap: wrap; }
}
/* /Components/Profile/AccessMappingTab.razor.rz.scp.css */
.tab[b-njd46y1idd] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.loading[b-njd46y1idd] {
    font-size: 13px;
    color: var(--white-a55);
}

/* Assigned | Calculated sub-tab strip — same shape as EditPanel's Tags | Properties strip
   (scoped CSS, so the rules are duplicated rather than shared). */
.map-tabs[b-njd46y1idd] {
    display: flex;
    gap: 20px;
    border-bottom: 1px solid var(--white-a08);
}

.map-tab[b-njd46y1idd] {
    padding: 0 2px 10px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
    cursor: pointer;
}

.map-tab:hover[b-njd46y1idd] {
    color: var(--white-a75);
}

.map-tab--active[b-njd46y1idd] {
    color: var(--white);
    border-bottom-color: var(--color-cyan);
}

.map-list[b-njd46y1idd] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 14px;
}

/* One subject → role → item relationship. Fixed middle column so the arrows line up and the
   two ends read as columns. The trailing action column is reserved on BOTH sub-tabs, even
   though only Assigned rows can carry a button, so switching tabs does not shift the layout. */
.map-row[b-njd46y1idd] {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 10px 14px;
    border: 1px solid var(--white-a06);
    border-radius: 10px;
    background: var(--white-a02);
}

.map-row--confirming[b-njd46y1idd] {
    border-color: var(--danger-a40);
    background: var(--danger-a06);
}

.map-end[b-njd46y1idd] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.map-name[b-njd46y1idd] {
    font-size: 13px;
    color: var(--white);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-sub[b-njd46y1idd] {
    font-size: 11px;
    color: var(--white-a50);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-relation[b-njd46y1idd] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.map-role[b-njd46y1idd] {
    font-size: 10px;
    letter-spacing: 0.12em;
    color: var(--color-cyan);
    border: 1px solid var(--cyan-a35);
    border-radius: 6px;
    padding: 2px 8px;
}

/* Trailing action cell. min-width holds the column open on rows with no button so every row
   lines up whichever sub-tab is showing. */
.map-actions[b-njd46y1idd] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 34px;
}

.map-delete[b-njd46y1idd] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: var(--white-a45);
    cursor: pointer;
    transition: color .12s, background .12s;
}

.map-delete:hover:not(:disabled)[b-njd46y1idd] {
    color: var(--color-danger);
    background: var(--danger-a12);
}

.map-delete:disabled[b-njd46y1idd] {
    opacity: 0.4;
    cursor: default;
}

.map-confirm[b-njd46y1idd],
.map-cancel[b-njd46y1idd] {
    padding: 3px 10px;
    background: transparent;
    border-radius: 6px;
    font-size: 11px;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
}

.map-confirm[b-njd46y1idd] {
    border: 1px solid var(--danger-a50);
    color: var(--color-danger);
}

.map-confirm:hover[b-njd46y1idd] {
    background: var(--danger-a14);
}

.map-cancel[b-njd46y1idd] {
    border: 1px solid var(--white-a14);
    color: var(--white-a60);
}

.map-cancel:hover[b-njd46y1idd] {
    color: var(--white-a85);
}

.map-busy[b-njd46y1idd] {
    font-size: 11px;
    color: var(--white-a50);
    white-space: nowrap;
}

/* Calm, pre-emptive explanation for a caller who can see grants but change none — mirrors
   TeamEditPanel's .team-readonly. */
.map-readonly[b-njd46y1idd] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--white-a04);
    font-size: 12px;
    color: var(--white-a60);
}

/* Reactive refusal — mirrors TeamEditPanel's .team-error. */
.map-error[b-njd46y1idd] {
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid var(--danger-a40);
    border-radius: 8px;
    background: var(--danger-a10);
    font-size: 12px;
    color: var(--color-danger);
}

@media (max-width: 768px) {
    .map-row[b-njd46y1idd] { grid-template-columns: minmax(0, 1fr) auto; }
}
/* /Components/Profile/CompanyDetail.razor.rz.scp.css */
.panel[b-ljdwc02xer] {
    background: var(--white-a02);
    border: 1px solid var(--white-a06);
    border-radius: 12px;
    padding: 24px;
}

.panel__header[b-ljdwc02xer] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--white-a06);
}

.avatar[b-ljdwc02xer] {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: radial-gradient(120% 100% at 30% 30%, var(--avatar-accent, var(--color-cyan)) 0%, var(--color-mulberry) 70%);
    color: var(--white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.avatar__img[b-ljdwc02xer] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.panel__identity[b-ljdwc02xer] {
    flex: 1;
}

.identity__name[b-ljdwc02xer] {
    font-size: 15px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
}

.identity__role[b-ljdwc02xer] {
    font-size: 11px;
    color: var(--white-a55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
}

.fields-grid[b-ljdwc02xer] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.field-value[b-ljdwc02xer] {
    font-size: 14px;
    color: var(--white);
    padding: 10px 0;
}

.field-value--mono[b-ljdwc02xer] {
    font-size: 14px;
    color: var(--white);
    padding: 10px 0;
    font-family: var(--font-mono);
}

.detail-actions[b-ljdwc02xer] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-top: 20px;
}

/* "Set as my primary company" sits at the far left, distinct from the right-aligned
   "Edit company" (otherwise the two link-styled buttons sit adjacent and read as one).
   When it is hidden (non-superuser or already primary), "Edit company" stays right. */
.set-primary-btn[b-ljdwc02xer] {
    margin-right: auto;
}

.edit-fields[b-ljdwc02xer] {
    display: flex;
    flex-direction: column;
}

/* Readonly team roster (profile page only) — same sectioning treatment as the
   automation half so the panel reads as one column of ruled sections. */
.team-section[b-ljdwc02xer] {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--white-a06);
}

.team-section__heading[b-ljdwc02xer] {
    margin-bottom: 4px;
    font-size: 14px;
    color: var(--white);
    font-weight: 600;
}

.team-section__sub[b-ljdwc02xer] {
    font-size: 12px;
    color: var(--white-a55);
    margin-bottom: 8px;
}

.team-section__empty[b-ljdwc02xer] {
    font-size: 13px;
    color: var(--white-a55);
    padding: 12px 0;
}

.team-list[b-ljdwc02xer] {
    display: flex;
    flex-direction: column;
}

.team-row[b-ljdwc02xer] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--white-a06);
}

.team-row:last-child[b-ljdwc02xer] {
    border-bottom: 0;
}

.team-row__upn[b-ljdwc02xer] {
    font-size: 12px;
    color: var(--white-a85);
}

.team-row__tags[b-ljdwc02xer] {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

/* Cyan when verified — the panel's accent for an "on" state (cf. .system-pill--on) —
   dimmed when not, so the state reads at a glance without a control. */
.team-row__verified[b-ljdwc02xer] {
    font-size: 9px;
    color: var(--color-cyan);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.team-row__verified--off[b-ljdwc02xer] {
    color: var(--white-a35);
}

.team-row__membership[b-ljdwc02xer] {
    font-size: 10px;
    color: var(--white-a55);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    min-width: 72px;
    text-align: right;
}

.automation-section[b-ljdwc02xer] {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--white-a06);
}

/* Administration's Automation tab renders no metadata above this section, so it sits
   directly under the panel header — which already draws its own rule. Without this the two
   rules stack with an empty 44px band between them. */
.automation-section--flush[b-ljdwc02xer] {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.automation-section__header[b-ljdwc02xer] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

.automation-section__heading[b-ljdwc02xer] {
    font-size: 14px;
    color: var(--white);
    font-weight: 600;
}

/* The Automation search box: the ca-input chrome compacted to row scale, taking the header's
   free width between the heading and the Enable all button. */
.automation-search[b-ljdwc02xer] {
    flex: 1 1 12rem;
    min-width: 0;
    width: auto;
    padding: 8px 12px;
    font-size: 13px;
}

.enable-all-btn:disabled[b-ljdwc02xer] {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
}

.automation-section__sub[b-ljdwc02xer] {
    font-size: 12px;
    color: var(--white-a55);
    margin-bottom: 8px;
}

.automation-section__empty[b-ljdwc02xer] {
    font-size: 13px;
    color: var(--white-a55);
    padding: 12px 0;
}

.runbook-list[b-ljdwc02xer] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* System-targeting pills under each runbook row (System company only) — the global
   runbook<->system association rendered as toggleable chips instead of a native
   multi-select. Cyan = the runbook targets that system. */
.runbook-systems[b-ljdwc02xer] {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 6px 12px 14px;
    border-bottom: 1px dashed var(--white-a06);
}

.runbook-systems__label[b-ljdwc02xer] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    flex-shrink: 0;
}

.runbook-systems__pills[b-ljdwc02xer] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.system-pill[b-ljdwc02xer] {
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--white-a14);
    background: var(--white-a04);
    color: var(--white-a70);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}

.system-pill:hover[b-ljdwc02xer] {
    border-color: var(--white-a30);
    color: var(--white);
}

.system-pill--on[b-ljdwc02xer] {
    background: var(--cyan-a16);
    border-color: var(--cyan-a55);
    color: var(--color-cyan);
}

.system-pill--on:hover[b-ljdwc02xer] {
    border-color: var(--color-cyan);
    color: var(--color-cyan);
}

.system-pill:disabled[b-ljdwc02xer] {
    opacity: 0.5;
    cursor: default;
}

/* Inline failure line for runbook / primary-company actions. */
.automation-section__error[b-ljdwc02xer] {
    margin: 8px 0;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid var(--danger-a40);
    background: var(--danger-a10);
    color: var(--color-danger);
    font-size: 13px;
}
/* /Components/Profile/CompanyRow.razor.rz.scp.css */
.row[b-gps5coto0b] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--row-bg);
    border: 1px solid var(--row-border);
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: background .15s, border-color .15s;
}

.row__avatar[b-gps5coto0b] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: radial-gradient(120% 100% at 30% 30%, var(--avatar-accent, var(--color-cyan)) 0%, var(--color-mulberry) 70%);
    color: var(--white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.row__avatar .avatar__img[b-gps5coto0b] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.row__body[b-gps5coto0b] {
    flex: 1;
    min-width: 0;
}

.row__name[b-gps5coto0b] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.row__role[b-gps5coto0b] {
    font-size: 10px;
    color: var(--white-a50);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 2px;
}

.row__open[b-gps5coto0b] {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    background: var(--white-a06);
    border: 1px solid var(--white-a10);
    color: var(--white-a70);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-family: inherit;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}

/* The selectable part of the row is a <button> (the open affordance is its sibling). */
.row__select[b-gps5coto0b] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.row__select:focus-visible[b-gps5coto0b] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 4px;
    border-radius: 6px;
}

.row__avatar[b-gps5coto0b] {
    display: flex;
}

.row__body[b-gps5coto0b] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.row__name[b-gps5coto0b],
.row__role[b-gps5coto0b] {
    display: block;
}
/* /Components/Profile/CompanyTab.razor.rz.scp.css */
.tab[b-fqgybgnwvp] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.loading[b-fqgybgnwvp] {
    font-size: 13px;
    color: var(--white-a55);
}

.companies-grid[b-fqgybgnwvp] {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 20px;
}

.company-list[b-fqgybgnwvp] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.list-label[b-fqgybgnwvp] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 0 4px 6px;
}

.list-label--spaced[b-fqgybgnwvp] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 12px 4px 6px;
}

@media (max-width: 980px) {
    .companies-grid[b-fqgybgnwvp] { grid-template-columns: 1fr; }
}
/* /Components/Profile/ManifestsTab.razor.rz.scp.css */
.tab[b-ghgxki12h2] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.loading[b-ghgxki12h2] {
    font-size: 13px;
    color: var(--white-a55);
}

.toolbar[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.toggle[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--white-a55);
    cursor: pointer;
}

.manifests-grid[b-ghgxki12h2] {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 20px;
}

.manifest-list[b-ghgxki12h2] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* The row is a <button>: reset the UA button styles it would otherwise pick up. */
.row[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    background: var(--white-a02);
    border: 1px solid var(--white-a06);
    border-radius: 10px;
    color: inherit;
    font: inherit;
    cursor: pointer;
    text-align: left;
    transition: background .15s, border-color .15s;
}

.row[aria-current="true"][b-ghgxki12h2] {
    background: var(--white-a06);
    border-color: var(--color-cyan);
}

.row:focus-visible[b-ghgxki12h2] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.row__body[b-ghgxki12h2] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.row__name[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 14px;
    color: var(--white);
    font-weight: 600;
}

.row__meta[b-ghgxki12h2] {
    font-size: 11px;
    color: var(--white-a55);
    letter-spacing: 0.04em;
}

.pill[b-ghgxki12h2] {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 999px;
    border: 1px solid var(--color-cyan);
    color: var(--color-cyan);
}

.pill--muted[b-ghgxki12h2] {
    border-color: var(--white-a20);
    color: var(--white-a55);
}

.panel[b-ghgxki12h2] {
    background: var(--white-a02);
    border: 1px solid var(--white-a06);
    border-radius: 12px;
    padding: 24px;
    min-width: 0;
}

.panel__header[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--white-a06);
}

.panel__identity[b-ghgxki12h2] {
    flex: 1;
    min-width: 0;
}

.identity__name[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 15px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
}

.identity__role[b-ghgxki12h2] {
    font-size: 11px;
    color: var(--white-a55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
}

.fields-grid[b-ghgxki12h2] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: end;
}

.field[b-ghgxki12h2] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.field--check[b-ghgxki12h2] {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--white);
    padding-bottom: 10px;
    cursor: pointer;
}

.field__label[b-ghgxki12h2] {
    font-size: 11px;
    color: var(--white-a55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.field__hint[b-ghgxki12h2] {
    color: var(--white-a55);
    font-size: 12px;
    margin-left: 4px;
}

.section[b-ghgxki12h2] {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--white-a06);
}

.section__heading[b-ghgxki12h2] {
    margin-bottom: 12px;
    font-size: 14px;
    color: var(--white);
    font-weight: 600;
}

.section__empty[b-ghgxki12h2] {
    font-size: 13px;
    color: var(--white-a55);
    padding: 4px 0 12px;
}

.list[b-ghgxki12h2] {
    display: flex;
    flex-direction: column;
}

.list-row[b-ghgxki12h2] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--white-a05);
}

.list-row:last-child[b-ghgxki12h2] {
    border-bottom: 0;
}

.list-row__order[b-ghgxki12h2] {
    width: 24px;
    flex-shrink: 0;
    font-size: 11px;
    color: var(--white-a55);
    text-align: right;
}

.list-row__text[b-ghgxki12h2] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: var(--white);
}

.list-row__actions[b-ghgxki12h2] {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.file-name[b-ghgxki12h2] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-meta[b-ghgxki12h2] {
    font-size: 11px;
    color: var(--white-a55);
    letter-spacing: 0.04em;
}

.icon-btn[b-ghgxki12h2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    border: 1px solid var(--white-a06);
    background: transparent;
    color: var(--white-a55);
    cursor: pointer;
    transition: background .15s, color .15s;
}

.icon-btn:hover:not(:disabled)[b-ghgxki12h2] {
    background: var(--white-a06);
    color: var(--white);
}

.icon-btn:disabled[b-ghgxki12h2] {
    opacity: .35;
    cursor: default;
}

.picker[b-ghgxki12h2] {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 12px;
    flex-wrap: wrap;
}

.picker__select[b-ghgxki12h2] {
    flex: 1;
    min-width: 160px;
}

.picker__select--narrow[b-ghgxki12h2] {
    flex: 0 0 150px;
    min-width: 0;
}

.error[b-ghgxki12h2] {
    margin-top: 16px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--color-mulberry);
    color: var(--white);
    font-size: 13px;
}

.actions[b-ghgxki12h2] {
    display: flex;
    gap: 8px;
    margin-top: 20px;
}

.actions--header[b-ghgxki12h2] {
    margin-top: 0;
}

@media (max-width: 980px) {
    .manifests-grid[b-ghgxki12h2] { grid-template-columns: 1fr; }
    .fields-grid[b-ghgxki12h2] { grid-template-columns: 1fr; }
    .panel__header[b-ghgxki12h2] { flex-wrap: wrap; }
}
/* /Components/Profile/RunbookRow.razor.rz.scp.css */
.row[b-gc53ngt8ke] {
    display: grid;
    grid-template-columns: 1fr 200px 60px;
    gap: 16px;
    align-items: center;
    padding: 16px 4px;
    border-bottom: var(--row-border-bottom);
    opacity: var(--row-opacity);
}

.row__info[b-gc53ngt8ke] {
    min-width: 0;
}

.row__tags[b-gc53ngt8ke] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.category-pill[b-gc53ngt8ke] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--category-bg);
    color: var(--category-fg);
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.runbook-name[b-gc53ngt8ke] {
    font-size: 14px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.3;
}

.disabled-pill[b-gc53ngt8ke] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--white-a06);
    color: var(--white-a55);
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.runbook-id[b-gc53ngt8ke] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--white-a60);
    margin-bottom: 6px;
}

.runbook-desc[b-gc53ngt8ke] {
    font-size: 12px;
    color: var(--white-a65);
    line-height: 1.5;
}

.row__meta[b-gc53ngt8ke] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.meta__schedule[b-gc53ngt8ke] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.meta__schedule-label[b-gc53ngt8ke] {
    font-size: 11px;
    color: var(--white-a70);
}

.meta__status[b-gc53ngt8ke] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.status-dot[b-gc53ngt8ke] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--status-dot-color);
}

.status-label[b-gc53ngt8ke] {
    font-size: 11px;
    color: var(--white-a50);
}

.row__toggle[b-gc53ngt8ke] {
    display: flex;
    justify-content: flex-end;
}

/* "Run now" — the button, the inline confirm, the busy label and the answer, on one wrapping
   line under the description (the widest column, so a sentence has room). */
.row__run[b-gc53ngt8ke] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.run-question[b-gc53ngt8ke] {
    font-size: 12px;
    color: var(--white-a70);
}

.run-confirm[b-gc53ngt8ke],
.run-cancel[b-gc53ngt8ke] {
    padding: 3px 10px;
    background: transparent;
    border-radius: 6px;
    font-size: 11px;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
}

.run-confirm[b-gc53ngt8ke] {
    border: 1px solid var(--color-cyan);
    color: var(--color-cyan);
}

.run-confirm:hover[b-gc53ngt8ke] {
    background: var(--cyan-a14);
}

.run-cancel[b-gc53ngt8ke] {
    border: 1px solid var(--white-a14);
    color: var(--white-a60);
}

.run-cancel:hover[b-gc53ngt8ke] {
    color: var(--white-a85);
}

.run-busy[b-gc53ngt8ke] {
    font-size: 11px;
    color: var(--white-a50);
    white-space: nowrap;
}

.run-result[b-gc53ngt8ke] {
    flex: 1 1 240px;
    min-width: 0;
    font-size: 12px;
    line-height: 1.45;
}

.run-result--ok[b-gc53ngt8ke] {
    color: var(--success);
}

.run-result--failed[b-gc53ngt8ke] {
    color: var(--color-danger);
}

@media (max-width: 768px) {
    .row[b-gc53ngt8ke] { grid-template-columns: 1fr 60px; }
    .row__meta[b-gc53ngt8ke] { grid-column: 1 / -1; }
}
/* /Components/Profile/SettingsTab.razor.rz.scp.css */
.tab[b-794iubaquq] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.empty[b-794iubaquq] {
    font-size: 13px;
    color: var(--white-a55);
    padding: 12px 0;
}

.setting-row[b-794iubaquq] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 12px 0;
}

.setting-row__info[b-794iubaquq] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.setting-row__name[b-794iubaquq] {
    font-size: 14px;
    font-weight: 600;
    color: var(--white-a92);
}

.setting-row__desc[b-794iubaquq] {
    font-size: 13px;
    color: var(--white-a55);
    max-width: 520px;
}

.setting-row__toggle[b-794iubaquq] {
    flex-shrink: 0;
    padding-top: 2px;
}

/* The time zones (14 Oct 2026): a titled group of rows, each with a select on the right. */
.setting-group[b-794iubaquq] {
    display: flex;
    flex-direction: column;
    padding-top: 8px;
}

/* Below the elevated-access row (and its error line), when there is one. */
.setting-row + .setting-group[b-794iubaquq],
.setting-error + .setting-group[b-794iubaquq] {
    margin-top: 8px;
    border-top: 1px solid var(--white-a06);
}

.setting-group__title[b-794iubaquq] {
    margin: 12px 0 0;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.setting-row__control[b-794iubaquq] {
    flex-shrink: 0;
    width: 260px;
    max-width: 50%;
}

.zone-select[b-794iubaquq] {
    width: 100%;
    padding: 8px 12px;
    font-size: 13px;
}

/* Why a select is read-only for this user. */
.setting-row__note[b-794iubaquq] {
    font-size: 12px;
    color: var(--white-a50);
}

/* Inline failure line under the elevated-access toggle. */
.setting-error[b-794iubaquq] {
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid var(--danger-a40);
    background: var(--danger-a10);
    color: var(--color-danger);
    font-size: 13px;
}
/* /Components/Profile/SystemDetail.razor.rz.scp.css */
.panel[b-397bfbfe1x] {
    background: var(--white-a02);
    border: 1px solid var(--white-a06);
    border-radius: 12px;
    padding: 24px;
}

.panel__header[b-397bfbfe1x] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--white-a06);
}

.avatar[b-397bfbfe1x] {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: radial-gradient(120% 100% at 30% 30%, var(--avatar-accent, var(--color-cyan)) 0%, var(--color-mulberry) 70%);
    color: var(--white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.panel__identity[b-397bfbfe1x] {
    flex: 1;
}

.identity__name[b-397bfbfe1x] {
    font-size: 15px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
}

.identity__role[b-397bfbfe1x] {
    font-size: 11px;
    color: var(--white-a55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
}

.fields-grid[b-397bfbfe1x] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.field-value[b-397bfbfe1x] {
    font-size: 14px;
    color: var(--white);
    padding: 10px 0;
}

.field-value--pillar[b-397bfbfe1x] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pillar-icon[b-397bfbfe1x] {
    width: 18px;
    height: 18px;
    object-fit: contain;
    flex-shrink: 0;
}

.properties-section[b-397bfbfe1x] {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--white-a06);
}

.properties-section__heading[b-397bfbfe1x] {
    margin-bottom: 12px;
    font-size: 14px;
    color: var(--white);
    font-weight: 600;
}

.properties-section__empty[b-397bfbfe1x] {
    font-size: 13px;
    color: var(--white-a55);
    padding: 12px 0;
}

.property-list[b-397bfbfe1x] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.property-row[b-397bfbfe1x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid var(--white-a05);
}

.property-row:last-child[b-397bfbfe1x] {
    border-bottom: 0;
}

.property-row__name[b-397bfbfe1x] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.property-row__label[b-397bfbfe1x] {
    font-size: 13px;
    color: var(--white-a85);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.property-flag[b-397bfbfe1x] {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 2px 6px;
    border-radius: 5px;
    font-family: var(--font-mono);
    flex-shrink: 0;
}

.property-flag--system[b-397bfbfe1x] {
    color: var(--color-cyan);
    background: var(--cyan-a12);
}

.property-flag--secret[b-397bfbfe1x] {
    color: var(--color-gold);
    background: var(--amber-soft-a12);
}

.property-row__value[b-397bfbfe1x] {
    font-size: 13px;
    color: var(--white);
    font-family: var(--font-mono);
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 55%;
}
/* /Components/Profile/SystemRow.razor.rz.scp.css */
/* The row is a <button>: reset the UA button styles it would otherwise pick up. */
.row[b-azm4o45sfj] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    background: var(--row-bg);
    border: 1px solid var(--row-border);
    border-radius: 10px;
    color: inherit;
    font: inherit;
    cursor: pointer;
    text-align: left;
    transition: background .15s, border-color .15s;
}

.row:focus-visible[b-azm4o45sfj] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.row__body[b-azm4o45sfj] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.row__name[b-azm4o45sfj],
.row__role[b-azm4o45sfj] {
    display: block;
}

.row__avatar[b-azm4o45sfj] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: radial-gradient(120% 100% at 30% 30%, var(--avatar-accent, var(--color-cyan)) 0%, var(--color-mulberry) 70%);
    color: var(--white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.row__body[b-azm4o45sfj] {
    flex: 1;
    min-width: 0;
}

.row__name[b-azm4o45sfj] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.row__pillar-icon[b-azm4o45sfj] {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
    filter: drop-shadow(0 6px 12px var(--black-a35));
}

.row__role[b-azm4o45sfj] {
    font-size: 10px;
    color: var(--white-a50);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 2px;
}
/* /Components/Profile/SystemsTab.razor.rz.scp.css */
.tab[b-qdefjyy18r] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.loading[b-qdefjyy18r] {
    font-size: 13px;
    color: var(--white-a55);
}

.systems-grid[b-qdefjyy18r] {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 20px;
}

.system-list[b-qdefjyy18r] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

@media (max-width: 980px) {
    .systems-grid[b-qdefjyy18r] { grid-template-columns: 1fr; }
}
/* /Components/Profile/ThemesTab.razor.rz.scp.css */
.tab[b-3keydkyj2x] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.loading[b-3keydkyj2x] {
    font-size: 13px;
    color: var(--dk-text-4);
}

.group[b-3keydkyj2x] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 8px;
}

.group + .group[b-3keydkyj2x] {
    margin-top: 28px;
}

.section-title[b-3keydkyj2x] {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    color: var(--dk-text-1);
}

.section-sub[b-3keydkyj2x] {
    margin: -6px 0 0;
    font-size: 13px;
    color: var(--dk-text-3);
}

/* ---- Treatments ---------------------------------------------------------- */

.treat-grid[b-3keydkyj2x] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}

.treat[b-3keydkyj2x] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    background: var(--dk-surface);
    border: 1px solid var(--dk-border);
    border-radius: 12px;
}

.treat__label[b-3keydkyj2x] {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--dk-text-3);
}

.treat__note[b-3keydkyj2x] {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--dk-text-4);
}

.treat__note code[b-3keydkyj2x] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--dk-text-3);
}

.text-line[b-3keydkyj2x] { font-size: 13px; }
.text-1[b-3keydkyj2x] { color: var(--dk-text-1); }
.text-2[b-3keydkyj2x] { color: var(--dk-text-2); }
.text-3[b-3keydkyj2x] { color: var(--dk-text-3); }
.text-4[b-3keydkyj2x] { color: var(--dk-text-4); }
.text-5[b-3keydkyj2x] { color: var(--dk-text-5); }

.surf[b-3keydkyj2x] {
    padding: 12px;
    border-radius: 10px;
    font-size: 11px;
    color: var(--dk-text-3);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.surf--1[b-3keydkyj2x] { background: var(--dk-surface);   border: 1px solid var(--dk-border); }
.surf--2[b-3keydkyj2x] { background: var(--dk-surface-2); border: 1px solid var(--dk-divider); }
.surf--3[b-3keydkyj2x] { background: var(--dk-surface-3); border: 1px solid var(--dk-border-strong); }

.status-row[b-3keydkyj2x] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.status[b-3keydkyj2x] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: var(--dk-surface-3);
}

.status__dot[b-3keydkyj2x] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dot);
}

.status--ok[b-3keydkyj2x]    { --dot: var(--status-ok);    color: var(--color-green); }
.status--warn[b-3keydkyj2x]  { --dot: var(--status-warn);  color: var(--color-gold); }
.status--error[b-3keydkyj2x] { --dot: var(--status-error); color: var(--color-red); }

.accent-box[b-3keydkyj2x] {
    padding: 12px;
    border-radius: 10px;
    background: var(--dk-accent-soft);
    border: 1px solid var(--dk-accent-border);
    font-size: 11px;
    color: var(--dk-text-2);
}

.pill-row[b-3keydkyj2x] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pill[b-3keydkyj2x] {
    padding: 3px 10px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 11px;
    border: 1px solid transparent;
}

.pill--cyan[b-3keydkyj2x]    { background: var(--cyan-a14);   color: var(--color-cyan);   border-color: var(--cyan-a30); }
.pill--neutral[b-3keydkyj2x] { background: var(--white-a06);  color: var(--dk-text-3);    border-color: var(--white-a12); }
.pill--danger[b-3keydkyj2x]  { background: var(--danger-a10); color: var(--color-danger); border-color: var(--danger-a40); }

/* ---- Swatches ------------------------------------------------------------- */

.swatch-grid[b-3keydkyj2x] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.swatch[b-3keydkyj2x] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

/* The chip and the "Aa" sample sit on the actual page ground, not the card, so what
   you see is what a component on the space background gets. */
.swatch__ground[b-3keydkyj2x] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border-radius: 8px;
    background: var(--color-ultramarine);
    border: 1px solid var(--dk-divider);
}

.swatch__chip[b-3keydkyj2x] {
    flex: 1;
    height: 36px;
    border-radius: 6px;
    border: 1px solid var(--dk-divider);
}

.swatch__aa[b-3keydkyj2x] {
    width: 28px;
    text-align: center;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
}

.swatch__name[b-3keydkyj2x] {
    font-size: 11px;
    color: var(--dk-text-2);
    overflow-wrap: anywhere;
}

.swatch__value[b-3keydkyj2x] {
    font-size: 10px;
    color: var(--dk-text-4);
    overflow-wrap: anywhere;
}
/* /Components/Profile/TimeZoneMap.razor.rz.scp.css */
/* The world time-zone map (14 Oct 2026). Colours are hub-tokens.css / tokens.css tokens only:
   land a faint white over the card, home the cyan family, office the gold family, both a cyan
   fill with a gold edge, and the zone the user signed in from a green outline that sits over
   whichever fill the zone has (where it is also home or office, its green edge replaces theirs).
   A zone this server cannot resolve is a fainter white and takes no clicks. Nothing moves. */

.map[b-b1klly5lkv] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 0;
}

/* Set home / Set office — a two-button segmented control. */
.map__targets[b-b1klly5lkv] {
    display: inline-flex;
    align-self: flex-start;
    gap: 2px;
    padding: 3px;
    border-radius: 999px;
    border: 1px solid var(--dk-border-strong);
    background: var(--black-a18);
}

.map__target[b-b1klly5lkv] {
    padding: 6px 14px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--dk-text-2);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.map__target:hover:not(:disabled)[b-b1klly5lkv] {
    color: var(--dk-text-1);
    background: var(--white-a06);
}

.map__target--home[aria-pressed="true"][b-b1klly5lkv] {
    color: var(--dk-text-1);
    background: var(--cyan-a14);
    border-color: var(--cyan-a55);
}

.map__target--office[aria-pressed="true"][b-b1klly5lkv] {
    color: var(--dk-text-1);
    background: var(--gold-a14);
    border-color: var(--gold-a40);
}

.map__target:disabled[b-b1klly5lkv] {
    color: var(--dk-text-5);
    cursor: not-allowed;
}

/* Scales to the card's width; a very wide card stops it growing at about 420 px tall. */
.map__svg[b-b1klly5lkv] {
    display: block;
    width: 100%;
    height: auto;
    max-height: 420px;
    border-radius: 12px;
    border: 1px solid var(--dk-border);
    background: var(--black-a18);
}

/* Land. The darker edge between zones keeps neighbours apart; every stroke stays the same width
   however far the map is scaled. */
.zone[b-b1klly5lkv] {
    fill: var(--white-a08);
    stroke: var(--black-a35);
    stroke-width: 0.6px;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
    cursor: pointer;
}

.zone--home[b-b1klly5lkv] {
    fill: var(--cyan-a55);
    stroke: var(--color-cyan);
    stroke-width: 1px;
}

.zone--office[b-b1klly5lkv] {
    fill: var(--gold-a40);
    stroke: var(--color-gold);
    stroke-width: 1px;
}

.zone--both[b-b1klly5lkv] {
    fill: var(--cyan-a55);
    stroke: var(--color-gold);
    stroke-width: 1.6px;
}

/* The sign-in zone: an outline only, so it composes with whichever fill the zone has. */
.zone--session[b-b1klly5lkv] {
    stroke: var(--color-green);
    stroke-width: 1.8px;
}

/* Hover lightens the fill, a step within the zone's own family; not while a save is in flight,
   when nothing is clickable. */
.map:not(.map--busy) .zone:hover[b-b1klly5lkv] {
    fill: var(--white-a18);
}

.map:not(.map--busy) .zone--home:hover[b-b1klly5lkv],
.map:not(.map--busy) .zone--both:hover[b-b1klly5lkv] {
    fill: var(--cyan-a85);
}

.map:not(.map--busy) .zone--office:hover[b-b1klly5lkv] {
    fill: var(--color-gold);
    fill-opacity: 0.6;
}

.map--busy .zone[b-b1klly5lkv] {
    cursor: not-allowed;
}

/* A zone this server cannot resolve: muted, not a pointer target, no hover. Last, so it wins over
   the land and hover rules above at the same specificity. */
.zone--unavailable[b-b1klly5lkv],
.map--busy .zone--unavailable[b-b1klly5lkv] {
    fill: var(--white-a04);
    cursor: default;
}

.map:not(.map--busy) .zone--unavailable:hover[b-b1klly5lkv] {
    fill: var(--white-a04);
}

/* Legend. */
.map__legend[b-b1klly5lkv] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 12px;
    color: var(--dk-text-3);
}

.legend__item[b-b1klly5lkv] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.legend__swatch[b-b1klly5lkv] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    border: 1px solid transparent;
}

.legend__swatch--home[b-b1klly5lkv] {
    background: var(--cyan-a55);
    border-color: var(--color-cyan);
}

.legend__swatch--office[b-b1klly5lkv] {
    background: var(--gold-a40);
    border-color: var(--color-gold);
}

.legend__swatch--session[b-b1klly5lkv] {
    background: var(--white-a08);
    border: 2px solid var(--color-green);
}

/* For screen readers only: the selection in words. */
.map__announce[b-b1klly5lkv] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
/* /Components/Projects/AgentDownload.razor.rz.scp.css */
/* The download control: the trigger in place (a toolbar button or an inline link), the menu
   floated beneath it, a transparent backdrop to close on any click outside. */
.agent-download[b-oa7aegdcp5] {
    position: relative;
    display: inline-block;
}

.agent-download__trigger[b-oa7aegdcp5] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.agent-download__trigger--link[b-oa7aegdcp5] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.agent-download__caret[b-oa7aegdcp5] {
    display: inline-flex;
    transition: transform 0.15s ease;
}

.agent-download__caret--open[b-oa7aegdcp5] {
    transform: rotate(180deg);
}

.agent-download__backdrop[b-oa7aegdcp5] {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 99;
}

.agent-download__menu[b-oa7aegdcp5] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 200px;
    padding: 6px;
    background: var(--dk-elevated);
    border: 1px solid var(--white-a08);
    border-radius: 10px;
    box-shadow: 0 16px 40px var(--black-a40);
    z-index: 100;
}

/* The edit panel's link sits at the left of its row, so its menu opens to the right. */
.agent-download--link .agent-download__menu[b-oa7aegdcp5] {
    left: 0;
    right: auto;
}

.agent-download__item[b-oa7aegdcp5] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 6px;
    color: var(--white-a85);
    font-size: 13px;
    text-decoration: none;
    white-space: nowrap;
}

.agent-download__item:hover[b-oa7aegdcp5],
.agent-download__item:focus-visible[b-oa7aegdcp5] {
    background: var(--white-a06);
    color: var(--white);
    outline: none;
}

.agent-download__item[aria-current="true"] .agent-download__item-name[b-oa7aegdcp5] {
    color: var(--color-cyan);
    font-weight: 600;
}

.agent-download__item-hint[b-oa7aegdcp5] {
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--white-a55);
}
/* /Components/Projects/CompanyGroup.razor.rz.scp.css */
.header[b-f6f2w41oso] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    padding: 0 2px;
    cursor: pointer;
    user-select: none;
}

.caret[b-f6f2w41oso] {
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: none;
    font-size: 11px;
    color: var(--white-a50);
    cursor: pointer;
}

.caret:focus-visible[b-f6f2w41oso] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.name-btn[b-f6f2w41oso] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
    color: var(--white);
    transition: color .15s;
}

.company-name[b-f6f2w41oso] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.2;
}

.primary-pill[b-f6f2w41oso] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--status-ok-a15);
    color: var(--color-green);
    font-size: 9px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.count[b-f6f2w41oso] {
    font-size: 11px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.active-count[b-f6f2w41oso] {
    color: var(--color-green);
}

.project-list[b-f6f2w41oso] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
/* /Components/Projects/CompanyHeaderStat.razor.rz.scp.css */
.label[b-oxmzf6ymbs] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 6px;
}

.value[b-oxmzf6ymbs] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 22px;
    line-height: 1;
    color: var(--value-color, var(--white));
}
/* /Components/Projects/CompanyMetaCard.razor.rz.scp.css */
.card[b-1vhi6muks0] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
}

.card__header[b-1vhi6muks0] {
    padding: 24px 28px;
    border-bottom: 1px solid var(--white-a06);
    display: flex;
    align-items: center;
    gap: 18px;
}

.avatar[b-1vhi6muks0] {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    background: radial-gradient(120% 100% at 30% 30%, var(--avatar-accent, var(--color-cyan)) 0%, var(--color-mulberry) 70%);
    color: var(--white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.avatar__img[b-1vhi6muks0] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.card__identity[b-1vhi6muks0] {
    flex: 1;
    min-width: 0;
}

.company-name[b-1vhi6muks0] {
    font-size: 16px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
}

.company-sub[b-1vhi6muks0] {
    font-size: 11px;
    color: var(--white-a55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
}

.card__stats[b-1vhi6muks0] {
    display: flex;
    gap: 24px;
    padding-left: 24px;
    border-left: 1px solid var(--white-a08);
}

.card__body[b-1vhi6muks0] {
    padding: 24px 28px;
}

.meta-grid[b-1vhi6muks0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 20px;
}

.card__footer[b-1vhi6muks0] {
    padding: 12px 28px;
    background: var(--black-a18);
    border-top: 1px solid var(--white-a04);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-lead[b-1vhi6muks0] {
    font-size: 12px;
    color: var(--white-a60);
}

.footer-lead strong[b-1vhi6muks0] {
    color: var(--white);
}

/* Right-aligned button toolbar — order left→right: Edit, Team, Security posture (when scored),
   New project, Cost (when offered), Activities, Logs. */
.footer-toolbar[b-1vhi6muks0] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* The Cost toggle's pressed state: the ghost button lit in the brand cyan, so on/off reads at
   a glance among the plain action buttons beside it. */
.cost-toggle[aria-pressed="true"][b-1vhi6muks0] {
    background: var(--cyan-a12);
    border-color: var(--color-cyan);
    color: var(--color-cyan);
}

/* The Security posture button's score (19 Oct 2026): the dashboard card's status-indicator look —
   mono small print in the brand cyan — set a little apart from the label. */
.posture-score[b-1vhi6muks0] {
    margin-left: 2px;
    font-size: 11px;
    color: var(--color-cyan);
}

/* Tablet: the identity block and the stats strip wrap rather than crush. */
.card__header[b-1vhi6muks0] { flex-wrap: wrap; }
/* /Components/Projects/CostSummaryCard.razor.rz.scp.css */
.card[b-1wqtqig1jd] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
    margin-top: 16px;
}

.card__header[b-1wqtqig1jd] {
    padding: 20px 28px;
    border-bottom: 1px solid var(--white-a06);
    display: flex;
    align-items: center;
    gap: 18px;
}

.card__identity[b-1wqtqig1jd] {
    flex: 1;
    min-width: 0;
}

.label[b-1wqtqig1jd] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.sub[b-1wqtqig1jd] {
    margin-top: 4px;
    font-size: 13px;
    color: var(--white-a60);
}

.card__body[b-1wqtqig1jd] {
    padding: 20px 28px;
}

.card__body + .card__body[b-1wqtqig1jd] {
    border-top: 1px solid var(--white-a06);
}

.currency[b-1wqtqig1jd] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-cyan);
    margin-bottom: 12px;
}

.stat-grid[b-1wqtqig1jd] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

@media (max-width: 900px) {
    .stat-grid[b-1wqtqig1jd] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.stat__label[b-1wqtqig1jd] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--white-a60);
}

.stat__value[b-1wqtqig1jd] {
    margin-top: 6px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 22px;
    color: var(--white);
    white-space: nowrap;
}

.stat__delta[b-1wqtqig1jd] {
    margin-top: 6px;
    font-size: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--white-a60);
}

.stat__delta[data-tone="good"][b-1wqtqig1jd] {
    color: var(--color-green);
}

.stat__delta[data-tone="bad"][b-1wqtqig1jd] {
    color: var(--color-red);
}

.chip[b-1wqtqig1jd] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 1px solid var(--white-a08);
    color: var(--white-a60);
}

.chip[data-final="true"][b-1wqtqig1jd] {
    color: var(--color-green);
    border-color: var(--color-green);
}
/* /Components/Projects/MetaField.razor.rz.scp.css */
.label[b-h5q3t3en7c] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 6px;
}

.value[b-h5q3t3en7c] {
    font-family: var(--value-font, inherit);
    font-size: 13px;
    color: var(--white-a85);
}

.value[b-h5q3t3en7c] { overflow-wrap: anywhere; }
/* /Components/Projects/MetaLink.razor.rz.scp.css */
.link[b-u6brijev2t] {
    background: none;
    border: 0;
    padding: 0;
    color: var(--color-cyan);
    font-weight: 600;
    font-size: inherit;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-bottom: 1px dashed transparent;
    transition: border-color .15s, opacity .15s;
}

.link__arrow[b-u6brijev2t] {
    opacity: 0.7;
}
/* /Components/Projects/MetricChart.razor.rz.scp.css */
.chart[b-p4qfilkam4] {
    position: relative;
    width: 100%;
    margin-top: 10px;
}

.chart__svg[b-p4qfilkam4] {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    outline: none;
    touch-action: pan-y;
}

.chart__svg:focus-visible[b-p4qfilkam4] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 4px;
    border-radius: 6px;
}

/* Recessive chrome: hairline grid, mono ticks in the secondary ink — never the series colour. */
.chart__grid[b-p4qfilkam4] {
    stroke: var(--white-a08);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
    shape-rendering: crispEdges;
}

/* The ticks are rendered through a RenderFragment, so they carry no scope attribute. */
.chart__svg[b-p4qfilkam4]  .chart__tick {
    font-family: var(--font-mono);
    font-size: 10px;
    fill: var(--white-a55);
}

/* The data: a 2px line (held at 2px however the SVG scales), a 10% wash beneath it, and an
   8px end dot ringed in the surface so it reads where it sits on the line. */
.chart__area[b-p4qfilkam4] {
    fill: var(--color-cyan);
    fill-opacity: 0.1;
}

.chart__line[b-p4qfilkam4] {
    fill: none;
    stroke: var(--color-cyan);
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.chart__end[b-p4qfilkam4] {
    fill: var(--color-cyan);
    stroke: var(--color-ultramarine);
    stroke-width: 2;
}

/* A per-run tally: one bar a run in the series colour, crisp-edged so a week's hairlines stay
   distinct; the gap between bars is the surface. */
.chart__bar[b-p4qfilkam4] {
    fill: var(--color-cyan);
    fill-opacity: 0.85;
    shape-rendering: crispEdges;
}

/* The hover layer, moved by the collocated script: hidden until the pointer or focus is on the chart. */
.chart__crosshair[b-p4qfilkam4] {
    stroke: var(--white-a35);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
    opacity: 0;
    pointer-events: none;
}

.chart__focus[b-p4qfilkam4] {
    fill: var(--white);
    stroke: var(--color-cyan);
    stroke-width: 2;
    opacity: 0;
    pointer-events: none;
}

.chart.is-hover .chart__crosshair[b-p4qfilkam4],
.chart.is-hover .chart__focus[b-p4qfilkam4] {
    opacity: 1;
}

.chart__tip[b-p4qfilkam4] {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-50%, calc(-100% - 10px));
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s;
    background: var(--color-mulberry);
    border: 1px solid var(--white-a12);
    border-radius: 8px;
    padding: 6px 10px;
    display: grid;
    gap: 2px;
    white-space: nowrap;
    z-index: 2;
}

.chart__tip[data-edge="start"][b-p4qfilkam4] {
    transform: translate(0, calc(-100% - 10px));
}

.chart__tip[data-edge="end"][b-p4qfilkam4] {
    transform: translate(-100%, calc(-100% - 10px));
}

.chart.is-hover .chart__tip[b-p4qfilkam4] {
    opacity: 1;
}

/* The value leads, the moment follows — the legend's hierarchy inverted, because here the
   reader has the series and wants the number. */
.chart__tip-value[b-p4qfilkam4] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 13px;
    color: var(--white);
}

.chart__tip-when[b-p4qfilkam4] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--white-a55);
}
/* /Components/Projects/ProjectMeta.razor.rz.scp.css */
.row[b-bjxmbgfc5s] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.label[b-bjxmbgfc5s] {
    font-size: 12px;
    color: var(--white-a72);
    font-family: var(--font-mono);
}
/* /Components/Projects/ProjectMetaCard.razor.rz.scp.css */
/* No overflow: hidden here (5 Oct 2026): the footer's Download agent control floats its
   platform menu beneath the button, outside the card, and the clip cut it off. The footer's
   tinted background is rounded to the card's bottom corners itself instead. */
.card[b-7bkwuvn18o] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
}

.card__header[b-7bkwuvn18o] {
    padding: 24px 28px;
    border-bottom: 1px solid var(--white-a06);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
}

.card__identity[b-7bkwuvn18o] {
    display: flex;
    align-items: center;
    gap: 18px;
}

.avatar[b-7bkwuvn18o] {
    width: 64px;
    height: 64px;
    object-fit: contain;
    flex-shrink: 0;
    filter: drop-shadow(0 8px 24px color-mix(in srgb, var(--pillar) 33%, transparent));
}

.card__name-area[b-7bkwuvn18o] {
    min-width: 0;
}

.badges[b-7bkwuvn18o] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.pillar-badge[b-7bkwuvn18o] {
    padding: 3px 10px;
    border-radius: 4px;
    background: var(--pillar-soft);
    color: var(--pillar);
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.status-badge[b-7bkwuvn18o] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 4px;
    background: var(--status-bg);
    /* 20% of the status colour — was a C#-built "{Color}33" hex-alpha suffix, invalid
       whenever Color is a var()/rgba() value, which every status is. */
    border: 1px solid color-mix(in srgb, var(--status) 20%, transparent);
    color: var(--status);
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.status-dot[b-7bkwuvn18o] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--status-dot);
}

.display-name[b-7bkwuvn18o] {
    font-size: 16px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
}

.card__stats[b-7bkwuvn18o] {
    display: flex;
    gap: 24px;
    padding-left: 24px;
    border-left: 1px solid var(--white-a08);
}

.card__body[b-7bkwuvn18o] {
    padding: 24px 28px;
}

.meta-grid[b-7bkwuvn18o] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}

.status-value[b-7bkwuvn18o] {
    color: var(--status);
    font-weight: 600;
}

.summary-label[b-7bkwuvn18o] {
    font-size: 10px;
    color: var(--white-a60);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 8px;
}

.summary-text[b-7bkwuvn18o] {
    font-size: 14px;
    color: var(--white-a85);
    line-height: 1.6;
    margin: 0;
    max-width: 70ch;
}

.card__footer[b-7bkwuvn18o] {
    padding: 12px 28px;
    background: var(--black-a18);
    border-top: 1px solid var(--white-a04);
    /* The card's radius less its 1px border, so the tint follows the rounded corners. */
    border-radius: 0 0 15px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-lead[b-7bkwuvn18o] {
    font-size: 12px;
    color: var(--white-a60);
}

.footer-lead strong[b-7bkwuvn18o] {
    color: var(--white);
}

/* Right-aligned button toolbar — order left→right: Edit, System, Team, Ubiquiti / Download agent
   (when offered), Cost (when offered), Activities. */
.footer-toolbar[b-7bkwuvn18o] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin-left: auto;
}

/* The one destructive action among the ghost buttons: outlined in the danger colour so it is
   never mistaken for a sibling, lit on hover. */
.lifecycle-delete[b-7bkwuvn18o] {
    color: var(--color-danger);
    border-color: var(--danger-a40);
}

.lifecycle-delete:hover[b-7bkwuvn18o] {
    background: var(--danger-a12);
}

/* The Cost toggle's pressed state: the ghost button lit in the brand cyan, so on/off reads at
   a glance among the plain action buttons beside it. */
.cost-toggle[aria-pressed="true"][b-7bkwuvn18o] {
    background: var(--cyan-a12);
    border-color: var(--color-cyan);
    color: var(--color-cyan);
}

/* Tablet: the identity block and the stats strip wrap rather than crush. */
.card__header[b-7bkwuvn18o] { flex-wrap: wrap; }
/* /Components/Projects/ProjectRow.razor.rz.scp.css */
.row[b-6cgkaqyohe] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 10px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 6px 52px 1fr;
    transition: background .15s, border-color .15s, transform .15s;
}

/* The clickable variant is an <a>: keep the row's own text colours and make the
   whole card the target. */
.row--link[b-6cgkaqyohe] {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.row--link:focus-visible[b-6cgkaqyohe] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.row--muted[b-6cgkaqyohe] {
    opacity: 0.65;
}

.accent-stripe[b-6cgkaqyohe] {
    background: var(--pillar, var(--white-a10));
}

.icon-cell[b-6cgkaqyohe] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 0;
}

.pillar-icon[b-6cgkaqyohe] {
    width: 30px;
    height: 30px;
    object-fit: contain;
    filter: drop-shadow(0 6px 12px var(--black-a35));
}

.content[b-6cgkaqyohe] {
    padding: 8px 18px 8px 10px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 18px;
    align-items: center;
}

.name-area[b-6cgkaqyohe] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.project-name[b-6cgkaqyohe] {
    font-size: 15px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
    font-family: var(--font-heading);
}

.status-badge[b-6cgkaqyohe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 4px;
    background: var(--status-bg);
    /* 20% of the status colour — was a C#-built "{Color}33" hex-alpha suffix, invalid
       whenever Color is a var()/rgba() value, which every status is. */
    border: 1px solid color-mix(in srgb, var(--status) 20%, transparent);
    color: var(--status);
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.status-dot[b-6cgkaqyohe] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--status-dot);
}

.meta-col[b-6cgkaqyohe] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.chevron[b-6cgkaqyohe] {
    color: var(--white-a50);
    display: flex;
    align-items: center;
}
/* /Components/Projects/ResourceAgentPanel.razor.rz.scp.css */
.card[b-xpfjonj199] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
    margin-top: 16px;
}

.card__header[b-xpfjonj199] {
    padding: 20px 28px;
    border-bottom: 1px solid var(--white-a06);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}

.card__identity[b-xpfjonj199] {
    flex: 1;
    min-width: 0;
}

.label[b-xpfjonj199] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--white-a60);
}

/* What the device holds: the manifest and its version lead, the host's version and the platform follow. */
.headline[b-xpfjonj199] {
    margin-top: 6px;
    font-size: 14px;
    color: var(--white-a75);
}

.sub[b-xpfjonj199] {
    margin-top: 4px;
    font-size: 13px;
    color: var(--white-a60);
}

/* Under an "Update pending" pill: what the project runs now. */
.expected[b-xpfjonj199] {
    margin-top: 6px;
    font-size: 12px;
    color: var(--white-a55);
}

/* The pill and the files disclosure, stacked at the header's right. */
.card__actions[b-xpfjonj199] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    align-self: center;
}

/* The fold: a link-styled disclosure (the help drawer's shape) whose chevron turns while the
   file table is open. The Icon is a child component, hence ::deep. */
.files-toggle[b-xpfjonj199] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    border: 0;
    border-radius: 4px;
    background: none;
    color: var(--color-cyan);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.files-toggle:hover[b-xpfjonj199] {
    text-decoration: underline;
}

.files-toggle:focus-visible[b-xpfjonj199] {
    outline: 2px solid var(--color-cyan);
    outline-offset: 2px;
}

.files-toggle[b-xpfjonj199]  .files-toggle__chevron {
    transition: transform 0.15s;
}

.files-toggle[b-xpfjonj199]  .files-toggle__chevron--open {
    transform: rotate(180deg);
}

/* The one loud thing on the header: whether the device is current. */
.pill[b-xpfjonj199] {
    padding: 4px 10px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    border: 1px solid var(--white-a08);
    color: var(--white-a60);
    background: var(--white-a04);
    white-space: nowrap;
}

.pill--current[b-xpfjonj199] {
    color: var(--color-cyan);
    border-color: var(--cyan-a40, var(--color-cyan));
    background: var(--cyan-a12);
}

.pill--pending[b-xpfjonj199] {
    color: var(--color-warning, #f5b74b);
    border-color: color-mix(in srgb, var(--color-warning, #f5b74b) 40%, transparent);
    background: color-mix(in srgb, var(--color-warning, #f5b74b) 12%, transparent);
}

.card__body[b-xpfjonj199] {
    padding: 12px 28px 20px;
    overflow-x: auto;
}

/* One row per file; the table is the whole body, so its own chrome is kept light. */
.files[b-xpfjonj199] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    color: var(--white-a85);
}

.files th[b-xpfjonj199] {
    text-align: left;
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--white-a50);
    padding: 10px 12px 8px 0;
    border-bottom: 1px solid var(--white-a06);
    white-space: nowrap;
}

.files td[b-xpfjonj199] {
    padding: 10px 12px 10px 0;
    border-bottom: 1px solid var(--white-a04);
    vertical-align: top;
}

.files tr:last-child td[b-xpfjonj199] {
    border-bottom: 0;
}

.file__name[b-xpfjonj199] {
    color: var(--white);
}

.version[b-xpfjonj199] {
    white-space: nowrap;
}

.hint[b-xpfjonj199] {
    display: inline-block;
    margin-left: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--white-a55);
}

.hint--pending[b-xpfjonj199] {
    display: block;
    margin-left: 0;
    margin-top: 2px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-warning, #f5b74b);
}

.on-device[b-xpfjonj199],
.last-run[b-xpfjonj199] {
    color: var(--white-a70);
    white-space: nowrap;
}

/* A file the device could not find, or one whose run failed, is marked in the danger colour. */
.is-missing .on-device[b-xpfjonj199],
.is-failed .last-run[b-xpfjonj199] {
    color: var(--color-danger);
    font-weight: 600;
}

.empty[b-xpfjonj199] {
    margin: 8px 0 0;
    font-size: 13px;
    color: var(--white-a55);
}
/* /Components/Projects/ResourceGroupNode.razor.rz.scp.css */
.chevron-btn[b-zyk9700r4g] {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: var(--white-a55);
}

.title-btn[b-zyk9700r4g] {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: left;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    font-family: inherit;
    color: inherit;
}

.type-badge[b-zyk9700r4g] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--badge-bg);
    color: var(--badge-color);
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    border: 1px solid var(--badge-border);
    flex: 0 0 auto;
}

.group-name[b-zyk9700r4g] {
    color: var(--white);
    font-weight: 600;
    font-family: var(--font-mono);
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    font-size: var(--name-size, 14px);
}

.sep[b-zyk9700r4g] {
    color: var(--white-a20);
    font-size: 11px;
    flex: 0 0 auto;
}

.location[b-zyk9700r4g] {
    font-size: 10px;
    color: var(--white-a60);
    flex: 0 0 auto;
}

.tags-row[b-zyk9700r4g] {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
    overflow: hidden;
}

.item-count[b-zyk9700r4g] {
    font-size: 11px;
    color: var(--white-a55);
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--white-a04);
}

.open-btn[b-zyk9700r4g] {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    background: var(--white-a06);
    border: 1px solid var(--white-a10);
    color: var(--white-a70);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s, color .15s;
}

/* Under tablet width the header drops its fixed 360px tags column (the inline grid
   template reads --group-cols so this can override it from CSS). */
@media (max-width: 768px) {
    .group-header[b-zyk9700r4g] { --group-cols: auto minmax(0, 1fr) auto auto; }
    .group-header .tags-row[b-zyk9700r4g] { display: none; }
}

/* Bulk tag editing (17 Sep 2026): the checkbox sits with the chevron in the header's first cell. */
.lead[b-zyk9700r4g] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.pick[b-zyk9700r4g] {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

.pick input[b-zyk9700r4g] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--color-cyan);
    cursor: pointer;
    opacity: var(--pick-opacity, 0);
    transition: opacity .12s;
}

/* Reveal (17 Sep 2026), as on the leaf rows: hidden until the header is hovered (a faint
   hint) or anything is selected (every box in full, .pick--on from the cascaded selection).
   The nearer .pick--on wins over the header's hover through the custom property. */
.group-header:hover[b-zyk9700r4g] { --pick-opacity: .45; }
.pick--on[b-zyk9700r4g] { --pick-opacity: 1; }

.pick input:checked[b-zyk9700r4g],
.pick input:focus-visible[b-zyk9700r4g] {
    opacity: 1;
}

@media (hover: none) {
    .pick input[b-zyk9700r4g] { opacity: 1; }
}
/* /Components/Projects/ResourceListItem.razor.rz.scp.css */
.row[b-6p9flepfq4] {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) 360px 110px 16px;
    gap: 16px;
    align-items: center;
    width: 100%;
    text-align: left;
    padding: 10px 18px;
    background: none;
    border: 0;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s;
}

.name-row[b-6p9flepfq4] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.name[b-6p9flepfq4] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
    font-family: var(--font-mono);
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.sep[b-6p9flepfq4] {
    color: var(--white-a20);
    font-size: 11px;
    flex: 0 0 auto;
}

.type-label[b-6p9flepfq4] {
    font-size: 11px;
    color: var(--white-a55);
    flex: 0 0 auto;
}

.location[b-6p9flepfq4] {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--white-a60);
    flex: 0 0 auto;
}

.tags-row[b-6p9flepfq4] {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
    overflow: hidden;
}

.status-cell[b-6p9flepfq4] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.status-dot[b-6p9flepfq4] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--status-color);
    flex: 0 0 auto;
}

.status-label[b-6p9flepfq4] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--status-color);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

@media (max-width: 768px) {
    .row[b-6p9flepfq4] { grid-template-columns: 50px minmax(0, 1fr) 110px 16px; }
    .tags-row[b-6p9flepfq4] { display: none; }
}

@media (max-width: 560px) {
    .row[b-6p9flepfq4] { grid-template-columns: 50px minmax(0, 1fr) 16px; }
    .status-cell[b-6p9flepfq4] { display: none; }
}

/* Bulk tag editing (17 Sep 2026): the checkbox sits outside the row button, which keeps its
   own navigation click. */
.leaf[b-6p9flepfq4] {
    display: flex;
    align-items: center;
}

.pick[b-6p9flepfq4] {
    display: inline-flex;
    align-items: center;
    padding-left: 18px;
    cursor: pointer;
}

.pick input[b-6p9flepfq4] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--color-cyan);
    cursor: pointer;
    opacity: var(--pick-opacity, 0);
    transition: opacity .12s;
}

/* Reveal (17 Sep 2026): the box is invisible until wanted. Hovering the row shows its own as
   a faint hint; once anything is selected every box shows in full (.pick--on, set from the
   cascaded selection). A custom property rather than a specificity contest: the label is the
   nearer ancestor, so its 1 beats the row's hover .45. A ticked or keyboard-focused box always
   shows, and a device that cannot hover shows them all. */
.leaf:hover[b-6p9flepfq4] { --pick-opacity: .45; }
.pick--on[b-6p9flepfq4] { --pick-opacity: 1; }

.pick input:checked[b-6p9flepfq4],
.pick input:focus-visible[b-6p9flepfq4] {
    opacity: 1;
}

@media (hover: none) {
    .pick input[b-6p9flepfq4] { opacity: 1; }
}

.row[b-6p9flepfq4] {
    flex: 1 1 auto;
    min-width: 0;
}

.row--pickable[b-6p9flepfq4] {
    padding-left: 12px;
}
/* /Components/Projects/ResourceMetaCard.razor.rz.scp.css */
.card[b-ufsh11uwgt] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
}

.card__header[b-ufsh11uwgt] {
    padding: 24px 28px;
    border-bottom: 1px solid var(--white-a06);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
}

.card__identity[b-ufsh11uwgt] {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.monogram[b-ufsh11uwgt] {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--color) 0%, color-mix(in srgb, var(--color) 40%, transparent) 100%);
    color: var(--white);
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 8px 24px color-mix(in srgb, var(--color) 25%, transparent);
    letter-spacing: -0.02em;
}

.card__name-area[b-ufsh11uwgt] {
    min-width: 0;
}

.badges[b-ufsh11uwgt] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.type-badge[b-ufsh11uwgt] {
    padding: 3px 10px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--color) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color) 25%, transparent);
    color: var(--color);
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.status-badge[b-ufsh11uwgt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--status) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--status) 33%, transparent);
    color: var(--status);
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.status-dot[b-ufsh11uwgt] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--status);
}

.display-name[b-ufsh11uwgt] {
    font-size: 16px;
    color: var(--white);
    font-weight: 600;
    line-height: 1.2;
    font-family: var(--font-mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.card__stats[b-ufsh11uwgt] {
    display: flex;
    gap: 24px;
    padding-left: 24px;
    border-left: 1px solid var(--white-a08);
}

.card__body[b-ufsh11uwgt] {
    padding: 24px 28px;
}

.meta-grid[b-ufsh11uwgt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 20px;
}

.status-value[b-ufsh11uwgt] {
    color: var(--status);
    font-weight: 600;
}

.no-parent[b-ufsh11uwgt] {
    color: var(--white-a60);
}

.card__footer[b-ufsh11uwgt] {
    padding: 12px 28px;
    background: var(--black-a18);
    border-top: 1px solid var(--white-a04);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-context[b-ufsh11uwgt] {
    font-size: 12px;
    color: var(--white-a60);
}

.footer-context strong[b-ufsh11uwgt] {
    color: var(--white);
}

/* Right-aligned button toolbar — order left→right: Edit, Activities. */
.footer-toolbar[b-ufsh11uwgt] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* Tablet: the identity block and the stats strip wrap rather than crush. */
.card__header[b-ufsh11uwgt] { flex-wrap: wrap; }
/* /Components/Projects/ResourceSelectionBar.razor.rz.scp.css */
.bar[b-834qogwy89] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
    /* 18px left so the "all" box sits over the tree rows' boxes (18px inside a 1px border). */
    padding: 10px 16px 10px 18px;
    border-radius: 12px;
    border: 1px solid var(--dk-accent-border);
    background: var(--dk-accent-soft);
    font-size: 14px;
    color: var(--dk-text-2);
}

/* The tri-state "all" box — the same 16px cyan box as the rows'. */
.pick[b-834qogwy89] {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

.pick input[b-834qogwy89] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--color-cyan);
    cursor: pointer;
}

.count strong[b-834qogwy89] {
    color: var(--dk-text-1);
}

.count__sub[b-834qogwy89] {
    color: var(--dk-text-3);
}

.link[b-834qogwy89] {
    background: none;
    border: 0;
    padding: 0;
    color: var(--color-cyan);
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.link:hover[b-834qogwy89] {
    text-decoration: underline;
}

.spacer[b-834qogwy89] {
    flex: 1;
}
/* /Components/Projects/ResourceTreeNode.razor.rz.scp.css */
.leaf-card[b-jw4gth5kxk] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 14px;
    overflow: hidden;
}
/* /Components/Projects/ResourceWorkloadPanel.razor.rz.scp.css */
.card[b-ld7e89yzd7] {
    background: var(--white-a03);
    border: 1px solid var(--white-a08);
    border-radius: 16px;
    overflow: hidden;
    margin-top: 16px;
}

.card__header[b-ld7e89yzd7] {
    padding: 20px 28px;
    border-bottom: 1px solid var(--white-a06);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}

.card__identity[b-ld7e89yzd7] {
    flex: 1;
    min-width: 0;
}

.label[b-ld7e89yzd7] {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--white-a60);
}

/* The header's facts in one line: the machine for Device Statistics, the site for Practice
   Management. A link is the site itself; a long URL wraps rather than widening the card. */
.facts[b-ld7e89yzd7] {
    margin-top: 6px;
    font-size: 14px;
    color: var(--white-a75);
    overflow-wrap: anywhere;
}

.facts__link[b-ld7e89yzd7] {
    color: var(--color-cyan);
    text-decoration: none;
}

.facts__link:hover[b-ld7e89yzd7],
.facts__link:focus-visible[b-ld7e89yzd7] {
    text-decoration: underline;
}

.sub[b-ld7e89yzd7] {
    margin-top: 4px;
    font-size: 13px;
    color: var(--white-a60);
}

/* The one filter row, above everything it scopes. */
.range[b-ld7e89yzd7] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.card__body[b-ld7e89yzd7] {
    padding: 20px 28px;
    transition: opacity .15s;
}

/* Refetch keeps the frame: the last cards stay, dimmed, until the new window lands. */
.card__body.is-loading[b-ld7e89yzd7] {
    opacity: 0.55;
}

.metrics[b-ld7e89yzd7] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.metric[b-ld7e89yzd7] {
    padding: 14px 16px 12px;
    border: 1px solid var(--white-a06);
    border-radius: 12px;
    background: var(--white-a02);
    min-width: 0;
}

.metric__head[b-ld7e89yzd7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.metric__title[b-ld7e89yzd7] {
    font-size: 13px;
    color: var(--white-a75);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* The figure is the one loud thing on the card. */
.metric__value[b-ld7e89yzd7] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    color: var(--white);
    white-space: nowrap;
}

.metric__capacity[b-ld7e89yzd7] {
    margin-top: 2px;
    font-size: 11px;
    color: var(--white-a55);
}

.empty[b-ld7e89yzd7] {
    margin: 0;
    font-size: 13px;
    color: var(--white-a55);
}
/* /Components/Projects/SiblingRow.razor.rz.scp.css */
.row[b-zpkhhdl5ej] {
    display: grid;
    grid-template-columns: 50px 1fr 130px 16px;
    gap: 16px;
    align-items: center;
    width: 100%;
    text-align: left;
    padding: 12px 18px;
    border: 0;
    background: none;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s;
}

.name-block[b-zpkhhdl5ej] {
    min-width: 0;
}

.name[b-zpkhhdl5ej] {
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
    font-family: var(--font-mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.type-label[b-zpkhhdl5ej] {
    font-size: 11px;
    color: var(--white-a60);
    margin-top: 2px;
}

.status-cell[b-zpkhhdl5ej] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.status-dot[b-zpkhhdl5ej] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--status-color);
    flex: 0 0 auto;
}

.location[b-zpkhhdl5ej] {
    font-size: 10px;
    color: var(--white-a55);
}

@media (max-width: 768px) {
    .row[b-zpkhhdl5ej] { grid-template-columns: 50px 1fr 16px; }
    .row > :nth-child(3)[b-zpkhhdl5ej] { display: none; }
}
/* /Components/Projects/TagMore.razor.rz.scp.css */
.pill[b-4wj4ykw7qh] {
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--white-a06);
    color: var(--white-a50);
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    flex-shrink: 0;
}
/* /Components/Projects/WorkloadRunCard.razor.rz.scp.css */
/* The same card frame as the panel's metric cards (scoped styles do not reach across components). */
.run[b-5je74ssvqo] {
    padding: 14px 16px 12px;
    border: 1px solid var(--white-a06);
    border-radius: 12px;
    background: var(--white-a02);
    min-width: 0;
}

.run__head[b-5je74ssvqo] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.run__title[b-5je74ssvqo] {
    font-size: 13px;
    color: var(--white-a75);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* How long ago the run finished is the one loud thing on the card. */
.run__value[b-5je74ssvqo] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    color: var(--white);
    white-space: nowrap;
}

.run__sub[b-5je74ssvqo] {
    margin-top: 2px;
    font-size: 11px;
    color: var(--white-a55);
}

/* One bar over the documents checked: the uploads lead in the series colour, the steady state
   recedes, a failure stands out. The gaps between segments are the surface. */
.run__bar[b-5je74ssvqo] {
    display: flex;
    gap: 2px;
    height: 10px;
    margin-top: 14px;
    border-radius: 5px;
    overflow: hidden;
    background: var(--white-a06);
}

.run__seg[b-5je74ssvqo] {
    display: block;
    height: 100%;
    min-width: 0;
    transition: width .2s;
}

.run__seg--uploaded[b-5je74ssvqo],
.run__swatch--uploaded[b-5je74ssvqo] {
    background: var(--color-cyan);
}

.run__seg--steady[b-5je74ssvqo],
.run__swatch--steady[b-5je74ssvqo] {
    background: var(--white-a20, rgba(255, 255, 255, 0.2));
}

.run__seg--failed[b-5je74ssvqo],
.run__swatch--failed[b-5je74ssvqo] {
    background: var(--color-danger, #ef6a6a);
}

.run__seg--other[b-5je74ssvqo],
.run__swatch--other[b-5je74ssvqo],
.run__swatch--aside[b-5je74ssvqo] {
    background: var(--white-a35, rgba(255, 255, 255, 0.35));
}

.run__swatch--total[b-5je74ssvqo] {
    background: transparent;
    border: 1px solid var(--white-a35, rgba(255, 255, 255, 0.35));
}

/* The legend: a swatch, the name, the count on the right in mono. */
.run__figures[b-5je74ssvqo] {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.run__figure[b-5je74ssvqo] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--white-a75);
}

.run__figure--total[b-5je74ssvqo] {
    margin-top: 2px;
    padding-top: 6px;
    border-top: 1px solid var(--white-a06);
    color: var(--white-a60);
}

.run__swatch[b-5je74ssvqo] {
    flex: none;
    width: 10px;
    height: 10px;
    border-radius: 3px;
}

.run__figure-title[b-5je74ssvqo] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.run__figure-value[b-5je74ssvqo] {
    font-size: 12px;
    color: var(--white);
}
/* /Components/RedirectToLogin.razor.rz.scp.css */
.logo[b-sv3m1oukqj] {
    height: 28px;
}
