/* R-0416 approved boards; all visual colours/fonts come from Ledger tokens. */
.jv2{font-family:var(--font-sans);color:var(--text-primary);display:flex;flex-direction:column;gap:24px;padding:12px 0 32px;min-width:0}
.jv2 *, .jv2-dialog *{box-sizing:border-box}
.jv2 h1{font:600 40px/1.15 var(--font-display);letter-spacing:-.01em;margin:0 0 14px;text-wrap:balance}
.jv2 h2,.jv2-dialog h2{font:600 22px/1.25 var(--font-display);margin:0;text-wrap:balance}
.jv2 h3{font-size:16px;margin:0}
.jv2-money{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.jv2-meta{font-size:var(--text-sm);line-height:1.5;color:var(--ui-muted)}
.jv2-source{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jv2-logo{width:30px;height:30px;border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--surface-raised);display:inline-flex;align-items:center;justify-content:center;flex:none}
.jv2-logo img{width:18px;height:18px;object-fit:contain;display:block}
.jv2-logos{display:flex}.jv2-logos .jv2-logo+.jv2-logo{margin-left:-6px}
.jv2-card{background:var(--surface-raised);border:1px solid var(--ui-line);border-radius:var(--radius-card);overflow:clip;min-width:0}
.jv2-card-head{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.jv2-row,.jv2-cols{display:grid;grid-template-columns:minmax(180px,2.2fr) 150px 170px 120px 110px var(--btn-pill-w);gap:14px;align-items:center;padding:14px 20px;border-top:1px solid var(--ui-divider)}
.jv2-cols{padding-block:10px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ui-muted);border:0}.jv2-cols>:first-child{padding-left:68px}
.jv2-item{display:flex;gap:14px;align-items:center;min-width:0}.jv2-slot{width:54px;display:flex;flex:none;justify-content:flex-start}
.jv2-name{border:0;background:transparent;color:inherit;text-align:left;padding:0;font:600 15px/1.4 var(--font-sans);overflow-wrap:anywhere;cursor:pointer;min-height:44px;touch-action:manipulation}
/* One-UI (A.15): the pill and the 144/132 button pair are the shared
   .tf-status-pill / .tf-pill-btn; only Jobs-specific layout lives here. */
.jv2-btn:disabled{opacity:.6;cursor:default}.jv2-btn:active:not(:disabled){transform:scale(.98)}
.jv2-btn:focus-visible,.jv2-name:focus-visible,.jv2-dialog input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.jv2-twins{display:flex;flex-direction:column;gap:5px}.jv2-twin{display:grid;grid-template-columns:38px minmax(0,1fr) 32px;gap:8px;align-items:center;font-size:var(--text-xs);color:var(--ui-muted)}.jv2-unknown{grid-column:2/4;color:var(--ui-muted)}
.jv2-track{height:6px;background:var(--ui-divider);border-radius:var(--radius-pill);overflow:hidden}.jv2-fill{display:block;height:100%;background:var(--ui-teal);border-radius:var(--radius-pill);width:0}.jv2-billed .jv2-fill{background:var(--ui-sched)}
.jv2-twin .jv2-money{text-align:right;font-size:var(--text-xs);color:var(--ui-body)}.jv2-figure{text-align:right}.jv2-figure small{display:block;font-size:12px;color:var(--text-secondary);margin-top:3px}
.jv2-bar-card{padding:20px;display:flex;flex-direction:column;gap:14px}.jv2-bar{display:flex;height:12px;border-radius:var(--radius-pill);overflow:hidden;background:var(--surface-sunken)}.jv2-bar span{background:var(--ui-sched)}.jv2-bar span:nth-child(2){background:var(--ui-teal)}.jv2-bar span:nth-child(3){background:var(--ui-line)}
.jv2-legend{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary)}.jv2-legend b{color:var(--text-primary);display:block;margin-bottom:4px}
.jv2-lower{display:grid;grid-template-columns:1fr 1fr;gap:20px}.jv2-weeks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 20px 20px}.jv2-week{text-align:center;min-width:0}.jv2-week-well{height:130px;display:flex;align-items:end;justify-content:center;padding-block:12px}.jv2-week-bar{width:64px;background:var(--accent);border-radius:var(--radius-md) var(--radius-md) 0 0;min-height:2px}
.jv2-foot{padding:16px 20px;border-top:1px solid var(--ui-divider);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.jv2-pm{display:grid;grid-template-columns:36px minmax(0,1fr) 96px var(--btn-pill-w);gap:14px;align-items:center;padding:16px 20px;border-top:1px solid var(--ui-divider)}
.jv2-avatar{width:36px;height:36px;border-radius:50%;background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}
.jv2-dialog{position:fixed;inset:0;margin:auto;padding:0;border:0;border-radius:var(--radius-sheet);background:var(--surface-raised);color:var(--ui-ink);box-shadow:var(--shadow-sheet);width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;font-family:var(--font-sans);overscroll-behavior:contain}
.jv2-dialog::backdrop{background:var(--surface-overlay)}.jv2-dialog-body{padding:24px 28px;display:flex;flex-direction:column;gap:14px}.jv2-dialog-foot{border-top:1px solid var(--ui-divider);padding:18px 28px 24px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.jv2-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.jv2-fact{background:var(--surface-sunken);border-radius:var(--radius-lg);padding:12px}.jv2-fact .jv2-money{display:block;margin-top:4px}
.jv2-dialog p{margin:0;line-height:1.55}.jv2-receipt{border-top:1px solid var(--border-subtle);padding-top:12px}.jv2-source-row{display:flex;gap:12px;align-items:center;border-top:1px solid var(--ui-divider);padding-block:10px;font-size:var(--text-sm)}.jv2-source-row .jv2-meta{margin-left:auto}
.jv2-dialog label{font-size:14px}.jv2-option{display:flex;gap:12px;align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px;min-height:44px}.jv2-dialog input[type=text],.jv2-dialog input[type=email],.jv2-dialog input[type=date],.jv2-dialog input[type=number]{width:100%;font-size:16px;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px;color:var(--text-primary);background:var(--surface-raised)}
.jv2-preview{width:100%;height:350px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised)}
.jv2-question{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:10px;border-top:1px solid var(--border-subtle);padding-block:10px;line-height:1.5}.jv2-question button{width:44px}
.jv2-toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:12000;background:var(--surface-ink);color:var(--text-on-accent);padding:14px 20px;border-radius:var(--radius-lg);display:flex;gap:20px;align-items:center;max-width:calc(100% - 32px);box-shadow:var(--shadow-modal)}.jv2-toast button{background:transparent;color:var(--text-on-accent);border:0;min-height:44px;font:600 14px var(--font-sans);cursor:pointer}
@media(max-width:1200px){.jv2-row,.jv2-cols{grid-template-columns:minmax(180px,2fr) 125px 110px 110px 100px var(--btn-pill-w);gap:10px;padding-inline:16px}.jv2-slot{width:40px}.jv2-cols>:first-child{padding-left:54px}}
@media(max-width:1040px){.jv2-cols{display:none}.jv2-row{grid-template-columns:minmax(0,1fr) var(--btn-pill-w);gap:12px}.jv2-item{grid-column:1/-1}.jv2-twins{grid-column:1/-1}.jv2-pill{grid-column:1;grid-row:3}.jv2-row>.jv2-btn{grid-column:2;grid-row:3}.jv2-row>.jv2-figure{display:none}.jv2-item .jv2-mobile-figure{display:block;margin-left:auto}.jv2-lower{grid-template-columns:1fr}}
@media(min-width:1041px){.jv2-mobile-figure{display:none}}
@media(max-width:600px){.jv2{gap:20px;padding:8px 0 32px}.jv2 h1{font-size:26px}.jv2-card-head,.jv2-bar-card{padding:16px}.jv2-row{grid-template-columns:minmax(0,1fr) var(--btn-pill-w);padding:14px 16px;gap:10px}.jv2-slot{width:28px}.jv2-item{gap:10px}.jv2-name{font-size:var(--text-sm)}.jv2-pm{grid-template-columns:36px minmax(0,1fr) var(--btn-pill-w);gap:10px;padding:16px}.jv2-pm>.jv2-pill{grid-column:2;grid-row:2}.jv2-pm>.jv2-btn{grid-column:3;grid-row:1/3}.jv2-dialog-body{padding:20px}.jv2-dialog-foot{padding:16px 20px calc(20px + env(safe-area-inset-bottom,0px));justify-content:space-between}.jv2-dialog-foot .jv2-btn{flex:1;width:auto;min-width:100px}.jv2-facts{grid-template-columns:1fr}.jv2-figure .jv2-money{font-size:14px}.jv2-legend{gap:10px}.jv2-legend>div{flex:1;min-width:85px}.jv2-toast{width:calc(100% - 32px)}.jv2-preview{height:320px}}
@media(prefers-reduced-motion:no-preference){.jv2-btn{transition:transform var(--duration-instant) var(--ease-out)}.jv2-dialog[open]{animation:jv2-enter var(--duration-base) var(--ease-out)}@keyframes jv2-enter{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}}

.jv2-shell{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}.jv2-shell>.tf-card__header{display:none}.jv2-shell #ocs-body{padding:0}.jv2-dialog fieldset{border:0;padding:0;display:grid;gap:8px}.jv2-dialog legend{font-size:12px;color:var(--text-secondary);padding-bottom:8px}.jv2-dialog select{font-size:16px;max-width:100%;min-height:44px}.jv2-dialog h3{margin:0;font-size:15px}

.jv2-card-answer{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.jv2-card-answer>strong{font-size:28px}.jv2-card-answer>span:last-child{margin-left:auto}.jv2-meta,.jv2-source-row{overflow-wrap:anywhere}.jv2-item>div{min-width:0;flex:1}.jv2-mobile-figure{font-size:14px}.jv2-avatar{overflow:hidden}

.jv2-source-row{flex-wrap:wrap}.jv2-source-row>div{flex:1;min-width:140px}@media(max-width:1040px){.jv2-mobile-figure{flex:none;white-space:nowrap;overflow-wrap:normal}}
.jv2-dialog.jv2-keyboard[open]{animation:none}
.jv2-unknown-line{padding:10px 12px;border-left:3px solid var(--border-default);background:var(--surface-sunken);color:var(--text-secondary)}
.jv2-readonly-note{font-size:13px;color:var(--text-secondary);margin:0}
.jv2-readonly-action[disabled],.tf-readonly-visible:disabled,.tf-readonly-always-visible:disabled{opacity:.56;cursor:not-allowed}
.jv2-input-table{width:100%;margin-block:12px;font-size:14px}.jv2-input-table th{text-align:left;font-weight:500}.jv2-input-table td{text-align:right}.jv2-input-table input{width:100%;font-size:16px;min-height:44px}

/* R-0446 bill by Aspire estimate phase, and the R-0440 read-only breakdown. */
.jv2-dialog.jv2-dialog--wide{width:min(880px,calc(100% - 32px))}
.jv2-phase-table,.jv2-phase-ready-table{width:100%;border-collapse:collapse;font-size:14px}
.jv2-phase-table th,.jv2-phase-ready-table thead th{font-size:12px;font-weight:600;color:var(--text-secondary);text-align:right;padding:8px}
.jv2-phase-table th:first-child,.jv2-phase-ready-table th[scope=row],.jv2-phase-ready-table thead th:first-child{text-align:left}
.jv2-phase-table td,.jv2-phase-ready-table td,.jv2-phase-ready-table tbody th,.jv2-phase-ready-table tfoot th{border-top:1px solid var(--border-subtle);padding:10px 8px;text-align:right;vertical-align:middle}
.jv2-phase-table td:first-child{text-align:left}
.jv2-phase-table th:nth-child(n+2):nth-child(-n+4),.jv2-phase-table td:nth-child(n+2):nth-child(-n+4){width:112px;white-space:nowrap}.jv2-phase-table .jv2-phase-amount,.jv2-phase-table th:last-child{width:290px}
.jv2-phase-ready-table tbody th,.jv2-phase-ready-table tfoot th{text-align:left;font-weight:500}
.jv2-phase-ready-table caption{text-align:left;font-size:13px;color:var(--text-secondary);padding-bottom:6px}
.jv2-phase-ready-table .jv2-meta{display:block}
.jv2-phase-pick{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer}
.jv2-phase-pick input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--accent)}
.jv2-phase-title{display:block;font-weight:600;overflow-wrap:anywhere}
.jv2-phase-off{color:var(--text-secondary)}.jv2-phase-off .jv2-phase-pick{cursor:default}
.jv2-phase-entry{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.jv2-seg{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-pill);overflow:hidden;flex:none}
.jv2-seg button{border:0;background:var(--surface-raised);min-width:44px;min-height:44px;font:600 14px var(--font-sans);color:var(--text-secondary);cursor:pointer;touch-action:manipulation}
.jv2-seg button[aria-pressed=true]{background:var(--surface-ink);color:var(--text-on-accent)}
.jv2-seg button:focus-visible,.jv2-phase-pick input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.jv2-dialog .jv2-phase-entry input{width:120px;min-height:44px;font:600 16px var(--font-mono);text-align:right;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:6px 10px;color:var(--text-primary);background:var(--surface-raised)}
.jv2-dialog .jv2-phase-entry input[aria-invalid=true]{border-color:var(--accent-danger)}
.jv2-calc{display:block;margin-top:4px;font-size:12px}
.jv2-calc-bad{color:var(--accent-danger-text);font-weight:600}
.jv2-calc-bad:empty{display:none}
.jv2-phase-total{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--surface-sunken);font-weight:600}
.jv2-phase-total .jv2-money{font-size:22px}
@media(max-width:700px){.jv2-phase-table thead{display:none}.jv2-phase-table td:nth-child(n+2):nth-child(-n+4),.jv2-phase-table .jv2-phase-amount{width:auto;white-space:normal}.jv2-phase-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;border-top:1px solid var(--border-subtle);padding:12px 0}.jv2-phase-table td{border:0;padding:0;text-align:left;min-width:0}.jv2-phase-table td:first-child,.jv2-phase-table td.jv2-phase-amount{grid-column:1/-1}.jv2-phase-table td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--text-secondary)}.jv2-phase-entry{justify-content:flex-start}.jv2-phase-total .jv2-money{font-size:18px}.jv2-phase-ready-table th,.jv2-phase-ready-table td,.jv2-phase-ready-table thead th,.jv2-phase-ready-table tbody th,.jv2-phase-ready-table tfoot th{padding-inline:4px}.jv2-phase-ready-table tbody th{overflow-wrap:anywhere}.jv2-phase-ready-table .jv2-money{font-size:13px}}

/* Opened job = the canvas sheet (claude-design-1009 jobs/Cards): logos +
   pill, title + figure on one line, meta line, facts, one plain sentence,
   "Where this came from" rows, footer Close / view / decide. */
.jv2-sheet-tags{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.jv2-sheet-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.jv2-sheet-title h2{flex:1;min-width:0}
.jv2-sheet-figure{font-size:var(--text-xl);color:var(--ui-ink)}.jv2-sheet-figure--need{color:var(--ui-need)}
.jv2-found{font-size:var(--text-base);color:var(--ui-body)}
.jv2-where h3{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ui-muted);margin:0 0 4px}
.jv2-fact{background:var(--ui-ground)}
.jv2-card-head h2{font-size:var(--text-lg)}
.jv2-fact>span{display:block}
.jv2-refresh-error{color:var(--ui-need)}
