*{box-sizing:border-box}body{margin:0;font-family:var(--font-stack);font-size:var(--density-body-size);line-height:var(--density-body-line);color:var(--colour-ink);background:var(--colour-surface-sunken)}a{color:var(--colour-brand-accessible)}:focus-visible{outline:var(--focus-ring-surfaces);outline-offset:var(--focus-ring-offset)}.shell__header :focus-visible{outline:var(--focus-ring-identity)}.shell{display:grid;grid-template-rows:auto 1fr;grid-template-columns:14rem 1fr;grid-template-areas:"header header" "nav main";min-height:100vh}.shell__header{grid-area:header;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;background:var(--colour-identity);color:var(--colour-on-identity)}.shell__brand{font-weight:700;letter-spacing:.02em}.shell__user{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.shell__nav{grid-area:nav;display:flex;flex-direction:column;background:var(--colour-surface);border-right:1px solid var(--colour-divider);padding:var(--space-12) 0}.shell__nav ul{list-style:none;margin:0;padding:0}.shell__nav ul a{display:flex;align-items:center;min-height:var(--density-min-target);padding:var(--space-8) var(--space-16);border-left:4px solid transparent;text-decoration:none;color:var(--colour-ink);transition:background-color var(--motion-duration) var(--motion-easing)}.shell__nav ul a:hover{background:var(--colour-brand-surface)}.shell__nav ul a[aria-current=page]{border-left-color:var(--colour-brand-accessible);background:var(--colour-brand-surface);color:var(--colour-brand-accessible);font-weight:600}.shell__new-job{display:inline-flex;align-items:center;justify-content:center;margin:var(--space-16) var(--space-16) var(--space-8);text-decoration:none}.shell__main{grid-area:main;padding:var(--layout-gutter);background:var(--colour-surface-sunken);min-width:0}.shell__main:focus{outline:none}@media(max-width:47.99rem){.shell{grid-template-columns:1fr;grid-template-areas:"header" "nav" "main"}.shell__nav{border-right:none;border-bottom:1px solid var(--colour-divider)}.shell__nav ul{display:flex;flex-wrap:wrap}.shell__nav ul a{border-left:0;border-bottom:4px solid transparent}.shell__nav ul a[aria-current=page]{border-bottom-color:var(--colour-brand-accessible)}.shell__main{padding:var(--space-16)}}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{font:inherit;color:var(--colour-ink);background:var(--colour-surface);border:1px solid var(--colour-boundary);border-radius:var(--radius-input)}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select{height:var(--density-control)}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:.5rem;top:.5rem;background:var(--colour-surface);padding:.5rem;z-index:10}.button,.button--primary{font:inherit;font-size:var(--type-button-size);line-height:var(--type-button-line);font-weight:var(--type-button-weight);border:1px solid transparent;border-radius:var(--radius-button);min-height:var(--density-control);padding:.45rem 1rem;background:var(--colour-brand-accessible);color:#fff;cursor:pointer;transition:background-color var(--motion-duration) var(--motion-easing),color var(--motion-duration) var(--motion-easing)}a.button{display:inline-flex;align-items:center;justify-content:center}.button:hover,.button--primary:hover{background:var(--colour-brand-accessible-hover)}.button:active,.button--primary:active{background:var(--colour-brand-accessible-pressed)}.button:disabled{opacity:.6;cursor:default}.button--secondary,.button--ghost{background:var(--colour-surface);color:var(--colour-brand-accessible);border:1px solid var(--colour-boundary)}.button--secondary:hover,.button--ghost:hover{background:var(--colour-brand-surface)}.button--secondary:active,.button--ghost:active{background:var(--colour-brand-surface);color:var(--colour-brand-accessible-pressed)}.button--tertiary{background:transparent;color:var(--colour-brand-accessible);border-color:transparent}.button--tertiary:hover,.button--tertiary:focus-visible{background:transparent;text-decoration:underline}.button--tertiary:active{background:transparent;color:var(--colour-brand-accessible-pressed)}.error-banner{border:1px solid var(--colour-danger);border-left-width:4px;border-radius:var(--radius-card);color:var(--colour-danger);background:var(--colour-surface);padding:.6rem .8rem;margin:.75rem 0}.sign-in{min-height:100vh;display:grid;place-items:center;padding:var(--layout-gutter);background:var(--colour-surface-sunken)}.sign-in__card.titled-card{width:100%;max-width:24rem;padding:0;overflow:hidden}.sign-in__brand{padding:var(--space-16) var(--layout-page-header-padding);background:var(--colour-identity);color:var(--colour-on-identity)}.sign-in__brand-name{margin:0;font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:var(--type-h3-weight);letter-spacing:var(--type-h3-tracking);text-transform:uppercase}.sign-in__body{padding:var(--layout-page-header-padding)}.sign-in__body h1{margin:0 0 var(--space-8);font-size:var(--type-h2-size);line-height:var(--type-h2-line);font-weight:var(--type-h2-weight)}.sign-in__card label{display:block;margin:var(--space-12) 0 var(--space-4);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.sign-in__card input{width:100%;box-sizing:border-box;padding:0 var(--space-12);border:1px solid var(--colour-boundary);border-radius:var(--radius-input)}.sign-in__help{margin:var(--space-4) 0 0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.sign-in__actions{margin-top:var(--space-24);display:flex;flex-direction:column;gap:var(--space-8)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.clients__name{font-weight:600;color:var(--colour-ink);text-decoration:none}.clients__name:hover,.clients__name:focus-visible{text-decoration:underline}.clients__phone{font-variant-numeric:tabular-nums}.clients__jobs{font-variant-numeric:tabular-nums;white-space:nowrap}.clients__immutability-note{margin:0 0 var(--space-16);padding:var(--space-12) var(--space-16);border-left:4px solid var(--colour-brand-accessible);border-radius:var(--radius-card);background:var(--colour-surface);box-shadow:var(--elevation-rest);font-size:var(--type-small-size);line-height:var(--type-small-line)}.clients__contact{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-4) var(--space-16);margin:0}.clients__contact dt{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.clients__contact dd{margin:0}.clients__addresses,.clients__jobs-list{list-style:none;margin:0;padding:0}.clients__addresses li,.clients__jobs-list li{padding:var(--space-8) 0;border-bottom:var(--hairline)}.clients__addresses li:last-child,.clients__jobs-list li:last-child{border-bottom:0}.clients__jobs-list li{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.clients__job-number{font-weight:700;font-variant-numeric:var(--type-jobnumber-numeric)}.clients__jobs-list time{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.chip{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:.1rem .5rem;border:1px solid var(--colour-boundary);border-radius:999px;text-transform:uppercase}.chip--default{border:none;text-transform:none;font-weight:500}.client-form{background:var(--colour-surface);border-radius:var(--radius-card);box-shadow:var(--elevation-rest);padding:var(--layout-card-padding);margin:0 0 var(--space-16);display:flex;flex-direction:column;gap:var(--space-8)}.titled-card__body .client-form{padding:0;margin:0;box-shadow:none;border-radius:0}.client-form h2,.client-form h3{margin:0 0 var(--space-4);color:var(--colour-ink-muted);font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:var(--type-h3-weight);letter-spacing:var(--type-h3-tracking);text-transform:uppercase}.titled-card__body .client-form h2{display:none}.client-form fieldset{margin:0;padding:var(--space-12);border:1px solid var(--colour-divider);border-radius:var(--radius-input)}.client-form legend{padding:0 var(--space-4);color:var(--colour-ink-muted);font-size:var(--type-small-size);font-weight:600}.client-form__field{display:flex;flex-direction:column;gap:var(--space-4)}.client-form__field label{font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.client-form__field input[type=text],.client-form__field input[type=tel],.client-form__field input[type=email],.client-form__field input[type=search]{width:100%;box-sizing:border-box;padding:0 var(--space-12)}.client-form__field--inline{flex-direction:row;align-items:center;gap:var(--space-8)}.client-form__field--inline label{font-weight:400}.client-form__field--inline input[type=checkbox]{width:18px;height:18px;accent-color:var(--colour-brand-accessible)}.client-form__error{margin:0;color:var(--colour-danger);font-size:var(--type-small-size);line-height:var(--type-small-line)}.client-form__address{display:flex;flex-direction:column;gap:var(--space-8)}.client-form__actions{display:flex;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-8)}.placeholder{background:var(--colour-surface);border:1px dashed var(--colour-boundary);border-radius:var(--radius-card);padding:2rem}.placeholder__code{color:var(--colour-brand-accessible);font-size:.8rem;font-weight:700;letter-spacing:.08em}.stage-chip{display:inline-block;padding:.15rem .55rem;border-radius:var(--radius-chip);font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:600;white-space:nowrap;border:1px solid transparent;background:var(--colour-surface-sunken);color:var(--colour-ink)}.ageing{display:inline-block;padding:.1rem .55rem;border-radius:var(--radius-chip);font-weight:600;white-space:nowrap}.job-list__filters{display:flex;flex-wrap:wrap;gap:var(--space-12) var(--space-16);align-items:center;margin:0 0 var(--layout-card-gap)}.job-list__filters input[type=search],.job-list__filters select{min-height:var(--density-control);padding:0 var(--space-12);font:inherit;font-size:var(--type-body-size);line-height:var(--type-body-line);color:var(--colour-ink);background:var(--colour-surface);border:1px solid var(--colour-boundary);border-radius:var(--radius-input)}.job-list__filters input[type=search]{flex:1 1 16rem;min-width:12rem}.job-list__filters label{display:inline-flex;align-items:center;gap:var(--space-8);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.job-list__toggle{display:inline-flex;align-items:center;gap:var(--space-8)}.job-list__toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--colour-brand-accessible)}.table-scroll{overflow-x:auto}.job-table__number{font-weight:700;white-space:nowrap}.job-table__summary{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-table .data-table__td{white-space:nowrap}.job-table .data-table__td:has(>.job-table__summary){width:100%;max-width:0}.job-table__client{font-weight:600}.job-table__sep,.job-table__desc{font-size:var(--type-small-size);color:var(--colour-ink-muted)}.job-table__reason{display:block;overflow:hidden;text-overflow:ellipsis;font-size:.8rem;color:var(--colour-danger)}.job-table__invoice{margin-left:var(--space-8);font-size:.8rem;color:var(--colour-ink-muted)}.job-table__hold-reason{display:inline-block;max-width:12rem;margin-left:var(--space-8);overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;font-size:.8rem;color:var(--colour-ink-muted)}@media(min-width:48rem)and (max-width:79.99rem){.job-table__hold-reason{max-width:8rem}}.job-table__row--cancelled .job-table__number,.job-table__row--cancelled .job-table__client,.job-table__row--cancelled .job-table__desc{text-decoration:line-through}.job-table__row--cancelled .data-table__td,.job-table__row--cancelled .job-table__number a{color:var(--colour-ink-muted)}.hold-flag{margin-left:var(--space-8);font-size:var(--type-caption-size);line-height:var(--type-caption-line);color:var(--colour-hold-text)}.new-job__form{max-width:40rem}.new-job__addresses{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:var(--space-8)}.new-job__addresses legend{padding:0;margin-bottom:var(--space-8)}.new-job__address{display:flex;gap:var(--space-8);align-items:center;font-weight:400;font-size:var(--type-body-size);line-height:var(--type-body-line)}.new-job__address input[type=radio],.new-job__travel input[type=checkbox]{width:18px;height:18px;accent-color:var(--colour-brand-accessible)}.new-job__travel{display:inline-flex;gap:var(--space-8);align-items:center;font-weight:400;font-size:var(--type-body-size);line-height:var(--type-body-line)}.typeahead{list-style:none;margin:0;padding:0;background:var(--colour-surface);border:1px solid var(--colour-boundary);border-radius:var(--radius-input);max-height:14rem;overflow-y:auto}.typeahead__option{display:block;width:100%;text-align:left;padding:var(--space-8) var(--space-12);min-height:var(--density-control);background:none;border:0;border-bottom:var(--hairline);cursor:pointer;font:inherit;color:var(--colour-ink)}.typeahead__option:last-child{border-bottom:0}.typeahead__option:hover{background:var(--colour-brand-surface)}.typeahead__option[aria-selected=true]{background:var(--colour-brand-surface);box-shadow:inset 4px 0 0 var(--colour-brand-accessible)}.duplicate-panel{padding:var(--space-12) var(--space-16);border-radius:var(--radius-card);border:1px solid var(--colour-warning);border-left-width:4px;background:var(--colour-hold-surf);color:var(--colour-hold-text);box-shadow:var(--elevation-rest)}.duplicate-panel__title{font-weight:700;margin:0 0 var(--space-4)}.duplicate-panel__job{margin:var(--space-4) 0}.duplicate-panel__actions{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-8)}.job-card__actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-4)}.job-card__actions .button{justify-content:flex-start;text-align:left}.job-card__meta{margin:var(--space-4) 0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.job-card__no-delete{margin:var(--space-4) 0 0;padding:0 var(--space-4);color:var(--colour-ink-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.job-card__no-delete--plain{margin:0 0 var(--layout-card-gap);padding:0 var(--layout-page-header-padding)}.job-card__placeholder{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.job-card__lines{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.job-card__lines th,.job-card__lines td{text-align:left;padding:var(--space-8) var(--space-4);border-bottom:var(--hairline)}.job-card__lines th{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:var(--type-small-weight)}.job-card__lines tr:last-child td{border-bottom:0}.job-card__lines--num,.job-card__lines th.job-card__lines--num{text-align:right}.job-media{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.6rem}.job-media__item{margin:0}.job-media__item--unavailable .job-media__state{background:var(--colour-surface-sunken)}.job-media__thumb-button{all:unset;cursor:zoom-in;display:block}.job-media__thumb-button:focus-visible{outline:var(--focus-ring-surfaces);outline-offset:var(--focus-ring-offset)}.job-media__thumb{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-thumb);border:1px solid var(--colour-divider);background:var(--colour-surface-sunken)}.job-media__full{width:100%;max-height:70vh;object-fit:contain;border-radius:var(--radius-thumb);border:1px solid var(--colour-divider);background:var(--colour-ink)}.job-media__state{display:flex;align-items:center;justify-content:center;text-align:center;aspect-ratio:4 / 3;padding:.5rem;font-size:.82rem;color:var(--colour-ink-muted);border:1px dashed var(--colour-boundary);border-radius:var(--radius-thumb)}.job-media__caption{font-size:var(--type-caption-size);color:var(--colour-ink-muted);margin-top:.3rem}.job-media__tag{display:inline-block;padding:0 .35rem;border-radius:3px;font-weight:600;text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;border:1px solid var(--colour-boundary)}.job-media__meta{white-space:nowrap}.button--small{padding:0 var(--space-12);font-size:var(--type-small-size);line-height:var(--type-small-line);min-height:var(--density-control)}.activity-list{list-style:none;margin:0;padding:0}.activity-list li{padding:var(--space-8) 0;border-bottom:var(--hairline)}.activity-list>li:last-child{border-bottom:0}.activity-list__time{color:var(--colour-ink-muted);font-size:var(--type-small-size);font-variant-numeric:tabular-nums;margin-right:var(--space-4)}.job-banner{margin:0 0 var(--layout-card-gap);padding:var(--space-12) var(--space-16);border-radius:var(--radius-card);border:1px solid var(--colour-warning);background:var(--colour-hold-surf);color:var(--colour-hold-text);box-shadow:var(--elevation-rest)}.job-banner p{margin:0}.job-banner--hold,.job-banner--request{background:var(--colour-hold-surf);color:var(--colour-hold-text);border-color:var(--colour-warning)}.job-banner--cancelled{background:var(--colour-cancelled-surf);color:var(--colour-cancelled-text);border-color:var(--colour-cancelled-text)}.job-banner--delay{font-weight:600}.titled-card__body .job-banner{margin:0 0 var(--space-12);box-shadow:none}.bell{position:relative;display:inline-flex}.bell__button{position:relative;font-size:1.1rem;line-height:1;padding:.3rem .5rem}.bell__badge{position:absolute;top:-.2rem;right:-.2rem;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--colour-danger);color:var(--colour-surface);font-size:.7rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.bell__panel{position:absolute;top:100%;right:0;margin-top:.4rem;width:min(22rem,90vw);background:var(--colour-surface);color:var(--colour-ink);border:1px solid var(--colour-boundary);border-radius:var(--radius-card);box-shadow:var(--elevation-raised);z-index:50;overflow:hidden}.bell__panel-head{display:flex;align-items:center;justify-content:space-between;padding:.6rem .8rem;border-bottom:1px solid var(--colour-divider)}.bell__empty{padding:.9rem .8rem;opacity:.7}.bell__list{list-style:none;margin:0;padding:0;max-height:22rem;overflow-y:auto}.bell__item{border-bottom:1px solid var(--colour-divider)}.bell__item a{display:block;padding:.6rem .8rem;text-decoration:none;color:inherit}.bell__item a:hover{background:#0000000a}.bell__item--unread{background:var(--colour-brand-surface)}.bell__item-title{font-weight:600}.bell__item-note{opacity:.85}.bell__item-meta{display:block;font-size:.75rem;opacity:.65;margin-top:.15rem}.job-banner__actions{display:flex;gap:var(--space-8);align-items:center;flex-wrap:wrap;margin-top:var(--space-8)}.job-banner__actions input{padding:0 .5rem;border:1px solid var(--colour-boundary);border-radius:var(--radius-input)}.reason-dialog{border:1px solid var(--colour-boundary);border-radius:var(--radius-card);padding:var(--layout-card-padding);margin:0 0 var(--layout-card-gap);background:var(--colour-surface);box-shadow:var(--elevation-raised);max-width:30rem}.reason-dialog h2{margin-top:0}.reason-dialog input{width:100%;padding:0 .6rem;border:1px solid var(--colour-boundary);border-radius:var(--radius-input)}.reason-dialog__actions{display:flex;gap:.75rem;margin-top:.8rem}.shell__header .button--ghost{color:var(--colour-on-identity);border-color:currentColor;background:transparent}.shell__header .button--ghost:hover,.shell__header .button--ghost:active{background:transparent;color:var(--colour-on-identity)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--layout-card-gap);margin:0 0 var(--layout-card-gap)}@media(min-width:80rem){.tile-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}.tile{display:flex;flex-direction:column;gap:var(--space-8);min-width:0;padding:var(--layout-card-padding);background:var(--colour-surface);color:var(--colour-ink);border-radius:var(--radius-card);box-shadow:var(--elevation-rest);text-decoration:none;transition:box-shadow var(--motion-duration) var(--motion-easing)}.tile:hover{box-shadow:var(--elevation-raised)}.tile__label{color:var(--colour-ink-muted);font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:var(--type-h3-weight);letter-spacing:var(--type-h3-tracking);text-transform:uppercase}.tile__count{color:var(--colour-ink);font-size:var(--type-display-size);line-height:var(--type-display-line);font-weight:var(--type-display-weight);font-variant-numeric:var(--type-jobnumber-numeric)}.tile__view{color:var(--colour-brand-accessible);font-size:var(--type-small-size);line-height:var(--type-small-line)}.tile:hover .tile__view,.tile:focus-visible .tile__view{text-decoration:underline}.stat-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:var(--space-12) var(--space-16)}.stat-row li{display:flex;flex-direction:column;gap:var(--space-4);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.stat-note{margin:var(--space-12) 0 0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.conversion-meter{display:flex;align-items:center;gap:var(--space-12)}.conversion-meter__track{flex:1 1 auto;height:var(--space-12);overflow:hidden;background:var(--colour-brand-surface);border:1px solid var(--colour-boundary);border-radius:var(--radius-chip)}.conversion-meter__fill{display:block;width:var(--conversion-rate, 0%);height:100%;background:var(--colour-brand-accessible)}.conversion-meter__value{flex:0 0 auto;color:var(--colour-ink);font-weight:600;font-variant-numeric:var(--type-jobnumber-numeric)}.conversion-card .stat-row{margin-top:var(--space-16)}.attention-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.attention-list li{display:flex;gap:var(--space-8);align-items:baseline;padding:var(--space-8) 0;border-top:var(--hairline)}.attention-list li:first-child{border-top:0;padding-top:0}.attention-list__glyph{flex:0 0 auto}.page-header--slim{padding:var(--space-16) var(--layout-page-header-padding)}.page-header--slim .page-header__row{align-items:center}.page-header--slim .page-header__name{text-transform:uppercase;letter-spacing:var(--type-h3-tracking)}.field--inline{display:inline-flex;align-items:center;gap:var(--space-8);color:var(--colour-ink-muted);font-size:var(--type-small-size)}.worklist__count{display:inline-block;padding:.1rem .6rem;border-radius:var(--radius-chip);background:var(--colour-brand-surface);color:var(--colour-brand-accessible);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.worklist__number{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.worklist__table .data-table__row>.data-table__td:first-child{border-left:0}.worklist__table .data-table__td--numeric .ageing{font-variant-numeric:tabular-nums}.worklist__complete{color:var(--colour-success);font-size:var(--type-small-size);line-height:var(--type-small-line)}.worklist__gap{color:var(--colour-hold-text);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.worklist__flagged{display:block;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.worklist__contract,.worklist__hint{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:var(--layout-gutter);background:color-mix(in srgb,var(--colour-ink) 40%,transparent)}.modal__body{width:100%;max-width:34rem;max-height:calc(100vh - 2 * var(--layout-gutter));overflow-y:auto;padding:var(--layout-page-header-padding);background:var(--colour-surface);border-radius:var(--radius-card);box-shadow:var(--elevation-raised)}.modal__body h2{margin:0 0 var(--space-8);font-size:var(--type-h2-size);line-height:var(--type-h2-line);font-weight:var(--type-h2-weight)}.modal__body p{margin:var(--space-8) 0}.modal__body label{display:block;margin-top:var(--space-12);margin-bottom:var(--space-4);font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.modal__body input,.modal__body textarea{width:100%;box-sizing:border-box;padding:0 var(--space-12)}.modal__body textarea{padding:var(--space-8) var(--space-12);min-height:5rem;resize:vertical}.modal__actions{display:flex;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-16)}.linkback__mismatch{margin:var(--space-12) 0 0;padding:var(--space-12) var(--space-16);border-left:4px solid var(--colour-warning);border-radius:var(--radius-input);background:var(--colour-hold-surf);color:var(--colour-hold-text);font-weight:600}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-12);margin:0 0 var(--space-16)}.filter-bar input,.filter-bar select{padding:0 var(--space-12);min-height:var(--density-control)}.filter-bar input[type=search]{flex:1 1 16rem;min-width:12rem}.filter-bar input[type=date]{min-width:10rem}.quote-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--layout-card-gap);align-items:start}@media(min-width:80rem){.quote-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}@media(min-width:48rem)and (max-width:79.99rem){.quote-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(15rem,1fr);overflow-x:auto}}.quote-board__column .titled-card__body{display:flex;flex-direction:column;gap:var(--space-12)}.quote-board__count{display:inline-block;min-width:1.5rem;text-align:center;padding:0 var(--space-8);border-radius:var(--radius-chip);background:var(--colour-brand-surface);color:var(--colour-brand-accessible);font-variant-numeric:tabular-nums;font-weight:600}.quote-board__none{margin:0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.quote-board__cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-12)}.quote-card{padding:var(--space-12);background:var(--colour-surface);border:1px solid var(--colour-divider);border-radius:var(--radius-card);box-shadow:var(--elevation-rest);display:flex;flex-direction:column;gap:var(--space-4);transition:box-shadow var(--motion-duration) var(--motion-easing)}.quote-card:hover{box-shadow:var(--elevation-raised)}.quote-card__head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);flex-wrap:wrap}.quote-card__number{color:var(--colour-brand-accessible);font-weight:700;font-variant-numeric:var(--type-jobnumber-numeric);text-decoration:none}.quote-card__number:hover,.quote-card__number:focus-visible{text-decoration:underline}.quote-card__client{font-weight:600}.quote-card__meta{display:flex;justify-content:space-between;gap:var(--space-8);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.quote-card__total{color:var(--colour-ink);font-variant-numeric:tabular-nums;font-weight:600}.quotes__client-picks{list-style:none;margin:var(--space-12) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-8)}.quotes__client-picks .button{width:100%;justify-content:flex-start;text-align:left}.quotes__settings-panel{margin-bottom:var(--space-16)}.quotes__new label,.quotes__settings label,.quotes__approve label,.quotes__add-line label,.quotes__reject label{display:block;margin:var(--space-12) 0 var(--space-4);font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.quotes__new input,.quotes__settings input,.quotes__approve input,.quotes__add-line input,.quotes__add-line select,.quotes__reject input{width:100%;box-sizing:border-box;padding:0 var(--space-12)}.quotes__form-actions{display:flex;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-16)}.quotes__hint{margin:0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.quotes__saved{margin:var(--space-8) 0 0;color:var(--colour-success);font-weight:600}.quotes__menu{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-4)}.quotes__menu .button{justify-content:flex-start;text-align:left}.quotes__note{margin:0 0 var(--space-16);padding:var(--space-12) var(--space-16);background:var(--colour-surface);border-left:4px solid var(--colour-brand-accessible);border-radius:var(--radius-card);box-shadow:var(--elevation-rest)}.quotes__reason{border-left-color:var(--colour-cancelled-text)}.quotes__evidence{border-left-color:var(--colour-success)}.quotes__lines{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.quotes__lines th,.quotes__lines td{text-align:left;padding:var(--space-8) var(--space-4);border-bottom:var(--hairline);vertical-align:middle}.quotes__lines th{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.quotes__lines tr:last-child td{border-bottom:0}.quotes__lines--num,.quotes__lines th.quotes__lines--num,.quotes__lines--actions{text-align:right}.quotes__add-line,.quotes__reject{margin-top:var(--space-16);padding-top:var(--space-12);border-top:var(--hairline)}.quotes__add-line .button,.quotes__reject .button,.quotes__approve .button{margin-top:var(--space-12)}.quotes__actions{display:flex;flex-direction:column;gap:var(--space-8)}.quotes__versions,.quotes__history{list-style:none;margin:0;padding:0}.quotes__versions li,.quotes__history li{padding:var(--space-8) 0;border-bottom:var(--hairline)}.quotes__versions li:last-child,.quotes__history li:last-child{border-bottom:0}.quotes__history time{color:var(--colour-ink-muted);font-variant-numeric:tabular-nums}.foreman__link{font-weight:600;color:var(--colour-ink);text-decoration:none}.foreman__link:hover,.foreman__link:focus-visible{text-decoration:underline}.foreman__inactive{color:var(--colour-ink-muted);font-weight:400}.foreman--inactive .foreman__link{color:var(--colour-ink-muted)}.foreman__status{display:inline-block;padding:.1rem .6rem;border-radius:var(--radius-chip);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600;white-space:nowrap}.foreman__status--active{background:var(--colour-brand-surface);color:var(--colour-brand-accessible)}.foreman__status--inactive{background:var(--colour-surface-sunken)}.history__job-number{font-weight:700;font-variant-numeric:var(--type-jobnumber-numeric);white-space:nowrap}.history__corrected{color:var(--colour-danger);font-size:var(--type-small-size);line-height:var(--type-small-line);white-space:nowrap}.history__role{font-size:var(--type-small-size);line-height:var(--type-small-line)}.history__role--superseded{color:var(--colour-ink-muted)}.history__permanent{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.time-summary__facts{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-4) var(--space-16);margin:0;font-variant-numeric:tabular-nums}.time-summary__facts dt{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.time-summary__facts dd{margin:0}.time-summary__corrected{margin:var(--space-12) 0 0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.time-summary__trips{list-style:none;margin:0;padding:0}.time-summary__trips li{padding:var(--space-8) 0;border-bottom:var(--hairline);font-variant-numeric:tabular-nums}.time-summary__trips li:last-child{border-bottom:0}.time-summary__text{margin:0;white-space:pre-wrap;background:var(--colour-surface-sunken);padding:var(--space-12) var(--space-16);border-radius:var(--radius-input);font:inherit;font-variant-numeric:tabular-nums}.catalogue__queue-list{list-style:none;margin:0;padding:0}.catalogue__queue-entry{display:flex;justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;padding:var(--space-8) 0;border-bottom:var(--hairline)}.catalogue__queue-entry:last-child{border-bottom:0}.catalogue__queue-name{font-weight:600}.catalogue__queue-name small{display:block;font-weight:400;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.catalogue__queue-actions{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.catalogue__merge-picker{display:inline-flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.catalogue__merge-picker label{display:inline-flex;align-items:center;gap:var(--space-8);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.catalogue__merge-picker select{padding:0 var(--space-12)}.catalogue__tabs{display:flex;gap:var(--space-8);flex-wrap:wrap;margin:0 0 var(--space-16)}.catalogue__tab[aria-pressed=true]{background:var(--colour-brand-surface);border-color:var(--colour-brand-accessible);box-shadow:inset 0 -3px 0 var(--colour-brand-accessible)}.catalogue__form{margin:0 0 var(--space-16);padding:var(--layout-card-padding);background:var(--colour-surface);border-radius:var(--radius-card);box-shadow:var(--elevation-rest);display:flex;flex-direction:column;gap:var(--space-8)}.catalogue__form h2{margin:0 0 var(--space-4);color:var(--colour-ink-muted);font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:var(--type-h3-weight);letter-spacing:var(--type-h3-tracking);text-transform:uppercase}.catalogue__form label{display:flex;flex-direction:column;gap:var(--space-4);font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.catalogue__form input,.catalogue__form select{width:100%;box-sizing:border-box;padding:0 var(--space-12);font-weight:400;font-size:var(--type-body-size)}.catalogue__form p[role=alert]{margin:0;color:var(--colour-danger);font-size:var(--type-small-size);line-height:var(--type-small-line)}.catalogue__form-actions{display:flex;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-8)}.catalogue__item{font-weight:600}.catalogue__pending{color:var(--colour-hold-text);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600;white-space:nowrap}.catalogue__stamp{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.platform{padding:var(--layout-gutter)}.platform__sign-in{max-width:28rem}.platform__form{display:flex;flex-direction:column;gap:var(--space-4)}.platform__form label{margin-top:var(--space-8);font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.platform__form input{width:100%;box-sizing:border-box;padding:0 var(--space-12)}.platform__form-actions{display:flex;justify-content:flex-end;margin-top:var(--space-12)}.platform__tenant{font-weight:600}.platform__slug{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.platform__status{display:inline-block;padding:.1rem .6rem;border-radius:var(--radius-chip);background:var(--colour-surface-sunken);color:var(--colour-ink-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:600;letter-spacing:.04em}.platform__status--active{background:var(--colour-brand-surface);color:var(--colour-brand-accessible)}.platform__status--suspended{background:var(--colour-hold-surf);color:var(--colour-hold-text)}.platform__status--closed{background:var(--colour-cancelled-surf);color:var(--colour-cancelled-text)}.platform__cap{font-size:var(--type-small-size);line-height:var(--type-small-line);color:var(--colour-success);font-weight:600}.platform__cap--near{color:var(--colour-hold-text)}.platform__cap--over{color:var(--colour-danger)}.calendar__tools,.page-header__tools{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.calendar__tools label,.page-header__tools label{font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600;color:var(--colour-ink-muted)}.calendar__tools input,.calendar__tools select,.page-header__tools input,.page-header__tools select{padding:0 var(--space-12);min-height:var(--density-control)}.calendar__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--layout-card-gap);align-items:start}.calendar__slots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-8)}.calendar__slot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-8);padding:var(--space-8) var(--space-12);border-radius:var(--radius-input);border:1px solid transparent;background:var(--colour-surface-sunken)}.calendar__slot--confirmed{background:color-mix(in srgb,var(--colour-brand-fill) 20%,var(--colour-surface))}.calendar__slot--confirmed a{color:var(--colour-ink);text-decoration:underline;text-underline-offset:2px}.calendar__slot--confirmed a:hover{color:var(--colour-brand-accessible-pressed)}.calendar__time{font-variant-numeric:tabular-nums;font-weight:600}.calendar__empty,.calendar__client{color:var(--colour-ink-muted)}.confirm-badge{display:inline-block;padding:.1rem .5rem;border-radius:var(--radius-chip);font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:600;border:1px solid var(--colour-boundary)}.confirm-badge--pending{background:var(--colour-hold-surf);color:var(--colour-hold-text)}.confirm-badge--sent{background:color-mix(in srgb,var(--colour-success) 12%,var(--colour-surface));color:var(--colour-success)}.confirm-badge--failed{background:color-mix(in srgb,var(--colour-danger) 8%,var(--colour-surface));color:var(--colour-danger)}.schedule__form{max-width:36rem}.schedule__error,.field-error{color:var(--colour-danger);margin:0;font-size:var(--type-small-size);line-height:var(--type-small-line)}.schedule__suggestions{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap;margin:var(--space-8) 0 0}.schedule__suggestions p{margin:0;font-weight:600}.schedule__provisional,.schedule__override{display:flex;align-items:center;gap:var(--space-8);font-weight:400;font-size:var(--type-body-size);line-height:var(--type-body-line)}.schedule__provisional input[type=checkbox],.schedule__override input[type=checkbox]{width:18px;height:18px;accent-color:var(--colour-brand-accessible)}.schedule__clear{margin:0;color:var(--colour-success);font-weight:600}.clash-warning{padding:var(--space-12) var(--space-16);border-radius:var(--radius-card);border:1px solid var(--colour-danger);border-left-width:4px;background:color-mix(in srgb,var(--colour-danger) 8%,var(--colour-surface));color:var(--colour-ink);box-shadow:var(--elevation-rest)}.clash-warning p{margin:0;font-weight:600;color:var(--colour-danger)}.clash-warning ul{margin:var(--space-8) 0 0;padding-left:var(--space-24)}.confirmation{max-width:40rem;display:flex;flex-direction:column;gap:var(--layout-card-gap)}.confirmation__status{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.confirmation__sent-at{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.confirmation__resend{margin-left:auto}.confirmation__note{margin:var(--space-12) 0 0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.confirmation__template{margin:0;padding-left:var(--space-16);border-left:4px solid var(--colour-brand-accessible)}.confirmation__zone{color:var(--colour-ink-muted);font-size:var(--type-small-size)}.booking-badge{display:inline-block;padding:.1rem .45rem;border-radius:2px;font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:600;border:2px solid var(--colour-boundary)}.booking-badge--confirmed{background:var(--colour-identity);color:var(--colour-on-identity);border-color:var(--colour-identity)}.booking-badge--provisional{background:repeating-linear-gradient(45deg,var(--colour-surface),var(--colour-surface) 4px,var(--colour-divider) 4px,var(--colour-divider) 8px);color:var(--colour-ink);border-style:dashed}.calendar__slot--provisional{background:repeating-linear-gradient(45deg,var(--colour-surface-sunken),var(--colour-surface-sunken) 6px,var(--colour-surface) 6px,var(--colour-surface) 12px);border:1px dashed var(--colour-boundary)}.calendar__email{font-size:var(--type-caption-size);line-height:var(--type-caption-line);color:var(--colour-ink-muted)}.calendar__slot--finished{color:var(--colour-ink-muted);border-color:var(--colour-divider)}.calendar__slot--confirmed.calendar__slot--finished{background:var(--colour-surface-sunken)}.calendar__slot--finished a,.calendar__slot--confirmed.calendar__slot--finished a{color:var(--colour-ink-muted)}.calendar__finished{font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:600;color:var(--colour-ink-muted)}.calendar__gap{font-size:var(--type-small-size);line-height:var(--type-small-line);padding:var(--space-4) var(--space-12);border-left:3px dotted var(--colour-warning);color:var(--colour-ink-muted)}.calendar__gap--clash{border-left:3px solid var(--colour-danger);color:var(--colour-danger);font-weight:600}.calendar__actual{font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-variant-numeric:tabular-nums}.calendar__legend{font-size:var(--type-small-size);line-height:var(--type-small-line);color:var(--colour-ink-muted);margin:var(--space-12) 0 0}.calendar__week{border-collapse:collapse;width:100%;background:var(--colour-surface);box-shadow:var(--elevation-rest);border-radius:var(--radius-card)}.calendar__week th,.calendar__week td{border:var(--hairline);padding:var(--space-8);vertical-align:top;text-align:left}.calendar__week thead th{background:var(--colour-surface-sunken);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600}.calendar__slots--compact .calendar__slot{padding:var(--space-4) var(--space-8);font-size:var(--type-small-size);line-height:var(--type-small-line)}.segmented{display:inline-flex;gap:.25rem}.flag--corrected{color:var(--colour-danger)}.activity-list--nested{margin:.2rem 0 0 1rem;font-size:.85rem}.job-card__inline-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}@media print{.no-print,.shell__nav,.shell__header,.skip-link,.page-header__back,.page-header__nav,.actions-menu{display:none!important}}.figure-link{display:inline-block;color:var(--colour-brand-accessible);font-size:var(--type-h2-size);line-height:var(--type-h2-line);font-weight:var(--type-h2-weight);font-variant-numeric:var(--type-jobnumber-numeric)}.branding-notice{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);margin:0}.org-form{max-width:36rem}.field{display:flex;flex-direction:column;gap:var(--space-4)}.field>span{font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.org-logo{margin-top:var(--space-16);padding-top:var(--space-16);border-top:var(--hairline)}.org-logo>span.card-form__title{font-weight:var(--type-h3-weight)}.org-logo label{font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.org-logo input[type=file]{font:inherit;font-size:var(--type-small-size);color:var(--colour-ink)}.branding-logo{max-height:64px;max-width:16rem;object-fit:contain;align-self:flex-start}.swatch-row{display:flex;align-items:center;gap:var(--space-8)}.swatch{width:var(--density-control);height:var(--density-control);padding:0;border:1px solid var(--colour-boundary);border-radius:var(--radius-input);background:var(--swatch);cursor:pointer}.swatch[aria-pressed=true]{outline:2px solid var(--colour-brand-accessible);outline-offset:var(--focus-ring-offset)}.org-usage__figure{margin:0;font-size:var(--type-h2-size);line-height:var(--type-h2-line);font-weight:var(--type-h2-weight);font-variant-numeric:var(--type-jobnumber-numeric)}.card-form{display:flex;flex-direction:column;gap:var(--layout-card-gap)}.card-form .titled-card__body{display:flex;flex-direction:column;gap:var(--space-8)}.card-form label{font-weight:600;font-size:var(--type-small-size);line-height:var(--type-small-line)}.card-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.card-form select,.card-form textarea{width:100%;box-sizing:border-box;padding:0 var(--space-12);font-weight:400;font-size:var(--type-body-size);line-height:var(--type-body-line)}.card-form textarea{padding:var(--space-8) var(--space-12);min-height:5rem;resize:vertical}.card-form__title{margin:0;color:var(--colour-ink-muted);font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:var(--type-h3-weight);letter-spacing:var(--type-h3-tracking);text-transform:uppercase}.card-form__hint{margin:0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.card-form__actions{display:flex;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap}.icon-tile{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border-radius:var(--radius-input);background:var(--colour-brand-surface);color:var(--colour-brand-accessible);font-size:var(--type-h2-size);line-height:1}.icon-tile--hero{background:color-mix(in srgb,var(--colour-brand-fill) 20%,var(--colour-surface))}.page-header{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;gap:var(--space-8);padding:var(--layout-page-header-padding);margin:0 0 var(--layout-card-gap);background:var(--colour-surface);border-radius:var(--radius-card);box-shadow:var(--elevation-rest);transition:box-shadow var(--motion-duration) var(--motion-easing)}.page-header--stuck{box-shadow:var(--elevation-raised)}.page-header__nav{display:contents}.page-header__back{align-self:flex-start;font-size:var(--type-small-size);line-height:var(--type-small-line);color:var(--colour-brand-accessible);text-decoration:none}.page-header__back:hover,.page-header__back:focus-visible{text-decoration:underline}.page-header__row{display:flex;align-items:flex-start;gap:var(--space-16);flex-wrap:wrap}.page-header__record{display:flex;flex-direction:column;gap:var(--space-4);flex:1 1 20rem;min-width:0}.page-header__title-row{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap}.page-header__title{margin:0;display:flex;flex-direction:column;gap:var(--space-4);color:var(--colour-ink);font-size:var(--type-jobnumber-size);line-height:var(--type-jobnumber-line);font-weight:var(--type-jobnumber-weight)}.page-header__number{font-variant-numeric:var(--type-jobnumber-numeric)}.page-header__name{font-size:var(--type-h2-size);line-height:var(--type-h2-line);font-weight:var(--type-h2-weight)}.page-header__stage{display:inline-flex;align-items:center}.page-header__title-row--numbered{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:var(--space-12);row-gap:var(--space-4);align-items:center}.page-header__title-row--numbered .page-header__title{grid-column:1 / -1;grid-row:1 / -1;display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid}.page-header__title-row--numbered .page-header__number{grid-column:1;grid-row:1}.page-header__title-row--numbered .page-header__name{grid-column:1 / -1;grid-row:2}.page-header__title-row--numbered .page-header__stage{grid-column:2;grid-row:1;justify-self:start}.page-header__fields{list-style:none;margin:0;padding:0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.page-header__fields li{display:inline}.page-header__fields li+li:before{content:" · "}.page-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-left:auto}.actions-menu{position:relative}.actions-menu__summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-4)}.actions-menu__summary::-webkit-details-marker{display:none}.actions-menu__summary:before{content:"⋮"}.actions-menu__panel{position:absolute;right:0;top:calc(100% + var(--space-4));z-index:3;min-width:14rem;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-4);padding:var(--space-8);background:var(--colour-surface);border:1px solid var(--colour-divider);border-radius:var(--radius-card);box-shadow:var(--elevation-raised)}.titled-card{min-width:0;padding:var(--layout-card-padding);background:var(--colour-surface);border-radius:var(--radius-card);box-shadow:var(--elevation-rest);transition:box-shadow var(--motion-duration) var(--motion-easing)}.titled-card:hover{box-shadow:var(--elevation-raised)}.titled-card--hero{background:color-mix(in srgb,var(--colour-brand-fill) 20%,var(--colour-surface))}li.titled-card{list-style:none}.titled-card__head{display:flex;align-items:baseline;gap:var(--space-8);margin-bottom:var(--space-12)}.titled-card__title{flex:1 1 auto;margin:0;color:var(--colour-ink-muted);font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:var(--type-h3-weight);letter-spacing:var(--type-h3-tracking);text-transform:uppercase}.titled-card__completeness{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);white-space:nowrap}.titled-card__action{margin-left:auto}.titled-card__body{font-size:var(--type-body-size);line-height:var(--type-body-line)}.titled-card__body>:first-child{margin-top:0}.titled-card__body>:last-child{margin-bottom:0}.card-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--layout-card-gap);margin:0 0 var(--layout-card-gap)}@media(min-width:64rem){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid>.card-grid__span{grid-column:1 / -1}}.data-table{background:var(--colour-surface);border-radius:var(--radius-card);box-shadow:var(--elevation-rest)}.data-table--scroll{overflow-x:auto}.data-table--scroll .data-table__th{top:0}@media(min-width:48rem)and (max-width:79.99rem){.data-table__th--hide-tablet,.data-table__td--hide-tablet{display:none}}.data-table__table{width:100%;border-collapse:separate;border-spacing:0}.data-table__th{position:sticky;top:var(--page-header-height, 0px);z-index:1;text-align:left;padding:var(--space-12) var(--space-16);background:var(--colour-surface-sunken);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);font-weight:600;border-bottom:var(--hairline);white-space:nowrap}.data-table__th:first-child{border-top-left-radius:var(--radius-card)}.data-table__th:last-child{border-top-right-radius:var(--radius-card)}.data-table__td{height:var(--density-row);padding:var(--space-8) var(--space-16);vertical-align:middle;border-bottom:var(--hairline);transition:background-color var(--motion-duration) var(--motion-easing)}.data-table__row:last-child .data-table__td{border-bottom:0}.data-table__row:last-child .data-table__td:first-child{border-bottom-left-radius:var(--radius-card)}.data-table__row:last-child .data-table__td:last-child{border-bottom-right-radius:var(--radius-card)}.data-table__row:hover .data-table__td,.data-table__row--selected .data-table__td{background:var(--colour-brand-surface)}.data-table__row--selected .data-table__td:first-child{box-shadow:inset 4px 0 0 var(--colour-brand-accessible)}.data-table__row--escalated .data-table__td:first-child{box-shadow:inset 4px 0 0 var(--colour-danger)}.data-table__td:focus-visible,.data-table__th:focus-visible{outline:2px solid var(--colour-boundary);outline-offset:-2px}.data-table__th--text,.data-table__td--text,.data-table__th--date,.data-table__td--date,.data-table__th--stage,.data-table__td--stage{text-align:left}.data-table__th--numeric,.data-table__td--numeric{text-align:right;font-variant-numeric:tabular-nums}.data-table__td--actions{padding-top:0;padding-bottom:0}.data-table__th--actions,.data-table__td--actions{text-align:right;white-space:nowrap}.data-table__td--actions .button+.button{margin-left:var(--space-8)}.data-table__sort{all:unset;cursor:pointer;font:inherit;color:inherit;display:inline-flex;align-items:center;gap:var(--space-4)}.data-table__sort:focus-visible{outline:var(--focus-ring-surfaces);outline-offset:var(--focus-ring-offset)}.data-table__th[aria-sort=ascending] .data-table__sort:after{content:"▲"}.data-table__th[aria-sort=descending] .data-table__sort:after{content:"▼"}.data-table__th[aria-sort=none] .data-table__sort:after{content:"↕";opacity:.6}.data-table__empty-row .data-table__td{height:auto;border-bottom:0}.data-table__empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding:var(--space-32) var(--space-16);text-align:center;color:var(--colour-ink-muted)}.data-table__empty-state p{margin:0}.data-table__tfoot{padding:var(--space-12) var(--space-16);background:var(--colour-surface-sunken);color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line);border-top:var(--hairline);border-bottom-left-radius:var(--radius-card);border-bottom-right-radius:var(--radius-card)}.data-table__footer{margin:var(--space-12) 0 0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.data-table--cards{background:transparent;box-shadow:none}.data-table__cards{list-style:none;margin:0;padding:0;display:grid;gap:var(--layout-card-gap)}.data-table__card .titled-card__title{color:var(--colour-ink);font-size:var(--type-jobnumber-size);line-height:var(--type-jobnumber-line);font-weight:var(--type-jobnumber-weight);font-variant-numeric:var(--type-jobnumber-numeric);letter-spacing:normal;text-transform:none}.data-table__card--selected{box-shadow:inset 4px 0 0 var(--colour-brand-accessible),var(--elevation-rest)}.data-table__card--escalated{box-shadow:inset 4px 0 0 var(--colour-danger),var(--elevation-rest)}.data-table__card-fields{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--space-4) var(--space-12)}.data-table__card-field{display:contents}.data-table__card-fields dt{color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.data-table__card-fields dd{margin:0}.data-table__card-value--numeric{font-variant-numeric:tabular-nums}.data-table__card-value--text,.data-table__card-value--date,.data-table__card-value--stage,.data-table__card-value--actions{text-align:left}.data-table__card-actions{display:flex;justify-content:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-12)}.chip--chase{text-transform:none}.page-header--tools .page-header__actions{flex:1 1 100%;justify-content:flex-start;margin-left:0}@media(min-width:64rem){.page-header--tools .page-header__actions{flex:0 1 auto;justify-content:flex-end;margin-left:auto}}.page-header__tools .catalogue__tabs{margin:0}.org-usage__banner{margin:0 0 var(--space-12);box-shadow:none}.org-usage__meter{display:block;width:100%;height:var(--space-12);margin:var(--space-8) 0 var(--space-4)}.org-usage__meter::-webkit-meter-bar{background:var(--colour-surface-sunken);border:1px solid var(--colour-boundary);border-radius:var(--radius-chip)}.org-usage__meter::-webkit-meter-optimum-value{background:var(--colour-success);border-radius:var(--radius-chip)}.org-usage__meter::-webkit-meter-suboptimum-value{background:var(--colour-warning);border-radius:var(--radius-chip)}.org-usage__meter::-webkit-meter-even-less-good-value{background:var(--colour-danger);border-radius:var(--radius-chip)}.org-usage__meter:-moz-meter-optimum::-moz-meter-bar{background:var(--colour-success)}.org-usage__meter:-moz-meter-sub-optimum::-moz-meter-bar{background:var(--colour-warning)}.org-usage__meter:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:var(--colour-danger)}.org-usage__alert-at{margin:0;color:var(--colour-ink-muted);font-size:var(--type-small-size);line-height:var(--type-small-line)}.confirmation__letter p{margin:0 0 var(--space-8)}.confirmation__letter p:last-child{margin-bottom:0}.confirmation__letter-lines{margin:0 0 var(--space-8)}.confirmation__letter-lines dt,.confirmation__letter-lines dd{display:inline;margin:0}.titled-card.catalogue__queue{background:var(--colour-hold-surf);border:1px solid var(--colour-warning);border-left-width:4px;margin:0 0 var(--layout-card-gap)}@media(min-width:48rem)and (max-width:63.99rem){.worklist__table .ageing,.worklist__table .data-table__td--actions{white-space:normal}.worklist__table .data-table__td--actions .button{margin-block:var(--space-4)}.job-table .job-table__invoice,.job-table .hold-flag,.job-table .job-table__hold-reason{display:block;margin-left:0}.job-table .data-table__th{white-space:normal}.history__table .history__corrected{display:block}}:root{--colour-identity: #1f3a5f;--colour-on-identity: #ffffff;--colour-brand-accessible: #1d5fd1;--colour-brand-accessible-hover: #174fb0;--colour-brand-accessible-pressed: #12408f;--colour-brand-fill: #3d7be8;--colour-brand-surface: #e8f0fd;--colour-ink: #181b21;--colour-ink-muted: #4a5260;--colour-surface: #ffffff;--colour-surface-sunken: #f3f4f7;--colour-boundary: #7a8494;--colour-divider: #d3dae3;--colour-success: #047857;--colour-warning: #b45309;--colour-danger: #b91c1c;--colour-quote-text: #5b21b6;--colour-quote-surf: #ede9fe;--colour-hold-text: #92400e;--colour-hold-surf: #fef3c7;--colour-cancelled-text: #4b5563;--colour-cancelled-surf: #f3f4f6;--steier-colour-primary: var(--colour-identity);--steier-colour-accent: var(--colour-brand-accessible);--steier-colour-surface: var(--colour-surface);--steier-colour-surface-alt: var(--colour-surface-sunken);--steier-colour-text: var(--colour-ink);--steier-colour-text-inverse: var(--colour-on-identity);--steier-colour-danger: var(--colour-danger);--steier-colour-border: var(--colour-divider);--type-display-size: 30px;--type-display-line: 38px;--type-display-weight: 700;--type-jobnumber-size: 20px;--type-jobnumber-line: 28px;--type-jobnumber-weight: 700;--type-jobnumber-numeric: tabular-nums;--type-h2-size: 20px;--type-h2-line: 28px;--type-h2-weight: 600;--type-h3-size: 14px;--type-h3-line: 20px;--type-h3-weight: 600;--type-h3-tracking: .04em;--type-body-size: 16px;--type-body-line: 24px;--type-body-weight: 400;--type-small-size: 14px;--type-small-line: 20px;--type-small-weight: 400;--type-caption-size: 12px;--type-caption-line: 16px;--type-caption-weight: 400;--type-button-size: 15px;--type-button-line: 20px;--type-button-weight: 600;--font-stack: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--steier-font: var(--font-stack);--space-4: 4px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--space-48: 48px;--layout-card-padding: 16px;--layout-card-gap: 16px;--layout-gutter: 24px;--layout-page-header-padding: 24px;--radius-card: 12px;--radius-button: 10px;--radius-input: 8px;--radius-chip: 999px;--radius-thumb: 8px;--elevation-flat: none;--elevation-rest: 0 1px 2px rgba(24,27,33,.06), 0 1px 3px rgba(24,27,33,.1);--elevation-raised: 0 1px 3px rgba(24,27,33,.08), 0 4px 12px rgba(24,27,33,.1);--hairline: 1px solid #d3dae3;--density-body-size: 16px;--density-body-line: 24px;--density-control: 40px;--density-min-target: 44px;--density-row: 48px;--focus-ring-offset: 2px;--focus-ring-surfaces: 2px solid var(--colour-brand-accessible);--focus-ring-identity: 2px solid var(--colour-on-identity);--steier-focus-ring: var(--focus-ring-surfaces);--motion-duration: .15s;--motion-easing: ease-out;--thumb-state-uploaded-badge: #047857;--thumb-state-uploaded-opacity: 1;--thumb-state-pending-badge: #b45309;--thumb-state-pending-opacity: .6;--thumb-state-retrying-badge: #b45309;--thumb-state-retrying-opacity: 1}@media(prefers-reduced-motion:reduce){:root{--motion-duration: 0ms}}.stage-chip--new{background:#e5e7eb;color:#111827}.stage-chip--scheduled{background:#dbeafe;color:#1e40af}.stage-chip--on-site{background:#cffafe;color:#155e75}.stage-chip--in-progress{background:#dbeafe;color:#1d4ed8}.stage-chip--completed{background:#d1fae5;color:#065f46}.stage-chip--ready-for-invoicing{background:#fef3c7;color:#92400e}.stage-chip--invoiced{background:#047857;color:#fff}.stage-chip--on-hold{background:#fef3c7;color:#92400e;border-style:dashed;border-color:currentColor}.stage-chip--on-hold:before{content:"⏸ " / ""}.stage-chip--cancelled{background:#f3f4f6;color:#4b5563}.stage-chip--cancelled:before{content:"✕ " / ""}.chip.chip--draft{background:#f3f4f6;color:#374151;border-color:transparent}.chip.chip--draft:before{content:"◇ " / ""}.chip.chip--issued{background:#ede9fe;color:#5b21b6;border-color:transparent}.chip.chip--issued:before{content:"✉ " / ""}.chip.chip--approved{background:#d1fae5;color:#065f46;border-color:transparent}.chip.chip--approved:before{content:"✓ " / ""}.chip.chip--rejected{background:#f3f4f6;color:#4b5563;border-color:transparent}.chip.chip--rejected:before{content:"✕ " / ""}.chip.chip--expired{background:#fef3c7;color:#92400e;border-color:transparent}.chip.chip--expired:before{content:"⌛ " / ""}.chip.chip--chase{background:#fff;color:#b45309;border-color:transparent}.chip.chip--chase:before{content:"⏳ " / ""}.ageing--new{color:#4a5260}.worklist__row--new>td:first-child{border-left:4px solid transparent}.ageing--amber{color:#92400e;background:#fef3c7}.worklist__row--amber>td:first-child{border-left:4px solid transparent}.ageing--red{color:#b91c1c;background:#fee2e2}.worklist__row--red>td:first-child{border-left:4px solid #b91c1c}.job-media__tag--before{background:#2e7d6b;color:#fff;border-color:transparent}.job-media__tag--after{background:#4338ca;color:#fff;border-color:transparent}
