.request-message{white-space:pre-wrap}.job-row--cancelled{color:var(--rt-text-muted)}.reason-list{color:var(--rt-status-warn)}.note-list,.reason-list{list-style:none;margin:0;padding:0}.note-list{display:grid;gap:var(--rt-space-3)}.note-list__item{border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);padding:var(--rt-space-3)}.note-list__meta{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.note-list__body{white-space:pre-wrap}.photo-grid{display:grid;gap:var(--rt-space-4);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));list-style:none;margin:0;padding:0}.photo-grid__image{aspect-ratio:4/3;border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:block;object-fit:cover;width:100%}.photo-grid__caption{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.timeline{display:grid;gap:var(--rt-space-2);list-style:none;margin:0;padding:0}.timeline__item{display:grid;gap:var(--rt-space-4);grid-template-columns:minmax(8rem,12rem) minmax(0,1fr)}.timeline__time{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}@media (max-width:40rem){.timeline__item{gap:var(--rt-space-1);grid-template-columns:minmax(0,1fr)}}.weekday-picker{border:0;margin:0;padding:0}.weekday-picker__days{display:flex;flex-wrap:wrap;gap:var(--rt-space-2) var(--rt-space-4)}.booking-instructions,.client-notes{white-space:pre-wrap}.site-list{display:grid;gap:var(--rt-space-3);list-style:none;margin:0;padding:0}.site-list__item{align-items:flex-start;border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:flex;gap:var(--rt-space-4);justify-content:space-between;padding:var(--rt-space-4)}.site-list__item--archived{background:var(--rt-surface-sunken);color:var(--rt-text-muted)}.site-list__main{display:grid;gap:var(--rt-space-1);min-width:0}.site-list__name{align-items:center;display:flex;font-weight:var(--rt-weight-semibold);gap:var(--rt-space-2)}.site-list__notes{white-space:pre-wrap}.site-list__actions{display:flex;flex-shrink:0;gap:var(--rt-space-2)}@media (max-width:40rem){.site-list__item{flex-direction:column}}.ctr-columns{align-items:start;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}.ctr-columns,.ctr-stack{display:grid;gap:var(--rt-space-6)}.ctr-badges{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-2)}.ctr-note{margin-top:var(--rt-space-4);white-space:pre-wrap}.ctr-muted{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.ctr-kinds{display:grid;gap:var(--rt-space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}.ctr-kind{border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:grid;gap:var(--rt-space-2);padding:var(--rt-space-3) var(--rt-space-4)}.ctr-kind__name{font-weight:var(--rt-weight-semibold)}.ctr-doc{align-items:center;display:flex;gap:var(--rt-space-3)}.ctr-thumb{background:var(--rt-surface-sunken);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-sm);flex-shrink:0;height:var(--rt-space-12);object-fit:cover;width:var(--rt-space-12)}.ctr-thumb--file{color:var(--rt-text-muted);display:grid;place-items:center}.ctr-reason{color:var(--rt-status-danger);font-size:var(--rt-text-sm);margin-top:var(--rt-space-1)}.ctr-picks{display:grid;gap:var(--rt-space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.ctr-lines{display:grid;gap:var(--rt-space-1);list-style:none;margin:0;padding:0}.ctr-bank{display:grid;gap:var(--rt-space-3)}.ctr-bank__value{font-family:var(--rt-font-mono);font-size:var(--rt-text-lg)}.invoices-footer{justify-content:space-between}.invoices-footer,.invoices-link{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-3)}.invoices-link{font-size:var(--rt-text-sm);margin-top:var(--rt-space-4);overflow-wrap:anywhere}.invoices-notes{color:var(--rt-text-secondary);margin:var(--rt-space-4) 0 0;white-space:pre-wrap}.invoices-details{display:grid;gap:var(--rt-space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.invoices-details>.rt-field--full{grid-column:1/-1}.invoice-editor__description{align-items:center;display:flex;gap:var(--rt-space-2);min-width:calc(var(--rt-space-16)*3)}.invoice-editor__description .rt-input{flex:1;min-width:0}@media (max-width:47.99rem){.invoices-details{grid-template-columns:minmax(0,1fr)}}.job-list{display:grid;gap:var(--rt-space-3)}.job-card{background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);color:var(--rt-text-primary);display:grid;gap:var(--rt-space-1);min-height:var(--tap-target);padding:var(--rt-space-4);text-decoration:none}.job-card:active{background:var(--rt-surface-hover)}.job-card__top{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-2);justify-content:space-between}.job-card__title,.job-card__when{font-weight:var(--rt-weight-semibold)}.job-card__title{font-size:var(--rt-text-md)}.job-card__meta,.job-card__where{color:var(--rt-text-secondary)}.offer,.offer__buttons{display:grid;gap:var(--rt-space-2)}.offer__buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.job-actions{display:grid;gap:var(--rt-space-3)}.job-actions__note{color:var(--rt-text-secondary)}.job-text{white-space:pre-wrap}.job-notes,.job-photos{display:grid;gap:var(--rt-space-3);list-style:none;margin:0;padding:0}.job-notes__meta{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.job-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.job-photos__image{aspect-ratio:4/3;border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:block;object-fit:cover;width:100%}.job-visually-hidden{height:1px;overflow:hidden;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}.week-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.week-day,.week-nav{display:grid;gap:var(--rt-space-2)}.week-day__heading{align-items:center;display:flex;font-size:var(--rt-text-md);gap:var(--rt-space-2)}.pay-amount--negative{color:var(--rt-status-danger)}.pay-total{align-items:center;display:flex;font-weight:var(--rt-weight-semibold);gap:var(--rt-space-3);justify-content:space-between}.pay-period{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--rt-space-4)}.pay-contractor__meta{align-items:center;color:var(--rt-text-secondary);display:flex;flex-wrap:wrap;gap:var(--rt-space-2)}.pay-list{list-style:none;margin:0;padding:0}.pay-row{align-items:center;border-bottom:1px solid var(--rt-border-subtle);color:var(--rt-text-primary);display:flex;gap:var(--rt-space-3);justify-content:space-between;padding:var(--rt-space-3) var(--rt-space-5);text-decoration:none}.pay-row:last-child{border-bottom:0}a.pay-row{min-height:var(--tap-target)}a.pay-row:active{background:var(--rt-surface-hover)}.pay-row__text{display:grid;gap:var(--rt-space-1);min-width:0}.pay-row__title{font-weight:var(--rt-weight-medium);overflow-wrap:anywhere}.pay-row__sub{color:var(--rt-text-secondary);font-size:var(--rt-text-sm)}.pay-row__figure{display:grid;flex-shrink:0;gap:var(--rt-space-1);justify-items:end}.pay-total-row{align-items:center;border-top:1px solid var(--rt-border-strong);display:flex;font-weight:var(--rt-weight-semibold);justify-content:space-between;padding:var(--rt-space-4) var(--rt-space-5)}.mep-steps{list-style:none;margin:0;padding:0}.mep-steps>li+li{border-top:1px solid var(--rt-border-subtle)}.mep-step{align-items:center;color:var(--rt-text-primary);display:flex;gap:var(--rt-space-3);min-height:var(--tap-target);padding:var(--rt-space-3) var(--rt-space-4);text-decoration:none}a.mep-step:active{background:var(--rt-surface-hover)}.mep-step__mark{border:1px solid var(--rt-border-strong);border-radius:var(--rt-radius-pill);color:var(--rt-text-muted);display:grid;flex-shrink:0;height:var(--rt-space-8);place-items:center;width:var(--rt-space-8)}.mep-step__mark--done{background:var(--rt-status-ok-bg);border-color:var(--rt-status-ok);color:var(--rt-status-ok)}.mep-step__text{display:grid;flex:1;gap:var(--rt-space-1);min-width:0}.mep-step__title{font-weight:var(--rt-weight-semibold)}.mep-step__detail{color:var(--rt-text-secondary);font-size:var(--rt-text-sm)}.mep-kinds{display:grid;gap:var(--rt-space-2);list-style:none;margin:0;padding:0}.mep-kind{align-items:center;display:flex;justify-content:space-between}.mep-docs,.mep-kind{gap:var(--rt-space-3)}.mep-docs{display:grid;list-style:none;margin:0;padding:0}.mep-doc{align-items:flex-start;border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:flex;gap:var(--rt-space-3);padding:var(--rt-space-3)}.mep-doc__thumb{background:var(--rt-surface-sunken);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-sm);flex-shrink:0;height:var(--rt-space-16);object-fit:cover;width:var(--rt-space-16)}.mep-doc__thumb--file{color:var(--rt-text-muted);display:grid;place-items:center}.mep-doc__body{display:grid;flex:1;gap:var(--rt-space-1);min-width:0}.mep-doc__title{font-weight:var(--rt-weight-semibold);overflow-wrap:anywhere}.mep-doc__meta{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);overflow-wrap:anywhere}.mep-doc__reason{color:var(--rt-status-danger);font-size:var(--rt-text-sm)}.mep-doc__actions{display:flex;flex-wrap:wrap;gap:var(--rt-space-2);margin-top:var(--rt-space-2)}.mep-visually-hidden{height:1px;overflow:hidden;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}.mep-file{display:grid;gap:var(--rt-space-3)}.mep-file__buttons{display:flex;flex-wrap:wrap;gap:var(--rt-space-2)}.mep-file__chosen{overflow-wrap:anywhere}.mep-days{display:grid;gap:var(--rt-space-4)}.mep-day{border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:grid;gap:var(--rt-space-3);padding:var(--rt-space-4)}.mep-day__head{align-items:center;display:flex;gap:var(--rt-space-3);justify-content:space-between}.mep-day__name{font-weight:var(--rt-weight-semibold)}.mep-window{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-2)}.mep-window .rt-input{flex:1;min-width:7rem;width:auto}.mep-error{color:var(--rt-status-danger);font-size:var(--rt-text-sm)}.mep-list{display:grid;gap:var(--rt-space-3);list-style:none;margin:0;padding:0}.mep-list__item{align-items:center;display:flex;gap:var(--rt-space-3);justify-content:space-between}.mep-points{margin:0;padding-left:var(--rt-space-5)}.mep-points li+li{margin-top:var(--rt-space-2)}.book-form__trap{height:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;width:0}.book-form__actions{display:flex;justify-content:flex-end;margin-top:var(--rt-space-5)}.schedule-legend{margin:0}.week-grid{align-items:start;grid-template-columns:repeat(7,minmax(0,1fr))}.week-grid,.week-grid__day{display:grid;gap:var(--rt-space-2)}.week-grid__day{align-content:start;background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);min-width:0;padding:var(--rt-space-2)}.week-grid__day--today{border-color:var(--brand)}.week-grid__heading{align-items:center;color:var(--rt-text-secondary);display:flex;flex-wrap:wrap;font-size:var(--rt-text-sm);font-weight:var(--rt-weight-semibold);gap:var(--rt-space-1);justify-content:space-between}.week-grid__empty{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.week-grid__jobs{display:grid;gap:var(--rt-space-2);list-style:none;margin:0;padding:0}.schedule-job{--job-ink:var(--rt-status-neutral);--job-bg:var(--rt-status-neutral-bg);background:var(--job-bg);border:0;border-left:var(--rt-space-1) solid var(--job-ink);border-radius:var(--rt-radius-sm);color:var(--rt-text-primary);cursor:pointer;display:grid;font:inherit;font-size:var(--rt-text-sm);gap:var(--rt-space-1);padding:var(--rt-space-2);text-align:left;width:100%}.schedule-job:hover{box-shadow:var(--rt-shadow-sm)}.schedule-job--unassigned{--job-ink:var(--rt-status-warn);--job-bg:var(--rt-status-warn-bg)}.schedule-job--in_progress,.schedule-job--offered{--job-ink:var(--rt-status-info);--job-bg:var(--rt-status-info-bg)}.schedule-job--assigned{--job-ink:var(--rt-text-brand);--job-bg:var(--brand-tint)}.schedule-job--completed{--job-ink:var(--rt-status-ok);--job-bg:var(--rt-status-ok-bg)}.schedule-job--overdue{--job-ink:var(--rt-status-danger);--job-bg:var(--rt-status-danger-bg)}.schedule-job__time{font-weight:var(--rt-weight-semibold)}.schedule-job__staff,.schedule-job__where{color:var(--rt-text-secondary);overflow:hidden;text-overflow:ellipsis}@media (max-width:56rem){.week-grid{grid-template-columns:minmax(0,1fr)}}@layer reacttoolkit{:root{color-scheme:light dark;--rt-surface-app:#f6f8fa;--rt-surface-card:#fff;--rt-surface-raised:#fff;--rt-surface-sunken:#eef1f5;--rt-surface-hover:#f6f8fa;--rt-surface-selected:#eef4ff;--rt-surface-inverse:#161b23;--rt-text-primary:#161b23;--rt-text-secondary:#4d5666;--rt-text-muted:#6b7688;--rt-text-inverse:#fff;--rt-text-brand:#2449c9;--rt-border-subtle:#e2e7ee;--rt-border-strong:#cbd3de;--rt-border-focus:#3563e9;--rt-status-ok:#0d7548;--rt-status-ok-bg:#e8f7ef;--rt-status-warn:#955f13;--rt-status-warn-bg:#fdf3e3;--rt-status-danger:#a92330;--rt-status-danger-bg:#fdeced;--rt-status-info:#175a92;--rt-status-info-bg:#e9f2fb;--rt-status-neutral:#4d5666;--rt-status-neutral-bg:#eef1f5;--rt-space-1:0.25rem;--rt-space-2:0.5rem;--rt-space-3:0.75rem;--rt-space-4:1rem;--rt-space-5:1.25rem;--rt-space-6:1.5rem;--rt-space-8:2rem;--rt-space-10:2.5rem;--rt-space-12:3rem;--rt-space-16:4rem;--rt-radius-sm:4px;--rt-radius-md:7px;--rt-radius-lg:11px;--rt-radius-pill:999px;--rt-shadow-xs:0 1px 2px rgb(16 24 40/5%);--rt-shadow-sm:0 1px 3px rgb(16 24 40/9%);--rt-shadow-md:0 4px 10px -2px rgb(16 24 40/9%);--rt-shadow-lg:0 12px 20px -4px rgba(16,24,40,.11);--rt-font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--rt-font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--rt-text-xs:0.6875rem;--rt-text-sm:0.8125rem;--rt-text-base:0.875rem;--rt-text-md:1rem;--rt-text-lg:1.0625rem;--rt-text-xl:1.25rem;--rt-text-2xl:1.5rem;--rt-weight-regular:400;--rt-weight-medium:500;--rt-weight-semibold:600;--rt-weight-bold:700;--rt-label-tracking:0.08em;--rt-label-weight:600;--rt-leading-tight:1.25;--rt-leading-normal:1.5;--rt-icon-size:16px;--rt-icon-stroke:1.6;--rt-btn-height:auto;--rt-btn-padding-y:var(--rt-space-2);--rt-btn-padding-x:var(--rt-space-4);--rt-btn-font-size:var(--rt-text-sm);--rt-field-bg:var(--rt-surface-card);--rt-field-border:var(--rt-border-strong);--rt-field-ink:var(--rt-text-primary);--rt-spinner-size:18px;--rt-spinner-accent:var(--rt-text-brand);--rt-btn-height-sm:auto;--rt-btn-padding-y-sm:var(--rt-space-1);--rt-btn-padding-x-sm:var(--rt-space-2);--rt-btn-font-size-sm:var(--rt-text-xs);--rt-btn-primary-bg:#2449c9;--rt-btn-primary-fg:#fff;--rt-btn-primary-border:transparent;--rt-btn-primary-bg-hover:#1d3ba3;--rt-btn-danger-bg:var(--rt-status-danger);--rt-btn-danger-fg:#fff;--rt-btn-danger-border:transparent;--rt-btn-danger-bg-hover:#8a1b26;--rt-duration-fast:120ms;--rt-duration-base:200ms;--rt-ease-out:cubic-bezier(0.22,1,0.36,1);--rt-z-dropdown:100;--rt-z-sticky:200;--rt-z-drawer:300;--rt-z-modal:400;--rt-z-combobox:450;--rt-z-toast:500}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--rt-surface-app:#0e1218;--rt-surface-card:#161b23;--rt-surface-raised:#252c38;--rt-surface-sunken:#11161e;--rt-surface-hover:hsla(0,0%,100%,.04);--rt-surface-selected:rgba(53,99,233,.16);--rt-surface-inverse:#eef1f5;--rt-text-primary:#e9edf3;--rt-text-secondary:#a3aebf;--rt-text-muted:#7d8899;--rt-text-inverse:#161b23;--rt-text-brand:#8eb4ff;--rt-border-subtle:#232c3a;--rt-border-strong:#32404f;--rt-status-ok:#35c586;--rt-status-ok-bg:rgba(18,145,90,.15);--rt-status-warn:#e0a13f;--rt-status-warn-bg:rgba(183,121,31,.16);--rt-status-danger:#f0707c;--rt-status-danger-bg:rgba(204,47,61,.16);--rt-status-info:#58a9e6;--rt-status-info-bg:rgba(31,111,178,.16);--rt-status-neutral:#a3aebf;--rt-status-neutral-bg:hsla(0,0%,100%,.06);--rt-shadow-xs:0 1px 2px rgba(0,0,0,.4);--rt-shadow-sm:0 1px 3px rgba(0,0,0,.5);--rt-shadow-md:0 4px 12px rgba(0,0,0,.5);--rt-shadow-lg:0 12px 24px rgba(0,0,0,.55)}}:root[data-theme=dark]{--rt-surface-app:#0e1218;--rt-surface-card:#161b23;--rt-surface-raised:#252c38;--rt-surface-sunken:#11161e;--rt-surface-hover:hsla(0,0%,100%,.04);--rt-surface-selected:rgba(53,99,233,.16);--rt-surface-inverse:#eef1f5;--rt-text-primary:#e9edf3;--rt-text-secondary:#a3aebf;--rt-text-muted:#7d8899;--rt-text-inverse:#161b23;--rt-text-brand:#8eb4ff;--rt-border-subtle:#232c3a;--rt-border-strong:#32404f;--rt-status-ok:#35c586;--rt-status-ok-bg:rgba(18,145,90,.15);--rt-status-warn:#e0a13f;--rt-status-warn-bg:rgba(183,121,31,.16);--rt-status-danger:#f0707c;--rt-status-danger-bg:rgba(204,47,61,.16);--rt-status-info:#58a9e6;--rt-status-info-bg:rgba(31,111,178,.16);--rt-status-neutral:#a3aebf;--rt-status-neutral-bg:hsla(0,0%,100%,.06);--rt-shadow-xs:0 1px 2px rgba(0,0,0,.4);--rt-shadow-sm:0 1px 3px rgba(0,0,0,.5);--rt-shadow-md:0 4px 12px rgba(0,0,0,.5);--rt-shadow-lg:0 12px 24px rgba(0,0,0,.55)}}:root{--brand:#0f6e6e;--brand-strong:#0a5656;--brand-tint:#e3f1f1;--on-brand:#fff;--ink:#10181a;--accent:#f5a524;--accent-ink:#7a4a00;--accent-tint:#fef3dc;--qr-paper:#fff;--page-max:72rem;--page-narrow:40rem;--card-max:26rem;--card-max-wide:40rem;--qr-size:15rem;--rename-width:14rem;--page-gutter:var(--rt-space-5);--header-height:3.5rem;--sidebar-width:15rem;--tabbar-height:4rem;--tap-target:3rem;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--rt-surface-app:#fff;--rt-surface-card:#fff;--rt-surface-raised:#fff;--rt-surface-sunken:#f2f6f6;--rt-surface-hover:#f6f9f9;--rt-surface-selected:var(--brand-tint);--rt-surface-inverse:var(--ink);--rt-text-primary:var(--ink);--rt-text-secondary:#3d4a4d;--rt-text-muted:#5a686b;--rt-text-brand:var(--brand);--rt-border-subtle:#dfe7e7;--rt-border-strong:#c3cfcf;--rt-border-focus:var(--brand);--rt-status-warn:var(--accent-ink);--rt-status-warn-bg:var(--accent-tint);--rt-btn-primary-bg:var(--brand);--rt-btn-primary-fg:var(--on-brand);--rt-btn-primary-bg-hover:var(--brand-strong);--rt-font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--rt-font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--rt-text-base:1rem;--rt-text-md:1.0625rem;--rt-text-lg:1.1875rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--brand:#4cc0c0;--brand-strong:#7dd3d3;--brand-tint:rgba(76,192,192,.14);--on-brand:#0b1213;--accent-ink:#f5b84a;--accent-tint:rgba(245,165,36,.16);--rt-surface-app:#0b1213;--rt-surface-card:#121b1c;--rt-surface-raised:#1b2829;--rt-surface-sunken:#090e0f;--rt-surface-hover:hsla(0,0%,100%,.04);--rt-surface-selected:var(--brand-tint);--rt-surface-inverse:#e8f0f0;--rt-text-primary:#e8f0f0;--rt-text-secondary:#a8b8b9;--rt-text-muted:#7f9092;--rt-text-brand:var(--brand);--rt-border-subtle:#213233;--rt-border-strong:#314546;--rt-border-focus:var(--brand);--rt-status-warn:var(--accent-ink);--rt-status-warn-bg:var(--accent-tint);--rt-btn-primary-bg:var(--brand);--rt-btn-primary-fg:var(--on-brand);--rt-btn-primary-bg-hover:var(--brand-strong)}}:root[data-theme=dark]{--brand:#4cc0c0;--brand-strong:#7dd3d3;--brand-tint:rgba(76,192,192,.14);--on-brand:#0b1213;--accent-ink:#f5b84a;--accent-tint:rgba(245,165,36,.16);--rt-surface-app:#0b1213;--rt-surface-card:#121b1c;--rt-surface-raised:#1b2829;--rt-surface-sunken:#090e0f;--rt-surface-hover:hsla(0,0%,100%,.04);--rt-surface-selected:var(--brand-tint);--rt-surface-inverse:#e8f0f0;--rt-text-primary:#e8f0f0;--rt-text-secondary:#a8b8b9;--rt-text-muted:#7f9092;--rt-text-brand:var(--brand);--rt-border-subtle:#213233;--rt-border-strong:#314546;--rt-border-focus:var(--brand);--rt-status-warn:var(--accent-ink);--rt-status-warn-bg:var(--accent-tint);--rt-btn-primary-bg:var(--brand);--rt-btn-primary-fg:var(--on-brand);--rt-btn-primary-bg-hover:var(--brand-strong)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--rt-surface-app);color:var(--rt-text-primary);font-family:var(--rt-font-sans);font-size:var(--rt-text-base);line-height:var(--rt-leading-normal);margin:0}h1,h2,h3{font-weight:var(--rt-weight-bold);line-height:var(--rt-leading-tight);margin:0}h1{font-size:var(--rt-text-2xl)}h2{font-size:var(--rt-text-xl)}h3{font-size:var(--rt-text-lg)}p{margin:0}a{color:var(--rt-text-brand)}a.rt-btn{text-decoration:none}img{height:auto;max-width:100%}:focus-visible{outline:2px solid var(--rt-border-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.boot-splash{color:var(--rt-text-muted);display:grid;min-height:100vh;place-items:center}.text-secondary{color:var(--rt-text-secondary)}.row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-2)}.stack{display:grid;gap:var(--rt-space-4)}.page{align-content:start;display:grid;gap:var(--rt-space-6);grid-template-columns:minmax(0,1fr)}.page--narrow{margin:0 auto;max-width:var(--page-narrow);width:100%}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-4)}.page-header__text{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--rt-space-3)}.page-header__description{color:var(--rt-text-secondary)}.page-header__actions{display:flex;gap:var(--rt-space-2);margin-left:auto}.logo{align-items:center;color:var(--rt-text-primary);display:inline-flex;font-size:var(--rt-text-lg);font-weight:var(--rt-weight-bold);gap:var(--rt-space-2);line-height:var(--rt-leading-tight)}.logo__mark{background:var(--brand);border-radius:var(--rt-radius-md);color:var(--on-brand);display:grid;flex-shrink:0;height:var(--rt-space-8);place-items:center;width:var(--rt-space-8)}.bell{position:relative}.bell__count{background:var(--rt-status-danger);border-radius:var(--rt-radius-pill);color:var(--rt-text-inverse);font-size:var(--rt-text-xs);font-weight:var(--rt-weight-bold);line-height:var(--rt-space-4);min-width:var(--rt-space-4);padding:0 var(--rt-space-1);position:absolute;right:0;text-align:center;top:0}.notice-list{list-style:none;margin:0;padding:0}.notice-list>li+li{border-top:1px solid var(--rt-border-subtle)}.notice{align-items:flex-start;color:var(--rt-text-primary);display:flex;gap:var(--rt-space-3);padding:var(--rt-space-3) var(--rt-space-4);text-decoration:none}a.notice:hover{background:var(--rt-surface-hover)}.notice__icon{background:var(--rt-surface-sunken);border-radius:var(--rt-radius-pill);color:var(--rt-text-secondary);display:grid;flex-shrink:0;height:var(--rt-space-8);place-items:center;width:var(--rt-space-8)}.notice--unread .notice__icon{background:var(--brand-tint);color:var(--rt-text-brand)}.notice__text{display:flex;flex:1;flex-direction:column;gap:var(--rt-space-1);min-width:0}.notice__title{font-weight:var(--rt-weight-medium)}.notice--unread .notice__title{font-weight:var(--rt-weight-semibold)}.notice__body{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);overflow-wrap:anywhere}.notice__time{color:var(--rt-text-muted);font-size:var(--rt-text-xs)}.notice__dot{background:var(--brand);border-radius:var(--rt-radius-pill);flex-shrink:0;height:var(--rt-space-2);margin-top:var(--rt-space-2);width:var(--rt-space-2)}.public{background:var(--rt-surface-sunken);display:flex;flex-direction:column;min-height:100vh}.public-header{align-items:center;background:var(--rt-surface-card);border-bottom:1px solid var(--rt-border-subtle);display:flex;gap:var(--rt-space-4);justify-content:space-between;padding:calc(var(--rt-space-3) + var(--safe-top)) var(--page-gutter) var(--rt-space-3)}.public-header a{text-decoration:none}.public-nav{align-items:center;display:flex;gap:var(--rt-space-4)}.public-nav__link{align-items:center;display:inline-flex;font-weight:var(--rt-weight-medium);min-height:var(--tap-target)}.public-main{flex:1;margin:0 auto;max-width:var(--page-max);padding:var(--rt-space-6) var(--page-gutter) calc(var(--rt-space-6) + var(--safe-bottom));width:100%}.skip-link{background:var(--rt-surface-inverse);border-radius:var(--rt-radius-md);color:var(--rt-text-inverse);left:var(--rt-space-2);padding:var(--rt-space-2) var(--rt-space-3);position:absolute;top:var(--rt-space-2);transform:translateY(-300%);z-index:var(--rt-z-toast)}.skip-link:focus{transform:translateY(0)}.rt-icon{flex:none;height:var(--rt-icon-size);max-width:none;stroke-width:var(--rt-icon-stroke);width:var(--rt-icon-size)}.rt-card{background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-lg);box-shadow:var(--rt-shadow-xs)}.rt-card__header{align-items:center;border-bottom:1px solid var(--rt-border-subtle);display:flex;gap:var(--rt-space-3);padding:var(--rt-space-4) var(--rt-space-5)}.rt-card__heading{min-width:0}.rt-card__actions{align-items:center;display:flex;gap:var(--rt-space-2);margin-left:auto}.rt-card__title{font-size:var(--rt-text-lg);font-weight:var(--rt-weight-semibold);line-height:var(--rt-leading-tight)}.rt-card__subtitle{color:var(--rt-text-muted);font-size:var(--rt-text-sm);margin-top:2px}.rt-card__body{padding:var(--rt-space-5)}.rt-card__body--flush{padding:0}.rt-card__footer{background:var(--rt-surface-sunken);border-top:1px solid var(--rt-border-subtle);padding:var(--rt-space-4) var(--rt-space-5)}.rt-card__footer--actions{display:flex;gap:var(--rt-space-2);justify-content:flex-end}.rt-badge{align-items:center;border-radius:var(--rt-radius-sm);display:inline-flex;font-size:var(--rt-text-xs);font-weight:var(--rt-weight-medium);gap:var(--rt-space-1);line-height:1.5;padding:2px var(--rt-space-2);white-space:nowrap}.rt-badge--neutral{background:var(--rt-status-neutral-bg);color:var(--rt-status-neutral)}.rt-badge--ok{background:var(--rt-status-ok-bg);color:var(--rt-status-ok)}.rt-badge--warn{background:var(--rt-status-warn-bg);color:var(--rt-status-warn)}.rt-badge--danger{background:var(--rt-status-danger-bg);color:var(--rt-status-danger)}.rt-badge--info{background:var(--rt-status-info-bg);color:var(--rt-status-info)}.rt-badge--brand{background:var(--rt-surface-selected);color:var(--rt-text-brand)}.rt-badge__dot{background:currentColor;border-radius:50%;flex:none;height:6px;width:6px}.rt-btn{align-items:center;border:1px solid transparent;border-radius:var(--rt-radius-md);cursor:pointer;display:inline-flex;font-size:var(--rt-btn-font-size);font-weight:var(--rt-weight-medium);gap:var(--rt-space-2);height:var(--rt-btn-height);justify-content:center;padding:var(--rt-btn-padding-y) var(--rt-btn-padding-x);transition:background var(--rt-duration-fast),border-color var(--rt-duration-fast),color var(--rt-duration-fast);white-space:nowrap}.rt-btn:disabled{cursor:not-allowed;opacity:.55}.rt-btn--secondary{background:var(--rt-surface-card);border-color:var(--rt-border-strong);color:var(--rt-text-primary)}.rt-btn--secondary:not(:disabled):hover{background:var(--rt-surface-hover)}.rt-btn--primary{background:var(--rt-btn-primary-bg);border-color:var(--rt-btn-primary-border);color:var(--rt-btn-primary-fg)}.rt-btn--primary:not(:disabled):hover{background:var(--rt-btn-primary-bg-hover);border-color:var(--rt-btn-primary-bg-hover)}.rt-btn--ghost{background:transparent;border-color:transparent;color:var(--rt-text-secondary)}.rt-btn--ghost:not(:disabled):hover{background:var(--rt-surface-hover);color:var(--rt-text-primary)}.rt-btn--danger{background:var(--rt-btn-danger-bg);border-color:var(--rt-btn-danger-border);color:var(--rt-btn-danger-fg)}.rt-btn--danger:not(:disabled):hover{background:var(--rt-btn-danger-bg-hover)}.rt-btn--subtle-danger{background:var(--rt-status-danger-bg);border-color:transparent;color:var(--rt-status-danger)}.rt-btn--sm{font-size:var(--rt-btn-font-size-sm);height:var(--rt-btn-height-sm);padding:var(--rt-btn-padding-y-sm) var(--rt-btn-padding-x-sm)}.rt-btn--icon{aspect-ratio:1;padding:var(--rt-btn-padding-y)}.rt-btn--block{width:100%}.rt-btn__spinner{animation:rt-spin .6s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid transparent;height:14px;opacity:.7;width:14px}@keyframes rt-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.rt-btn__spinner{animation-duration:2s}}.rt-state{align-items:center;color:var(--rt-text-secondary);display:flex;flex-direction:column;gap:var(--rt-space-2);padding:var(--rt-space-12) var(--rt-space-6);text-align:center}.rt-state--loading{flex-direction:row;gap:var(--rt-space-3);justify-content:center}.rt-state__icon{color:var(--rt-text-muted);display:grid;opacity:.7;place-items:center}.rt-state--error .rt-state__icon{color:var(--rt-status-danger);opacity:1}.rt-state__title{color:var(--rt-text-primary);font-size:var(--rt-text-base);font-weight:var(--rt-weight-semibold)}.rt-state__message{font-size:var(--rt-text-sm);max-width:46ch}.rt-state__action{margin-top:var(--rt-space-2)}.rt-spinner{animation:rt-spin .7s linear infinite;border:2px solid var(--rt-border-subtle);border-radius:50%;border-top-color:var(--rt-spinner-accent);flex:none;height:var(--rt-spinner-size);width:var(--rt-spinner-size)}@media (prefers-reduced-motion:reduce){.rt-spinner{animation-duration:2s}}.rt-stat{background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-lg);display:flex;flex-direction:column;gap:var(--rt-space-1);padding:var(--rt-space-4) var(--rt-space-5);--rt-stat-accent:var(--rt-text-primary)}.rt-stat--ok{--rt-stat-accent:var(--rt-status-ok)}.rt-stat--warn{--rt-stat-accent:var(--rt-status-warn)}.rt-stat--danger{--rt-stat-accent:var(--rt-status-danger)}.rt-stat--info{--rt-stat-accent:var(--rt-status-info)}.rt-stat--brand{--rt-stat-accent:var(--rt-text-brand)}.rt-stat__label{align-items:center;color:var(--rt-text-muted);display:flex;font-size:var(--rt-text-xs);font-weight:var(--rt-label-weight);gap:var(--rt-space-2);letter-spacing:var(--rt-label-tracking);text-transform:uppercase}.rt-stat__value{color:var(--rt-text-primary);font-size:var(--rt-text-2xl);font-weight:var(--rt-weight-bold);line-height:var(--rt-leading-tight)}.rt-stat--lead .rt-stat__value{font-size:calc(var(--rt-text-2xl)*1.25)}.rt-stat__meta{align-items:center;color:var(--rt-text-secondary);display:flex;flex-wrap:wrap;font-size:var(--rt-text-sm);gap:var(--rt-space-1)}.rt-stat__trend{align-items:center;display:inline-flex;gap:3px}.rt-stat__trend--good{color:var(--rt-status-ok)}.rt-stat__trend--bad{color:var(--rt-status-danger)}.rt-stat-grid{display:grid;gap:var(--rt-space-4);grid-template-columns:repeat(auto-fit,minmax(var(--rt-stat-min,200px),1fr))}.rt-muted{color:var(--rt-text-muted)}.rt-pagination{align-items:center;display:flex;gap:var(--rt-space-3);justify-content:space-between}.rt-pagination__position{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.rt-toast-region{bottom:var(--rt-space-5);display:flex;flex-direction:column;gap:var(--rt-space-2);position:fixed;right:var(--rt-space-5);width:min(380px,calc(100vw - var(--rt-space-8)));z-index:var(--rt-z-toast)}.rt-toast{--rt-toast-accent:var(--rt-text-secondary);align-items:flex-start;background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);box-shadow:var(--rt-shadow-lg);display:flex;gap:var(--rt-space-3);padding:var(--rt-space-3) var(--rt-space-4)}.rt-toast--ok{--rt-toast-accent:var(--rt-status-ok)}.rt-toast--danger{--rt-toast-accent:var(--rt-status-danger)}.rt-toast--warn{--rt-toast-accent:var(--rt-status-warn)}.rt-toast--info{--rt-toast-accent:var(--rt-status-info)}.rt-toast--brand{--rt-toast-accent:var(--rt-text-brand)}.rt-toast__icon{color:var(--rt-toast-accent);margin-top:2px}.rt-toast__body{flex:1;min-width:0}.rt-toast__title{font-size:var(--rt-text-base);font-weight:var(--rt-weight-medium)}.rt-toast__message{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);word-break:break-word}.rt-toast__close{background:none;border:0;color:var(--rt-text-muted);cursor:pointer;flex:none;padding:0}.rt-toast__close:hover{color:var(--rt-text-primary)}.rt-form-grid{display:grid;gap:var(--rt-space-4);grid-template-columns:repeat(var(--rt-form-columns,2),minmax(0,1fr))}.rt-form-grid--single{--rt-form-columns:1}.rt-field--full{grid-column:1/-1}@media (max-width:47.99rem){.rt-form-grid{--rt-form-columns:1}}.rt-field{display:flex;flex-direction:column;gap:var(--rt-space-1);min-width:0}.rt-field__label{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);font-weight:var(--rt-weight-medium)}.rt-field__required{color:var(--rt-status-danger);margin-left:2px}.rt-field__error,.rt-field__hint{font-size:var(--rt-text-xs)}.rt-field__hint{color:var(--rt-text-muted)}.rt-field__inline{align-items:center;display:flex;gap:var(--rt-space-2)}.rt-field__hint--inline{white-space:nowrap}.rt-field__error{color:var(--rt-status-danger)}.rt-input,.rt-select,.rt-textarea{background:var(--rt-field-bg);border:1px solid var(--rt-field-border);border-radius:var(--rt-radius-sm);color:var(--rt-field-ink);font:inherit;font-size:var(--rt-text-sm);padding:var(--rt-space-2) var(--rt-space-3);width:100%}.rt-textarea{resize:vertical}.rt-input:focus-visible,.rt-select:focus-visible,.rt-textarea:focus-visible{outline:2px solid var(--rt-border-focus);outline-offset:-1px}.rt-input--error{border-color:var(--rt-status-danger)}.rt-input-group{align-items:stretch;display:flex}.rt-input-group__prefix{background:var(--rt-surface-sunken);border:1px solid var(--rt-field-border);border-radius:var(--rt-radius-sm) 0 0 var(--rt-radius-sm);border-right:0;color:var(--rt-text-muted);display:grid;font-size:var(--rt-text-sm);padding-inline:var(--rt-space-3);place-items:center}.rt-input-group .rt-input{border-radius:0 var(--rt-radius-sm) var(--rt-radius-sm) 0}.rt-checkbox{align-items:center;display:flex;font-size:var(--rt-text-sm);gap:var(--rt-space-2)}.rt-form-table-scroll{overflow-x:auto}.rt-form-table{border-collapse:collapse;width:100%}.rt-form-table__label{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);font-weight:var(--rt-weight-medium);padding:var(--rt-space-2) var(--rt-space-4) var(--rt-space-2) 0;text-align:left;vertical-align:middle;white-space:nowrap;width:1%}.rt-form-table__control{padding:var(--rt-space-2) 0}.rt-modal-backdrop{background:rgba(0,0,0,.45);display:grid;inset:0;overflow-y:auto;padding:var(--rt-space-4);place-items:center;position:fixed;z-index:var(--rt-z-modal)}.rt-modal{background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-lg);box-shadow:var(--rt-shadow-lg);display:flex;flex-direction:column;max-height:calc(100vh - var(--rt-space-8));width:min(560px,100%)}.rt-modal--wide{width:min(880px,100%)}.rt-modal--narrow{width:min(420px,100%)}.rt-modal__header{align-items:flex-start;border-bottom:1px solid var(--rt-border-subtle);display:flex;gap:var(--rt-space-3);padding:var(--rt-space-4) var(--rt-space-5)}.rt-modal__heading{flex:1;min-width:0}.rt-modal__title{font-size:var(--rt-text-lg);font-weight:var(--rt-weight-semibold);line-height:var(--rt-leading-tight)}.rt-modal__description{color:var(--rt-text-muted);font-size:var(--rt-text-sm);margin-top:2px}.rt-modal__body{flex:1;min-height:0;overflow-y:auto;padding:var(--rt-space-5)}.rt-modal__message{color:var(--rt-text-secondary)}.rt-modal__footer{background:var(--rt-surface-sunken);border-top:1px solid var(--rt-border-subtle);display:flex;gap:var(--rt-space-2);justify-content:flex-end;padding:var(--rt-space-4) var(--rt-space-5)}.rt-table-scroll{overflow-x:auto}.rt-table{border-collapse:collapse;font-size:var(--rt-text-sm);width:100%}.rt-table td,.rt-table th{border-bottom:1px solid var(--rt-border-subtle);padding:var(--rt-space-3) var(--rt-space-4);text-align:left}.rt-table--compact td,.rt-table--compact th{padding:var(--rt-space-2) var(--rt-space-3)}.rt-table thead th{color:var(--rt-text-muted);font-size:var(--rt-text-xs);font-weight:var(--rt-label-weight);letter-spacing:var(--rt-label-tracking);text-transform:uppercase;white-space:nowrap}.rt-table__cell--right{text-align:right}.rt-table__cell--center{text-align:center}.rt-table__th--sortable{cursor:pointer;user-select:none}.rt-table__th--sortable:hover{color:var(--rt-text-primary)}.rt-table__sort{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:var(--rt-space-1);letter-spacing:inherit;padding:0;text-transform:inherit}.rt-table__sort-indicator{font-size:.7em;min-width:1em}.rt-table__row--clickable{cursor:pointer}.rt-table tbody tr:hover{background:var(--rt-surface-hover)}.rt-cell-stack{display:flex;flex-direction:column}.rt-cell-stack__secondary{color:var(--rt-text-muted);font-size:var(--rt-text-xs)}.rt-row-actions{justify-content:flex-end}.rt-row-actions,.rt-toolbar{align-items:center;display:flex;gap:var(--rt-space-3)}.rt-toolbar{flex-wrap:wrap}.rt-toolbar__spacer{flex:1}.rt-toolbar__search{align-items:center;display:flex;position:relative}.rt-toolbar__search-icon{color:var(--rt-text-muted);left:var(--rt-space-3);pointer-events:none;position:absolute}.rt-toolbar__search .rt-input{padding-left:var(--rt-space-8);width:var(--rt-toolbar-search-width,260px)}.rt-toolbar__count{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.rt-segmented,.rt-tabs{align-items:center;display:inline-flex;gap:2px}.rt-segmented{background:var(--rt-surface-sunken);border-radius:var(--rt-radius-md);padding:2px}.rt-segmented__option,.rt-tabs__tab{align-items:center;background:none;border:0;border-radius:var(--rt-radius-sm);color:var(--rt-text-secondary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--rt-text-sm);gap:var(--rt-space-2);padding:var(--rt-space-1) var(--rt-space-3)}.rt-segmented__option--active{background:var(--rt-surface-card);box-shadow:var(--rt-shadow-xs);color:var(--rt-text-primary)}.rt-tabs__tab{border-bottom:2px solid transparent;border-radius:0}.rt-tabs__tab--active{border-bottom-color:var(--rt-text-primary);color:var(--rt-text-primary)}.rt-tabs__count{color:var(--rt-text-muted)}.rt-select.rt-filter{min-width:140px;width:auto}.rt-banner{background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-left-width:3px;border-radius:var(--rt-radius-md);font-size:var(--rt-text-base);gap:var(--rt-space-3);margin:0;padding:var(--rt-space-3) var(--rt-space-4)}.rt-banner,.rt-banner__icon{align-items:center;display:flex}.rt-banner__icon{color:var(--rt-text-muted);height:1.25rem}.rt-banner__body{flex:1;min-width:0}.rt-banner__body p{color:var(--rt-text-secondary)}.rt-banner__title{color:var(--rt-text-primary);font-weight:600}.rt-banner__actions{display:flex;flex-shrink:0;gap:var(--rt-space-2)}.rt-banner--ok{background:var(--rt-status-ok-bg);border-left-color:var(--rt-status-ok)}.rt-banner--ok .rt-banner__icon{color:var(--rt-status-ok)}.rt-banner--warn{background:var(--rt-status-warn-bg);border-left-color:var(--rt-status-warn)}.rt-banner--warn .rt-banner__icon{color:var(--rt-status-warn)}.rt-banner--danger{background:var(--rt-status-danger-bg);border-left-color:var(--rt-status-danger)}.rt-banner--danger .rt-banner__icon{color:var(--rt-status-danger)}.rt-banner--info{background:var(--rt-status-info-bg);border-left-color:var(--rt-status-info)}.rt-banner--info .rt-banner__icon{color:var(--rt-status-info)}.rt-code-input{align-items:center;display:flex;gap:var(--rt-space-2)}.rt-code-input__group{display:flex;flex:1 1 0;gap:var(--rt-space-2);min-width:0}.rt-code-input__box{background:var(--rt-field-bg);border:1px solid var(--rt-field-border);border-radius:var(--rt-radius-sm);color:var(--rt-field-ink);flex:1 1 0;font-family:var(--rt-font-mono);font-size:var(--rt-text-xl);min-width:0;padding:var(--rt-space-3) var(--rt-space-1);text-align:center}.rt-code-input__box:focus-visible{outline:2px solid var(--rt-border-focus);outline-offset:-1px}.rt-code-input__box:disabled{background:var(--rt-surface-sunken);color:var(--rt-text-muted)}.rt-code-input__box--error{border-color:var(--rt-status-danger)}.rt-code-input__separator{color:var(--rt-text-muted);font-family:var(--rt-font-mono)}.rt-code-input--dense,.rt-code-input--dense .rt-code-input__group{gap:var(--rt-space-1)}.rt-code-input--dense .rt-code-input__box{font-size:var(--rt-text-md);padding:var(--rt-space-2) 0}.rt-dash{color:var(--rt-text-muted)}.rt-mono{font-size:var(--rt-text-sm);font-variant-numeric:tabular-nums}.rt-mono,.rt-numeric{font-family:var(--rt-font-mono)}.rt-numeric{font-variant-numeric:tabular-nums}.rt-detail-list{display:grid;gap:var(--rt-space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.rt-detail-list__item{display:flex;flex-direction:column;gap:var(--rt-space-1)}.rt-detail-list__label{color:var(--rt-text-secondary);font-size:var(--rt-text-xs);font-weight:600}.rt-detail-list__hint{color:var(--rt-text-muted);font-size:var(--rt-text-xs)}.rt-detail-rows__row{align-items:center;border-bottom:1px solid var(--rt-border-subtle);display:grid;font-size:var(--rt-text-base);gap:var(--rt-space-4);grid-template-columns:15rem 2fr;min-height:calc(var(--rt-text-sm)*1.5 + var(--rt-space-2)*2 + 2px);padding:var(--rt-space-2) 0}.rt-detail-rows__row:last-child{border-bottom:0}.rt-detail-rows__row--sub{border-bottom:0;color:var(--rt-text-muted);font-size:var(--rt-text-sm);min-height:0;padding:0 0 0 var(--rt-space-4)}.rt-detail-rows__row--sub+.rt-detail-rows__row:not(.rt-detail-rows__row--sub){margin-top:var(--rt-space-2)}.rt-detail-rows__row dt{color:var(--rt-text-muted);min-width:15rem}.rt-detail-rows__row dd{min-width:0;overflow-wrap:anywhere}.rt-detail-rows__row--full{align-items:stretch;grid-template-columns:1fr}.rt-detail-rows__row--full>dd{grid-column:1/-1}.rt-field-w{width:100%}.rt-field-w--xs{max-width:6rem}.rt-field-w--sm{max-width:10rem}.rt-field-w--md{max-width:18rem}.rt-field-w--lg{max-width:28rem}.rt-field-w--full{max-width:46rem}@media (max-width:47.99rem){.rt-field-w{max-width:none}}.rt-field-row{align-items:center;display:flex;gap:var(--rt-space-2)}.rt-radio-group{display:flex;flex-wrap:wrap;gap:var(--rt-space-4)}.rt-radio-group__option{align-items:center;cursor:pointer;display:inline-flex;font-size:var(--rt-text-sm);gap:var(--rt-space-2)}.rt-combobox{position:relative;width:100%}.rt-combobox__input{width:100%}.rt-combobox__list{background:var(--rt-surface-raised);border:1px solid var(--rt-border-strong);border-radius:var(--rt-radius-sm);border-top:none;box-shadow:var(--rt-shadow-md);left:0;list-style:none;margin:0;max-height:15rem;overflow-y:auto;padding:0;position:absolute;right:0;top:100%;z-index:20}.rt-combobox__list--floating{border-radius:var(--rt-radius-sm);border-top:1px solid var(--rt-border-strong);position:fixed;right:auto;z-index:var(--rt-z-combobox)}.rt-combobox__option{cursor:pointer;font-size:var(--rt-text-sm);padding:var(--rt-space-2) var(--rt-space-3)}.rt-combobox__option--active{background:var(--rt-surface-selected)}.rt-combobox__option--add{border-top:1px solid var(--rt-border-subtle);color:var(--rt-text-secondary)}.rt-combobox__empty{color:var(--rt-text-muted);font-size:var(--rt-text-sm);padding:var(--rt-space-2) var(--rt-space-3)}.rt-combobox--inline{width:180px}.rt-combobox--wide{max-width:100%;width:220px}.auth-page{display:grid;padding:var(--rt-space-12) var(--page-gutter);place-items:start center}.auth-page--wide .login__card{max-width:var(--card-max-wide)}.login__card{background:var(--rt-surface-card);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-lg);box-shadow:var(--rt-shadow-md);display:flex;flex-direction:column;gap:var(--rt-space-4);max-width:var(--card-max);padding:var(--rt-space-8);width:100%}.login__title{font-size:var(--rt-text-xl)}.login__form{display:flex;flex-direction:column;gap:var(--rt-space-4)}.login__error{background:var(--rt-status-danger-bg);border-radius:var(--rt-radius-md);color:var(--rt-status-danger);padding:var(--rt-space-3)}.auth-links,.login__error{font-size:var(--rt-text-sm)}.auth-links{display:flex;flex-wrap:wrap;gap:var(--rt-space-3);justify-content:space-between}.auth-links a{align-items:center;display:inline-flex;min-height:var(--tap-target)}.enrol__setup{display:grid;gap:var(--rt-space-4)}.enrol__qr{background:var(--qr-paper);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);justify-self:center;max-width:var(--qr-size);padding:var(--rt-space-4);width:100%}.enrol__alt{display:grid;gap:var(--rt-space-3)}.enrol__open{min-height:var(--tap-target)}.enrol__key{display:grid;gap:var(--rt-space-2)}.enrol__key-label{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);font-weight:var(--rt-weight-semibold)}.enrol__secret{background:var(--rt-surface-sunken);border-radius:var(--rt-radius-md);display:block;font-family:var(--rt-font-mono);font-size:var(--rt-text-md);letter-spacing:var(--rt-label-tracking);padding:var(--rt-space-3);word-break:break-all}@media (pointer:coarse){.enrol__alt{order:-1}}.recovery-codes{background:var(--rt-surface-sunken);border-radius:var(--rt-radius-md);display:grid;gap:var(--rt-space-2);grid-template-columns:repeat(2,1fr);list-style:none;margin:0;padding:var(--rt-space-4)}.recovery-codes code{font-family:var(--rt-font-mono);font-size:var(--rt-text-md)}.device-list{display:grid;gap:var(--rt-space-3)}.device-plate{align-items:center;background:var(--rt-surface-sunken);border:1px solid var(--rt-border-subtle);border-radius:var(--rt-radius-md);display:flex;gap:var(--rt-space-4);padding:var(--rt-space-3) var(--rt-space-4)}.device-plate--current{background:var(--rt-status-info-bg);border-color:var(--rt-status-info)}.device-plate__body{display:flex;flex:1;flex-direction:column;gap:var(--rt-space-1);min-width:0}.device-plate__head{align-items:center;display:flex;flex-wrap:wrap;gap:var(--rt-space-2)}.device-plate__code{font-family:var(--rt-font-mono);font-size:var(--rt-text-md);font-weight:var(--rt-weight-semibold);letter-spacing:var(--rt-label-tracking)}.device-plate__sep{color:var(--rt-text-muted)}.device-plate__name{font-weight:var(--rt-weight-semibold)}.device-plate__meta{color:var(--rt-text-muted);font-size:var(--rt-text-sm)}.device-plate__actions{align-items:center;display:flex;gap:var(--rt-space-2);margin-left:auto}.device-plate__rename{align-items:stretch;flex-wrap:nowrap}.device-plate__rename .rt-input{width:var(--rename-width)}@media (max-width:40rem){.auth-page{padding-top:var(--rt-space-6)}.login__card{padding:var(--rt-space-5)}.device-plate{flex-wrap:wrap}.device-plate__actions{margin-left:0}.device-plate__rename .rt-input{flex:1;min-width:0;width:auto}}.admin{display:flex;flex-direction:column;min-height:100vh}.admin-topbar{align-items:center;background:var(--rt-surface-card);border-bottom:1px solid var(--rt-border-subtle);display:flex;gap:var(--rt-space-3);height:var(--header-height);padding:0 var(--page-gutter);position:sticky;top:0;z-index:var(--rt-z-sticky)}.admin-topbar a{text-decoration:none}.admin-topbar__menu{display:none}.admin-topbar__user{color:var(--rt-text-secondary);font-size:var(--rt-text-sm);margin-left:auto}.admin-body{align-items:stretch;display:flex;flex:1}.admin-nav{background:var(--rt-surface-card);border-right:1px solid var(--rt-border-subtle);flex-shrink:0;gap:var(--rt-space-5);padding:var(--rt-space-5) var(--rt-space-3);width:var(--sidebar-width)}.admin-nav,.admin-nav__group{display:flex;flex-direction:column}.admin-nav__group{gap:var(--rt-space-1)}.admin-nav__heading{color:var(--rt-text-muted);font-size:var(--rt-text-xs);font-weight:var(--rt-weight-semibold);letter-spacing:var(--rt-label-tracking);margin:0;padding:0 var(--rt-space-3);text-transform:uppercase}.admin-nav__link{align-items:center;border-radius:var(--rt-radius-md);color:var(--rt-text-secondary);display:flex;font-weight:var(--rt-weight-medium);gap:var(--rt-space-3);padding:var(--rt-space-2) var(--rt-space-3);text-decoration:none}.admin-nav__link:hover{background:var(--rt-surface-sunken);color:var(--rt-text-primary)}.admin-nav__link.active{background:var(--brand-tint);color:var(--rt-text-brand)}.admin-main{align-content:start;display:grid;gap:var(--rt-space-6);grid-template-columns:minmax(0,1fr);margin:0 auto;max-width:var(--page-max);min-width:0;padding:var(--rt-space-8) var(--page-gutter);width:100%}@media (max-width:56rem){.admin-topbar__menu{display:inline-flex}.admin-topbar__user{display:none}.admin-topbar>a{margin-right:auto}.admin-nav{border-right:0;display:none;inset:var(--header-height) 0 0 0;overflow-y:auto;position:fixed;width:auto;z-index:calc(var(--rt-z-sticky) - 1)}.admin-nav--open{display:flex}.page-header__actions{margin-left:0}}.contractor{background:var(--rt-surface-sunken);display:flex;flex-direction:column;min-height:100vh}.contractor a,.contractor button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.contractor-header{align-items:center;background:var(--rt-surface-card);border-bottom:1px solid var(--rt-border-subtle);display:flex;gap:var(--rt-space-1);min-height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) var(--page-gutter) 0;position:sticky;top:0;z-index:var(--rt-z-sticky)}.contractor-header__brand{align-items:center;display:inline-flex;margin-right:auto;min-height:var(--tap-target);text-decoration:none}.contractor-header__action{min-height:var(--tap-target);min-width:var(--tap-target)}.contractor-main{align-content:start;display:grid;flex:1;gap:var(--rt-space-5);grid-template-columns:minmax(0,1fr);margin:0 auto;max-width:var(--page-narrow);padding:var(--rt-space-5) var(--page-gutter) calc(var(--tabbar-height) + var(--safe-bottom) + var(--rt-space-6));width:100%}.contractor .rt-btn:not(.rt-btn--sm){min-height:var(--tap-target)}.contractor .rt-btn--icon{min-width:var(--tap-target)}.contractor .rt-input,.contractor .rt-select{min-height:var(--tap-target)}.tabbar{background:var(--rt-surface-card);border-top:1px solid var(--rt-border-subtle);bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(var(--tabbar-height) + var(--safe-bottom));left:0;padding-bottom:var(--safe-bottom);position:fixed;right:0;z-index:var(--rt-z-sticky)}.tabbar__link{align-items:center;color:var(--rt-text-muted);display:flex;flex-direction:column;font-size:var(--rt-text-xs);font-weight:var(--rt-weight-medium);gap:var(--rt-space-1);justify-content:center;min-height:var(--tap-target);padding:var(--rt-space-1);text-decoration:none}.tabbar__link:active{background:var(--rt-surface-hover)}.tabbar__link.active{color:var(--rt-text-brand);font-weight:var(--rt-weight-semibold)}.tabbar__label{line-height:var(--rt-leading-tight)}.tap-list{list-style:none;margin:0;padding:0}.tap-list>li+li{border-top:1px solid var(--rt-border-subtle)}.tap-list__link{align-items:center;color:var(--rt-text-primary);display:flex;font-weight:var(--rt-weight-medium);gap:var(--rt-space-3);min-height:var(--tap-target);padding:var(--rt-space-2) var(--rt-space-4);text-decoration:none}.tap-list__link:active{background:var(--rt-surface-hover)}.tap-list__more{color:var(--rt-text-muted);margin-left:auto}