.lv-approval-result{margin-bottom:1rem;padding:.875rem 1rem;border:1px solid var(--color-warning, #b7791f);border-radius:.5rem;background:#fffaf0}.lv-cancellation-result{margin:0 0 1rem;padding:.875rem 1rem;border:1px solid #94a3b8;border-radius:.5rem;background:#f8fafc}.lv-conflict-count{display:block;margin-top:.25rem;font-size:.8rem}.lv-conflict-list{margin:.35rem 0 0;padding-left:1rem;font-size:.8rem}.roster-leave-block{display:flex;flex-direction:column;gap:.15rem;padding:.5rem;border:1px solid #7c3aed;border-radius:.4rem;background:#f5f3ff;color:#4c1d95;font-size:.78rem}.roster-leave-block--compact{flex-direction:row;justify-content:space-between;padding:.2rem .3rem;font-size:.7rem}:root{--vds-colour-orange: #cf4520;--vds-colour-purple: #7602a3;--vds-colour-teal: #008eaa;--vds-colour-charcoal: #4a3041;--vds-colour-ink: #231827;--vds-colour-heading: #2f2131;--vds-colour-body: #4a3041;--vds-colour-muted: #746476;--vds-colour-soft: #f7f4f8;--vds-colour-panel: #ffffff;--vds-colour-panel-subtle: #fbf9fc;--vds-colour-border: #e8dfea;--vds-colour-border-strong: #d9cade;--vds-colour-hover: #f2ecf5;--vds-colour-surface: #fdfbfe;--vds-colour-focus: rgba(118, 2, 163, .22);--vds-colour-focus-solid: #7602a3;--vds-colour-success: #0f7a55;--vds-colour-success-bg: #e8f7f1;--vds-colour-warning: #a75a00;--vds-colour-warning-bg: #fff4df;--vds-colour-danger: #b42318;--vds-colour-danger-bg: #fff0ed;--vds-colour-info: #006d83;--vds-colour-info-bg: #e6f7fa;--vds-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--vds-font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--vds-font-size-xs: .72rem;--vds-font-size-sm: .84rem;--vds-font-size-md: .94rem;--vds-font-size-lg: 1.08rem;--vds-font-size-xl: 1.45rem;--vds-font-size-2xl: 2rem;--vds-space-1: .25rem;--vds-space-2: .5rem;--vds-space-3: .75rem;--vds-space-4: 1rem;--vds-space-5: 1.25rem;--vds-space-6: 1.5rem;--vds-space-8: 2rem;--vds-space-10: 2.5rem;--vds-radius-sm: 8px;--vds-radius-md: 12px;--vds-radius-lg: 18px;--vds-radius-xl: 24px;--vds-radius-pill: 999px;--vds-shadow-xs: 0 1px 2px rgba(74, 48, 65, .05);--vds-shadow-sm: 0 8px 24px rgba(74, 48, 65, .08);--vds-shadow-md: 0 18px 48px rgba(74, 48, 65, .12);--vds-card-padding: 1.35rem;--vds-card-border: 1px solid var(--vds-colour-border);--vds-card-background: linear-gradient(180deg, #ffffff 0%, #fffafd 100%);--vds-card-radius: var(--vds-radius-lg);--vds-icon-size-nav: 1.125rem;--vds-icon-size-sm: 1rem;--vds-icon-size-md: 1.25rem;--vds-icon-size-lg: 2.25rem;--vds-table-cell-padding-y: .72rem;--vds-table-cell-padding-x: .9rem;--vds-control-height: 2.6rem;--vds-control-padding-x: .85rem;--vds-control-radius: var(--vds-radius-md);--vds-sidebar-width: 268px;--vds-header-height: 72px;color:var(--vds-colour-body);background-color:var(--vds-colour-soft);font-family:var(--vds-font-family);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at top left,rgba(118,2,163,.1),transparent 30rem),radial-gradient(circle at top right,rgba(0,142,170,.1),transparent 28rem),var(--vds-colour-soft)}#root{min-height:100vh;overflow-x:hidden}.app-shell{max-width:960px;margin:0 auto;padding:2rem 1.5rem}.app-shell__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.app-shell__brand{flex:1 1 auto}.app-shell__eyebrow{margin:0 0 .25rem;color:#486581;font-size:.875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.app-shell__header h1{margin:0;font-size:2rem}.app-shell__scope{margin:.35rem 0 0;color:#486581;font-size:.9rem}.app-shell__nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.85rem;margin-top:1rem;width:100%}.app-shell__tools{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0;margin-top:.5rem}.app-shell__clinic-control,.app-shell__user{display:flex;align-items:center;gap:.75rem}.app-shell__clinic-control{align-items:flex-start;flex-direction:column;gap:.25rem}.app-shell__clinic-label,.app-shell__nav-heading{margin:0;color:#627d98;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.app-shell__clinic-select,.app-shell__clinic-fixed{border:1px solid #bcccdc;border-radius:8px;padding:.35rem .65rem;background:#fff;color:#102a43;font:inherit;font-size:.85rem;font-weight:600}.app-shell__clinic-error{max-width:18rem;color:#b42318;font-size:.75rem}.app-shell__user-link{font-size:.85rem;color:#486581;font-weight:600;text-decoration:none}.app-shell__user-link:hover{text-decoration:underline}.app-shell__logout{border:1px solid #bcccdc;border-radius:8px;padding:.3rem .75rem;background:transparent;color:#486581;font:inherit;font-size:.85rem;cursor:pointer}.app-shell__logout:hover{background:#f0f4f8}.app-shell__nav-group{display:grid;align-content:start;gap:.4rem}.app-shell__nav-links{display:flex;flex-wrap:wrap;gap:.45rem}.app-shell__nav-links a{padding:.4rem .85rem;border-radius:999px;color:#486581;font-size:.875rem;font-weight:600;text-decoration:none;background:#e0e7ef}.app-shell__nav-links a.active{color:#fff;background:#102a43}.app-shell__main{display:grid;gap:1.5rem}.status-card{padding:1.5rem;border:1px solid #d9e2ec;border-radius:12px;background:#fff}.status-card h2{margin-top:0}.status-card dl{display:grid;gap:1rem;margin:0}.status-card dt{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#627d98}.status-card dd{margin:.25rem 0 0;font-size:1rem}.status-card__error{margin:0;color:#ba1a1a}.status-card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.auth-card{padding:1.5rem;border:1px solid #d9e2ec;border-radius:12px;background:#fff;margin-bottom:1.5rem}.auth-card__hint{color:#627d98;font-size:.875rem}.auth-form{display:grid;gap:1rem}.auth-form label{display:grid;gap:.35rem;font-weight:600}.auth-form input{padding:.65rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit}.auth-form button,.link-button{border:0;border-radius:8px;padding:.65rem 1rem;background:#102a43;color:#fff;font:inherit;cursor:pointer}.link-button{background:transparent;color:#486581;text-decoration:underline}.loading-message,.footer-link{padding:1rem 0}.footer-link a{color:#486581}.inventory-page__section h2{margin-bottom:.35rem}.inventory-page__subtitle{margin:0;color:#627d98;font-size:.9rem}.inventory-page__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.button-link{display:inline-block;padding:.45rem .9rem;border-radius:8px;background:#102a43;color:#fff;font-size:.875rem;font-weight:600;text-decoration:none}.scan-mode-toggle{display:inline-flex;padding:.2rem;border-radius:10px;background:#e0e7ef;gap:.2rem}.scan-mode-toggle__btn{border:0;border-radius:8px;padding:.5rem 1rem;background:transparent;color:#486581;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.scan-mode-toggle__btn--active{background:#102a43;color:#fff}.scan-mode-toggle__btn--receive.scan-mode-toggle__btn--active{background:#0f5132}.scan-form{display:grid;gap:.9rem}.scan-form__intro{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1rem;border:1px solid var(--vds-colour-border);border-radius:var(--vds-radius-lg);background:var(--vds-colour-panel-subtle)}.scan-form__title{margin:0 0 .25rem;color:var(--vds-colour-heading);font-size:1rem}.scan-form__mode-hint{margin:0;color:#627d98;font-size:.85rem}.scan-form__row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}.scan-form__row--scanner{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(150px,.35fr) minmax(88px,.15fr) auto;align-items:end}.scan-form__field{display:grid;gap:.35rem;font-weight:600;min-width:0}.scan-form__field--grow{flex:1 1 220px}.scan-form__field--narrow{width:auto}.scan-form__field input,.scan-form__field select{padding:.65rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit}.scan-form__submit{border:0;border-radius:8px;padding:.65rem 1.1rem;background:#102a43;color:#fff;font:inherit;cursor:pointer;min-width:7.5rem;min-height:var(--vds-control-height)}.scan-form__submit--receive{background:#0f5132}.scan-form__submit:disabled{opacity:.65;cursor:not-allowed}.scan-form__camera-button{min-height:var(--vds-control-height);padding:.65rem 1rem;border:1px solid #bcccdc;border-radius:8px;background:#fff;color:#102a43;font:inherit;font-weight:700;cursor:pointer}.scan-form__camera-button:disabled{opacity:.65;cursor:not-allowed}.scan-camera{display:none}.scan-camera--active{display:grid;gap:.75rem}.scan-camera__video{width:100%;max-height:60vh;border-radius:var(--vds-radius-lg);background:#102a43;object-fit:cover}.scan-camera__controls{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.scan-product-card,.scan-unknown-card{display:grid;gap:1rem;padding:1rem;border:1px solid var(--vds-colour-border);border-radius:var(--vds-radius-lg);background:var(--vds-colour-panel-subtle)}.scan-product-card__eyebrow{margin:0 0 .25rem;color:#0f5132;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.scan-product-card h3,.scan-unknown-card h3{margin:0;color:var(--vds-colour-heading)}.scan-product-card__details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0}.scan-product-card__details div{padding:.75rem;border-radius:10px;background:#fff}.scan-product-card__details dt{margin:0 0 .25rem;color:#627d98;font-size:.75rem;font-weight:700;text-transform:uppercase}.scan-product-card__details dd{margin:0;color:#102a43;font-weight:700}.scan-product-card__quantity,.scan-product-card__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.scan-product-card__quantity span{min-width:5rem;text-align:center;font-weight:700}.scan-unknown-card{border-color:#f59e0b;background:#fff7ed}.scan-unknown-card p{margin:0;color:#664d03}.scan-create-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#102a4394}.scan-create-modal__panel{display:grid;width:min(100%,38rem);max-height:min(92vh,48rem);gap:.9rem;overflow-y:auto;padding:1.25rem;border:1px solid var(--vds-colour-border);border-radius:var(--vds-radius-lg);background:#fff;box-shadow:0 24px 60px #102a4347}.scan-create-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.scan-form__hint{margin:0;color:#627d98;font-size:.85rem}.scan-form__reference{max-width:36rem}.scan-form__hint code{font-size:.8rem}.inventory-notice{margin:.75rem 0 0;padding:.75rem 1rem;border-radius:8px;background:#e3f9e5;color:#0f5132}.inventory-notice--info{background:#fff3cd;color:#664d03}.inventory-notice--receive{background:#d8f3dc;color:#0f5132}.inventory-notice__link{color:inherit;font-weight:700}.inventory-page__section--focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1f}.inventory-receiving-callout{border:1px solid #b6d4fe;border-radius:10px;background:#e7f1ff;color:#084298;padding:1rem}.inventory-receiving-callout h3{margin:0 0 .35rem}.inventory-receiving-callout p{margin:0}.inventory-receiving-summary{margin-top:.75rem}.inventory-receiving-list{margin-top:1rem}.inventory-receiving-list h3{margin:0 0 .5rem;font-size:1rem}.inventory-receiving-list ul{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.inventory-receiving-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc}.product-form{display:grid;gap:1.25rem}.product-form__section{margin:0;padding:0;border:0}.product-form__section legend{margin-bottom:.75rem;font-weight:700;font-size:.95rem}.product-form__grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.product-form__full{grid-column:1 / -1}.product-form label{display:grid;gap:.35rem;font-weight:600}.product-form input,.product-form select{padding:.65rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit}.product-form__actions button{border:0;border-radius:8px;padding:.65rem 1.1rem;background:#102a43;color:#fff;font:inherit;cursor:pointer}.product-form__actions button:disabled{opacity:.65;cursor:not-allowed}.inventory-summary{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem;font-size:.9rem}.inventory-summary__alert{color:#9b1c1c;font-weight:600}.inventory-summary__ok{color:#0f5132;font-weight:600}.inventory-workspace__header{gap:1rem;align-items:flex-start}.inventory-workspace__controls{display:grid;grid-template-columns:minmax(16rem,2fr) minmax(10rem,1fr) minmax(10rem,1fr) auto;gap:.75rem;align-items:end;margin:1rem 0}.inventory-workspace__field{display:grid;gap:.35rem;color:#334e68;font-size:.85rem;font-weight:600}.inventory-workspace__field input,.inventory-workspace__field select{width:100%;border:1px solid #bcccdc;border-radius:8px;padding:.55rem .65rem;background:#fff;color:#102a43;font:inherit;font-weight:400}.inventory-workspace__field input:focus,.inventory-workspace__field select:focus{outline:3px solid rgba(23,115,176,.18);border-color:#1773b0}.inventory-workspace__clear{justify-self:start}.inventory-table-wrap{overflow-x:auto}.inventory-table{width:100%;border-collapse:collapse;font-size:.95rem}.inventory-table th,.inventory-table td{padding:.75rem .5rem;border-bottom:1px solid #d9e2ec;text-align:left;vertical-align:top}.inventory-table th{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#627d98}.inventory-table__row--low{background:#fff5f5}.inventory-table__name{display:block;font-weight:600}.inventory-table__name-link{color:#102a43;text-decoration:none}.inventory-table__name-link:hover,.inventory-table__name-link:focus{color:#1773b0;text-decoration:underline}.inventory-table__meta{display:block;margin-top:.15rem;color:#627d98;font-size:.8rem}.inventory-table__numeric{font-variant-numeric:tabular-nums}.inventory-badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.inventory-badge--low{background:#fef3c7;color:#92400e}.inventory-badge--ok{background:#e3f9e5;color:#0f5132}.inventory-badge--out{background:#fde2e2;color:#9b1c1c}.inventory-empty{margin:1rem 0 0;color:#627d98}.inventory-empty p{margin:0 0 .75rem}.product-detail{display:grid;gap:1rem}.product-detail__breadcrumb{display:flex}.product-detail__hero-content{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between}.product-detail__hero-content h2,.product-detail__card h3,.product-detail__future h3,.product-detail__timeline h3,.product-detail__timeline-item h4,.product-detail__timeline-future h4,.product-detail__future-card h4,.product-detail__future-card h5{margin:0}.product-detail__header-grid,.product-detail__metric-list{display:grid;gap:.75rem}.product-detail__header-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}.product-detail__metric{display:grid;gap:.2rem;padding:.8rem;border:1px solid #d9e2ec;border-radius:10px;background:#f8fafc}.product-detail__metric dt{color:#627d98;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.product-detail__metric dd{margin:0;color:#102a43;font-weight:700}.product-detail__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem}.product-detail__card{align-content:start}.product-detail__future,.product-detail__timeline{margin-top:1rem}.product-detail__timeline-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.product-detail__timeline-item{position:relative;display:grid;grid-template-columns:1rem 1fr;gap:.85rem;padding:0 0 1rem}.product-detail__timeline-item:not(:last-child):before{content:"";position:absolute;top:.9rem;bottom:0;left:.35rem;width:1px;background:#d9e2ec}.product-detail__timeline-marker{position:relative;z-index:1;width:.75rem;height:.75rem;margin-top:.2rem;border:2px solid #ffffff;border-radius:999px;background:var(--vds-colour-purple);box-shadow:0 0 0 2px #d9e2ec}.product-detail__timeline-body{display:grid;gap:.45rem;padding-bottom:1rem;border-bottom:1px solid #edf2f7}.product-detail__timeline-body time{color:#627d98;font-size:.9rem;font-weight:700}.product-detail__timeline-details{display:grid;gap:.45rem;margin:0}.product-detail__timeline-details div{display:grid;gap:.15rem}.product-detail__timeline-details dt{color:#627d98;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.product-detail__timeline-details dd{margin:0;color:#102a43;font-weight:700}.product-detail__timeline-empty{margin:0;color:#627d98}.product-detail__timeline-future{display:grid;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #d9e2ec}.product-detail__future-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.75rem}.product-detail__future-card{display:grid;gap:.35rem;padding:1rem;border:1px dashed #bcccdc;border-radius:10px;background:#f8fafc}.product-detail__future-card p,.product-detail__not-found p{margin:0;color:#627d98}@media(max-width:900px){.inventory-workspace__controls{grid-template-columns:1fr 1fr}.inventory-workspace__field--search{grid-column:1 / -1}}@media(max-width:640px){.inventory-workspace__controls{grid-template-columns:1fr}}.account-details{display:grid;gap:0;margin:0}.account-details__row{display:grid;grid-template-columns:160px 1fr;gap:.5rem;padding:.75rem 0;border-bottom:1px solid #f0f4f8}.account-details__row:last-child{border-bottom:0}.account-details dt{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#627d98;align-self:center}.account-details dd{margin:0;align-self:center}.reset-password-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;padding:.75rem 0}.reset-password-form label{display:grid;gap:.35rem;font-weight:600;font-size:.9rem;flex:1 1 220px}.reset-password-form input{padding:.55rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit}.reset-password-form button{border:0;border-radius:8px;padding:.55rem 1rem;background:#102a43;color:#fff;font:inherit;font-size:.9rem;cursor:pointer}.reset-password-form button:disabled{opacity:.65;cursor:not-allowed}.inventory-notice--inline{font-size:.85rem;color:#0f5132;font-weight:600}.po-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.po-badge--draft{background:#fff3cd;color:#664d03}.po-badge--submitted{background:#e3f9e5;color:#0f5132}.po-empty{padding:1.5rem 0}.po-empty__title{margin:0 0 .35rem;font-weight:600}.po-empty__hint{margin:0;color:#627d98;font-size:.9rem}.po-summary{padding:1.25rem 1.5rem}.po-summary__stats{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0 0 1rem}.po-summary__stat{display:grid;gap:.15rem}.po-summary__stat dt{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#627d98}.po-summary__stat dd{margin:0;font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:#102a43}.po-summary__hint{margin:0;font-size:.85rem;color:#627d98}.po-batch-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.po-submit-btn{font-size:.82rem}.po-workflow-callout{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid #d9e2ec;border-radius:10px;background:#f8fafc}.po-workflow-callout p{margin-top:.2rem}.po-workflow-steps{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.po-workflow-steps li{padding:.35rem .65rem;border-radius:999px;background:#e0e7ef;color:#334e68;font-size:.8rem;font-weight:700}.pilot-setup{display:grid;gap:1.25rem}.pilot-setup__steps{display:grid;gap:.85rem;margin:0;padding:0;list-style:none}.pilot-setup__step{display:grid;grid-template-columns:auto 1fr;gap:.85rem;padding:1rem;border:1px solid #d9e2ec;border-radius:12px;background:#f8fafc}.pilot-setup__step h3{margin:0 0 .35rem}.pilot-setup__step .button-link{margin-top:.75rem}.pilot-setup__number{display:inline-grid;width:2rem;height:2rem;place-items:center;border-radius:999px;background:#102a43;color:#fff;font-weight:700}.po-row-actions,.po-empty__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.po-empty__actions{margin-top:1rem}.button-primary{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.button-primary:hover:not(:disabled){background:#1d4ed8}.button-primary:disabled{opacity:.55;cursor:not-allowed}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.roster-cal__header{flex-wrap:wrap;gap:1rem;align-items:flex-start}.roster-cal__nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.roster-cal__week-label{font-size:.9rem;font-weight:600;color:#102a43;min-width:11rem;text-align:center}.roster-nav-btn{border:1px solid #bcccdc;border-radius:8px;padding:.3rem .8rem;background:transparent;color:#486581;font:inherit;font-size:1.25rem;line-height:1;cursor:pointer}.roster-nav-btn:hover{background:#f0f4f8}.roster-today-btn{border:1px solid #bcccdc;border-radius:8px;padding:.3rem .75rem;background:transparent;color:#486581;font:inherit;font-size:.875rem;cursor:pointer}.roster-today-btn:hover{background:#f0f4f8}.roster-refresh-btn{font-size:.8rem;padding:.3rem .75rem}.roster-grid-wrapper{overflow-x:auto;margin-top:1.25rem}.roster-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;background:#d9e2ec;border:1px solid #d9e2ec;border-radius:10px;overflow:hidden;min-width:700px}.roster-day{background:#fff;display:flex;flex-direction:column;min-height:140px}.roster-day__head{padding:.55rem .5rem;background:#f8fafc;border-bottom:1px solid #e8eef4;display:flex;flex-direction:column;align-items:center;gap:.1rem}.roster-day--today .roster-day__head{background:#ebf5ff}.roster-day__weekday{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#627d98}.roster-day__date{font-size:.9rem;font-weight:600;color:#102a43}.roster-day--today .roster-day__date{color:#1773b0}.roster-day__shifts{padding:.4rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.roster-shift{display:flex;flex-direction:column;gap:.15rem;padding:.35rem .45rem;border-radius:6px;border:1px solid transparent;text-align:left;font:inherit;cursor:default;width:100%}.roster-shift--clickable{cursor:pointer}.roster-shift--clickable:hover{filter:brightness(.96)}.roster-shift--scheduled{background:#ebf3fb;border-color:#b3d0eb}.roster-shift--confirmed{background:#e3f9e5;border-color:#9fd3a3}.roster-shift--completed{background:#f0f4f8;border-color:#d9e2ec}.roster-shift--cancelled{background:#fef2f2;border-color:#fca5a5;opacity:.65}.roster-shift__name{font-size:.78rem;font-weight:700;color:#102a43;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-shift__time{font-size:.72rem;color:#486581;font-variant-numeric:tabular-nums}.roster-shift__type-badge{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.1rem .3rem;border-radius:4px;margin-top:.1rem;align-self:flex-start}.roster-shift__type-badge--standard{background:#dbeafe;color:#1e40af}.roster-shift__type-badge--overtime{background:#fef3c7;color:#92400e}.roster-shift__type-badge--on_call{background:#ede9fe;color:#5b21b6}.roster-shift__type-badge--training{background:#dcfce7;color:#166534}.roster-add-btn{display:block;width:100%;padding:.3rem .4rem;border:1px dashed #bcccdc;border-radius:6px;background:transparent;color:#9ab5cc;font:inherit;font-size:.72rem;cursor:pointer;text-align:center;margin-top:auto}.roster-add-btn:hover{background:#f0f4f8;border-color:#9ab5cc;color:#486581}.roster-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#102a4380;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.roster-modal{background:#fff;border-radius:14px;padding:1.5rem;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #00000038}.roster-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.roster-modal__title{margin:0;font-size:1.1rem;font-weight:700}.roster-modal__close{border:0;background:transparent;font-size:1.5rem;line-height:1;color:#9ab5cc;cursor:pointer;padding:.1rem .45rem;border-radius:6px}.roster-modal__close:hover{background:#f0f4f8;color:#486581}.roster-form{display:grid;gap:1rem}.roster-form__field{display:grid;gap:.3rem;font-weight:600;font-size:.9rem;color:#334e68}.roster-form__optional{font-weight:400;font-size:.8rem;color:#9ab5cc;margin-left:.3rem}.roster-form__field-static{display:grid;gap:.2rem;padding:.5rem 0;border-bottom:1px solid #f0f4f8}.roster-form__static-label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9ab5cc}.roster-form__static-value{font-size:.9rem;color:#102a43}.roster-form__static-secondary{display:block;font-size:.75rem;color:#627d98;margin-top:.1rem}.roster-form__control{padding:.6rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit;font-size:.9rem;color:#102a43;background:#fff}.roster-form__control:focus{outline:2px solid #4a9fde;outline-offset:1px}.roster-form__textarea{resize:vertical;min-height:60px}.roster-form__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.roster-form__actions{display:flex;align-items:center;gap:.75rem;padding-top:.5rem;flex-wrap:wrap}.roster-form__actions-right{display:flex;gap:.75rem;align-items:center;margin-left:auto}.roster-form__danger-btn{border:1px solid #fca5a5;border-radius:8px;padding:.55rem 1rem;background:transparent;color:#dc2626;font:inherit;font-size:.875rem;cursor:pointer}.roster-form__danger-btn:hover{background:#fef2f2}.roster-form__danger-btn:disabled{opacity:.6;cursor:not-allowed}.roster-form__submit-btn{border:0;border-radius:8px;padding:.6rem 1.25rem;background:#102a43;color:#fff;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.roster-form__submit-btn:hover{background:#1b3f5e}.roster-form__submit-btn:disabled{opacity:.65;cursor:not-allowed}.roster-conflict-checking{font-size:.82rem;color:#9ab5cc;font-style:italic;margin:.5rem 0}.roster-conflict-banner{border-radius:8px;padding:.75rem 1rem;margin:.5rem 0}.roster-conflict-banner--error{background:#fff5f5;border:1.5px solid #fc8181;color:#c53030}.roster-conflict-banner--error strong{display:block;margin-bottom:.35rem}.roster-conflict-banner--warning{background:#fffbeb;border:1.5px solid #f6ad55;color:#7b341e}.roster-conflict-banner--warning strong{display:block;margin-bottom:.35rem}.roster-conflict-list{margin:.25rem 0 .5rem 1.1rem;padding:0;font-size:.84rem}.roster-conflict-list li{margin-bottom:.2rem}.roster-conflict-hint{font-size:.78rem;margin:0;opacity:.85}.roster-shift--conflict{outline:2px solid #f6ad55;outline-offset:-2px}.roster-shift__conflict-icon{font-size:.72rem;margin-right:.15rem;color:#d97706}.my-shifts-empty{padding:2rem 0;text-align:center}.my-shifts-empty__title{margin:0 0 .5rem;font-weight:600;color:#486581}.my-shifts-empty__hint{margin:0;color:#9ab5cc;font-size:.9rem}.my-shifts-group{margin-top:1.25rem}.my-shifts-group--faded{opacity:.7}.my-shifts-group__label{margin:0 0 .75rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9ab5cc}.my-shifts-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.my-shift{padding:.85rem 1.1rem;border-radius:10px;border-left:4px solid #bcccdc;background:#f8fafc}.my-shift--scheduled{border-left-color:#4a9fde}.my-shift--confirmed{border-left-color:#22a84c}.my-shift--completed{border-left-color:#9ab5cc;background:#f0f4f8}.my-shift--cancelled{border-left-color:#fc8181;opacity:.65}.my-shift__date{font-weight:700;font-size:.9rem;color:#102a43;margin-bottom:.35rem}.my-shift__details{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.my-shift__time{font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:600;color:#102a43}.my-shift__duration{color:#9ab5cc;font-size:.82rem}.my-shift__badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.my-shift__badge--type-standard{background:#dbeafe;color:#1e40af}.my-shift__badge--type-overtime{background:#fef3c7;color:#92400e}.my-shift__badge--type-on_call{background:#ede9fe;color:#5b21b6}.my-shift__badge--type-training{background:#dcfce7;color:#166534}.my-shift__badge--status-scheduled{background:#dbeafe;color:#1e40af}.my-shift__badge--status-confirmed{background:#dcfce7;color:#166534}.my-shift__badge--status-completed{background:#f0f4f8;color:#627d98}.my-shift__badge--status-cancelled{background:#fde8e8;color:#9b1c1c}.my-shift__cross-clinic{margin-top:.35rem;font-size:.8rem;color:#627d98;font-weight:600}.my-shift__notes{margin-top:.3rem;font-size:.82rem;color:#9ab5cc;font-style:italic}.my-shifts-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.my-shifts-view-toggle{display:flex;border:1px solid #bcccdc;border-radius:8px;overflow:hidden}.my-shifts-toggle-btn{padding:.35rem .85rem;font-size:.82rem;font-weight:600;background:#fff;border:none;cursor:pointer;color:#627d98;transition:background .15s,color .15s}.my-shifts-toggle-btn+.my-shifts-toggle-btn{border-left:1px solid #bcccdc}.my-shifts-toggle-btn--active,.my-shifts-toggle-btn:hover{background:#e8f4fd;color:#1a6fa0}.my-shifts-cal-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid #e8f0f5;flex-wrap:wrap}.my-shifts-cal-view-selector{display:flex;border:1px solid #bcccdc;border-radius:8px;overflow:hidden}.my-shifts-cal-btn{padding:.3rem .75rem;font-size:.8rem;font-weight:600;background:#fff;border:none;cursor:pointer;color:#627d98;transition:background .15s,color .15s}.my-shifts-cal-btn+.my-shifts-cal-btn{border-left:1px solid #bcccdc}.my-shifts-cal-btn--active,.my-shifts-cal-btn:hover{background:#e8f4fd;color:#1a6fa0}.my-shifts-month-view{margin-top:.75rem}.my-shifts-month-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid #e8f0f5;border-left:1px solid #e8f0f5}.my-shifts-month__col-head{padding:.4rem 0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9ab5cc;text-align:center;border-right:1px solid #e8f0f5;border-bottom:1px solid #e8f0f5}.my-shifts-month-cell{min-height:80px;padding:.3rem .35rem;border-right:1px solid #e8f0f5;border-bottom:1px solid #e8f0f5;background:#fff;position:relative}.my-shifts-month-cell--out{background:#f8fafc}.my-shifts-month-cell--today{background:#f0f8ff}.my-shifts-month-cell__num{display:block;font-size:.75rem;font-weight:700;color:#627d98;margin-bottom:.2rem}.my-shifts-month-cell--today .my-shifts-month-cell__num{color:#1a6fa0}.my-shifts-month-cell__entries{display:flex;flex-direction:column;gap:.15rem}.my-shifts-month-entry{display:flex;align-items:center;gap:.2rem;padding:.15rem .3rem;border-radius:4px;font-size:.68rem;background:#e8f4fd;overflow:hidden}.my-shifts-month-entry--scheduled{background:#dbeafe}.my-shifts-month-entry--confirmed{background:#dcfce7}.my-shifts-month-entry--completed{background:#f0f4f8}.my-shifts-month-entry__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.my-shifts-month-entry__dot--scheduled{background:#4a9fde}.my-shifts-month-entry__dot--confirmed{background:#22a84c}.my-shifts-month-entry__dot--completed{background:#9ab5cc}.my-shifts-month-entry__time{font-variant-numeric:tabular-nums;font-weight:700;color:#1e3a5f;white-space:nowrap}.my-shifts-month-entry__clinic{color:#627d98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.my-shifts-month-entry__status{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.my-shifts-month-entry__status--scheduled{color:#1e40af}.my-shifts-month-entry__status--confirmed{color:#166534}.my-shifts-month-entry__status--completed{color:#627d98}.my-shifts-month-cell__more,.my-shifts-month-cell__collapse{font-size:.68rem;color:#4a9fde;background:none;border:none;cursor:pointer;padding:.1rem 0;text-align:left;font-weight:600}.my-shifts-week-view{margin-top:.75rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.my-shifts-week-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:.5rem;min-width:640px}.my-shifts-week-day{border:1px solid #e8f0f5;border-radius:10px;padding:.5rem .6rem;background:#fff}.my-shifts-week-day--today{border-color:#4a9fde;background:#f0f8ff}.my-shifts-week-day__head{display:flex;flex-direction:column;align-items:center;padding-bottom:.4rem;margin-bottom:.4rem;border-bottom:1px solid #e8f0f5}.my-shifts-week-day__weekday{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#9ab5cc}.my-shifts-week-day__date{font-size:.85rem;font-weight:700;color:#486581}.my-shifts-week-day__shifts{display:flex;flex-direction:column;gap:.4rem}.my-shifts-week-empty{color:#c8d8e4;font-size:.9rem;text-align:center;margin:0}.my-shifts-week-card{padding:.5rem .6rem;border-radius:8px;background:#f0f8ff;border-left:3px solid #4a9fde}.my-shifts-week-card--scheduled{border-left-color:#4a9fde;background:#eff8ff}.my-shifts-week-card--confirmed{border-left-color:#22a84c;background:#f0fdf4}.my-shifts-week-card--completed{border-left-color:#9ab5cc;background:#f8fafc}.my-shifts-week-card__time{font-variant-numeric:tabular-nums;font-weight:700;font-size:.82rem;color:#102a43}.my-shifts-week-card__clinic{font-size:.78rem;color:#486581;margin-top:.15rem;font-weight:600}.my-shifts-week-card__meta{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.2rem}.my-shifts-week-card__type,.my-shifts-week-card__status{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .35rem;border-radius:999px}.my-shifts-week-card__type--standard{background:#dbeafe;color:#1e40af}.my-shifts-week-card__type--overtime{background:#fef3c7;color:#92400e}.my-shifts-week-card__type--on_call{background:#ede9fe;color:#5b21b6}.my-shifts-week-card__type--training{background:#dcfce7;color:#166534}.my-shifts-week-card__status--scheduled{background:#dbeafe;color:#1e40af}.my-shifts-week-card__status--confirmed{background:#dcfce7;color:#166534}.my-shifts-week-card__status--completed{background:#f0f4f8;color:#627d98}.my-shifts-week-card__notes{margin-top:.2rem;font-size:.75rem;color:#9ab5cc;font-style:italic}@media(max-width:600px){.my-shifts-week-grid{grid-template-columns:repeat(7,minmax(100px,1fr));min-width:560px}.my-shifts-month-grid{font-size:.65rem}.my-shifts-month-entry__status{display:none}.my-shifts-cal-toolbar{flex-direction:column;align-items:flex-start}}.lf-controls{margin:1.5rem 0 1.75rem;padding:1rem 1.25rem;background:#f0f4f8;border-radius:10px}.lf-controls__label{display:block;font-size:.8rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#627d98;margin-bottom:.6rem}.lf-controls__inputs{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lf-controls__slider{flex:1 1 180px;accent-color:#2d6a9f;height:4px;cursor:pointer}.lf-controls__number-wrap{display:flex;align-items:center;gap:.4rem}.lf-controls__number{width:4.5rem;padding:.3rem .5rem;border:1px solid #bcccdc;border-radius:6px;font:inherit;font-size:.95rem;text-align:right;background:#fff;color:#102a43}.lf-controls__number:focus{outline:2px solid #2d6a9f;outline-offset:1px}.lf-controls__unit{font-size:.9rem;color:#627d98}.lf-controls__hint{margin:.6rem 0 0;font-size:.82rem;color:#9ab5cc}.lf-summary{margin-bottom:1.75rem}.lf-summary__kpi--primary{background:linear-gradient(135deg,#1a4a7a,#2d6a9f);border-radius:12px;padding:1.4rem 1.6rem;margin-bottom:1rem;color:#fff}.lf-summary__kpi--primary .lf-summary__kpi-label{color:#ffffffbf}.lf-summary__kpi--primary .lf-summary__kpi-value{color:#fff;font-size:2rem;font-weight:700}.lf-summary__kpi--primary .lf-summary__kpi-sub{color:#ffffffa6}.lf-summary__kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem}.lf-summary__kpi{display:flex;flex-direction:column;gap:.25rem;background:#f8fafc;border:1px solid #dde7ef;border-radius:10px;padding:1rem 1.2rem}.lf-summary__kpi-label{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#627d98}.lf-summary__kpi-value{font-size:1.5rem;font-weight:700;color:#102a43;font-variant-numeric:tabular-nums}.lf-summary__kpi-value--secondary{font-size:1.2rem}.lf-summary__kpi-sub{font-size:.78rem;color:#9ab5cc}.lf-section{margin-top:.5rem}.lf-section__heading{margin:0 0 .25rem;font-size:1rem;font-weight:700;color:#102a43}.lf-section__sub{margin:0 0 1rem;font-size:.82rem;color:#9ab5cc;font-style:italic}.lf-table-wrapper{overflow-x:auto}.lf-table{width:100%;border-collapse:collapse;font-size:.9rem}.lf-table thead{background:#f0f4f8}.lf-table__th{padding:.6rem .85rem;text-align:left;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#627d98;white-space:nowrap;border-bottom:2px solid #dde7ef}.lf-table__th--numeric{text-align:right}.lf-table__th--active{color:#2d6a9f}.lf-table__th:hover{color:#102a43;background:#e8eef4}.lf-table__row:nth-child(2n){background:#f8fafc}.lf-table__row:hover{background:#eef4fb}.lf-table__row td{padding:.65rem .85rem;border-bottom:1px solid #f0f4f8;vertical-align:middle}.lf-table__role{white-space:nowrap}.lf-table__numeric{text-align:right;font-variant-numeric:tabular-nums;color:#334e68}.lf-table__numeric--total{font-weight:700;color:#102a43}.lf-role-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.04em}.lf-role-badge--standard{background:#dbeafe;color:#1e40af}.lf-role-badge--overtime{background:#fef3c7;color:#92400e}.lf-role-badge--on_call{background:#ede9fe;color:#5b21b6}.lf-role-badge--training{background:#dcfce7;color:#166534}.lf-table-empty{padding:2rem 0;text-align:center}.lf-table-empty__title{margin:0 0 .5rem;font-weight:600;color:#486581}.lf-table-empty__hint{margin:0;color:#9ab5cc;font-size:.9rem}.lf-disclaimer{margin-top:1.25rem}.lf-disclaimer__heading{margin:0 0 .6rem;font-size:.9rem;font-weight:700;color:#486581}.lf-disclaimer__list{margin:0;padding:0 0 0 1.25rem;display:grid;gap:.4rem}.lf-disclaimer__list li{font-size:.82rem;color:#627d98;line-height:1.5}.product-form input:disabled,.product-form select:disabled{background:#f0f4f8;color:#627d98;cursor:not-allowed;border-color:#dde7ef}.cs-required{color:#ba1a1a;font-weight:700}.cs-field-error{display:block;font-size:.8rem;font-weight:600;color:#ba1a1a;margin-top:.15rem}.cs-field-hint{display:block;font-size:.78rem;color:#9ab5cc;margin-top:.15rem;font-weight:400}.cs-readonly-notice{margin-top:1rem;font-size:.88rem}.cs-tier-row{display:flex;flex-direction:column;gap:.3rem;justify-content:flex-start}.cs-tier-label{font-weight:600;font-size:1rem}.cs-tier-badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.82rem;font-weight:700;letter-spacing:.04em;width:fit-content}.cs-tier-badge--standard{background:#dbeafe;color:#1e40af}.cs-tier-badge--premium{background:#fef3c7;color:#92400e}.cs-tier-badge--enterprise{background:#ede9fe;color:#5b21b6}.cs-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.cs-actions__reset{border:1px solid #bcccdc;border-radius:8px;padding:.65rem 1.1rem;background:transparent;color:#486581;font:inherit;cursor:pointer}.cs-actions__reset:hover{background:#f0f4f8}.cs-actions__reset:disabled{opacity:.65;cursor:not-allowed}.cs-meta__heading{margin:0 0 .75rem;font-size:.9rem;font-weight:700;color:#486581}.cs-meta__code{font-family:Consolas,Fira Code,monospace;font-size:.82rem;background:#f0f4f8;padding:.1rem .4rem;border-radius:4px;color:#334e68}.cs-status-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700}.cs-status-badge--active{background:#dcfce7;color:#166534}.cs-status-badge--inactive{background:#fee2e2;color:#991b1b}.billing-kpi-bar{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin:1.25rem 0 1.5rem;padding:1rem 1.25rem;background:#f0f4f8;border-radius:10px}.billing-kpi-bar__stat{display:flex;flex-direction:column;gap:.2rem;min-width:130px}.billing-kpi-bar__stat dt{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#627d98}.billing-kpi-bar__stat dd{margin:0;font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;color:#102a43}.billing-kpi-bar__dd--paid{color:#166534}.billing-kpi-bar__dd--outstanding{color:#92400e}.billing-kpi-bar__dd--overdue{color:#9b1c1c}.billing-filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1.25rem}.billing-filters__field{display:grid;gap:.3rem}.billing-filters__label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#627d98}.billing-filters__control{padding:.5rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit;font-size:.875rem;color:#102a43;background:#fff}.billing-filters__control:focus{outline:2px solid #2d6a9f;outline-offset:1px}.billing-filters__clear{padding:.5rem .9rem;border:1px solid #bcccdc;border-radius:8px;background:transparent;color:#486581;font:inherit;font-size:.875rem;cursor:pointer;align-self:flex-end}.billing-filters__clear:hover{background:#f0f4f8}.billing-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.billing-badge--draft{background:#f0f4f8;color:#627d98}.billing-badge--issued{background:#dbeafe;color:#1e40af}.billing-badge--partially_paid{background:#fef3c7;color:#92400e}.billing-badge--paid{background:#dcfce7;color:#166534}.billing-badge--overdue{background:#fee2e2;color:#991b1b}.billing-badge--void,.billing-badge--cancelled{background:#f3f4f6;color:#9ca3af}.billing-table-wrap{overflow-x:auto}.billing-table{width:100%;border-collapse:collapse;font-size:.9rem}.billing-table__th{padding:.6rem .75rem;text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#627d98;background:#f8fafc;border-bottom:2px solid #dde7ef;white-space:nowrap}.billing-table__th--numeric{text-align:right}.billing-table__th--action{width:1%;white-space:nowrap}.billing-table__row:nth-child(2n){background:#fafbfc}.billing-table__row:hover{background:#eef4fb}.billing-table__row--overdue{background:#fff9f9}.billing-table__row--overdue:hover{background:#fef2f2}.billing-table__td{padding:.7rem .75rem;border-bottom:1px solid #f0f4f8;vertical-align:middle}.billing-table__td--mono{font-family:Consolas,Fira Code,monospace;font-size:.82rem;color:#334e68}.billing-table__td--numeric{text-align:right;font-variant-numeric:tabular-nums;color:#334e68}.billing-table__td--total{font-weight:700;color:#102a43}.billing-table__td--outstanding{font-weight:600;color:#92400e}.billing-table__td--action{width:1%;white-space:nowrap;text-align:right}.billing-table__td--footer{font-weight:700;color:#102a43}.billing-table__td--footer-label{font-size:.78rem;font-weight:600;color:#627d98;letter-spacing:.04em}.billing-table__footer-row{background:#f0f4f8}.billing-table__vendor{display:block;font-weight:600;color:#102a43}.billing-table__notes{display:block;margin-top:.1rem;font-size:.78rem;color:#9ab5cc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.billing-table__draft-tag{font-size:.78rem;color:#9ab5cc;font-style:italic}.billing-settle-btn{border:1px solid #2d6a9f;border-radius:7px;padding:.35rem .75rem;background:transparent;color:#2d6a9f;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.billing-settle-btn:hover{background:#2d6a9f;color:#fff}.billing-empty{padding:2.5rem 0;text-align:center}.billing-empty__title{margin:0 0 .35rem;font-weight:600;color:#486581}.billing-empty__hint{margin:0;font-size:.88rem;color:#9ab5cc}.billing-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#102a438c;display:flex;align-items:center;justify-content:center;z-index:300;padding:1rem}.billing-modal{background:#fff;border-radius:14px;padding:1.75rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #0000003d}.billing-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.billing-modal__title{margin:0;font-size:1.1rem;font-weight:700;color:#102a43}.billing-modal__close{border:0;background:transparent;font-size:1.6rem;line-height:1;color:#9ab5cc;cursor:pointer;padding:.1rem .45rem;border-radius:6px}.billing-modal__close:hover{background:#f0f4f8;color:#486581}.billing-modal__invoice-summary{display:grid;margin:0 0 1.5rem;padding:.85rem 1rem;background:#f8fafc;border:1px solid #dde7ef;border-radius:10px}.billing-modal__summary-row{display:grid;grid-template-columns:110px 1fr;gap:.4rem;padding:.3rem 0;border-bottom:1px solid #eef2f7}.billing-modal__summary-row:last-child{border-bottom:0}.billing-modal__summary-row dt{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9ab5cc;align-self:center}.billing-modal__summary-row dd{margin:0;font-size:.9rem;color:#102a43;font-weight:500;align-self:center}.billing-modal__summary-amount{font-variant-numeric:tabular-nums;font-weight:700!important}.billing-modal__summary-amount--outstanding{color:#92400e!important}.billing-settlement-form{display:grid;gap:1rem}.billing-settlement-form__field{display:grid;gap:.3rem;font-weight:600;font-size:.9rem;color:#334e68}.billing-settlement-form__optional{font-weight:400;font-size:.8rem;color:#9ab5cc;margin-left:.25rem}.billing-settlement-form__control{padding:.6rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit;font-size:.9rem;color:#102a43;background:#fff}.billing-settlement-form__control:focus{outline:2px solid #2d6a9f;outline-offset:1px}.billing-settlement-form__control:disabled{background:#f0f4f8;color:#627d98;cursor:not-allowed}.billing-settlement-form__amount-wrap{display:flex;align-items:center;border:1px solid #bcccdc;border-radius:8px;overflow:hidden;background:#fff;focus-within:outline 2px solid #2d6a9f}.billing-settlement-form__amount-wrap:focus-within{outline:2px solid #2d6a9f;outline-offset:1px}.billing-settlement-form__currency{padding:.6rem .65rem;font-weight:600;color:#627d98;font-size:.95rem;background:#f0f4f8;border-right:1px solid #bcccdc;-webkit-user-select:none;user-select:none}.billing-settlement-form__control--amount{border:0;border-radius:0;flex:1;outline:none;min-width:0}.billing-settlement-form__control--amount:focus{outline:none}.billing-settlement-form__textarea{resize:vertical;min-height:70px}.billing-settlement-form__error{margin:0;padding:.6rem .9rem;background:#fde8e8;border:1px solid #fca5a5;border-radius:8px;color:#9b1c1c;font-size:.875rem;font-weight:500}.billing-settlement-form__actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.25rem;flex-wrap:wrap}.billing-settlement-form__cancel{border:1px solid #bcccdc;border-radius:8px;padding:.6rem 1.1rem;background:transparent;color:#486581;font:inherit;font-size:.9rem;cursor:pointer}.billing-settlement-form__cancel:hover{background:#f0f4f8}.billing-settlement-form__cancel:disabled{opacity:.65;cursor:not-allowed}.billing-settlement-form__submit{border:0;border-radius:8px;padding:.6rem 1.25rem;background:#102a43;color:#fff;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}.billing-settlement-form__submit:hover{background:#1b3f5e}.billing-settlement-form__submit:disabled{opacity:.65;cursor:not-allowed}.pr-section{margin-bottom:2rem}.pr-section__title{display:flex;align-items:center;gap:.5rem;font-size:.975rem;font-weight:700;color:#102a43;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid #e2ecf3}.pr-section__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#e2ecf3;color:#486581}.pr-section__count--warn{background:#fef3c7;color:#92400e}.pr-section__hint{margin:-.25rem 0 .75rem;font-size:.85rem;color:#627d98;line-height:1.5}.pr-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid #e2ecf3}.pr-table{width:100%;border-collapse:collapse;font-size:.875rem}.pr-table__th{padding:.55rem .85rem;text-align:left;font-size:.75rem;font-weight:600;color:#627d98;text-transform:uppercase;letter-spacing:.04em;background:#f7fafc;border-bottom:2px solid #e2ecf3;white-space:nowrap}.pr-table__td{padding:.7rem .85rem;border-bottom:1px solid #f0f4f8;color:#243b53;vertical-align:middle}.pr-table__td--mono{font-family:ui-monospace,Cascadia Code,Source Code Pro,monospace;font-size:.82rem}.pr-table__td--actions{white-space:nowrap;text-align:right}.pr-table__row:last-child .pr-table__td{border-bottom:0}.pr-table__row:hover .pr-table__td{background:#f7fafc}.pr-table__row--expanded .pr-table__td{background:#f7fafc;padding-top:.5rem;padding-bottom:.75rem}.pr-table__row--expanded:hover .pr-table__td{background:#f0f4f8}.pr-table__empty{padding:2rem 1rem;text-align:center;color:#829ab1;font-size:.9rem}.pr-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap}.pr-badge--draft{background:#f3f4f6;color:#374151}.pr-badge--submitted{background:#dbeafe;color:#1e40af}.pr-badge--approved{background:#d1fae5;color:#065f46}.pr-badge--rejected{background:#fee2e2;color:#9b1c1c}.pr-badge--requires_amendment{background:#fef3c7;color:#92400e}.pr-badge--processed{background:#ede9fe;color:#4c1d95}.pr-badge--pending_verification{background:#dbeafe;color:#1e40af}.pr-badge--present{background:#d1fae5;color:#065f46}.pr-badge--absent{background:#fee2e2;color:#9b1c1c}.pr-badge--sick{background:#fef3c7;color:#92400e}.pr-badge--cancelled{background:#f3f4f6;color:#374151}.pr-badge--hourly_auto{background:#e0f2fe;color:#0369a1}.pr-badge--hourly_manual{background:#f0fdf4;color:#166534}.pr-badge--commission_log{background:#fdf4ff;color:#6b21a8}.pr-row-actions{display:flex;gap:.4rem;justify-content:flex-end}.pr-action-btn{display:inline-flex;align-items:center;font:inherit;font-size:.8rem;font-weight:600;padding:.35rem .85rem;border-radius:6px;border:0;cursor:pointer;white-space:nowrap;transition:background .12s}.pr-action-btn:disabled{opacity:.6;cursor:not-allowed}.pr-action-btn--approve{background:#d1fae5;color:#065f46}.pr-action-btn--approve:not(:disabled):hover{background:#a7f3d0}.pr-action-btn--reject{background:#fee2e2;color:#9b1c1c}.pr-action-btn--reject:not(:disabled):hover{background:#fecaca}.pr-action-btn--verify{background:#dbeafe;color:#1e40af}.pr-action-btn--verify:not(:disabled):hover{background:#bfdbfe}.pr-action-btn--withdraw{background:#fef3c7;color:#92400e}.pr-action-btn--withdraw:not(:disabled):hover{background:#fde68a}.pr-action-btn--submit{background:#102a43;color:#fff}.pr-action-btn--submit:not(:disabled):hover{background:#1b3f5e}.pr-inline-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.pr-inline-form__input{flex:1;min-width:180px;font:inherit;font-size:.84rem;padding:.38rem .65rem;border:1px solid #bcccdc;border-radius:6px;color:#102a43;background:#fff}.pr-inline-form__input:focus{outline:2px solid #2d6a9f;outline-offset:1px}.pr-inline-form__select{font:inherit;font-size:.84rem;padding:.38rem .65rem;border:1px solid #bcccdc;border-radius:6px;color:#102a43;background:#fff}.pr-inline-form__select:focus{outline:2px solid #2d6a9f;outline-offset:1px}.pr-inline-form__cancel{font:inherit;font-size:.8rem;padding:.38rem .7rem;border:1px solid #bcccdc;border-radius:6px;background:transparent;color:#486581;cursor:pointer}.pr-inline-form__cancel:hover{background:#f0f4f8}.pr-inline-form__cancel:disabled{opacity:.6;cursor:not-allowed}.pr-inline-form__error{width:100%;margin:.25rem 0 0;font-size:.8rem;color:#9b1c1c;font-weight:500}.pr-clock-card{display:inline-flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;background:#f7fafc;border:1px solid #e2ecf3;border-radius:12px;min-width:280px;max-width:100%;margin-bottom:.5rem}.pr-clock-card--active{border-color:#6ee7b7;background:#f0fdf4}.pr-clock-card__status-label{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#627d98}.pr-clock-card--active .pr-clock-card__status-label{color:#047857}.pr-clock-card__shift-info{margin:0;font-size:.875rem;color:#243b53}.pr-clock-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.pr-clock-form__field{display:flex;flex-direction:column;gap:.3rem}.pr-clock-form__label{font-size:.78rem;font-weight:600;color:#627d98}.pr-clock-form__control{font:inherit;font-size:.875rem;padding:.48rem .7rem;border:1px solid #bcccdc;border-radius:8px;color:#102a43;background:#fff;min-width:0}.pr-clock-form__control:focus{outline:2px solid #2d6a9f;outline-offset:1px}.pr-clock-form__actions{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.pr-clock-form__error{width:100%;margin:0;padding:.5rem .75rem;background:#fde8e8;border:1px solid #fca5a5;border-radius:6px;color:#9b1c1c;font-size:.82rem;font-weight:500}.lv-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap}.lv-badge--pending{background:#fef3c7;color:#92400e}.lv-badge--approved{background:#d1fae5;color:#065f46}.lv-badge--rejected{background:#fee2e2;color:#9b1c1c}.lv-badge--withdrawn,.lv-badge--cancelled{background:#f3f4f6;color:#374151}.lv-badge--annual{background:#dbeafe;color:#1e40af}.lv-badge--sick{background:#fce7f3;color:#9d174d}.lv-badge--personal{background:#ede9fe;color:#4c1d95}.lv-badge--compassionate{background:#fdf4ff;color:#6b21a8}.lv-badge--unpaid{background:#f3f4f6;color:#374151}.lv-badge--other{background:#f0fdf4;color:#166534}.lv-request-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem;padding:1.5rem;background:#f7fafc;border:1px solid #e2ecf3;border-radius:12px}.lv-request-form__field{display:flex;flex-direction:column;gap:.35rem}.lv-request-form__field--full{grid-column:1 / -1}.lv-request-form__label{font-size:.8rem;font-weight:600;color:#627d98}.lv-request-form__hint{font-weight:400;font-size:.77rem;color:#9ab5cc;margin-left:.2rem}.lv-request-form__control{font:inherit;font-size:.875rem;padding:.52rem .75rem;border:1px solid #bcccdc;border-radius:8px;color:#102a43;background:#fff}.lv-request-form__control:focus{outline:2px solid #2d6a9f;outline-offset:1px}.lv-request-form__control:disabled{background:#f0f4f8;color:#627d98;cursor:not-allowed}.lv-request-form__textarea{resize:vertical;min-height:76px}.lv-request-form__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:.5rem;padding-top:.25rem}.lv-request-form__error{grid-column:1 / -1;margin:0;padding:.6rem .9rem;background:#fde8e8;border:1px solid #fca5a5;border-radius:8px;color:#9b1c1c;font-size:.875rem;font-weight:500}.lv-request-form__success{grid-column:1 / -1;margin:0;padding:.6rem .9rem;background:#d1fae5;border:1px solid #6ee7b7;border-radius:8px;color:#065f46;font-size:.875rem;font-weight:500}.mfa-panel{display:flex;flex-direction:column;gap:1.5rem;max-width:480px;margin-top:1rem}.mfa-panel__qr-wrap{display:flex;justify-content:center;align-items:center;min-height:200px;background:#fff;border:1px solid #d9e2ec;border-radius:8px;padding:1rem}.mfa-panel__qr-image{display:block;border-radius:4px}.mfa-panel__qr-fallback{color:#627d98;font-size:.875rem;text-align:center}.mfa-panel__secret-wrap{background:#f5f7fa;border:1px solid #d9e2ec;border-radius:8px;padding:1rem}.mfa-panel__secret-label{margin:0 0 .5rem;font-size:.8125rem;font-weight:600;color:#486581;text-transform:uppercase;letter-spacing:.06em}.mfa-panel__secret-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.mfa-panel__secret-code{font-family:Courier New,Courier,monospace;font-size:.9375rem;letter-spacing:.1em;color:#102a43;word-break:break-all}.mfa-panel__secret-hint{margin:.75rem 0 0;font-size:.8125rem;color:#627d98;line-height:1.5}.mfa-panel__instructions{line-height:1.7;color:#486581}.mf-horizon{padding:1rem 0 .5rem;border-top:1px solid #e2e8f0;margin-top:1rem}.mf-horizon__label{display:block;font-size:.8125rem;font-weight:600;color:#486581;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.6rem}.mf-horizon__buttons{display:flex;flex-wrap:wrap;gap:.5rem}.mf-horizon__btn{padding:.35rem .9rem;border:1px solid #bcccdc;border-radius:999px;background:transparent;color:#486581;font:inherit;font-size:.875rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.mf-horizon__btn:hover{background:#f0f4f8;border-color:#9fb3c8}.mf-horizon__btn--active{background:#102a43;border-color:#102a43;color:#fff;font-weight:600}.mf-horizon__hint{margin:.5rem 0 0;font-size:.8125rem;color:#627d98}.mf-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:1.25rem 0}.mf-summary-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.mf-summary-card--risk{background:#fff5f5;border-color:#fc8181}.mf-summary-card--warning{background:#fffaf0;border-color:#f6ad55}.mf-summary-card__label{font-size:.75rem;font-weight:600;color:#627d98;letter-spacing:.06em;text-transform:uppercase}.mf-summary-card__value{font-size:1.75rem;font-weight:700;color:#102a43;line-height:1.1}.mf-summary-card--risk .mf-summary-card__value{color:#c53030}.mf-summary-card--warning .mf-summary-card__value{color:#c05621}.mf-summary-card__sub{font-size:.75rem;color:#829ab1;line-height:1.4}.mf-section{margin-top:1.75rem}.mf-section__heading{margin:0 0 .25rem;font-size:1rem;font-weight:700;color:#102a43}.mf-section-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;margin-left:.5rem;padding:0 .4rem;border-radius:999px;font-size:.75rem;font-weight:700;vertical-align:middle}.mf-section-badge--alert{background:#fc8181;color:#fff}.mf-alerts__filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.mf-alerts__filter-btn{padding:.3rem .8rem;border:1px solid #bcccdc;border-radius:999px;background:transparent;color:#486581;font:inherit;font-size:.8125rem;cursor:pointer}.mf-alerts__filter-btn:hover{background:#f0f4f8}.mf-alerts__filter-btn--active{background:#102a43;border-color:#102a43;color:#fff;font-weight:600}.mf-alerts__filter-btn--critical.mf-alerts__filter-btn--active{background:#c53030;border-color:#c53030}.mf-alerts__filter-btn--warning.mf-alerts__filter-btn--active{background:#c05621;border-color:#c05621}.mf-alerts__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.mf-alerts__no-match{color:#829ab1;font-size:.875rem;margin:.5rem 0}.mf-alert{padding:1rem 1.25rem;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc}.mf-alert--critical{background:#fff5f5;border-color:#fc8181}.mf-alert--warning{background:#fffaf0;border-color:#f6ad55}.mf-alert__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.mf-alert__badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.mf-alert__badge--critical{background:#c53030;color:#fff}.mf-alert__badge--warning{background:#dd6b20;color:#fff}.mf-alert__badge--info{background:#3182ce;color:#fff}.mf-alert__sku{font-size:.75rem;font-family:Courier New,Courier,monospace;color:#627d98}.mf-alert__title{margin:0 0 .25rem;font-weight:600;font-size:.9375rem;color:#102a43}.mf-alert__description{margin:0 0 .75rem;font-size:.8125rem;color:#627d98}.mf-alert__meta{margin:0;display:flex;flex-direction:column;gap:.2rem}.mf-alert__meta-row{display:flex;justify-content:space-between;font-size:.8125rem;gap:.5rem}.mf-alert__meta-row dt{color:#829ab1;flex-shrink:0}.mf-alert__meta-row dd{margin:0;font-weight:500;color:#243b53;text-align:right}.mf-alert__meta-value--critical{color:#c53030!important;font-weight:700!important}.mf-alerts-empty{padding:1.5rem 0;text-align:center}.mf-alerts-empty__title{margin:0 0 .25rem;font-weight:600;color:#27ae60}.mf-alerts-empty__hint{margin:0;font-size:.875rem;color:#829ab1}.mf-table-section{margin-top:.5rem}.mf-table-controls{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.mf-table-controls__search{flex:1 1 200px;max-width:360px;padding:.45rem .85rem;border:1px solid #bcccdc;border-radius:8px;font:inherit;font-size:.875rem;color:#102a43;background:#fff}.mf-table-controls__search:focus{outline:none;border-color:#2684ff;box-shadow:0 0 0 2px #2684ff33}.mf-table-controls__count{font-size:.8125rem;color:#829ab1;white-space:nowrap}.mf-table-wrapper{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.mf-table{width:100%;border-collapse:collapse;font-size:.875rem}.mf-table__th{padding:.65rem 1rem;text-align:left;font-weight:600;font-size:.75rem;color:#627d98;background:#f8fafc;border-bottom:1px solid #e2e8f0;white-space:nowrap}.mf-table__th--numeric{text-align:right}.mf-table__th--active{color:#102a43}.mf-table__row{border-bottom:1px solid #f0f4f8}.mf-table__row:last-child{border-bottom:none}.mf-table__row:hover{background:#f8fafc}.mf-table td{padding:.65rem 1rem;vertical-align:middle;color:#243b53}.mf-table__name{min-width:180px}.mf-table__product-name{display:block;font-weight:500;color:#102a43}.mf-table__sku{display:block;font-size:.75rem;font-family:Courier New,Courier,monospace;color:#829ab1;margin-top:.1rem}.mf-table__category{font-size:.8125rem;color:#627d98}.mf-table__numeric{text-align:right;font-variant-numeric:tabular-nums}.mf-table__numeric--critical{color:#c53030;font-weight:700}.mf-table__no-price{font-size:.75rem;color:#829ab1;font-style:italic}.mf-table-empty,.mf-table-no-match{padding:1.5rem 0;text-align:center;color:#829ab1}.mf-table-empty__title{margin:0 0 .25rem;font-weight:600;color:#486581}.mf-table-empty__hint{margin:0;font-size:.875rem}.mf-table-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 0 0}.mf-table-pagination__btn{padding:.35rem .85rem;border:1px solid #bcccdc;border-radius:8px;background:transparent;color:#486581;font:inherit;font-size:.875rem;cursor:pointer}.mf-table-pagination__btn:disabled{opacity:.4;cursor:not-allowed}.mf-table-pagination__btn:not(:disabled):hover{background:#f0f4f8}.mf-table-pagination__info{font-size:.875rem;color:#627d98}.mf-status-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.mf-status-badge--healthy{background:#c6f6d5;color:#276749}.mf-status-badge--low-soon{background:#fefcbf;color:#744210}.mf-status-badge--reorder-required{background:#feebc8;color:#9c4221}.mf-status-badge--critical{background:#fed7d7;color:#9b2c2c}.mf-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:.5rem}.mf-chart{padding:1rem 1.25rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.mf-chart__title{margin:0 0 .2rem;font-size:.875rem;font-weight:700;color:#102a43}.mf-chart__sub{margin:0 0 .875rem;font-size:.75rem;color:#829ab1;line-height:1.4}.mf-chart__empty{font-size:.8125rem;color:#829ab1;font-style:italic;padding:.5rem 0}.mf-chart__bars{display:flex;flex-direction:column;gap:.55rem}.mf-chart__bar-row{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:.5rem}.mf-chart__bar-label{font-size:.75rem;color:#486581;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mf-chart__bar-track{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.mf-chart__bar-fill{height:100%;border-radius:999px;transition:width .3s ease}.mf-chart__bar-fill--risk{background:#fc8181}.mf-chart__bar-fill--critical{background:#c53030}.mf-chart__bar-fill--warning{background:#dd6b20}.mf-chart__bar-value{font-size:.75rem;color:#627d98;white-space:nowrap;font-variant-numeric:tabular-nums}.mf-chart__bar-value--critical{color:#c53030;font-weight:700}.mf-chart__distribution{display:flex;flex-direction:column;gap:.75rem}.mf-chart__dist-bar{display:flex;height:18px;border-radius:999px;overflow:hidden}.mf-chart__dist-segment{height:100%;min-width:4px;transition:width .3s ease}.mf-chart__dist-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.mf-chart__dist-legend-item{display:flex;align-items:center;gap:.35rem}.mf-chart__dist-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.mf-chart__dist-legend-label{font-size:.75rem;color:#486581}.mf-reorder-section{border-left:3px solid #f6ad55}.mf-reorder-actions{display:flex;flex-direction:column;gap:1.25rem}.mf-reorder-actions__primary{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap}.mf-reorder-btn{display:inline-block;padding:.55rem 1.25rem;border-radius:8px;font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.mf-reorder-btn--primary{background:#102a43;color:#fff;border:1px solid #102a43}.mf-reorder-btn--primary:hover{background:#1f3e5a;border-color:#1f3e5a}.mf-reorder-actions__hint{margin:0;font-size:.8125rem;color:#627d98;align-self:center}.mf-reorder-supplier-summary__heading{margin:0 0 .75rem;font-size:.875rem;font-weight:700;color:#486581}.mf-reorder-items{display:flex;flex-direction:column;gap:.75rem}.mf-reorder-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap}.mf-reorder-item__name{display:flex;flex-direction:column;gap:.15rem;min-width:140px}.mf-reorder-item__product{font-weight:600;font-size:.9375rem;color:#102a43}.mf-reorder-item__sku{font-size:.75rem;font-family:Courier New,Courier,monospace;color:#829ab1}.mf-reorder-item__details{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center}.mf-reorder-item__qty,.mf-reorder-item__cost,.mf-reorder-item__supplier,.mf-reorder-item__unit-cost{font-size:.8125rem;color:#486581}.mf-reorder-item__cost{font-weight:600;color:#102a43}.mf-reorder-item__supplier{font-style:italic}.mf-reorder-item__no-supplier,.mf-reorder-item__no-price{font-size:.8125rem;color:#9fb3c8;font-style:italic}.mf-disclaimer{background:#f8fafc;border-color:#e2e8f0}.mf-disclaimer__heading{margin:0 0 .75rem;font-size:.9375rem;font-weight:700;color:#486581}.mf-disclaimer__list{margin:0;padding-left:1.25rem;color:#627d98;font-size:.8125rem;line-height:1.7}.mf-disclaimer__list li+li{margin-top:.3rem}.supplier-kpi-bar{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin:1.25rem 0 1.5rem;padding:1rem 1.25rem;background:#f0f4f8;border-radius:10px}.supplier-kpi-bar__stat{display:flex;flex-direction:column;gap:.2rem;min-width:130px}.supplier-kpi-bar__stat dt{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#627d98}.supplier-kpi-bar__stat dd{margin:0;font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;color:#102a43}.supplier-kpi-bar__dd--active{color:#166534}.supplier-kpi-bar__dd--pending{color:#92400e}.supplier-kpi-bar__dd--muted{color:#9ab5cc}.supplier-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.supplier-badge--active{background:#dcfce7;color:#166534}.supplier-badge--inactive{background:#f3f4f6;color:#9ca3af}.supplier-invoice-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.supplier-invoice-badge--pending_review{background:#fef3c7;color:#92400e}.supplier-invoice-badge--confirmed{background:#dcfce7;color:#166534}.supplier-invoice-badge--voided{background:#f3f4f6;color:#9ca3af}.supplier-search-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1.25rem}.supplier-search-bar__field{display:grid;gap:.3rem}.supplier-search-bar__label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#627d98}.supplier-search-bar__control{padding:.5rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit;font-size:.875rem;color:#102a43;background:#fff;min-width:220px}.supplier-search-bar__control:focus{outline:2px solid #2d6a9f;outline-offset:1px}.supplier-search-bar__clear{padding:.5rem .9rem;border:1px solid #bcccdc;border-radius:8px;background:transparent;color:#486581;font:inherit;font-size:.85rem;cursor:pointer;align-self:flex-end}.supplier-search-bar__clear:hover{background:#f0f4f8}.supplier-table-wrap{overflow-x:auto}.supplier-table{width:100%;border-collapse:collapse;font-size:.9rem}.supplier-table__th{padding:.6rem .75rem;text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#627d98;background:#f8fafc;border-bottom:2px solid #dde7ef;white-space:nowrap}.supplier-table__th--numeric{text-align:right}.supplier-table__th--action{width:1%;white-space:nowrap}.supplier-table__row:nth-child(2n){background:#fafbfc}.supplier-table__row:hover{background:#eef4fb}.supplier-table__td{padding:.7rem .75rem;border-bottom:1px solid #f0f4f8;vertical-align:middle}.supplier-table__td--mono{font-family:Consolas,Fira Code,monospace;font-size:.82rem;color:#334e68}.supplier-table__td--numeric{text-align:right;font-variant-numeric:tabular-nums;color:#334e68}.supplier-table__td--action{width:1%;white-space:nowrap;text-align:right}.supplier-table__name{display:block;font-weight:600;color:#102a43}.supplier-table__code{display:block;margin-top:.1rem;font-size:.78rem;color:#9ab5cc;font-family:Consolas,Fira Code,monospace}.supplier-table__contact{display:block;font-weight:500;color:#102a43}.supplier-table__email{display:block;margin-top:.1rem;font-size:.82rem;color:#486581}.supplier-table__muted{color:#9ab5cc}.supplier-view-btn{display:inline-block;padding:.3rem .75rem;border:1px solid #2d6a9f;border-radius:6px;font-size:.82rem;font-weight:600;color:#2d6a9f;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}.supplier-view-btn:hover{background:#2d6a9f;color:#fff}.supplier-empty{padding:2rem 1rem;text-align:center}.supplier-empty__title{margin:0 0 .4rem;font-weight:600;color:#486581}.supplier-empty__hint{margin:0;font-size:.875rem;color:#9ab5cc}.supplier-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#102a4373;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.supplier-modal{background:#fff;border-radius:14px;box-shadow:0 8px 32px #102a432e;width:100%;max-width:480px;padding:1.75rem}.supplier-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.supplier-modal__title{margin:0;font-size:1.25rem}.supplier-modal__close{background:none;border:none;font-size:1.5rem;line-height:1;color:#627d98;cursor:pointer;padding:0 .25rem}.supplier-modal__close:hover{color:#102a43}.supplier-form{display:flex;flex-direction:column;gap:1rem}.supplier-form__field{display:grid;gap:.35rem}.supplier-form__label{font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#627d98}.supplier-form__required{color:#ba1a1a}.supplier-form__control{padding:.55rem .75rem;border:1px solid #bcccdc;border-radius:8px;font:inherit;font-size:.9rem;color:#102a43;background:#fff}.supplier-form__control:focus{outline:2px solid #2d6a9f;outline-offset:1px}.supplier-form__error{margin:0;color:#ba1a1a;font-size:.875rem}.supplier-form__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.supplier-form__cancel{padding:.55rem 1.1rem;border:1px solid #bcccdc;border-radius:8px;background:transparent;font:inherit;font-size:.875rem;color:#486581;cursor:pointer}.supplier-form__cancel:hover{background:#f0f4f8}.supplier-form__cancel:disabled{opacity:.6;cursor:default}.supplier-form__submit{padding:.55rem 1.25rem;border:none;border-radius:8px;background:#2d6a9f;font:inherit;font-size:.875rem;font-weight:600;color:#fff;cursor:pointer}.supplier-form__submit:hover{background:#1e5a8e}.supplier-form__submit:disabled{opacity:.6;cursor:default}.supplier-detail{display:flex;flex-direction:column;gap:1.25rem}.supplier-detail__back{margin-bottom:.25rem}.supplier-detail__back-link{font-size:.875rem;font-weight:600;color:#2d6a9f;text-decoration:none}.supplier-detail__back-link:hover{text-decoration:underline}.supplier-detail__heading{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.supplier-detail__heading h2,.supplier-detail__section{margin:0}.supplier-detail__section-title{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1rem;font-weight:700;color:#102a43}.supplier-detail__count{font-size:.75rem;font-weight:600;color:#627d98;background:#f0f4f8;padding:.15rem .5rem;border-radius:999px}.supplier-detail__overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem 1.5rem;margin:0}.supplier-detail__overview-item{display:flex;flex-direction:column;gap:.2rem}.supplier-detail__overview-item--full{grid-column:1 / -1}.supplier-detail__overview-item dt{font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#627d98}.supplier-detail__overview-item dd{margin:0;font-size:.95rem;color:#102a43}.supplier-detail__mono{font-family:Consolas,Fira Code,monospace;font-size:.88rem}.supplier-detail__link{color:#2d6a9f;text-decoration:none}.supplier-detail__link:hover{text-decoration:underline}.supplier-detail__notes{white-space:pre-wrap;font-size:.875rem;color:#486581;line-height:1.6}.supplier-table__row-actions{display:flex;gap:.4rem;align-items:center;justify-content:flex-end;flex-wrap:nowrap}.supplier-edit-btn{display:inline-block;padding:.3rem .65rem;border:1px solid #bcccdc;border-radius:6px;font-size:.82rem;font-weight:600;color:#486581;background:transparent;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;text-decoration:none}.supplier-edit-btn:hover{background:#f0f4f8;border-color:#9ab5cc;color:#102a43}.supplier-toggle-btn{display:inline-block;padding:.3rem .65rem;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:background .15s,color .15s}.supplier-toggle-btn--deactivate{border-color:#f59e0b;color:#92400e;background:#fef3c7}.supplier-toggle-btn--deactivate:hover{background:#fde68a;border-color:#d97706}.supplier-toggle-btn--activate{border-color:#6ee7b7;color:#065f46;background:#d1fae5}.supplier-toggle-btn--activate:hover{background:#a7f3d0;border-color:#059669}.supplier-detail__actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:.25rem}.supplier-modal--confirm{max-width:420px}.supplier-confirm__message{margin:0 0 1.25rem;font-size:.95rem;color:#334e68;line-height:1.6}.supplier-confirm__btn{padding:.55rem 1.25rem;border:none;border-radius:8px;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.supplier-confirm__btn--warning{background:#d97706;color:#fff}.supplier-confirm__btn--warning:hover{background:#b45309}.supplier-confirm__btn--warning:disabled{opacity:.6;cursor:default}.supplier-confirm__btn--danger{background:var(--vds-colour-danger);color:#fff}.supplier-confirm__btn--danger:hover{background:#8f1d14}.supplier-confirm__btn--danger:disabled{opacity:.6;cursor:default}.catalogue-review__cancel-button{color:var(--vds-colour-danger);border-color:var(--vds-colour-danger)}.supplier-form__textarea{resize:vertical;min-height:80px;font-family:inherit}.supplier-form__checkbox-field{display:flex;align-items:center;gap:.5rem;cursor:pointer}.supplier-form__checkbox-label{font-size:.9rem;font-weight:500;color:#102a43}.supplier-modal--scrollable{padding:0;display:flex;flex-direction:column;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem)}.supplier-modal--scrollable .supplier-modal__header{flex-shrink:0;padding:1.75rem 1.75rem 0;margin-bottom:0}.supplier-modal--scrollable .supplier-form{overflow-y:auto;flex:1;min-height:0;padding:1.25rem 1.75rem 0}.supplier-modal--scrollable .supplier-form__actions{position:sticky;bottom:0;background:#fff;padding:.75rem 0 1.5rem;margin-top:.5rem;border-top:1px solid #e4edf5}.supplier-modal--upload{max-width:520px}.upload-supplier-readonly{display:grid;gap:.35rem}.upload-supplier-readonly__name{font-size:.95rem;font-weight:600;color:#102a43;padding:.55rem .75rem;background:#f0f4f8;border:1px solid #bcccdc;border-radius:8px}.upload-dropzone{border:2px dashed #bcccdc;border-radius:10px;padding:1.75rem 1.25rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:#fafbfc;outline:none}.upload-dropzone:hover,.upload-dropzone:focus{border-color:#2d6a9f;background:#f0f6ff}.upload-dropzone--dragging{border-color:#2d6a9f;background:#e8f0fa}.upload-dropzone--has-file{border-color:#059669;background:#f0fdf4}.upload-dropzone__input{display:none}.upload-dropzone__placeholder{display:flex;flex-direction:column;align-items:center;gap:.4rem}.upload-dropzone__icon{font-size:2rem;color:#9ab5cc;line-height:1}.upload-dropzone__primary{font-size:.9rem;color:#486581}.upload-dropzone__browse{color:#2d6a9f;font-weight:600;text-decoration:underline}.upload-dropzone__hint{font-size:.78rem;color:#9ab5cc}.upload-dropzone__file-info{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap}.upload-dropzone__file-icon{font-size:1.5rem}.upload-dropzone__file-name{font-size:.9rem;font-weight:600;color:#102a43;word-break:break-all;max-width:280px}.upload-dropzone__file-size{font-size:.8rem;color:#627d98;white-space:nowrap}.upload-error-banner{padding:.7rem 1rem;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#991b1b;font-size:.875rem;line-height:1.5}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1rem 0 .5rem}.upload-progress__spinner{width:44px;height:44px;border:4px solid #e2ecf4;border-top-color:#2d6a9f;border-radius:50%;animation:upload-spin .85s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-progress__steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;width:100%}.upload-progress__step{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:#9ab5cc;padding:.35rem 0;transition:color .3s}.upload-progress__step--active{color:#2d6a9f;font-weight:600}.upload-progress__step--done{color:#059669}.upload-progress__step-icon{font-size:.85rem;width:1.2em;text-align:center;flex-shrink:0}.upload-progress__hint{font-size:.78rem;color:#9ab5cc;margin:0;text-align:center}.invoice-review{display:flex;flex-direction:column;gap:1.25rem}.invoice-review__warnings{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.invoice-review__warning{padding:.65rem 1rem;border-radius:8px;font-size:.875rem;line-height:1.5}.invoice-review__warning--file{background:#fffbeb;border:1px solid #f59e0b;color:#92400e}.invoice-review__warning--number{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.invoice-review__summary-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.invoice-review__summary-header .supplier-detail__section-title{margin-bottom:0}.invoice-review__summary-badges{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ocr-confidence-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;font-size:.75rem;font-weight:600;color:#1d4ed8}.invoice-review__summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.9rem 1.5rem;margin:0}.invoice-review__summary-item{display:flex;flex-direction:column;gap:.15rem}.invoice-review__summary-item dt{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#627d98}.invoice-review__summary-item dd{margin:0;font-size:.92rem;color:#102a43}.invoice-review__filename{font-size:.82rem!important;color:#486581!important;word-break:break-all}.invoice-review__lines-header{display:flex;align-items:center;justify-content:space-between}.invoice-review__table{font-size:.88rem}.invoice-review__row--ignored{opacity:.4}.invoice-review__sku{display:block;font-size:.75rem;color:#627d98;font-family:Consolas,Fira Code,monospace;margin-top:.15rem}.match-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap}.match-badge--matched{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.match-badge--unmatched{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.invoice-review__match-cell,.invoice-review__suggestion-list{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.invoice-review__match-feedback{display:flex;flex-direction:column;gap:.2rem;max-width:30rem;padding:.6rem .75rem;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e3a5f}.invoice-review__match-feedback--error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.invoice-review__match-feedback p{margin:0;font-size:.78rem;line-height:1.4}.invoice-review__candidate-summary{display:flex;flex-direction:column;gap:.35rem;width:100%;max-width:30rem;padding:.65rem .75rem;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e3a5f}.invoice-review__candidate-summary p{margin:0;font-size:.78rem;line-height:1.4}.invoice-review__unresolved-attributes{display:flex;flex-direction:column;gap:.2rem;padding-top:.35rem;border-top:1px solid #bfdbfe}.invoice-review__match-actions{display:flex;flex-wrap:wrap;gap:.35rem .65rem}.invoice-review__create-product-btn{display:block;margin-top:.4rem;padding:.2rem .55rem;border:1px dashed #bcccdc;border-radius:6px;background:transparent;font-size:.72rem;font-weight:600;color:#9ab5cc;cursor:not-allowed}.invoice-review__edit-input{padding:.35rem .55rem;border:1px solid #2d6a9f;border-radius:6px;font:inherit;font-size:.85rem;color:#102a43;width:100%;min-width:120px}.invoice-review__edit-input--numeric{min-width:80px;text-align:right}.invoice-review__edit-input:focus{outline:2px solid #2d6a9f;outline-offset:1px}.invoice-review__preview-total{color:#2d6a9f;font-weight:600}.invoice-review__save-btn,.invoice-review__cancel-btn{padding:.3rem .7rem!important;font-size:.8rem!important}.invoice-review__ignore-btn{border-color:#cbd5e1;color:#64748b;background:#f8fafc}.invoice-review__ignore-btn:hover{background:#f1f5f9;border-color:#94a3b8}.invoice-review__subtotal-row td{border-top:2px solid #e2ecf4;font-weight:600}.invoice-review__subtotal-label{text-align:right;color:#486581;font-size:.85rem}.invoice-review__subtotal-value{color:#102a43}.invoice-review__approval{display:flex;flex-direction:column;gap:.75rem}.invoice-review__progress{display:flex;flex-direction:column;gap:.35rem}.invoice-review__progress-bar-wrap{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.invoice-review__progress-bar{height:100%;background:#059669;border-radius:3px;transition:width .3s ease}.invoice-review__progress-label{margin:0;font-size:.82rem;color:#486581}.invoice-review__progress-blocking{color:#c05621;font-weight:600}.invoice-review__approval-hint{margin:0;font-size:.875rem;color:#486581;line-height:1.6}.invoice-review__approval-actions{display:flex;gap:.75rem;flex-wrap:wrap}.invoice-review__approve-btn{padding:.6rem 1.5rem;border:none;border-radius:8px;background:#059669;color:#fff;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s}.invoice-review__approve-btn:hover{background:#047857}.invoice-review__approve-btn:disabled{opacity:.6;cursor:default}.invoice-review__void-btn{padding:.6rem 1.25rem;border:1px solid #fca5a5;border-radius:8px;background:transparent;color:#991b1b;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.invoice-review__void-btn:hover{background:#fef2f2}.invoice-review__void-btn:disabled{opacity:.6;cursor:default}.invoice-review__summary-item--total dd{display:flex;flex-direction:column;gap:.1rem}.invoice-review__total-amount{font-size:1.1rem;font-weight:700;color:#102a43}.invoice-review__total-sublabel{font-size:.7rem;color:#627d98;font-weight:500}.invoice-review__unit-price-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.invoice-review__price-tax-label{font-size:.7rem;color:#627d98;font-weight:500;white-space:nowrap}.invoice-review__gst-discount-cell{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.invoice-review__gst-label{font-size:.8rem;color:#486581;font-weight:500;white-space:nowrap}.invoice-review__discount-label{font-size:.75rem;color:#c05621;font-weight:600;background:#fff7ed;border:1px solid #fed7aa;border-radius:4px;padding:.1rem .35rem;white-space:nowrap}.invoice-review__financial-summary{display:flex;flex-wrap:wrap;gap:0;border-top:2px solid #e2ecf4;margin-top:.75rem;padding-top:.75rem}.invoice-review__financial-item{flex:1 1 140px;display:flex;flex-direction:column;gap:.3rem;padding:.75rem 1rem;border-right:1px solid #e2ecf4}.invoice-review__financial-item:last-child{border-right:none}.invoice-review__financial-item--reconciliation{background:#f0fdf4}.invoice-review__financial-item--warn{background:#fff7ed}.invoice-review__financial-label{display:flex;flex-direction:column;gap:.1rem;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#627d98}.invoice-review__financial-sublabel{font-size:.68rem;font-weight:500;letter-spacing:0;text-transform:none;color:#9ab5cc}.invoice-review__financial-value{display:flex;flex-direction:column;gap:.15rem;font-size:1rem;font-weight:600;color:#102a43}.invoice-review__financial-value--primary{font-size:1.1rem;font-weight:700}.invoice-review__financial-value--discount{color:#c05621}.invoice-review__financial-value--balanced{color:#059669}.invoice-review__financial-value--unbalanced{color:#dc2626}.invoice-review__reconciliation-status{font-size:.78rem;font-weight:700;letter-spacing:.02em}.invoice-review__confirmed-banner,.invoice-review__voided-banner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.invoice-review__confirmed-icon{font-size:1.75rem;color:#059669;line-height:1}.invoice-review__voided-icon{font-size:1.75rem;color:#dc2626;line-height:1}.invoice-review__confirmed-hint{margin:.15rem 0 0;font-size:.875rem;color:#486581}.supplier-invoice-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}.supplier-invoice-badge--pending_review{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.supplier-invoice-badge--confirmed{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.supplier-invoice-badge--voided{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.upload-mode-toggle{display:flex;gap:0;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;width:100%}.upload-mode-toggle__btn{flex:1;padding:.55rem .75rem;background:#f8fafc;border:none;font-size:.875rem;font-weight:500;color:#486581;cursor:pointer;transition:background .15s,color .15s;text-align:center}.upload-mode-toggle__btn:not(:last-child){border-right:1px solid #cbd5e1}.upload-mode-toggle__btn--active{background:#1a3c5e;color:#fff}.upload-mode-toggle__btn:hover:not(.upload-mode-toggle__btn--active){background:#e2eaf3;color:#1a3c5e}.upload-mode-toggle__hint{margin:.25rem 0 0;font-size:.8rem;color:#7896b2;line-height:1.45}.supplier-detection{display:flex;flex-direction:column;gap:.85rem;padding:.25rem 0}.supplier-detection__badge{display:inline-flex;align-self:flex-start;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em}.supplier-detection__badge--matched{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.supplier-detection__badge--new{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.supplier-detection__badge--none{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}.supplier-detection__label{margin:0;font-size:.95rem;color:#243b53}.supplier-detection__hint{margin:0;font-size:.875rem;color:#486581;line-height:1.5}.supplier-detection__meta{margin:-.25rem 0 0;font-size:.8rem;color:#7896b2}.supplier-detection__fields{margin:0;display:flex;flex-direction:column;gap:.4rem;background:#f8fafc;border:1px solid #e2eaf3;border-radius:8px;padding:.75rem 1rem}.supplier-detection__field{display:flex;gap:.5rem;font-size:.875rem}.supplier-detection__field dt{min-width:120px;font-weight:600;color:#486581;flex-shrink:0}.supplier-detection__field dd{margin:0;color:#243b53;word-break:break-word}.supplier-form__secondary{padding:.6rem 1.25rem;background:#f0f4f8;border:1px solid #cbd5e1;border-radius:8px;font-size:.9rem;font-weight:600;color:#1a3c5e;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.supplier-form__secondary:hover{background:#e2eaf3;border-color:#b0c4d8}.supplier-form__secondary:disabled{opacity:.6;cursor:default}.supplier-form__actions--column{flex-direction:column;align-items:stretch}.supplier-form__actions--column .supplier-form__submit,.supplier-form__actions--column .supplier-form__secondary,.supplier-form__actions--column .supplier-form__cancel{width:100%;text-align:center;justify-content:center}h1,h2,h3,h4{color:var(--vds-colour-heading);letter-spacing:-.025em}a{color:var(--vds-colour-purple)}a:hover{color:var(--vds-colour-charcoal)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--vds-colour-focus-solid);outline-offset:2px;box-shadow:0 0 0 4px var(--vds-colour-focus)}.app-shell{display:grid;grid-template-columns:var(--vds-sidebar-width) minmax(0,1fr);width:100vw;max-width:100vw;min-height:100vh;min-height:100dvh;margin:0;padding:0;overflow-x:hidden;background:radial-gradient(circle at 42% 0%,rgba(118,2,163,.08),transparent 24rem),linear-gradient(180deg,#fbf8ff,#f7f4fb 52%,#f5f8fb)}.app-shell__sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:var(--vds-space-5);height:100vh;height:100dvh;min-width:0;padding:1.45rem 1rem 1rem;overflow:hidden;color:#fff;background:radial-gradient(circle at 22% 8%,rgba(255,255,255,.16),transparent 8rem),radial-gradient(circle at 88% 82%,rgba(0,142,170,.24),transparent 11rem),linear-gradient(180deg,#35106c,#4b1290 40%,#250b64);box-shadow:18px 0 48px #23182729}.app-shell__workspace{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;width:100%}.app-shell__header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--vds-space-3);flex-wrap:wrap;min-width:0;min-height:var(--vds-header-height);padding:.85rem 1.5rem;border:0;border-bottom:1px solid rgba(219,210,226,.78);border-radius:0;background:#ffffffeb;box-shadow:0 8px 28px #2318270d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.app-shell__brand{display:flex;align-items:center;gap:.75rem;flex:0 0 auto;min-width:0}.app-shell__logo-mark{display:inline-grid;place-items:center;width:2.55rem;height:2.55rem;border-radius:.85rem;background:linear-gradient(135deg,#fffffff2,#ffffff94),linear-gradient(135deg,var(--vds-colour-teal),var(--vds-colour-orange));color:#4b1290;font-weight:900;box-shadow:inset 0 0 0 1px #ffffff61,0 12px 28px #0000002e}.app-shell__eyebrow{margin:0;color:#ffffffb3;font-size:.58rem;line-height:1;letter-spacing:.13em;text-transform:uppercase}.app-shell__brand h1{margin:0;color:#fff;font-size:1.55rem;line-height:.95;letter-spacing:-.055em;text-transform:lowercase}.app-shell__header-controls{display:flex;align-items:center;gap:var(--vds-space-3);min-width:0}.app-shell__header-controls--primary{flex:0 1 auto}.app-shell__header-controls--secondary{flex:0 1 auto;justify-content:flex-end}.app-shell__selector,.app-shell__clinic-control,.app-shell__date-range,.app-shell__icon-button,.app-shell__user{display:flex;align-items:center;min-height:2.65rem;border:1px solid rgba(223,216,229,.92);border-radius:.85rem;background:#fff;color:var(--vds-colour-charcoal);box-shadow:0 6px 18px #4a30410e}.app-shell__selector,.app-shell__clinic-control{position:relative;gap:.65rem;padding:.45rem .75rem}.app-shell__selector--static{min-width:13.2rem}.app-shell__selector-icon{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.55rem;background:#7602a317;color:var(--vds-colour-purple);font-size:.66rem;font-weight:850}.app-shell__selector-value,.app-shell__selector-label,.app-shell__profile-name,.app-shell__profile-role{display:block;min-width:0}.app-shell__selector-value,.app-shell__profile-name{color:var(--vds-colour-heading);font-size:.82rem;font-weight:700;line-height:1.15}.app-shell__selector-label,.app-shell__profile-role{color:var(--vds-colour-muted);font-size:.67rem;line-height:1.15}.app-shell__clinic-label,.app-shell__nav-heading,.analytics-card__stat dt,.po-summary__stat dt,.billing-kpi-bar__stat dt,.supplier-kpi-bar__stat dt,.supplier-detail__overview-item dt,.invoice-review__summary-item dt,.product-form__section legend,.supplier-form__label,.billing-filters__label,.supplier-search-bar__label{color:var(--vds-colour-muted);font-size:var(--vds-font-size-xs);font-weight:700;letter-spacing:.1em}.app-shell__clinic-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell__clinic-select,.app-shell__clinic-fixed{width:100%;min-width:9.8rem;border:0;border-radius:0;padding:0;background:transparent;color:var(--vds-colour-heading);font-size:.82rem;font-weight:700;box-shadow:none}.app-shell__clinic-error{position:absolute;top:100%;left:0;max-width:16rem;color:var(--vds-colour-danger);font-size:.72rem}.app-shell__search{flex:1 1 24rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;min-width:14rem;min-height:2.65rem;padding:0 .85rem;border:1px solid rgba(223,216,229,.92);border-radius:.85rem;background:#fff;box-shadow:0 6px 18px #4a30410b}.app-shell__search span{color:var(--vds-colour-muted);font-size:.78rem}.app-shell__search input{width:100%;height:auto;min-height:2rem;border:0;padding:0;background:transparent;box-shadow:none}.app-shell__search input:focus{outline:none}.app-shell__search kbd{border:1px solid rgba(223,216,229,.96);border-radius:.45rem;padding:.15rem .38rem;color:var(--vds-colour-muted);background:#faf7fb;font-size:.68rem;font-family:var(--vds-font-family)}.app-shell__date-range,.app-shell__icon-button,.app-shell__logout{cursor:pointer}.app-shell__date-range{padding:0 .85rem;font-size:.82rem;font-weight:600}.app-shell__icon-button{position:relative;justify-content:center;width:2.65rem;border-radius:50%;font-weight:700}.app-shell__notification-dot{position:absolute;top:.45rem;right:.45rem;width:.52rem;height:.52rem;border:2px solid #ffffff;border-radius:50%;background:var(--vds-colour-danger)}.app-shell__user{gap:.55rem;padding:.28rem .35rem .28rem .4rem}.app-shell__profile{display:flex;align-items:center;gap:.55rem;max-width:13.5rem;color:inherit;text-decoration:none}.app-shell__avatar{display:inline-grid;place-items:center;width:2.05rem;height:2.05rem;flex:0 0 auto;border-radius:50%;background:linear-gradient(135deg,var(--vds-colour-charcoal),var(--vds-colour-purple));color:#fff;font-size:.72rem;font-weight:700}.app-shell__profile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell__user-link,.app-shell__logout{min-height:2rem;border:0;border-radius:.6rem;padding:0 .55rem;background:#f8f4fa;color:var(--vds-colour-muted);font-size:.78rem;font-weight:600;text-decoration:none}.app-shell__selector:hover,.app-shell__clinic-control:hover,.app-shell__date-range:hover,.app-shell__icon-button:hover,.app-shell__user:hover,.app-shell__user-link:hover,.app-shell__logout:hover{border-color:var(--vds-colour-border-strong);background:#f7f0fb;color:var(--vds-colour-purple)}.app-shell__nav{flex:1 1 auto;display:block;width:calc(100% + .35rem);min-width:0;margin:0 -.35rem 0 0;padding-right:.35rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}.app-shell__nav-group{display:grid;gap:.45rem;min-width:0;margin-bottom:1.25rem}.app-shell__nav-links{display:grid;gap:.28rem;min-width:0}.app-shell__nav-heading{color:#ffffff7a;font-size:.66rem;letter-spacing:.12em}.app-shell__nav-links a{position:relative;display:flex;align-items:center;gap:.68rem;min-height:2.45rem;padding:.55rem .72rem;border:1px solid transparent;border-radius:.72rem;background:transparent;color:#ffffffd1;font-size:.86rem;font-weight:500;min-width:0;overflow-wrap:anywhere}.app-shell__nav-icon{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;flex:0 0 auto;border:1px solid rgba(255,255,255,.18);border-radius:.42rem;color:#ffffffb8}.app-shell__nav-links a:hover{background:#ffffff17;color:#fff;transform:translate(2px)}.app-shell__nav-links a.active{border-color:#ffffff2e;background:linear-gradient(135deg,#7602a3f5,#8d37d6f0);color:#fff;box-shadow:0 12px 28px #10033047}.app-shell__nav-links a.active .app-shell__nav-icon{border-color:#ffffff6b;background:#ffffff24;color:#fff}.app-shell__sidebar-scope{display:grid;gap:.18rem;padding:.85rem;border:1px solid rgba(255,255,255,.14);border-radius:.95rem;background:#ffffff14;color:#ffffffad;font-size:.74rem}.app-shell__sidebar-scope strong{color:#fff;font-size:.92rem}.app-shell__sidebar-scope-label{color:#ffffff7a;font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.app-shell__drawer-clinic{display:none}.app-shell__drawer-clinic-label{display:block;color:#ffffff8c;font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.45rem}.app-shell__drawer-clinic-select{width:100%;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.22);border-radius:.75rem;background:#ffffff1a;color:#fff;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.app-shell__drawer-clinic-select:disabled{opacity:.55;cursor:not-allowed}.app-shell__drawer-clinic-select option{background:#2d1040;color:#fff}.app-shell__main{align-content:start;gap:var(--vds-space-5);min-width:0;width:100%;max-width:100%;overflow-x:hidden;padding:1.35rem 1.5rem var(--vds-space-10)}.status-card,.auth-card,.analytics-card,.lf-summary__kpi,.po-summary,.po-workflow-callout,.billing-kpi-bar,.supplier-kpi-bar,.supplier-detail__section,.mf-summary-card,.mf-alert,.mf-chart,.mf-disclaimer,.pr-clock-card,.lv-request-form,.supplier-modal,.billing-modal,.roster-modal,.supplier-detection__fields,.upload-supplier-readonly__name,.upload-dropzone{border:var(--vds-card-border);border-radius:var(--vds-card-radius);background:var(--vds-card-background);box-shadow:var(--vds-shadow-xs);min-width:0;overflow-wrap:anywhere}.status-card,.auth-card,.analytics-card,.supplier-detail__section{padding:var(--vds-card-padding);min-width:0}.status-card__header,.roster-cal__header,.invoice-review__summary-header,.invoice-review__lines-header{gap:var(--vds-space-4);min-width:0;flex-wrap:wrap}.status-card h2,.analytics-card__title,.supplier-detail__section-title,.lf-section__heading,.mf-section__heading,.pr-section__title,.cs-meta__heading,.billing-modal__title,.roster-modal__title,.supplier-modal__title{color:var(--vds-colour-heading)}.inventory-page__subtitle,.auth-card__hint,.scan-form__hint,.po-summary__hint,.po-empty__hint,.billing-empty__hint,.supplier-empty__hint,.lf-summary__kpi-sub,.mf-summary-card__sub,.mf-chart__sub,.invoice-review__approval-hint,.supplier-detection__hint{color:var(--vds-colour-muted)}.button-link,.button-primary,.auth-form button,.scan-form__submit,.product-form__actions button,.reset-password-form button,.roster-form__submit-btn,.billing-settlement-form__submit,.supplier-form__submit,.invoice-review__approve-btn,.pr-action-btn--submit,.mf-reorder-btn--primary{display:inline-flex;align-items:center;justify-content:center;min-height:var(--vds-control-height);padding:.62rem 1rem;border:1px solid transparent;border-radius:var(--vds-control-radius);background:linear-gradient(135deg,var(--vds-colour-purple),#5d2384);color:#fff;font-weight:600;text-decoration:none;box-shadow:0 10px 24px #7602a324}.button-link:hover,.button-primary:hover:not(:disabled),.auth-form button:hover:not(:disabled),.scan-form__submit:hover:not(:disabled),.product-form__actions button:hover:not(:disabled),.reset-password-form button:hover:not(:disabled),.roster-form__submit-btn:hover:not(:disabled),.billing-settlement-form__submit:hover:not(:disabled),.supplier-form__submit:hover:not(:disabled),.invoice-review__approve-btn:hover:not(:disabled),.pr-action-btn--submit:hover:not(:disabled),.mf-reorder-btn--primary:hover{background:linear-gradient(135deg,#8b1ab6,var(--vds-colour-purple));color:#fff;transform:translateY(-1px)}.link-button,.billing-filters__clear,.supplier-search-bar__clear,.roster-nav-btn,.roster-today-btn,.billing-settlement-form__cancel,.supplier-form__cancel,.supplier-form__secondary,.cs-actions__reset,.pr-inline-form__cancel,.supplier-edit-btn,.supplier-view-btn,.billing-settle-btn,.mf-table-pagination__btn,.mf-horizon__btn,.mf-alerts__filter-btn{min-height:2.25rem;border:1px solid var(--vds-colour-border);border-radius:var(--vds-control-radius);background:var(--vds-colour-panel);color:var(--vds-colour-charcoal);font-weight:500;text-decoration:none}.link-button:hover,.billing-filters__clear:hover,.supplier-search-bar__clear:hover,.roster-nav-btn:hover,.roster-today-btn:hover,.billing-settlement-form__cancel:hover,.supplier-form__cancel:hover,.supplier-form__secondary:hover,.cs-actions__reset:hover,.pr-inline-form__cancel:hover,.supplier-edit-btn:hover,.supplier-view-btn:hover,.billing-settle-btn:hover,.mf-table-pagination__btn:not(:disabled):hover,.mf-horizon__btn:hover,.mf-alerts__filter-btn:hover{border-color:var(--vds-colour-border-strong);background:var(--vds-colour-hover);color:var(--vds-colour-purple)}:where(.auth-form input,.scan-form__field input,.scan-form__field select,.product-form input,.product-form select,.reset-password-form input,.roster-form__control,.billing-filters__control,.billing-settlement-form__control,.supplier-search-bar__control,.supplier-form__control,.pr-inline-form__input,.pr-inline-form__select,.pr-clock-form__control,.lv-request-form__control,.mf-table-controls__search,.lf-controls__number,.invoice-review__edit-input){min-height:var(--vds-control-height);padding:.58rem var(--vds-control-padding-x);border:1px solid var(--vds-colour-border-strong);border-radius:var(--vds-control-radius);background:var(--vds-colour-panel);color:var(--vds-colour-body);box-shadow:inset 0 1px #ffffffb3}:where(.auth-form input,.scan-form__field input,.scan-form__field select,.product-form input,.product-form select,.reset-password-form input,.roster-form__control,.billing-filters__control,.billing-settlement-form__control,.supplier-search-bar__control,.supplier-form__control,.pr-inline-form__input,.pr-inline-form__select,.pr-clock-form__control,.lv-request-form__control,.mf-table-controls__search,.lf-controls__number,.invoice-review__edit-input):focus{border-color:#7602a373;outline:0;box-shadow:0 0 0 4px var(--vds-colour-focus)}.billing-filters,.supplier-search-bar,.mf-table-controls,.inventory-page__actions,.po-batch-actions,.pr-row-actions,.billing-settlement-form__actions,.supplier-form__actions,.invoice-review__approval-actions{gap:var(--vds-space-3)}.inventory-table-wrap,.billing-table-wrap,.supplier-table-wrap,.pr-table-wrap,.lf-table-wrapper,.mf-table-wrapper{overflow-x:auto;border:var(--vds-card-border);border-radius:var(--vds-radius-lg);background:var(--vds-colour-panel);box-shadow:var(--vds-shadow-xs)}:where(.inventory-table,.billing-table,.supplier-table,.pr-table,.lf-table,.mf-table){border-collapse:separate;border-spacing:0;font-size:var(--vds-font-size-sm)}:where(.inventory-table th,.inventory-table td,.billing-table__th,.billing-table__td,.supplier-table__th,.supplier-table__td,.pr-table__th,.pr-table__td,.lf-table__th,.lf-table__row td,.mf-table__th,.mf-table td){padding:var(--vds-table-cell-padding-y) var(--vds-table-cell-padding-x);border-bottom-color:var(--vds-colour-border)}:where(.inventory-table th,.billing-table__th,.supplier-table__th,.pr-table__th,.lf-table__th,.mf-table__th){background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted);font-size:var(--vds-font-size-xs);font-weight:700}:where(.inventory-table tr:hover,.billing-table__row:hover,.supplier-table__row:hover,.pr-table__row:hover .pr-table__td,.lf-table__row:hover,.mf-table__row:hover){background:#7602a30b}:where(.inventory-badge,.po-badge,.billing-badge,.supplier-badge,.supplier-invoice-badge,.pr-badge,.lv-badge,.mf-status-badge,.mf-alert__badge,.match-badge,.ocr-confidence-badge,.cs-status-badge,.cs-tier-badge,.my-shift__badge,.lf-role-badge){display:inline-flex;align-items:center;justify-content:center;min-height:1.55rem;padding:.22rem .62rem;border-radius:var(--vds-radius-pill);font-size:var(--vds-font-size-xs);font-weight:600;letter-spacing:.045em;line-height:1}.inventory-badge--ok,.po-badge--submitted,.billing-badge--paid,.supplier-badge--active,.supplier-invoice-badge--confirmed,.pr-badge--approved,.pr-badge--present,.lv-badge--approved,.cs-status-badge--active,.match-badge--matched,.supplier-detection__badge--matched{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.inventory-badge--low,.billing-badge--overdue,.pr-badge--rejected,.lv-badge--rejected,.mf-status-badge--critical,.supplier-detection__badge--none{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.match-badge--unmatched,.po-badge--draft,.billing-badge--partially_paid,.supplier-invoice-badge--pending_review,.pr-badge--requires_amendment,.lv-badge--pending,.mf-status-badge--reorder-required,.mf-status-badge--low-soon,.supplier-detection__badge--new,.inventory-badge--low{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.analytics-cards-grid,.lf-summary__kpis,.mf-summary-cards,.mf-alerts__grid,.mf-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--vds-space-4);min-width:0;width:100%}.status-card .analytics-cards-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.analytics-card,.daily-hub__priority-card,.mf-summary-card,.lf-summary__kpi{display:flex;flex-direction:column;gap:var(--vds-space-2);min-width:0;min-height:auto;overflow:visible;text-decoration:none;overflow-wrap:anywhere}.daily-hub__priority-card:hover,.analytics-card:hover{border-color:#7602a329;box-shadow:var(--vds-shadow-sm);transform:translateY(-1px)}.analytics-card__value,.po-summary__stat dd,.billing-kpi-bar__stat dd,.supplier-kpi-bar__stat dd,.lf-summary__kpi-value,.mf-summary-card__value{color:var(--vds-colour-heading);font-variant-numeric:tabular-nums;max-width:100%;overflow-wrap:anywhere;white-space:normal}.analytics-card__value--primary{color:var(--vds-colour-purple)}.analytics-card__value--positive,.billing-kpi-bar__dd--paid,.supplier-kpi-bar__dd--active{color:var(--vds-colour-success)}.analytics-card__value--warning,.billing-kpi-bar__dd--outstanding,.supplier-kpi-bar__dd--pending{color:var(--vds-colour-warning)}.analytics-card__value--danger,.billing-kpi-bar__dd--overdue,.inventory-summary__alert{color:var(--vds-colour-danger)}.executive-dashboard{position:relative;display:grid;gap:1rem;width:100%;color:var(--vds-colour-heading)}.executive-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem}.executive-hero h2{margin:0;color:#201326;font-size:clamp(1.55rem,2vw,2rem);line-height:1.08;letter-spacing:-.045em}.executive-hero p,.dashboard-panel p,.dashboard-placeholder-note{margin:0;color:#6b5b6f;font-size:.82rem}.executive-hero__brief-button{min-height:2.55rem;border:1px solid rgba(118,2,163,.18);border-radius:.85rem;padding:0 1rem;background:#fff;color:var(--vds-colour-purple);font-weight:800;box-shadow:0 8px 22px #4a304114;cursor:pointer}.executive-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.9rem}.executive-kpi,.dashboard-panel,.executive-brief{min-width:0;border:1px solid rgba(230,222,234,.92);border-radius:1rem;background:#fffffff0;box-shadow:0 10px 28px #2318270e}.executive-kpi{position:relative;display:grid;gap:.55rem;min-height:9.6rem;padding:1rem;overflow:hidden;color:inherit;text-decoration:none}.executive-kpi:hover,.dashboard-panel:hover,.action-centre-card:hover,.activity-item:hover,.ai-insight:hover,.executive-hero__brief-button:hover{border-color:#7602a32e;box-shadow:0 16px 38px #23182717;transform:translateY(-2px)}.executive-kpi__header{display:flex;align-items:center;gap:.65rem}.executive-kpi__header h3{margin:0;color:#3c2a40;font-size:.82rem;font-weight:780}.executive-kpi__icon{display:inline-grid;place-items:center;width:2.45rem;height:2.45rem;flex:0 0 auto;border-radius:50%;font-size:.7rem;font-weight:900}.executive-kpi__icon--green{background:#e8f8ef;color:#159463}.executive-kpi__icon--purple{background:#f4e7fb;color:var(--vds-colour-purple)}.executive-kpi__icon--orange{background:#fff0e7;color:var(--vds-colour-orange)}.executive-kpi__icon--teal{background:#e7f8fb;color:var(--vds-colour-teal)}.executive-kpi__icon--red{background:#fff0f0;color:#d92d20}.executive-kpi__value{margin:.15rem 0 0;color:#211326;font-size:clamp(1.55rem,2.4vw,2.35rem);line-height:1;font-weight:860;letter-spacing:-.055em}.executive-kpi__trend{margin:0;font-size:.74rem;font-weight:740}.executive-kpi__trend--green{color:#159463}.executive-kpi__trend--purple{color:var(--vds-colour-purple)}.executive-kpi__trend--orange{color:var(--vds-colour-orange)}.executive-kpi__trend--teal{color:var(--vds-colour-teal)}.executive-kpi__trend--red{color:#d92d20}.executive-kpi__indicator{position:absolute;right:1rem;bottom:.75rem;left:1rem;height:.18rem;border-radius:var(--vds-radius-pill)}.executive-kpi__indicator--green{background:#159463}.executive-kpi__indicator--purple{background:var(--vds-colour-purple)}.executive-kpi__indicator--orange{background:var(--vds-colour-orange)}.executive-kpi__indicator--teal{background:var(--vds-colour-teal)}.executive-kpi__indicator--red{background:#d92d20}.executive-brief{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1rem;padding:.72rem 1rem}.executive-brief__title,.executive-brief__items,.executive-brief__item{display:flex;align-items:center}.executive-brief__title{gap:.55rem}.executive-brief__title span{color:var(--vds-colour-purple);font-size:1.2rem}.executive-brief__title h2,.dashboard-panel__header h2{margin:0;color:#2a1a2e;font-size:.98rem;font-weight:700;letter-spacing:-.025em}.executive-brief__items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.executive-brief__item{gap:.38rem;min-width:0;font-size:.72rem;font-weight:500;color:#3f3144}.executive-brief__dot{width:.42rem;height:.42rem;flex:0 0 auto;border-radius:50%}.executive-brief__dot--green{background:#12b76a}.executive-brief__dot--orange{background:#f79009}.executive-brief__dot--red{background:#f04438}.executive-brief__dot--blue{background:#2e90fa}.executive-brief__dot--purple{background:var(--vds-colour-purple)}.executive-main-grid{display:grid;grid-template-columns:minmax(24rem,1.28fr) minmax(18rem,.95fr) minmax(16rem,.72fr);gap:1rem;align-items:stretch}.executive-bottom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.dashboard-panel{display:grid;align-content:start;gap:.85rem;padding:1rem;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.dashboard-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem}.dashboard-panel__header p{font-size:.72rem}.dashboard-panel__link,.dashboard-panel__footer-link{color:var(--vds-colour-purple);font-size:.72rem;font-weight:700;text-decoration:none}.clinic-health-table{display:grid;gap:.18rem}.clinic-health-table__head,.clinic-health-row{display:grid;grid-template-columns:minmax(9rem,1.35fr) .5fr repeat(4,.72fr);gap:.65rem;align-items:center}.clinic-health-table__head{padding:0 .45rem .35rem;color:#7a6b7f;font-size:.64rem;font-weight:700}.clinic-health-row{min-height:2.75rem;border-radius:.72rem;padding:.34rem .45rem;color:inherit;text-decoration:none}.clinic-health-row:hover{background:#faf7fc}.clinic-health-row__clinic{display:flex;align-items:center;gap:.5rem;min-width:0;font-size:.76rem;font-weight:700}.clinic-health-row__icon{display:inline-grid;place-items:center;width:1.62rem;height:1.62rem;flex:0 0 auto;border-radius:.45rem;font-size:.52rem;font-weight:900}.clinic-health-row__icon--good{background:#e8f8ef;color:#159463}.clinic-health-row__icon--warn{background:#fff4df;color:#b54708}.clinic-health-row__icon--risk{background:#fff0f0;color:#d92d20}.clinic-health-row__score{font-size:1rem}.clinic-health-row__score--good,.clinic-health-row__delta--good{color:#159463}.clinic-health-row__score--warn,.clinic-health-row__delta--warn{color:#b54708}.clinic-health-row__score--risk,.clinic-health-row__delta--risk{color:#d92d20}.clinic-health-row__metric{display:grid;gap:.22rem;color:#37263d;font-size:.72rem;font-weight:780}.clinic-health-row__metric span{display:block;height:.14rem;border-radius:var(--vds-radius-pill);background:linear-gradient(90deg,var(--vds-colour-teal),#20c997)}.clinic-health-row__delta{font-size:.72rem;font-weight:700}.spend-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.spend-summary div{display:grid;gap:.12rem}.spend-summary strong{color:#241529;font-size:1.05rem;letter-spacing:-.04em}.spend-summary span{color:#7a6b7f;font-size:.68rem;font-weight:740}.spend-summary__variance strong{color:#d92d20}.spend-chart{display:grid;gap:.7rem;min-height:12rem}.spend-chart__legend{display:flex;justify-content:center;gap:1rem;color:#6b5b6f;font-size:.68rem;font-weight:740}.spend-chart__legend span{display:inline-flex;align-items:center;gap:.35rem}.spend-chart__legend i{width:1.3rem;height:.12rem;border-radius:var(--vds-radius-pill);background:var(--vds-colour-teal)}.spend-chart__legend span+span i{background:repeating-linear-gradient(90deg,#9a8fa0 0 .22rem,transparent .22rem .38rem)}.spend-chart__grid{display:grid;grid-template-columns:repeat(12,1fr);align-items:end;gap:.45rem;min-height:9.5rem;padding:.75rem .4rem 0;border-bottom:1px solid #e8dfea;background:linear-gradient(#f2edf5 1px,transparent 1px) 0 0 / 100% 25%}.spend-chart__bar{display:block;min-height:1rem;border-radius:.5rem .5rem 0 0;background:linear-gradient(180deg,#008eaa,#5ed0df)}.action-centre__count{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:#f04438;color:#fff;font-size:.68rem;font-weight:700}.action-centre__list,.activity-list,.ai-insights-list{display:grid;gap:.52rem}.action-centre-card,.activity-item,.ai-insight{display:grid;align-items:center;min-width:0;border-radius:.78rem;color:inherit;text-decoration:none;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.action-centre-card{grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;padding:.55rem}.action-centre-card:hover,.activity-item:hover{background:#faf7fc}.action-centre-card__icon{display:inline-grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:.55rem;font-size:.58rem;font-weight:900}.action-centre-card__icon--red,.action-centre-card__badge--red{background:#fff0f0;color:#d92d20}.action-centre-card__icon--orange,.action-centre-card__badge--orange{background:#fff4df;color:#b54708}.action-centre-card__icon--purple,.action-centre-card__badge--purple{background:#f4e7fb;color:var(--vds-colour-purple)}.action-centre-card__icon--blue,.action-centre-card__badge--blue{background:#eaf4ff;color:#1570ef}.action-centre-card__icon--teal,.action-centre-card__badge--teal{background:#e7f8fb;color:var(--vds-colour-teal)}.action-centre-card strong,.activity-item strong,.ai-insight strong{display:block;color:#2a1a2e;font-size:.78rem;line-height:1.2}.action-centre-card small,.activity-item small,.ai-insight small{display:block;color:#7a6b7f;font-size:.66rem}.action-centre-card__badge{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;border-radius:var(--vds-radius-pill);padding:0 .35rem;font-size:.66rem;font-weight:700}.activity-item{grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;padding:.5rem}.activity-item__avatar{width:1.65rem;height:1.65rem;border-radius:50%}.activity-item__avatar--green{background:#12b76a}.activity-item__avatar--purple{background:var(--vds-colour-purple)}.activity-item__avatar--blue{background:#2e90fa}.activity-item__avatar--orange{background:#f79009}.activity-item__avatar--red{background:#f04438}.activity-item time{color:#7a6b7f;font-size:.64rem;white-space:nowrap}.dashboard-panel__header h2 span{margin-left:.35rem;border-radius:var(--vds-radius-pill);padding:.1rem .38rem;background:#e7f8fb;color:var(--vds-colour-teal);font-size:.58rem;vertical-align:middle}.ai-insight{grid-template-columns:minmax(0,1fr) auto;gap:.55rem;padding:.62rem .72rem}.ai-insight--green{background:#ecfdf3}.ai-insight--purple{background:#f5efff}.ai-insight--blue{background:#eff8ff}.ai-insight--orange{background:#fff7ed}.operations-timeline{position:relative;display:grid;gap:.65rem;margin:0;padding:.15rem 0 .15rem .15rem;list-style:none}.operations-timeline:before{content:"";position:absolute;top:.65rem;bottom:.65rem;left:3.45rem;width:1px;background:#e6deea}.operations-timeline__item{position:relative;display:grid;grid-template-columns:2.65rem minmax(0,1fr);gap:1.15rem;align-items:center;color:#3f3144;font-size:.72rem;font-weight:500}.operations-timeline__item:before{content:"";position:absolute;left:3.08rem;width:.48rem;height:.48rem;border:2px solid #ffffff;border-radius:50%;background:var(--vds-colour-purple);z-index:1}.operations-timeline__item--green:before{background:#12b76a}.operations-timeline__item--orange:before{background:#f79009}.operations-timeline__item--blue:before{background:#2e90fa}.operations-timeline__item--purple:before{background:var(--vds-colour-purple)}.operations-timeline__item--red:before{background:#f04438}.operations-timeline time{color:#7a6b7f;font-size:.66rem;font-weight:700}.executive-ai-fab{position:fixed;right:1.7rem;bottom:1.7rem;z-index:30;display:inline-grid;place-items:center;width:3.4rem;height:3.4rem;border:0;border-radius:50%;background:linear-gradient(135deg,#7602a3,#4a17d7);color:#fff;font-size:1.45rem;box-shadow:0 18px 42px #4c158c57;cursor:pointer}.executive-ai-fab:hover{transform:translateY(-3px) scale(1.02)}.executive-dashboard__meta{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.lf-summary__kpi--primary{background:radial-gradient(circle at top right,rgba(0,142,170,.32),transparent 13rem),linear-gradient(135deg,var(--vds-colour-purple),var(--vds-colour-charcoal))}.inventory-notice,.inventory-receiving-callout,.po-workflow-callout,.lf-controls,.billing-modal__invoice-summary,.upload-dropzone,.supplier-detection__fields{background:var(--vds-colour-panel-subtle);border-color:var(--vds-colour-border)}.inventory-notice--info,.inventory-receiving-callout,.po-workflow-callout{color:var(--vds-colour-info)}.status-card__error,.supplier-form__error,.billing-settlement-form__error,.pr-inline-form__error,.pr-clock-form__error,.lv-request-form__error,.upload-error-banner{color:var(--vds-colour-danger)}.vds-kpi-card{position:relative;display:grid;gap:var(--vds-space-3);min-width:0;padding:var(--vds-card-padding);border:var(--vds-card-border);border-radius:var(--vds-card-radius);background:var(--vds-card-background);box-shadow:var(--vds-shadow-xs);overflow:visible;overflow-wrap:anywhere}.vds-kpi-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--vds-kpi-accent, var(--vds-colour-purple))}.vds-kpi-card__header{display:flex;align-items:center;gap:var(--vds-space-3);min-width:0}.vds-kpi-card__icon{display:inline-flex;align-items:center;justify-content:center;width:var(--vds-icon-size-lg);height:var(--vds-icon-size-lg);border-radius:var(--vds-radius-md);background:color-mix(in srgb,var(--vds-kpi-accent, var(--vds-colour-purple)) 12%,white);color:var(--vds-kpi-accent, var(--vds-colour-purple))}.vds-kpi-card__title{margin:0;color:var(--vds-colour-muted);font-size:var(--vds-font-size-xs);font-weight:780;letter-spacing:.1em;text-transform:uppercase}.vds-kpi-card__body{display:flex;align-items:baseline;justify-content:space-between;gap:var(--vds-space-3);min-width:0;flex-wrap:wrap}.vds-kpi-card__value{margin:0;min-width:0;color:var(--vds-colour-heading);font-size:clamp(1.45rem,4vw,var(--vds-font-size-2xl));font-weight:780;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.vds-kpi-card__trend{display:inline-flex;align-items:center;min-height:1.55rem;padding:.2rem .55rem;border-radius:var(--vds-radius-pill);background:color-mix(in srgb,var(--vds-kpi-accent, var(--vds-colour-purple)) 10%,white);color:var(--vds-kpi-accent, var(--vds-colour-purple));font-size:var(--vds-font-size-xs);font-weight:600}.vds-kpi-card__secondary{margin:0;color:var(--vds-colour-muted);font-size:var(--vds-font-size-sm);overflow-wrap:anywhere}.vds-kpi-card--neutral{--vds-kpi-accent: var(--vds-colour-charcoal)}.vds-kpi-card--positive{--vds-kpi-accent: var(--vds-colour-success)}.vds-kpi-card--warning{--vds-kpi-accent: var(--vds-colour-warning)}.vds-kpi-card--danger{--vds-kpi-accent: var(--vds-colour-danger)}.vds-kpi-card--info,.vds-kpi-card--teal{--vds-kpi-accent: var(--vds-colour-teal)}.vds-kpi-card--purple{--vds-kpi-accent: var(--vds-colour-purple)}@media(max-width:980px){:root{--vds-sidebar-width: 224px}.app-shell{overflow-x:hidden}.app-shell__sidebar{padding:1.1rem .8rem .8rem}.app-shell__header{align-items:stretch;padding:.8rem 1rem}.app-shell__header-controls--primary,.app-shell__header-controls--secondary{flex:1 1 100%;justify-content:space-between}.app-shell__search{order:3;flex-basis:100%}.executive-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-kpi-row .executive-kpi:last-child{grid-column:1 / -1}.executive-brief{grid-template-columns:1fr}.executive-brief__items{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-main-grid,.executive-bottom-grid{grid-template-columns:1fr}.clinic-health-table__head,.clinic-health-row{grid-template-columns:minmax(10rem,1.4fr) .5fr repeat(4,minmax(4.5rem,.7fr));min-width:42rem}.clinic-health-table{overflow-x:auto}.scan-form__row--scanner{grid-template-columns:minmax(220px,1fr) auto minmax(140px,.5fr) minmax(88px,.2fr)}.scan-form__row--scanner .scan-form__submit{grid-column:1 / -1;width:100%}.scan-product-card__details,.scan-create-modal__grid{grid-template-columns:1fr}}@media(max-width:640px){:root{--vds-card-padding: 1rem}.app-shell{grid-template-columns:1fr}.app-shell__sidebar{position:fixed;top:0;left:0;z-index:100;width:min(296px,88vw);height:100vh;height:100dvh;border-radius:0;transform:translate(-100%);transition:transform .22s ease;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-shell__brand{justify-content:flex-start}.app-shell__nav{max-height:none;overflow-y:auto}.app-shell__header{position:relative;padding:.85rem}.app-shell__header-controls,.app-shell__user,.app-shell__profile{width:100%}.app-shell__selector,.app-shell__clinic-control,.app-shell__date-range,.app-shell__user{flex:1 1 100%}.app-shell__icon-button{flex:1 1 0;border-radius:.85rem}.app-shell__main{padding:1rem .85rem var(--vds-space-8)}.executive-hero{align-items:stretch;flex-direction:column}.executive-hero__brief-button{width:100%}.executive-kpi-row{grid-template-columns:1fr}.executive-kpi-row .executive-kpi:last-child{grid-column:auto}.executive-brief__items,.spend-summary{grid-template-columns:1fr}.executive-ai-fab{right:1rem;bottom:1rem}.status-card__header,.invoice-review__summary-header,.invoice-review__lines-header{align-items:flex-start;flex-direction:column}.scan-form__intro{flex-direction:column}.scan-form__row--scanner{grid-template-columns:1fr}.scan-mode-toggle,.scan-form__camera-button,.scan-form__submit{width:100%}}.receiving-page{display:grid;gap:1.25rem}.receiving-page--success{align-content:start}.receiving-page__header-fields{margin:0}.receiving-page__add-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem}.receiving-page__panel{display:grid;gap:.85rem;padding:1rem;border:1px solid #d9e2ec;border-radius:12px;background:#fbfdff}.receiving-page__panel h3,.receiving-page__lines h3,.receiving-create-product h4{margin:0}.receiving-create-product{display:grid;gap:.85rem;margin-top:.75rem}.receiving-page__lines{display:grid;gap:.75rem}.receiving-page__line-quantity{width:6.5rem;max-width:100%}.receiving-page__finish{justify-content:flex-end}.catalogue-import-page{display:grid;gap:1.25rem}.catalogue-import-page__header{align-items:flex-start}.catalogue-import-page__eyebrow{margin:0 0 .25rem;color:var(--vds-colour-purple);font-size:var(--vds-font-size-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.catalogue-import-page__grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.8fr);gap:1rem}.catalogue-import-page__panel{display:grid;gap:1rem;padding:1rem;border:var(--vds-card-border);border-radius:var(--vds-card-radius);background:var(--vds-colour-panel-subtle)}.catalogue-import-page__section-heading h3,.catalogue-future-card h4{margin:0 0 .25rem;color:var(--vds-colour-heading)}.catalogue-import-page__section-heading p,.catalogue-future-card p,.catalogue-import-page__safety-note{margin:0;color:var(--vds-colour-muted);font-size:var(--vds-font-size-sm)}.catalogue-source-grid,.catalogue-future-grid{display:grid;gap:.75rem}.catalogue-source-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.catalogue-source-card,.catalogue-future-card{display:grid;gap:.35rem;min-height:6rem;padding:.9rem;border:1px solid var(--vds-colour-border);border-radius:var(--vds-radius-md);background:#fff;text-align:left}.catalogue-source-card{color:inherit;font:inherit;cursor:pointer}.catalogue-source-card:hover,.catalogue-source-card:focus{border-color:var(--vds-colour-teal);box-shadow:0 0 0 3px #008eaa1f}.catalogue-source-card--active{border-color:var(--vds-colour-purple);background:#fbf4ff;box-shadow:0 0 0 3px var(--vds-colour-focus)}.catalogue-source-card--disabled,.catalogue-future-card{opacity:.58;cursor:not-allowed}.catalogue-source-card__title{color:var(--vds-colour-heading);font-weight:800}.catalogue-source-card__description{color:var(--vds-colour-muted);font-size:var(--vds-font-size-sm)}.catalogue-import-page__supplier{max-width:24rem}.catalogue-import-page__dropzone{min-height:11rem}.catalogue-import-page__summary{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;padding:.8rem .9rem;border:1px solid var(--vds-colour-info);border-radius:var(--vds-radius-md);background:var(--vds-colour-info-bg);color:var(--vds-colour-info);font-size:var(--vds-font-size-sm)}.catalogue-status{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:var(--vds-radius-pill);font-size:var(--vds-font-size-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.catalogue-status--pending{background:#e0e7ef;color:#334e68}.catalogue-status--processing{background:var(--vds-colour-info-bg);color:var(--vds-colour-info)}.catalogue-status--review-required{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.catalogue-status--imported{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.catalogue-status--failed{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.catalogue-import-table td:first-child{font-weight:700;color:var(--vds-colour-heading)}.catalogue-import-table__actions{display:flex;flex-wrap:wrap;gap:.5rem}.catalogue-structured-review{display:grid;gap:1rem}.catalogue-structured-review__group{border:1px solid var(--vds-colour-border);border-radius:var(--vds-radius-lg);padding:1rem;background:var(--vds-colour-surface)}.catalogue-structured-review__supplier-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin:1rem 0}.catalogue-structured-review__summary{margin:1rem 0}.catalogue-structured-review__bulk-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem}.catalogue-structured-review__match-field{min-width:240px}.catalogue-structured-review__create-note{display:block;margin-top:.35rem;color:var(--vds-colour-muted);font-size:.8rem}.catalogue-review{display:grid;gap:1.25rem}.catalogue-review__hero{display:grid;gap:1rem}.catalogue-review__header-grid{margin-top:.25rem}.catalogue-review__safety{border-color:var(--vds-colour-success);background:var(--vds-colour-success-bg)}.catalogue-review__supplier-card{display:grid;gap:.55rem;padding:1rem;border:var(--vds-card-border);border-radius:var(--vds-radius-md);background:var(--vds-colour-panel-subtle)}.catalogue-review__placeholder-actions{display:flex;flex-wrap:wrap;gap:.5rem}.catalogue-review__placeholder-actions button:disabled,.catalogue-review__actions button:disabled{opacity:.6;cursor:not-allowed}.catalogue-review__lines-table td{vertical-align:top}.catalogue-review__line-actions{display:flex;flex-wrap:wrap;gap:.35rem;min-width:16rem}.catalogue-review__line-actions button{padding:.25rem .45rem;font-size:var(--vds-font-size-xs)}.catalogue-review__line-actions button:disabled{opacity:.55;cursor:not-allowed}.catalogue-review__future-note{flex-basis:100%;color:var(--vds-colour-muted);font-size:var(--vds-font-size-xs)}.catalogue-line-state{display:inline-flex;padding:.2rem .5rem;border-radius:var(--vds-radius-pill);background:#e0e7ef;color:#334e68;font-size:var(--vds-font-size-xs);font-weight:800;letter-spacing:.03em;text-transform:uppercase}.catalogue-line-state--approved,.catalogue-line-state--matched-existing-product{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.catalogue-line-state--skipped{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.catalogue-line-state--needs-review,.catalogue-line-state--ready-to-create{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.catalogue-review__edit-input{width:100%;min-width:9rem;padding:.35rem .45rem;border:1px solid var(--vds-colour-border-strong);border-radius:var(--vds-radius-sm);font:inherit;font-size:var(--vds-font-size-sm)}.catalogue-review__edit-input--numeric{max-width:8rem}.catalogue-review__summary-grid{margin-top:1rem}.catalogue-review__metric dd{font-size:1.2rem}.catalogue-review__actions{display:grid;gap:.85rem;justify-items:start}@media(max-width:980px){.catalogue-import-page__grid{grid-template-columns:1fr}}@media(max-width:640px){.catalogue-import-page__header{align-items:stretch}.catalogue-source-grid{grid-template-columns:1fr}}@media(max-width:640px){.receiving-page__add-grid{grid-template-columns:1fr}.receiving-page__finish,.receiving-page__finish .button-link,.receiving-page__finish .link-button{width:100%}}.stocktake-page{padding:var(--vds-space-6);max-width:1200px;margin:0 auto}.stocktake-page--wide{max-width:1600px}.stocktake-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vds-space-4);flex-wrap:wrap;margin-bottom:var(--vds-space-6)}.stocktake-page__header-left{display:flex;flex-direction:column;gap:var(--vds-space-2);min-width:0}.stocktake-page__actions{display:flex;align-items:center;gap:var(--vds-space-3);flex-shrink:0;flex-wrap:wrap}.stocktake-page__title{margin:0;font-size:var(--vds-font-size-xl);font-weight:700;color:var(--vds-colour-heading);line-height:1.2}.stocktake-page__subtitle{margin:0;font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted)}.stocktake-page__nav{display:flex;align-items:center;gap:.35rem;font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted)}.stocktake-page__nav-link{color:var(--vds-colour-teal);text-decoration:none;font-weight:500}.stocktake-page__nav-link:hover{text-decoration:underline}.stocktake-page__nav-sep{color:var(--vds-colour-border-strong);font-size:.8rem}.stocktake-page__nav-current{color:var(--vds-colour-muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22ch}.stocktake-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem var(--vds-space-4);border:1px solid transparent;border-radius:var(--vds-radius-md);font:inherit;font-size:var(--vds-font-size-sm);font-weight:600;line-height:1.4;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .1s;white-space:nowrap}.stocktake-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.stocktake-btn--sm{padding:.35rem var(--vds-space-3);font-size:var(--vds-font-size-xs)}.stocktake-btn--primary{background:var(--vds-colour-purple);color:#fff;border-color:var(--vds-colour-purple)}.stocktake-btn--primary:not(:disabled):hover{background:#5e0182;border-color:#5e0182;transform:translateY(-1px)}.stocktake-btn--secondary{background:var(--vds-colour-panel);color:var(--vds-colour-body);border-color:var(--vds-colour-border-strong)}.stocktake-btn--secondary:not(:disabled):hover{background:var(--vds-colour-hover);border-color:var(--vds-colour-border-strong)}.stocktake-btn--danger{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger);border-color:var(--vds-colour-danger)}.stocktake-btn--danger:not(:disabled):hover{background:var(--vds-colour-danger);color:#fff;transform:translateY(-1px)}.stocktake-status-badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:var(--vds-radius-pill);font-size:var(--vds-font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.stocktake-status-badge--draft{background:var(--vds-colour-soft);color:var(--vds-colour-muted);border:1px solid var(--vds-colour-border-strong)}.stocktake-status-badge--in-progress{background:var(--vds-colour-info-bg);color:var(--vds-colour-info)}.stocktake-status-badge--completed{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.stocktake-status-badge--cancelled{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.stocktake-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vds-space-3);padding:.9rem var(--vds-space-4);border-radius:var(--vds-radius-sm);border:1px solid transparent;font-size:var(--vds-font-size-sm);margin-bottom:var(--vds-space-4)}.stocktake-alert--error{background:var(--vds-colour-danger-bg);border-color:var(--vds-colour-danger);color:var(--vds-colour-danger)}.stocktake-alert--warning{background:var(--vds-colour-warning-bg);border-color:#e9a640;color:var(--vds-colour-warning)}.stocktake-alert__dismiss{background:none;border:none;cursor:pointer;font:inherit;font-size:var(--vds-font-size-xs);font-weight:600;color:inherit;opacity:.75;padding:0;flex-shrink:0}.stocktake-alert__dismiss:hover{opacity:1}.stocktake-page__empty{padding:var(--vds-space-8) var(--vds-space-4);text-align:center;color:var(--vds-colour-muted);font-size:var(--vds-font-size-md)}.stocktake-page__empty--inline{padding:var(--vds-space-4) var(--vds-space-4);text-align:left}.stocktake-page__loading{padding:var(--vds-space-4);color:var(--vds-colour-muted);font-size:var(--vds-font-size-sm)}.stocktake-field-error{color:var(--vds-colour-danger);font-size:var(--vds-font-size-sm);margin:var(--vds-space-1) 0 0}.stocktake-form-field{display:flex;flex-direction:column;gap:var(--vds-space-1)}.stocktake-form-field__label{font-size:var(--vds-font-size-sm);font-weight:600;color:var(--vds-colour-body)}.stocktake-input{width:100%;min-height:var(--vds-control-height);padding:.55rem var(--vds-control-padding-x);border:1px solid var(--vds-colour-border-strong);border-radius:var(--vds-control-radius);font:inherit;font-size:var(--vds-font-size-sm);color:var(--vds-colour-body);background:var(--vds-colour-panel);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.stocktake-input:focus{outline:none;border-color:var(--vds-colour-purple);box-shadow:0 0 0 3px var(--vds-colour-focus)}.stocktake-input--compact{min-height:2rem;padding:.3rem .55rem;width:7rem;font-size:var(--vds-font-size-sm)}.stocktake-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--vds-space-4) var(--vds-space-5);border-bottom:1px solid var(--vds-colour-border)}.stocktake-modal__title{margin:0;font-size:1.1rem;font-weight:700;color:var(--vds-colour-heading)}.stocktake-modal__close{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--vds-colour-muted);padding:.2rem .4rem;border-radius:var(--vds-radius-sm)}.stocktake-modal__close:hover{background:var(--vds-colour-hover);color:var(--vds-colour-body)}.stocktake-modal__body{padding:var(--vds-space-4) var(--vds-space-5);display:flex;flex-direction:column;gap:var(--vds-space-4)}.stocktake-modal__footer{display:flex;justify-content:flex-end;gap:var(--vds-space-3);padding:var(--vds-space-4) var(--vds-space-5);border-top:1px solid var(--vds-colour-border)}.stocktake-page__table-wrap{border:var(--vds-card-border);border-radius:var(--vds-radius-lg);overflow:hidden}.stocktake-page__table-wrap--scroll{overflow-x:auto}.stocktake-page__table{width:100%;border-collapse:collapse;font-size:var(--vds-font-size-sm)}.stocktake-page__table thead tr{background:var(--vds-colour-soft)}.stocktake-page__table th{padding:.7rem var(--vds-table-cell-padding-x);text-align:left;font-size:var(--vds-font-size-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--vds-colour-muted);border-bottom:1px solid var(--vds-colour-border);white-space:nowrap}.stocktake-page__table td{padding:var(--vds-table-cell-padding-y) var(--vds-table-cell-padding-x);border-bottom:1px solid var(--vds-colour-border);vertical-align:middle}.stocktake-page__table tbody tr:last-child td{border-bottom:none}.stocktake-page__table tbody tr:hover td{background:var(--vds-colour-hover)}.stocktake-page__col--num{text-align:right;font-variant-numeric:tabular-nums}.stocktake-page__col--code{font-family:var(--vds-font-family-mono);font-size:var(--vds-font-size-xs);color:var(--vds-colour-muted)}.stocktake-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--vds-space-3);margin-top:var(--vds-space-2)}.stocktake-meta__item{font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted)}.stocktake-draft-notice{padding:var(--vds-space-4) var(--vds-space-5);background:var(--vds-colour-info-bg);border:1px solid rgba(0,109,131,.22);border-radius:var(--vds-radius-sm);color:var(--vds-colour-info);font-size:var(--vds-font-size-sm);margin-bottom:var(--vds-space-4)}.stocktake-draft-notice p{margin:0}.stocktake-summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--vds-space-4);padding:var(--vds-space-3) var(--vds-space-4);background:var(--vds-colour-panel);border:var(--vds-card-border);border-radius:var(--vds-radius-md);margin-bottom:var(--vds-space-4)}.stocktake-summary--sticky{position:sticky;top:var(--vds-header-height);z-index:10;background:#fffffff7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:1px solid var(--vds-colour-border);margin-left:calc(-1 * var(--vds-space-6));margin-right:calc(-1 * var(--vds-space-6));padding-left:var(--vds-space-6);padding-right:var(--vds-space-6);box-shadow:0 4px 16px #4a304112}.stocktake-summary__progress{display:flex;align-items:center;gap:var(--vds-space-3);flex:1;min-width:16rem}.stocktake-summary__stats{display:flex;align-items:center;gap:var(--vds-space-5);flex-wrap:wrap}.stocktake-progress-bar{width:8rem;height:.5rem;background:var(--vds-colour-border);border-radius:var(--vds-radius-pill);overflow:hidden;flex-shrink:0}.stocktake-progress-bar__fill{height:100%;background:var(--vds-colour-purple);border-radius:var(--vds-radius-pill);transition:width .3s ease;min-width:0}.stocktake-progress-label{font-size:var(--vds-font-size-sm);color:var(--vds-colour-body)}.stocktake-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem}.stocktake-stat__label{font-size:var(--vds-font-size-xs);color:var(--vds-colour-muted);white-space:nowrap}.stocktake-stat__value{font-size:var(--vds-font-size-md);font-weight:700;font-variant-numeric:tabular-nums}.stocktake-variance--positive{color:var(--vds-colour-success)}.stocktake-variance--negative{color:var(--vds-colour-danger)}.stocktake-variance--zero{color:var(--vds-colour-muted)}.stocktake-product-cell{display:flex;flex-direction:column;gap:.1rem;min-width:10rem}.stocktake-product-name{font-weight:600;color:var(--vds-colour-heading);font-size:var(--vds-font-size-sm)}.stocktake-product-sku{font-size:var(--vds-font-size-xs);font-family:var(--vds-font-family-mono);color:var(--vds-colour-muted)}.stocktake-toolbar{margin-bottom:var(--vds-space-4)}.stocktake-barcode-lookup{display:flex;flex-direction:column;gap:var(--vds-space-2);max-width:28rem}.stocktake-barcode-lookup__row{display:flex;gap:var(--vds-space-2)}.stocktake-barcode-lookup__row .stocktake-input{flex:1}.stocktake-notes{font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);font-style:italic}.stocktake-row--highlighted{background:var(--vds-colour-info-bg)!important;transition:background .3s ease}.stocktake-page__table .stocktake-page__col--num{min-width:5rem}.stocktake-list-progress{font-size:var(--vds-font-size-xs);color:var(--vds-colour-muted)}@media(max-width:768px){.stocktake-page__header{flex-direction:column;align-items:stretch}.stocktake-page__actions{justify-content:flex-start}.stocktake-summary--sticky{margin-left:calc(-1 * var(--vds-space-4));margin-right:calc(-1 * var(--vds-space-4));padding-left:var(--vds-space-4);padding-right:var(--vds-space-4)}.stocktake-page{padding:var(--vds-space-4)}}.vds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--vds-space-2);min-height:var(--vds-control-height);padding:.62rem var(--vds-control-padding-x);border:1px solid transparent;border-radius:var(--vds-control-radius);font-family:var(--vds-font-family);font-size:var(--vds-font-size-md);font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .14s ease,box-shadow .14s ease,transform .12s ease}.vds-btn:disabled,.vds-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.vds-btn:focus-visible{outline:2px solid var(--vds-colour-focus-solid);outline-offset:2px;box-shadow:0 0 0 4px var(--vds-colour-focus)}.vds-btn--primary{background:var(--vds-colour-purple);color:#fff;box-shadow:0 4px 12px #7602a32e}.vds-btn--primary:hover:not(:disabled){background:#8b1ab6;transform:translateY(-1px);box-shadow:0 8px 20px #7602a338}.vds-btn--secondary{border-color:var(--vds-colour-border-strong);background:var(--vds-colour-panel);color:var(--vds-colour-purple)}.vds-btn--secondary:hover:not(:disabled){background:var(--vds-colour-hover);border-color:var(--vds-colour-purple)}.vds-btn--ghost{background:transparent;color:var(--vds-colour-body)}.vds-btn--ghost:hover:not(:disabled){background:var(--vds-colour-hover);color:var(--vds-colour-heading)}.vds-btn--destructive{background:var(--vds-colour-danger);color:#fff}.vds-btn--destructive:hover:not(:disabled){background:#9a1e14;transform:translateY(-1px)}.vds-btn--sm{min-height:2rem;padding:.3rem .65rem;font-size:var(--vds-font-size-sm)}.vds-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.55rem;padding:.22rem .62rem;border-radius:var(--vds-radius-pill);font-size:var(--vds-font-size-xs);font-weight:600;letter-spacing:.04em;line-height:1;white-space:nowrap;background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted)}.vds-badge--success{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.vds-badge--warning{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.vds-badge--danger{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.vds-badge--info{background:var(--vds-colour-info-bg);color:var(--vds-colour-info)}.vds-badge--neutral{background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted)}.vds-badge--brand{background:color-mix(in srgb,var(--vds-colour-purple) 10%,white);color:var(--vds-colour-purple)}.vds-field{display:flex;flex-direction:column;gap:var(--vds-space-2);min-width:0}.vds-field__label{font-size:var(--vds-font-size-sm);font-weight:600;color:var(--vds-colour-body)}.vds-field__hint{margin-top:var(--vds-space-1);font-size:var(--vds-font-size-xs);color:var(--vds-colour-muted)}.vds-field__error{margin-top:var(--vds-space-1);font-size:var(--vds-font-size-xs);color:var(--vds-colour-danger)}.vds-control{display:block;width:100%;min-height:var(--vds-control-height);padding:.58rem var(--vds-control-padding-x);border:1px solid var(--vds-colour-border-strong);border-radius:var(--vds-control-radius);background:var(--vds-colour-panel);color:var(--vds-colour-body);font-family:inherit;font-size:var(--vds-font-size-md);line-height:1.4;transition:border-color .14s ease,box-shadow .14s ease}.vds-control:focus,.vds-control:focus-visible{outline:2px solid var(--vds-colour-focus-solid);outline-offset:0;border-color:var(--vds-colour-purple);box-shadow:0 0 0 4px var(--vds-colour-focus)}.vds-control:disabled{background:var(--vds-colour-soft);color:var(--vds-colour-muted);cursor:not-allowed}.vds-control[readonly]{background:var(--vds-colour-soft);color:var(--vds-colour-body)}.vds-control--error,.vds-field--error .vds-control{border-color:var(--vds-colour-danger)}.vds-control--error:focus,.vds-field--error .vds-control:focus{box-shadow:0 0 0 4px #b423182e}textarea.vds-control{min-height:6rem;resize:vertical}select.vds-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23746476' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.vds-card{border:var(--vds-card-border);border-radius:var(--vds-card-radius);background:var(--vds-card-background);box-shadow:var(--vds-shadow-xs);padding:var(--vds-card-padding);min-width:0;overflow-wrap:anywhere}.vds-card--interactive{cursor:pointer;text-decoration:none;color:inherit;transition:box-shadow .16s ease,transform .14s ease,border-color .14s ease}.vds-card--interactive:hover{border-color:#7602a32e;box-shadow:var(--vds-shadow-sm);transform:translateY(-2px)}.vds-card--interactive:focus-visible{outline:2px solid var(--vds-colour-focus-solid);outline-offset:2px;box-shadow:0 0 0 4px var(--vds-colour-focus)}.vds-callout{display:flex;gap:var(--vds-space-3);padding:var(--vds-space-4);border-radius:var(--vds-radius-md);border-left:3px solid currentColor;background:var(--vds-colour-soft);color:var(--vds-colour-muted);font-size:var(--vds-font-size-sm)}.vds-callout--info{background:var(--vds-colour-info-bg);color:var(--vds-colour-info)}.vds-callout--success{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.vds-callout--warning{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.vds-callout--danger{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.vds-table-wrap{width:100%;overflow-x:auto;border-radius:var(--vds-radius-md)}.vds-table{width:100%;border-collapse:collapse;font-size:var(--vds-font-size-md)}.vds-table th{padding:var(--vds-table-cell-padding-y) var(--vds-table-cell-padding-x);background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted);font-size:var(--vds-font-size-xs);font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--vds-colour-border);white-space:nowrap}.vds-table td{padding:var(--vds-table-cell-padding-y) var(--vds-table-cell-padding-x);border-bottom:1px solid var(--vds-colour-border);color:var(--vds-colour-body);vertical-align:middle}.vds-table tbody tr:hover td{background:var(--vds-colour-hover)}.vds-table--compact th,.vds-table--compact td{padding:.52rem var(--vds-table-cell-padding-x);font-size:var(--vds-font-size-sm)}.vds-table__td--numeric,.vds-table__th--numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--vds-font-family-mono)}.vds-table-wrap--sticky .vds-table th{position:sticky;top:var(--vds-header-height);z-index:10}.vds-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--vds-space-4);background:#102a4380;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.vds-modal{position:relative;width:min(100%,28rem);max-height:min(92vh,48rem);display:flex;flex-direction:column;border-radius:var(--vds-radius-lg);background:var(--vds-colour-panel);box-shadow:var(--vds-shadow-md);overflow:hidden}.vds-modal--md{width:min(100%,44rem)}.vds-modal--lg{width:min(100%,64rem);max-height:min(92vh,56rem)}.vds-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--vds-space-3);padding:var(--vds-space-5);border-bottom:1px solid var(--vds-colour-border);flex-shrink:0}.vds-modal__title{margin:0;font-size:var(--vds-font-size-lg);font-weight:700;color:var(--vds-colour-heading);line-height:1.2}.vds-modal__close{display:inline-grid;place-items:center;width:2rem;height:2rem;flex-shrink:0;border:0;border-radius:var(--vds-radius-sm);background:transparent;color:var(--vds-colour-muted);cursor:pointer;transition:background .14s ease,color .14s ease}.vds-modal__close:hover{background:var(--vds-colour-hover);color:var(--vds-colour-heading)}.vds-modal__close:focus-visible{outline:2px solid var(--vds-colour-focus-solid);outline-offset:2px}.vds-modal__body{flex:1 1 auto;overflow-y:auto;padding:var(--vds-space-5)}.vds-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--vds-space-3);padding:var(--vds-space-4) var(--vds-space-5);border-top:1px solid var(--vds-colour-border);flex-shrink:0}@keyframes vds-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vds-spinner{display:inline-block;width:2rem;height:2rem;border:2px solid var(--vds-colour-border);border-top-color:var(--vds-colour-purple);border-radius:50%;animation:vds-spin .7s linear infinite}.vds-spinner--sm{width:1.25rem;height:1.25rem}.vds-spinner--lg{width:3rem;height:3rem;border-width:3px}.vds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--vds-space-8) var(--vds-space-4);text-align:center}.vds-empty-state__title{margin:0 0 var(--vds-space-2);font-size:var(--vds-font-size-md);font-weight:600;color:var(--vds-colour-heading)}.vds-empty-state__hint{margin:0 0 var(--vds-space-4);font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);max-width:32ch}.cs-hub{display:flex;flex-direction:column;gap:var(--vds-space-5)}.cs-hub__header{display:flex;flex-direction:column;gap:var(--vds-space-1)}.cs-hub__greeting{margin:0;font-size:var(--vds-font-size-xl);font-weight:700;color:var(--vds-colour-heading);letter-spacing:-.03em;line-height:1.2}.cs-hub__clinic-label{margin:0;font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted)}.cs-clock-hero{display:flex;flex-direction:column;align-items:flex-start;gap:var(--vds-space-4);padding:var(--vds-space-6);border:var(--vds-card-border);border-radius:var(--vds-card-radius);background:var(--vds-card-background);box-shadow:var(--vds-shadow-sm)}.cs-clock-hero--active{border-color:var(--vds-colour-success);background:linear-gradient(160deg,#f0fdf9,#fff 60%)}.cs-clock-hero__detail{margin:0;font-size:var(--vds-font-size-md);color:var(--vds-colour-body);line-height:1.5}.cs-clock-hero--active .cs-clock-hero__detail{color:var(--vds-colour-heading)}.cs-clock-hero__action{min-height:3rem;padding:0 var(--vds-space-8);font-size:var(--vds-font-size-md);font-weight:600;letter-spacing:.01em;text-decoration:none}.cs-location-status{display:flex;align-items:flex-start;gap:var(--vds-space-2);width:100%;padding:var(--vds-space-2) var(--vds-space-3);border-radius:var(--vds-radius-sm);font-size:var(--vds-font-size-sm);line-height:1.4}.cs-location-status--within{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.cs-location-status--outside,.cs-location-status--unavailable{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.cs-location-status--denied{background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted);border:1px solid var(--vds-colour-border)}.cs-location-status__icon{flex-shrink:0;margin-top:.1em}.cs-quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--vds-space-3)}.cs-quick-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--vds-space-2);min-height:5rem;padding:var(--vds-space-4) var(--vds-space-3);border:1px solid var(--vds-colour-border-strong);border-radius:var(--vds-radius-md);background:var(--vds-colour-panel);color:var(--vds-colour-purple);font-size:var(--vds-font-size-sm);font-weight:600;text-align:center;text-decoration:none;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.cs-quick-action:hover{background:var(--vds-colour-hover);border-color:var(--vds-colour-purple);box-shadow:var(--vds-shadow-xs);color:var(--vds-colour-purple)}.cs-quick-action:focus-visible{outline:2px solid var(--vds-colour-focus-solid);outline-offset:2px;box-shadow:0 0 0 4px var(--vds-colour-focus)}.cs-quick-action__icon{color:var(--vds-colour-purple);opacity:.75}@media(max-width:768px){.cs-hub__greeting{font-size:calc(var(--vds-font-size-xl) * .9)}.cs-clock-hero{padding:var(--vds-space-5)}}@media(max-width:480px){.cs-hub__greeting{font-size:var(--vds-font-size-lg)}.cs-clock-hero{padding:var(--vds-space-4)}.cs-clock-hero__action{width:100%;justify-content:center}.cs-quick-action{min-height:4rem;padding:var(--vds-space-3) var(--vds-space-2);font-size:var(--vds-font-size-xs);gap:var(--vds-space-1)}.cs-quick-action__icon{width:16px;height:16px}}@media(max-width:360px){.cs-quick-actions{grid-template-columns:1fr;gap:var(--vds-space-2)}.cs-quick-action{flex-direction:row;justify-content:flex-start;min-height:3rem;padding:var(--vds-space-3) var(--vds-space-4);gap:var(--vds-space-3);font-size:var(--vds-font-size-sm)}}.app-shell__mobile-menu-btn,.app-shell__mobile-backdrop{display:none}@media(max-width:640px){.app-shell--nav-open .app-shell__sidebar{transform:translate(0)}.app-shell__mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#23182785;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}.app-shell__mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;order:-1;width:2.4rem;height:2.4rem;padding:0;border:1px solid rgba(219,210,226,.78);border-radius:.65rem;background:transparent;color:var(--vds-colour-heading);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.app-shell__mobile-menu-btn:hover{background:#4b129012;border-color:var(--vds-colour-border-strong)}.app-shell__header{flex-wrap:nowrap;gap:var(--vds-space-2);padding:.65rem .85rem;align-items:center;min-height:3.2rem}.app-shell__header-controls--primary{flex:1 1 auto;min-width:0;justify-content:flex-start}.app-shell__selector--static,.app-shell__clinic-control{display:none}.app-shell__drawer-clinic{display:block;padding:0 .85rem .15rem}.app-shell__header-controls--secondary{flex:0 0 auto;min-width:0}.app-shell__user{flex-wrap:nowrap;gap:var(--vds-space-2);padding:.25rem .3rem}.app-shell__profile-text,.app-shell__user-link{display:none}.app-shell__logout{padding:.35rem .7rem;font-size:.78rem}.cs-hub .analytics-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--vds-space-3)}.cs-hub .analytics-card{padding:var(--vds-space-3) var(--vds-space-3)}.cs-hub .analytics-card__stat{flex-direction:column;gap:.15rem}.cs-hub .analytics-card__stat dd{font-size:1.35rem;line-height:1.1}.cs-hub .analytics-card__stat dt{font-size:.72rem;margin-top:0}.cs-hub .analytics-card__footer{margin-top:var(--vds-space-2);padding-top:var(--vds-space-2)}}.analytics-card__value--teal{color:var(--vds-colour-teal);font-weight:700}.pm-hub{display:grid;gap:var(--vds-space-5);align-content:start}.pm-hub__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vds-space-4);padding:var(--vds-space-1) 0}.pm-hub__title{margin:0 0 var(--vds-space-2);font-size:var(--vds-font-size-xl);font-weight:700;line-height:1.2;color:var(--vds-colour-heading)}.pm-hub__subtitle{margin:0;font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);line-height:1.5}.pm-hub__clinic-tag{display:inline;padding:.08rem .5rem;border-radius:.3rem;background:#4b129014;color:var(--vds-colour-purple);font-weight:600}.pm-hub__quick-actions{display:grid;gap:var(--vds-space-3)}.pm-hub__primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--vds-space-4)}.pm-hub__primary-action{display:flex;flex-direction:column;gap:var(--vds-space-2);padding:var(--vds-card-padding);border:1.5px solid rgba(75,18,144,.2);border-radius:var(--vds-card-radius);background:#4b129009;color:var(--vds-colour-heading);text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.pm-hub__primary-action:hover{background:#4b129012;border-color:#4b129066;box-shadow:0 4px 18px #4b12901a;text-decoration:none}.pm-hub__primary-action--invoice{border-color:#008eaa33;background:#008eaa08}.pm-hub__primary-action--invoice:hover{background:#008eaa12;border-color:#008eaa66;box-shadow:0 4px 18px #008eaa1a}.pm-hub__primary-action-icon{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:.65rem;background:#4b12901a;color:var(--vds-colour-purple);flex-shrink:0}.pm-hub__primary-action-icon--invoice{background:#008eaa1a;color:var(--vds-colour-teal)}.pm-hub__primary-action-label{font-size:var(--vds-font-size-base);font-weight:600;color:var(--vds-colour-heading);line-height:1.2}.pm-hub__primary-action-desc{font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);line-height:1.4}.pm-hub__secondary-actions{display:flex;flex-wrap:wrap;gap:var(--vds-space-2);align-items:center}.pm-hub__secondary-action{display:inline-flex;align-items:center;padding:.38rem 1rem;border:1px solid var(--vds-colour-border);border-radius:2rem;background:transparent;color:var(--vds-colour-body);font-size:var(--vds-font-size-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.pm-hub__secondary-action:hover{border-color:var(--vds-colour-purple);color:var(--vds-colour-purple);background:#4b12900a;text-decoration:none}.pm-hub__metric-group{display:grid;gap:var(--vds-space-3);padding:var(--vds-space-3) 0 var(--vds-space-1)}.pm-hub__group-heading{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--vds-colour-muted)}.pm-hub__group-divider{height:1px;margin:0;background:var(--vds-colour-border);border:0}.pm-hub__alerts-heading{display:flex;align-items:center;gap:var(--vds-space-2)}.pm-hub__alerts-icon{color:var(--vds-colour-amber);flex-shrink:0}.pm-hub__alert-card{position:relative;padding-left:.55rem!important;border-left:3px solid transparent;border-radius:var(--vds-card-radius)}.pm-hub__alert-card--warning{border-left-color:var(--vds-colour-amber)}.pm-hub__alert-card--positive{border-left-color:var(--vds-colour-green)}.pm-hub__alert-card--info{border-left-color:var(--vds-colour-teal)}.pm-hub__alert-card .analytics-card,.pm-hub__alert-card.analytics-card,.pm-hub__alert-card .daily-hub__priority-card,.pm-hub__alert-card.daily-hub__priority-card{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}@media(max-width:768px){.pm-hub__title{font-size:var(--vds-font-size-lg)}}@media(max-width:640px){.pm-hub__primary-actions{grid-template-columns:1fr;gap:var(--vds-space-3)}.pm-hub__primary-action{flex-direction:row;align-items:flex-start;gap:var(--vds-space-3)}.pm-hub__primary-action-icon{margin-top:.1rem}.pm-hub__secondary-actions{gap:var(--vds-space-2)}.pm-hub__secondary-action{padding:.34rem .85rem;font-size:.8rem}.pm-hub__metric-group{padding:var(--vds-space-2) 0 0}.pm-hub .analytics-cards-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}.pm-hub__alert-card{padding-left:.4rem!important}}.executive-dashboard{max-width:1440px;margin-inline:auto}.oa-hub__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vds-space-4);padding:var(--vds-space-1) 0}.oa-hub__title{margin:0 0 var(--vds-space-2);font-size:var(--vds-font-size-xl);font-weight:700;line-height:1.15;letter-spacing:-.025em;color:var(--vds-colour-heading)}.oa-hub__subtitle{margin:0;font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);line-height:1.5}.executive-kpi__icon{font-size:0}.executive-brief__title>svg{color:var(--vds-colour-purple);flex-shrink:0}.clinic-health-row__icon,.action-centre-card__icon{font-size:0}.oa-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--vds-space-2);padding:var(--vds-space-6) var(--vds-space-4);text-align:center}.oa-empty-state__icon{color:var(--vds-colour-border-strong);opacity:.7}.oa-empty-state__icon--purple{color:var(--vds-colour-purple);opacity:.45}.oa-empty-state__message{margin:0;font-size:var(--vds-font-size-sm);font-weight:600;color:var(--vds-colour-muted)}.oa-empty-state__hint{margin:0;max-width:26rem;font-size:.77rem;color:var(--vds-colour-muted);line-height:1.5;opacity:.75}.dashboard-panel__subheading{margin:.1rem 0 0;font-size:.78rem;color:var(--vds-colour-muted)}.dashboard-panel__beta-badge{display:inline-flex;align-items:center;padding:.05rem .45rem;margin-left:.35rem;border-radius:.35rem;background:#4b12901a;color:var(--vds-colour-purple);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}.executive-ai-fab{font-size:0;line-height:1}@media(max-width:768px){.oa-hub__title{font-size:var(--vds-font-size-lg)}}@media(max-width:640px){.oa-hub__header{flex-direction:column;gap:var(--vds-space-2)}.oa-hub__title{font-size:var(--vds-font-size-base);letter-spacing:-.01em}}.ts-hub__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vds-space-3);margin-bottom:var(--vds-space-4);flex-wrap:nowrap}.ts-hub__header-text{flex:1 1 auto;min-width:0}.ts-hub__title{margin:0 0 var(--vds-space-1);font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--vds-colour-heading);line-height:1.15}.ts-hub__subtitle{margin:0;font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);line-height:1.5}.ts-hub__subtitle-sep{margin:0 .4em;opacity:.5}.ts-hub__header-actions{display:flex;align-items:flex-start;gap:var(--vds-space-2);flex:0 0 auto;padding-top:.2rem}.pr-self-service-callout{display:flex;flex-direction:column;gap:var(--vds-space-3)}.pr-self-service-callout p{max-width:60ch;margin:0}.pr-self-service-callout .link-button{align-self:flex-start}.ts-hub__content{margin-top:0}.ts-hub__clock-section{padding-bottom:var(--vds-space-4);border-bottom:1px solid var(--vds-colour-border);margin-bottom:var(--vds-space-5)}.ts-clock-card{display:flex;flex-direction:column;width:100%;max-width:540px;gap:var(--vds-space-3)}.ts-clock-card--idle{border:1.5px solid var(--vds-colour-border);background:var(--vds-colour-card-background, #fff)}.ts-clock-status-row{display:flex;align-items:center;gap:var(--vds-space-2);flex-wrap:wrap}.ts-clock-badge{font-size:.75rem;padding:.28rem .7rem}.ts-clock-time{font-variant-numeric:tabular-nums;font-weight:600;color:var(--vds-colour-heading)}.ts-clock-form{display:flex;flex-wrap:wrap;gap:var(--vds-space-3);align-items:flex-end}.ts-clock-actions{display:flex;align-items:center;gap:var(--vds-space-2);flex-wrap:wrap}.ts-clock-btn-primary{min-width:140px;min-height:48px;font-size:1rem;font-weight:700;letter-spacing:-.01em}.pr-action-btn--clock-out{background:#d1fae5;color:#065f46}.pr-action-btn--clock-out:not(:disabled):hover{background:#a7f3d0}.ts-loc-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:6px;font-size:.72rem;font-weight:600;line-height:1.3;white-space:nowrap}.ts-loc-badge--verified{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.ts-loc-badge--outside,.ts-loc-badge--unavailable{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.ts-loc-badge--denied{background:#fef3c7;color:#92400e}.ts-loc-badge--historical{background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted)}.ts-loc-badge__text{overflow:hidden;text-overflow:ellipsis;max-width:24ch}.pr-table__td--clocked{display:table-cell;vertical-align:top}.pr-table__td-time{display:block;font-variant-numeric:tabular-nums;white-space:nowrap}.ts-view-filter{display:flex;flex-wrap:wrap;gap:var(--vds-space-2);margin-bottom:var(--vds-space-4)}.ts-view-filter__btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .9rem;border:1.5px solid var(--vds-colour-border);border-radius:999px;background:transparent;color:var(--vds-colour-body);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .1s,border-color .1s;line-height:1.4}.ts-view-filter__btn:hover:not(.ts-view-filter__btn--active){background:var(--vds-colour-surface-hover, #f0f4f8)}.ts-view-filter__btn--active{background:var(--vds-colour-primary, #102a43);border-color:var(--vds-colour-primary, #102a43);color:#fff}.ts-view-filter__btn--active .pr-section__count,.ts-view-filter__btn--active .pr-section__count--warn{background:#ffffff40;color:#fff}.pr-inline-form--approval{display:flex;flex-direction:column;gap:var(--vds-space-2);padding:var(--vds-space-3);background:#d1fae5;border-radius:8px;border:1px solid #6ee7b7}.pr-inline-form--rejection{display:flex;flex-direction:column;gap:var(--vds-space-2);padding:var(--vds-space-3);background:var(--vds-colour-danger-bg, #fee2e2);border-radius:8px;border:1px solid #fca5a5}.pr-inline-form__rejection-header{display:flex;align-items:center;gap:var(--vds-space-1);font-size:.8rem;font-weight:700;color:#9b1c1c;text-transform:uppercase;letter-spacing:.05em}.pr-inline-form__rejection-icon{color:#dc2626;flex-shrink:0}.pr-inline-form__textarea{font:inherit;font-size:.875rem;padding:.48rem .7rem;border:1px solid #bcccdc;border-radius:8px;color:#102a43;background:#fff;resize:vertical;min-height:3rem;width:100%;min-width:0;box-sizing:border-box}.pr-inline-form__textarea:focus{outline:2px solid #2d6a9f;outline-offset:1px}.pr-inline-form__textarea:disabled{opacity:.6;cursor:not-allowed}.pr-inline-form__row-actions{display:flex;gap:var(--vds-space-2);flex-wrap:wrap;align-items:center}@media(max-width:768px){.ts-hub__title{font-size:1.4rem}.ts-clock-form{flex-direction:column;align-items:stretch}.ts-clock-form .pr-clock-form__field{width:100%}.ts-clock-actions{flex-direction:row;align-items:center}.ts-clock-btn-primary{width:100%;justify-content:center}}@media(max-width:480px){.ts-hub__header{gap:var(--vds-space-2)}.ts-hub__title{font-size:1.15rem}.ts-hub__subtitle{font-size:.72rem}.ts-clock-card{max-width:100%}.ts-clock-btn-primary{min-height:52px;font-size:1.05rem}.pr-action-btn--clock-out{min-height:44px;padding:.6rem 1.2rem;font-size:.95rem}.pr-inline-form__row-actions{flex-direction:column;align-items:stretch}.pr-inline-form__row-actions .pr-action-btn,.pr-inline-form__row-actions .pr-inline-form__cancel{width:100%;text-align:center;justify-content:center}.ts-hub__content .pr-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}.inv-hub__header{margin-bottom:var(--vds-space-3)}.inv-hub__title{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--vds-colour-heading);line-height:1.15}.scan-mode-toggle__btn--active{background:var(--vds-colour-purple);color:#fff;box-shadow:0 2px 6px #7602a32e}.scan-mode-toggle__btn--receive.scan-mode-toggle__btn--active{background:#166534;color:#fff;box-shadow:0 2px 6px #16653433}.scan-mode-toggle__btn{min-height:36px}.scan-form__camera-button{display:inline-flex;align-items:center;gap:var(--vds-space-2)}.inventory-notice{display:flex;flex-direction:column;gap:var(--vds-space-2);margin:var(--vds-space-3) 0 0;padding:.75rem 1rem;border-radius:var(--vds-card-radius);border-left:3px solid var(--vds-colour-success);background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.inventory-notice--info{border-left-color:var(--vds-colour-info, #0891b2);background:var(--vds-colour-info-bg, #e0f2fe);color:var(--vds-colour-info, #0369a1)}.inventory-notice--receive{border-left-color:#166534;background:#dcfce7;color:#166534}.inventory-notice--product-created{border-left-color:var(--vds-colour-success);background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.inventory-notice__body{display:flex;align-items:flex-start;gap:var(--vds-space-2)}.inventory-notice__icon{flex-shrink:0;margin-top:.1rem}.inventory-notice__message{margin:0;flex:1 1 auto;line-height:1.5}.inventory-table__row--low{background:#fffbeb}.inventory-table__row--low:hover td{background:#fef9c3!important}.inventory-table__row--out{background:#fff1f2}.inventory-table__row--out:hover td{background:#ffe4e6!important}.inventory-table thead th{position:sticky;top:0;z-index:2;background:#f7fafc;box-shadow:inset 0 -2px #d9e2ec}.inventory-badge--ok{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.inventory-badge--low{background:var(--vds-colour-warning-bg);color:var(--vds-colour-warning)}.inventory-badge--out{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}@media(max-width:768px){.inv-hub__title{font-size:1.4rem}}@media(max-width:480px){.inv-hub__title{font-size:1.2rem}.scan-mode-toggle{width:100%}.scan-mode-toggle__btn{flex:1 1 auto;min-height:44px;font-size:.9rem}.scan-form__camera-button{min-height:44px}.scan-form__submit{width:100%;min-height:48px;font-size:1rem}}.inventory-table{min-width:900px}.scan-form__submit.scan-form__submit--receive{background:linear-gradient(135deg,#166534,#0f5132);box-shadow:0 10px 24px #16653424}.scan-form__submit.scan-form__submit--receive:hover:not(:disabled){background:linear-gradient(135deg,#15803d,#166534);transform:translateY(-1px)}.roster-hub__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--vds-space-4);flex-wrap:wrap}.roster-hub__title{font-size:var(--vds-font-size-2xl);font-weight:800;color:var(--vds-colour-heading);margin:0;line-height:1.2}.roster-hub__subtitle{font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);margin:.25rem 0 0}.roster-hub__toolbar{display:flex;align-items:center;gap:var(--vds-space-4);flex-wrap:wrap}.roster-view-selector{display:flex;background:var(--vds-colour-panel-subtle);border:var(--vds-card-border);border-radius:var(--vds-control-radius);padding:.18rem;gap:.12rem}.roster-view-btn{border:0;background:transparent;border-radius:calc(var(--vds-control-radius) - .18rem);padding:.38rem .9rem;font:inherit;font-size:var(--vds-font-size-sm);font-weight:600;color:var(--vds-colour-muted);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s;line-height:1.4}.roster-view-btn:hover:not(.roster-view-btn--active){background:#7602a312;color:var(--vds-colour-purple)}.roster-view-btn--active{background:var(--vds-colour-purple);color:#fff;box-shadow:0 2px 6px #7602a338}.roster-cal__week-label{min-width:16rem;text-align:center}.roster-hub__content{padding:0;overflow:hidden}.roster-hub__content>.loading-message,.roster-hub__content>.status-card__error{padding:1.25rem 1.5rem}.roster-day--today{border-top:3px solid var(--vds-colour-purple)}.roster-day--today .roster-day__head{background:#7602a30b}.roster-day--today .roster-day__date{color:var(--vds-colour-purple);font-weight:800}.roster-shift--scheduled{border-left:3px solid var(--vds-colour-info)}.roster-shift--confirmed{border-left:3px solid var(--vds-colour-success)}.roster-shift--completed{border-left:3px solid var(--vds-colour-muted)}.roster-shift--cancelled{border-left:3px solid var(--vds-colour-danger)}.roster-shift__badges{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.1rem}.roster-status-badge{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.1rem .35rem;border-radius:3px;white-space:nowrap}.roster-status-badge--scheduled{background:var(--vds-colour-info-bg);color:var(--vds-colour-info)}.roster-status-badge--confirmed{background:var(--vds-colour-success-bg);color:var(--vds-colour-success)}.roster-status-badge--completed{background:var(--vds-colour-panel-subtle);color:var(--vds-colour-muted)}.roster-status-badge--cancelled{background:var(--vds-colour-danger-bg);color:var(--vds-colour-danger)}.roster-day-view{padding:1rem 1.5rem}.roster-day-view--today{border-top:3px solid var(--vds-colour-purple)}.roster-day-view__shifts{display:flex;flex-direction:column;gap:.75rem;max-width:680px}.roster-day-card{display:flex;flex-direction:column;gap:.45rem;padding:.9rem 1.1rem;border-radius:var(--vds-radius-lg);border:1px solid var(--vds-colour-border);background:var(--vds-colour-panel);text-align:left;width:100%;cursor:default}.roster-day-card.roster-shift--clickable{cursor:pointer}.roster-day-card.roster-shift--clickable:hover{filter:brightness(.97)}.roster-day-card--scheduled{background:var(--vds-colour-info-bg);border-color:var(--vds-colour-info);border-left:4px solid var(--vds-colour-info)}.roster-day-card--confirmed{background:var(--vds-colour-success-bg);border-color:var(--vds-colour-success);border-left:4px solid var(--vds-colour-success)}.roster-day-card--completed{background:var(--vds-colour-soft);border-color:var(--vds-colour-border);border-left:4px solid var(--vds-colour-muted)}.roster-day-card--cancelled{background:var(--vds-colour-danger-bg);border-color:var(--vds-colour-danger);border-left:4px solid var(--vds-colour-danger);opacity:.65}.roster-day-card__main{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.roster-day-card__name{font-size:1rem;font-weight:700;color:var(--vds-colour-heading)}.roster-day-card__time{font-size:.9rem;color:var(--vds-colour-muted);font-variant-numeric:tabular-nums}.roster-day-card__badges{display:flex;gap:.4rem;flex-wrap:wrap}.roster-day-card__notes{font-size:.8rem;color:var(--vds-colour-muted);margin:0;font-style:italic}.roster-empty{color:var(--vds-colour-muted);font-size:var(--vds-font-size-sm);padding:1rem 0;margin:0}.roster-add-btn--day{max-width:680px}.roster-month-view{display:flex;flex-direction:column;gap:var(--vds-space-3);padding:1rem 1.5rem 1.5rem}.roster-month-notice{display:flex;align-items:flex-start;gap:var(--vds-space-2);padding:.55rem .85rem;border-radius:var(--vds-radius-md);background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:var(--vds-font-size-xs);line-height:1.5}.roster-month-notice__icon{flex-shrink:0;margin-top:.1rem;color:#d97706}.roster-month-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid #e5e7eb;border-radius:var(--vds-radius-lg);overflow:hidden}.roster-month__col-head{padding:.45rem .35rem;background:var(--vds-colour-panel-subtle);text-align:center;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--vds-colour-muted);border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb}.roster-month__col-head:last-child{border-right:0}.roster-month-cell{min-height:90px;padding:.35rem .3rem .3rem;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;background:#fff;display:flex;flex-direction:column;gap:.18rem;position:relative;overflow:hidden}.roster-month-cell:nth-child(7n){border-right:0}.roster-month-cell:nth-last-child(-n+7){border-bottom:0}.roster-month-cell--out{background:#f9fafb}.roster-month-cell--out .roster-month-cell__num{color:#d1d5db}.roster-month-cell--today{border-top:2px solid var(--vds-colour-purple)!important;background:#7602a306}.roster-month-cell--today .roster-month-cell__num{color:var(--vds-colour-purple);font-weight:800}.roster-month-cell__num{font-size:.78rem;font-weight:700;color:#374151;line-height:1.2;flex-shrink:0}.roster-month-cell__entries{display:flex;flex-direction:column;gap:.12rem;flex:1;min-width:0}.roster-month-entry{display:flex;align-items:center;gap:.22rem;padding:.12rem .22rem;border-radius:3px;border:0;width:100%;text-align:left;cursor:default;font:inherit;font-size:.67rem;overflow:hidden;line-height:1.3}.roster-month-entry.roster-shift--clickable{cursor:pointer}.roster-month-entry.roster-shift--clickable:hover{filter:brightness(.94)}.roster-month-entry--scheduled{background:var(--vds-colour-info-bg)}.roster-month-entry--confirmed{background:var(--vds-colour-success-bg)}.roster-month-entry--completed{background:var(--vds-colour-soft)}.roster-month-entry--cancelled{background:var(--vds-colour-danger-bg);opacity:.65}.roster-month-entry__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;display:inline-block}.roster-month-entry__dot--scheduled{background:var(--vds-colour-info)}.roster-month-entry__dot--confirmed{background:var(--vds-colour-success)}.roster-month-entry__dot--completed{background:var(--vds-colour-muted)}.roster-month-entry__dot--cancelled{background:var(--vds-colour-danger)}.roster-month-entry__initials{font-weight:700;color:#374151;flex-shrink:0}.roster-month-entry__time{color:#6b7280;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.roster-month-cell__more{font-size:.65rem;color:var(--vds-colour-muted);padding:0 .22rem}.roster-month-cell__add{position:absolute;top:.2rem;right:.2rem;width:20px;height:20px;border:0;border-radius:3px;background:transparent;color:var(--vds-colour-muted);font-size:1rem;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0}.roster-month-cell:hover .roster-month-cell__add{display:flex}.roster-month-cell__add:hover{background:#7602a314;color:var(--vds-colour-purple)}.roster-pre-pilot-notice{display:flex;flex-direction:column;align-items:center;gap:var(--vds-space-4);padding:3.5rem 2rem;text-align:center}.roster-pre-pilot-notice__badge{display:inline-flex;align-items:center;padding:.35rem .85rem;border-radius:99px;background:#7602a314;color:var(--vds-colour-purple);font-size:var(--vds-font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.roster-pre-pilot-notice__heading{font-size:1.2rem;font-weight:700;color:var(--vds-colour-heading);margin:0}.roster-pre-pilot-notice p{font-size:var(--vds-font-size-sm);color:var(--vds-colour-muted);margin:0;max-width:44ch;line-height:1.65}@media(max-width:960px){.roster-hub__toolbar{flex-direction:column;align-items:flex-start;gap:var(--vds-space-3)}}@media(max-width:768px){.roster-view-selector{overflow-x:auto;flex-wrap:nowrap;max-width:100%}.roster-view-btn{padding:.35rem .7rem;font-size:.8rem}.roster-month-cell{min-height:72px}.roster-month-entry__time{display:none}.roster-cal__week-label{min-width:12rem}}@media(max-width:640px){.roster-hub__title{font-size:1.35rem}.roster-month-view{padding:.75rem}.roster-month-cell{min-height:56px;padding:.22rem .18rem .18rem}.roster-month-cell__num{font-size:.7rem}.roster-month-entry{font-size:.6rem;padding:.08rem .12rem}.roster-day-view{padding:.75rem}.roster-day-card__name{font-size:.95rem}.roster-modal{max-height:90dvh;overflow-y:auto;margin:.5rem}}.roster-shift__clinic{font-size:.65rem;color:var(--vds-colour-muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-day-card__clinic{font-size:.82rem;color:var(--vds-colour-muted);font-style:italic}.roster-month-entry__clinic{flex-basis:100%;font-size:.6rem;color:var(--vds-colour-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:.45rem;font-style:italic;max-width:100%}.roster-hub__export-actions{display:flex;align-items:center;gap:var(--vds-space-2);flex-shrink:0;margin-left:auto}.roster-hub__export-label{font-size:var(--vds-font-size-xs);font-weight:700;color:var(--vds-colour-muted);text-transform:uppercase;letter-spacing:.07em}.roster-export-btn{display:inline-flex;align-items:center;gap:.25rem;border:var(--vds-card-border);border-radius:var(--vds-control-radius);padding:.35rem .75rem;background:var(--vds-colour-panel);color:var(--vds-colour-muted);font:inherit;font-size:var(--vds-font-size-xs);font-weight:600;cursor:not-allowed;opacity:.6}@media(max-width:640px){.roster-hub__export-actions{margin-left:0;margin-top:var(--vds-space-2)}}
