.work-v2,#projectDialog {--work-text:var(--ink);--work-text-2:var(--ink2);--work-control-border:var(--muted);--work-focus:var(--ink);--work-pressed-bg:var(--acc);--work-pressed-ink:var(--on-acc);--work-avatar-bg:var(--track);--work-avatar-ink:var(--ink);--work-active-bg:var(--blue-soft);--work-active-ink:var(--blue-ink);--work-archived-bg:var(--track);--work-archived-ink:var(--ink2);--work-bar:var(--blue-ink);--work-bar-over:var(--red-ink);--work-error-ink:var(--red-ink);--work-tile-bg:var(--row-h);--work-dialog-bg:var(--card);--work-dialog-base:var(--bg1);--work-target:44px;--work-card-min:260px}
/* Work v2: owner reference layout (glass four-tab strip, glass search, status pills, one primary
   New, glass grid of cards with neutral avatar, status, Week/Rate tiles, honest budget bar and
   circular actions). Scoped AA adaptations, measured in prototype/work-v2-contrast.test.cjs:
   control boundaries in --muted instead of --glass-brd/--btn-brd; secondary text in --ink2
   instead of --muted; 44px targets instead of 38px; archived = dashed border + icon + text,
   never whole-card opacity; project colour only as a decorative marker, never behind text. */
.work-v2 :focus-visible,#projectDialog :focus-visible {outline:var(--v2-focus-width) solid var(--work-focus);outline-offset:var(--v2-focus-offset)}
.work-v2 [hidden],#projectDialog [hidden] {display:none!important}
.work-v2 {display:flex;flex-direction:column;gap:var(--s-9);min-width:0;color:var(--work-text);font-family:var(--font)}
.work-v2 .page-heading {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-6);min-width:0;margin:0}
.work-v2 .page-heading .eyebrow {color:var(--work-text-2)}
/* Toolbar: tab strip, search, status pills and the single primary action. */
.work-v2 .work-toolbar {display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-5);min-width:0}
.work-v2 .catalog-tabs {display:flex;gap:var(--s-2);max-width:100%;min-width:0;margin:0;padding:var(--s-2);border:1px solid var(--work-control-border);border-radius:var(--r-pill);background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);overflow-x:auto;scrollbar-width:none}
.work-v2 .catalog-tabs button {flex:none;min-height:var(--work-target);min-width:var(--work-target);padding:0 var(--s-9);border:0;border-radius:var(--r-pill);background:transparent;color:var(--work-text-2);font:400 var(--fs-base)/1 var(--font);white-space:nowrap;cursor:pointer}
.work-v2 .catalog-tabs button[aria-selected="true"] {background:var(--work-pressed-bg);color:var(--work-pressed-ink);font-weight:500}
.work-v2 .catalog-tabs button:focus-visible {outline-offset:-3px}
.work-v2 .work-search {flex:1 1 220px;display:flex;flex-direction:row;align-items:center;gap:var(--s-5);min-width:0;min-height:46px;margin:0;padding:0 var(--s-8);border:1px solid var(--work-control-border);border-radius:var(--r-pill);background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--work-text)}
.work-v2 .work-search-icon {flex:none;width:17px;height:17px;background:var(--work-text-2);mask:url('/icons/search.svg') center/contain no-repeat;-webkit-mask:url('/icons/search.svg') center/contain no-repeat}
.work-v2 .work-search input {flex:1;min-width:0;min-height:var(--work-target);border:0;background:transparent;color:var(--work-text);font:400 var(--fs-md)/1 var(--font)}
.work-v2 .work-search input::placeholder {color:var(--work-text-2);opacity:1}
.work-v2 .work-search:focus-within {outline:var(--v2-focus-width) solid var(--work-focus);outline-offset:var(--v2-focus-offset)}
.work-v2 .work-search input:focus-visible {outline:0}
.work-v2 .work-status {display:flex;min-width:0;max-width:100%}
.work-v2 .work-status[data-status-pills="ready"] #projectFilter {display:none}
.work-v2 #projectFilter {min-height:var(--work-target);padding:0 var(--s-8);border:1px solid var(--work-control-border);border-radius:var(--r-pill);background:var(--card);color:var(--work-text);font:400 var(--fs-sm)/1 var(--font)}
.work-v2 .work-status-pills {display:flex;gap:var(--s-1);max-width:100%;min-width:0;padding:3px;border:1px solid var(--work-control-border);border-radius:var(--r-pill);background:var(--card);overflow-x:auto;scrollbar-width:none}
.work-v2 .work-pill {flex:none;min-height:var(--work-target);min-width:var(--work-target);padding:0 var(--s-7);border:0;border-radius:var(--r-pill);background:transparent;color:var(--work-text-2);font:400 var(--fs-sm)/1 var(--font);white-space:nowrap;cursor:pointer}
.work-v2 .work-pill[aria-pressed="true"] {background:var(--work-pressed-bg);color:var(--work-pressed-ink)}
.work-v2 .work-pill:focus-visible {outline-offset:-3px}
.work-v2 .work-new {display:inline-flex;align-items:center;gap:var(--s-4);min-height:46px;padding:0 var(--s-10);border:0;border-radius:var(--r-pill);background:var(--work-pressed-bg);color:var(--work-pressed-ink);font:500 var(--fs-md)/1 var(--font);white-space:nowrap;box-shadow:0 10px 22px -10px rgba(0,0,0,.5);cursor:pointer}
.work-v2 [data-restricted] {cursor:not-allowed}
/* Secondary actions: retry, clear, load more, empty-state New, budget refresh. */
.work-v2 .secondary-btn {display:inline-flex;align-items:center;justify-content:center;gap:var(--s-4);min-height:var(--work-target);max-width:100%;padding:0 var(--s-9);border:1px solid var(--work-control-border);border-radius:var(--r-pill);background:var(--btn);color:var(--work-text);font:500 var(--fs-base)/1.2 var(--font);white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.work-v2 .work-link {display:inline-flex;align-items:center;min-height:var(--work-target);color:var(--work-text);font-weight:500;text-decoration:underline;text-underline-offset:3px}
/* Budget disclosure: explicit, secondary, explained. */
.work-v2 .work-budget {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-6);min-width:0;padding:var(--s-8);border:1px solid var(--glass-brd);border-radius:var(--r-2xl);background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.work-v2 .work-budget-text {flex:1 1 280px;min-width:0}
.work-v2 .work-budget h2 {margin:0 0 var(--s-2);color:var(--work-text);font:500 var(--fs-lg)/1.3 var(--font)}
.work-v2 .work-budget p {margin:0 0 var(--s-2);color:var(--work-text-2);font:400 var(--fs-sm)/1.5 var(--font)}
.work-v2 .work-budget[data-state="error"] #workBudgetStatus {color:var(--work-error-ink);font-weight:500}
.work-v2 .work-budget-refresh::before {content:"";flex:none;width:16px;height:16px;background:var(--work-text);mask:url('/icons/refresh.svg') center/contain no-repeat;-webkit-mask:url('/icons/refresh.svg') center/contain no-repeat}
/* Load states. */
.work-v2 .work-alert {display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-6);padding:var(--s-6) var(--s-8);border:1px solid var(--work-error-ink);border-radius:var(--r-xl);background:var(--glass)}
.work-v2 .work-alert p {flex:1 1 240px;margin:0;color:var(--work-error-ink);font:500 var(--fs-base)/1.5 var(--font)}
.work-v2 .work-provisional {margin:0;padding:var(--s-5) var(--s-7);border:1px dashed var(--work-control-border);border-radius:var(--r-lg);background:var(--glass);color:var(--work-text-2);font:400 var(--fs-sm)/1.5 var(--font)}
.work-v2 .work-surface {display:flex;flex-direction:column;gap:var(--s-6);min-width:0;padding:var(--s-8);border:1px solid var(--glass-brd);border-radius:32px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--sh)}
.work-v2 .work-summary,.work-v2 .work-week-note {margin:0;color:var(--work-text-2);font:400 var(--fs-sm)/1.5 var(--font)}
.work-v2 .work-summary:empty {display:none}
.work-v2 .work-state {display:flex;flex-direction:column;align-items:center;gap:var(--s-6);padding:40px var(--s-8);text-align:center}
.work-v2 .work-state p {margin:0;color:var(--work-text-2);font:400 14px/1.5 var(--font)}
.work-v2 .work-skeletons {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--work-card-min)),1fr));gap:var(--s-6);width:100%}
.work-v2 .work-skeleton {height:150px;border:1px solid var(--card-brd);border-radius:var(--r-2xl);background:var(--track)}
.work-v2 .work-load-more {align-self:center}
/* Grid and cards. Local overflow only; the grid can shrink to any width. */
.work-v2 .project-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--work-card-min)),1fr));gap:var(--s-6);min-width:0}
.work-v2 .project-grid:empty {display:none}
.work-v2 .work-card {display:flex;flex-direction:column;align-items:stretch;gap:var(--s-7);min-width:0;padding:var(--s-8);border:1px solid var(--card-brd);border-radius:var(--r-2xl);background:var(--card);box-shadow:var(--sh-sm);color:var(--work-text)}
.work-v2 .work-card.archived-card {border:1px dashed var(--work-control-border)}
.work-v2 .work-card span,.work-v2 .work-card strong {display:inline;margin:0;color:inherit;font-size:inherit}
.work-v2 .work-card-head {display:flex;align-items:center;gap:var(--s-6);min-width:0}
.work-v2 .work-card .work-avatar-wrap {position:relative;flex:none;display:block;width:46px;height:46px}
.work-v2 .work-card .work-avatar {display:grid;place-items:center;width:46px;height:46px;border-radius:var(--r-circle);background:var(--work-avatar-bg);color:var(--work-avatar-ink);font:600 var(--fs-lg)/1 var(--font);box-shadow:0 0 0 3px var(--card)}
.work-v2 .work-card .work-marker {position:absolute;inset-block-end:-1px;inset-inline-end:-1px;display:block;width:14px;height:14px;border:2px solid var(--card);border-radius:var(--r-circle);background:var(--work-marker)}
.work-v2 .work-card .catalog-name {flex:1;min-width:0}
.work-v2 .work-card .work-name {display:block;overflow:hidden;font:500 14px/1.3 var(--font);white-space:nowrap;text-overflow:ellipsis}
.work-v2 .work-card .work-subtitle {display:block;margin-top:3px;overflow:hidden;color:var(--work-text-2);font:400 var(--fs-xs)/1.3 var(--font);white-space:nowrap;text-overflow:ellipsis}
.work-v2 .work-card .work-status-pill {flex:none;display:inline-flex;align-items:center;gap:var(--s-2);min-height:24px;padding:0 var(--s-5);border-radius:99px;background:var(--work-active-bg);color:var(--work-active-ink);font:500 11px/1 var(--font);white-space:nowrap}
.work-v2 .work-card .work-status-pill[data-status="archived"] {background:var(--work-archived-bg);color:var(--work-archived-ink)}
.work-v2 .work-card .work-status-pill[data-status="archived"]::before {content:"";width:12px;height:12px;background:var(--work-archived-ink);mask:url('/icons/archive.svg') center/contain no-repeat;-webkit-mask:url('/icons/archive.svg') center/contain no-repeat}
.work-v2 .work-card .work-count {display:flex;align-items:baseline;gap:var(--s-3);margin:0;color:var(--work-text-2);font:400 var(--fs-sm)/1.3 var(--font)}
.work-v2 .work-card .work-count strong {color:var(--work-text);font:500 var(--fs-xl)/1 var(--font)}
.work-v2 .work-card .work-tiles {display:flex;flex-wrap:wrap;gap:var(--s-4);min-width:0;container-type:inline-size}
.work-v2 .work-card .work-tile {flex:1 1 auto;min-width:min-content;padding:var(--s-5) var(--s-6);border-radius:var(--r-md);background:var(--work-tile-bg)}
.work-v2 .work-card .work-tile-label {display:block;margin-bottom:var(--s-3);color:var(--work-text-2);font:400 11px/1.3 var(--font)}
.work-v2 .work-card .work-tile strong {display:block;white-space:nowrap;color:var(--work-text);font:500 var(--fs-xl)/1.1 UTNum,Outfit,var(--font);font-size:clamp(12px,6cqi,var(--fs-xl));text-align:start}
.work-v2 .work-card .work-budget-head {display:flex;justify-content:space-between;gap:var(--s-4);margin-bottom:7px;color:var(--work-text-2);font:400 var(--fs-xs)/1 var(--font)}
.work-v2 .work-card .work-budget-value {color:var(--work-text);font:500 12px/1 UTNum,Outfit,var(--font)}
.work-v2 .work-card .work-budget-bar {height:7px;overflow:hidden;border-radius:99px;background:var(--track);box-shadow:inset 0 0 0 1px var(--work-control-border)}
.work-v2 .work-card .work-budget-fill {height:100%;max-width:100%;border-radius:99px;background:var(--work-bar)}
.work-v2 .work-card .work-budget-fill[data-over="true"] {background:var(--work-bar-over)}
.work-v2 .work-card .work-budget-detail {display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin:var(--s-3) 0 0;color:var(--work-text-2);font:400 var(--fs-xs)/1.4 var(--font)}
.work-v2 .work-card .work-budget-flag {color:var(--work-text);font-weight:600}
.work-v2 .work-card .work-budget-note {margin:0;color:var(--work-text-2);font:400 var(--fs-xs)/1.4 var(--font)}
.work-v2 .work-card .work-actions {display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-4);margin-top:auto}
.work-v2 .work-card .work-icon-btn {display:grid;place-items:center;width:var(--work-target);height:var(--work-target);min-width:var(--work-target);min-height:var(--work-target);padding:0;border:1px solid var(--work-control-border);border-radius:var(--r-circle);background:var(--btn);color:var(--work-text);cursor:pointer}
.work-v2 .work-card .work-icon-btn::before {content:"";width:16px;height:16px;background:var(--work-text);mask:var(--work-icon) center/contain no-repeat;-webkit-mask:var(--work-icon) center/contain no-repeat}
.work-v2 .work-card .work-edit {--work-icon:url('/icons/edit.svg')}
.work-v2 .work-card .work-archive {--work-icon:url('/icons/archive.svg')}
.work-v2 .work-card .work-archive[data-icon="restore"] {--work-icon:url('/icons/refresh.svg')}
.work-v2 .work-card .work-start {display:inline-flex;align-items:center;gap:var(--s-4);min-height:var(--work-target);margin-inline-start:auto;padding:0 var(--s-8);border:0;border-radius:var(--r-pill);background:var(--work-pressed-bg);color:var(--work-pressed-ink);font:500 var(--fs-sm)/1 var(--font);white-space:nowrap;cursor:pointer}
.work-v2 .work-card .work-start::before {content:"";width:11px;height:11px;background:var(--work-pressed-ink);mask:url('/icons/play.svg') center/contain no-repeat;-webkit-mask:url('/icons/play.svg') center/contain no-repeat}
/* Catalog editor: the original dialog and controls, drawn from the same tokens on an opaque surface. */
#projectDialog {max-width:94vw;padding:0;border:0;background:transparent;color:var(--work-text)}
#projectDialog::backdrop {background:rgba(8,9,12,.55)}
#projectDialog .dialog-card {width:min(520px,92vw);padding:var(--s-12);border:1px solid var(--work-control-border);border-radius:var(--r-3xl);background:linear-gradient(var(--work-dialog-bg),var(--work-dialog-bg)),var(--work-dialog-base);color:var(--work-text);box-shadow:var(--sh);font-family:var(--font)}
#projectDialog .dialog-head {display:flex;align-items:center;justify-content:space-between;gap:var(--s-6)}
#projectDialog h3 {margin:0;color:var(--work-text);font:500 var(--fs-2xl)/1.2 var(--font)}
#projectDialog label {color:var(--work-text-2);font:400 var(--fs-sm)/1.3 var(--font)}
#projectDialog input:not([type="checkbox"]):not([type="color"]),#projectDialog select {min-height:var(--work-target);padding:0 var(--s-7);border:1px solid var(--work-control-border);border-radius:var(--r-sm);background:var(--btn);color:var(--work-text);font:400 var(--fs-md)/1.2 var(--font)}
#projectDialog input[type="color"] {min-height:var(--work-target);border:1px solid var(--work-control-border);border-radius:var(--r-sm);background:var(--btn)}
#projectDialog input[type="checkbox"] {width:20px;height:20px;accent-color:var(--work-pressed-bg)}
#projectDialog .inline-label {min-height:var(--work-target);color:var(--work-text)}
#projectDialog .form-error {color:var(--work-error-ink);font-weight:500}
#projectDialog .close-btn {display:grid;place-items:center;min-width:var(--work-target);min-height:var(--work-target);border:1px solid var(--work-control-border);border-radius:var(--r-circle);background:var(--btn);color:var(--work-text)}
#projectDialog .dialog-actions {flex-wrap:wrap}
#projectDialog .primary-btn,#projectDialog .secondary-btn {min-height:var(--work-target);padding:0 var(--s-9);border-radius:var(--r-pill);font:500 var(--fs-base)/1 var(--font);cursor:pointer}
#projectDialog .primary-btn {border:0;background:var(--work-pressed-bg);color:var(--work-pressed-ink)}
#projectDialog .secondary-btn {border:1px solid var(--work-control-border);background:var(--btn);color:var(--work-text)}
#projectDialog :disabled {cursor:wait}
/* Motion only when allowed. */
@media(prefers-reduced-motion:no-preference){
 .work-v2 .work-card {transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
 .work-v2 .work-card:hover {transform:translateY(-3px)}
 .work-v2 .catalog-tabs button,.work-v2 .work-pill {transition:background .3s,color .3s}
 .work-v2 .work-icon-btn,.work-v2 .work-start,.work-v2 .work-new {transition:transform .3s var(--ease)}
 .work-v2 .work-icon-btn:hover:not(:disabled),.work-v2 .work-start:hover:not(:disabled),.work-v2 .work-new:hover:not(:disabled) {transform:translateY(-1px)}
}
@media(prefers-reduced-motion:reduce){.work-v2 *,#projectDialog * {transition:none!important;animation:none!important}}
/* Forced colours: system colours keep text, boundaries, selection and the bar visible. */
@media(forced-colors:active){
 .work-v2 .catalog-tabs,.work-v2 .work-status-pills,.work-v2 .work-search,.work-v2 .work-card,.work-v2 .work-icon-btn,.work-v2 .secondary-btn,#projectDialog .dialog-card {border:1px solid CanvasText}
 .work-v2 .catalog-tabs button[aria-selected="true"],.work-v2 .work-pill[aria-pressed="true"],.work-v2 .work-start,.work-v2 .work-new {forced-color-adjust:none;background:Highlight;color:HighlightText}
 .work-v2 .work-icon-btn::before,.work-v2 .work-search-icon,.work-v2 .work-budget-refresh::before,.work-v2 .work-status-pill::before {background:CanvasText}
 .work-v2 .work-start::before {background:HighlightText}
 .work-v2 .work-budget-bar {border:1px solid CanvasText}
 .work-v2 .work-budget-fill {forced-color-adjust:none;background:CanvasText}
 .work-v2 .work-marker {forced-color-adjust:none}
}
/* Print: text on paper, no glass, no controls. */
@media print{
 .work-v2 .work-toolbar,.work-v2 .work-actions,.work-v2 .work-load-more,.work-v2 #workBudgetRefresh,.work-v2 .work-alert button,.work-v2 .work-state button {display:none!important}
 .work-v2 .work-surface,.work-v2 .work-budget,.work-v2 .work-card,.work-v2 .work-tile {background:#fff!important;color:#000!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-color:#000!important}
 .work-v2 .work-card * {color:#000!important}
 .work-v2 .work-budget-fill {background:#000!important}
 .work-v2 .work-card {break-inside:avoid}
}
