/* workbench.css · "Analyst workbench" shell and screens, derived from the Vendor Intelligence prototype.
   Tiled layout on --bg-app, 6px tiles, mono tabular numbers, violet active marker, prism border on AI tiles.
   Reads spec density tokens and semantic sets. Logical properties throughout so Arabic RTL mirrors. */
.wb-app{--wb-r:6px;--wb-gap:6px;--wb-sel:var(--hover-bg);--wb-neg:var(--critical-fg);--wb-pos:var(--approved-fg);--wb-prism:linear-gradient(135deg,#FF06F9,#7E28F5,#3904FD,#30AAB6); /* @kind other */
  height:100%;min-height:640px;display:flex;flex-direction:column;background:var(--surface-0);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);overflow:hidden}
.wb-app *{box-sizing:border-box}
:where(.wb-app) button{font:inherit;color:inherit}
.wb-app a{color:var(--fg-1)}.wb-app a:hover{color:var(--fg-2)}
.wb-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.wb-num{font-variant-numeric:tabular-nums}
.wb-dim{color:var(--fg-3)}.wb-neg{color:var(--wb-neg)}.wb-pos{color:var(--wb-pos)}
.wb-body{flex:1;min-height:0;display:flex;gap:var(--wb-gap);padding:0 var(--wb-gap) var(--wb-gap)}
.wb-tile{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--wb-r);overflow:hidden;display:flex;flex-direction:column;min-height:0;min-width:0}
.wb-th{display:flex;align-items:center;gap:8px;height:var(--control-h-sm);min-height:28px;padding:0 var(--pad-x);border-bottom:1px solid var(--border-default);flex:none}
.wb-th>span:first-child{font-size:var(--text-2xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3)}
.wb-th-r{margin-inline-start:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-3)}
.wb-scroll{overflow:auto;flex:1;min-height:0}
.wb-cmd{height:54px;flex:none;display:flex;align-items:center;gap:16px;padding:0 10px 0 12px}
.wb-brand{display:flex;align-items:center;gap:9px;flex:1 1 0;min-width:max-content}
.wb-mark{width:28px;height:28px;border-radius:6px;background:var(--wb-prism);display:grid;place-items:center;flex:none}
.wb-mark img{width:16px;height:16px}
.wb-pn{display:flex;flex-direction:column;gap:1px;line-height:1.15}
.wb-pn b{font-weight:600;font-size:var(--font-body);letter-spacing:.02em}.wb-pn span{color:var(--fg-2);font-size:calc(var(--font-body) - 1px)}
.wb-search{flex:0 1 520px;min-width:160px;height:var(--control-h-sm);min-height:28px;display:flex;align-items:center;gap:8px;padding:0 8px;border:1px solid var(--border-control);border-radius:5px;background:var(--surface-1);color:var(--fg-3)}
.wb-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--fg-1);font:inherit}
.wb-search input::placeholder{color:var(--fg-3);opacity:1}
.wb-search:focus-within{border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring)}
.wb-kbd{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-3);border:1px solid var(--border-default);border-radius:3px;padding:0 4px;direction:ltr;unicode-bidi:isolate}
.wb-cmd-r{flex:1 1 0;min-width:max-content;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.wb-asat{display:flex;gap:6px;font-size:calc(var(--font-body) - 1px);color:var(--fg-3);white-space:nowrap}.wb-asat b{font-family:var(--font-mono);font-weight:500;color:var(--fg-1)}
.wb-sep{width:1px;height:18px;background:var(--border-default);margin:0 6px}
.wb-ib{width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--fg-2);cursor:pointer;position:relative}
.wb-ib:hover{background:var(--wb-sel);color:var(--fg-1)}.wb-ib:focus-visible,.wb-nv:focus-visible,.wb-btn:focus-visible,.wb-row:focus-visible,.wb-card:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}
.wb-app svg{width:var(--icon);height:var(--icon);flex:none}
.wb-chip svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px)}
.wb-dot{position:absolute;top:5px;inset-inline-end:5px;width:7px;height:7px;border-radius:99px;background:var(--wb-neg);box-shadow:0 0 0 2px var(--surface-0)}
.wb-av{width:28px;height:28px;border-radius:99px;background:var(--selection-bg);color:var(--fg-1);display:grid;place-items:center;font-size:var(--text-2xs);font-weight:600;border:0;cursor:pointer}
.wb-left{width:200px;flex:none;display:flex;flex-direction:column;gap:var(--wb-gap);min-height:0}
.wb-nav{padding:4px 0;flex:none}
.wb-nv{display:flex;align-items:center;gap:9px;height:var(--row-h);min-height:28px;padding:0 var(--pad-x);border:0;background:transparent;color:var(--fg-2);cursor:pointer;position:relative;text-align:start;width:100%}
.wb-nv:hover{background:var(--wb-sel);color:var(--fg-1)}.wb-nv[aria-current="page"]{background:var(--wb-sel);color:var(--fg-1);font-weight:600}
.wb-nv[aria-current="page"]::before{content:"";position:absolute;inset-inline-start:0;top:5px;bottom:5px;width:2px;border-radius:2px;background:var(--accent-violet,#A47BFF)}
.wb-nl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-nb{font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 5px;border-radius:3px;background:var(--bg-elevated);color:var(--fg-2)}
.wb-nb.danger{background:var(--critical-bg);color:var(--critical-fg)}
.wb-wr{display:flex;flex-direction:column;gap:2px;width:100%;padding:6px var(--pad-x);border:0;border-bottom:1px solid var(--border-subtle);background:transparent;cursor:pointer;text-align:start}
.wb-wr:hover{background:var(--wb-sel)}.wb-wn{display:flex;justify-content:space-between;gap:8px}.wb-wr .wb-wn:first-child{flex-direction:column;gap:0}.wb-wn>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wb-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--wb-gap);position:relative}
.wb-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--wb-gap)}
.wb-rail{width:300px;flex:none;display:flex;flex-direction:column;gap:var(--wb-gap);min-height:0}
.wb-kr{display:grid;grid-template-columns:1fr 1fr}
.wb-kp{display:flex;flex-direction:column;gap:2px;padding:9px var(--pad-x);border-bottom:1px solid var(--border-default);text-align:start}
.wb-kp:nth-child(odd){border-inline-end:1px solid var(--border-default)}.wb-kp:nth-last-child(-n+2){border-bottom:0}
.wb-kl{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}
.wb-kv{font-family:var(--font-mono);font-size:var(--text-xl);line-height:var(--text-xl-lh);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;direction:ltr;text-align:start;unicode-bidi:isolate}
.wb-ai{border:1px solid transparent;background:linear-gradient(var(--surface-1),var(--surface-1)) padding-box,var(--wb-prism) border-box}
.wb-chip{display:inline-flex;align-items:center;gap:4px;height:calc(var(--control-h-sm) - 8px);min-height:20px;padding:0 6px;border-radius:var(--radius);font-size:calc(var(--font-body) - 1px);font-weight:500;border:1px solid var(--c-bd,var(--border-default));background:var(--c-bg,var(--bg-elevated));color:var(--c-fg,var(--fg-2));white-space:nowrap}
.wb-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:var(--radius);border:1px solid var(--border-control);background:var(--surface-1);color:var(--fg-1);cursor:pointer;font-weight:500}
.wb-btn:hover{background:var(--hover-bg)}.wb-btn.pri{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:transparent}.wb-btn.pri:hover{background:var(--btn-primary-bg-hover)}.wb-btn:disabled{opacity:.5;cursor:not-allowed}
.wb-tabs{display:flex;gap:2px;padding:0 var(--pad-x);border-bottom:1px solid var(--border-default)}
.wb-tab{height:var(--control-h);border:0;background:transparent;color:var(--fg-3);padding:0 var(--pad-x);cursor:pointer;position:relative;font-weight:500}
.wb-tab:hover{color:var(--fg-1)}.wb-tab[aria-selected="true"]{color:var(--fg-1)}.wb-tab[aria-selected="true"]::after{content:"";position:absolute;inset-inline:var(--pad-x);bottom:-1px;height:2px;background:var(--fg-1)}
.wb-table{width:100%;border-collapse:collapse}.wb-table th{height:var(--row-h);padding:0 var(--pad-x);text-align:start;font-size:var(--text-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3);border-bottom:1px solid var(--border-default);white-space:nowrap}
.wb-table td{height:var(--row-h);padding:0 var(--pad-x);border-bottom:1px solid var(--border-subtle);white-space:nowrap}
.wb-table .n{text-align:end}.wb-row{cursor:pointer}.wb-row:hover td{background:var(--hover-bg)}.wb-row[aria-selected="true"] td{background:var(--selection-bg)}.wb-row[aria-selected="true"] td:first-child{box-shadow:inset 2px 0 0 var(--selection-border)}
[dir="rtl"] .wb-row[aria-selected="true"] td:first-child{box-shadow:inset -2px 0 0 var(--selection-border)}
.wb-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--wb-gap)}.wb-kpis .wb-tile{padding:10px var(--pad-x);gap:2px}
.wb-grid2{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--wb-gap);flex:1;min-height:0}
.wb-bar{display:grid;grid-template-columns:130px 1fr 72px;align-items:center;gap:var(--sp-8);min-height:var(--row-h);padding:0 var(--pad-x);border-bottom:1px solid var(--border-subtle)}
.wb-bar i{display:block;height:8px;border-radius:99px;background:var(--bg-muted);box-shadow:inset 0 0 0 1px var(--border-subtle);overflow:hidden;position:relative}.wb-bar i b{position:absolute;inset-block:0;inset-inline-start:0;background:var(--chart-1);border-radius:99px}
.wb-kanban{display:grid;grid-template-columns:repeat(5,minmax(190px,1fr));gap:var(--wb-gap);flex:1;min-height:0;overflow:auto}
.wb-col{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--wb-r);display:flex;flex-direction:column;min-height:0}
.wb-col[data-over="true"]{border-color:var(--selection-border);background:var(--selection-bg)}
.wb-card{display:flex;flex-direction:column;gap:6px;padding:var(--sp-8) var(--pad-x);margin:var(--sp-6);border:1px solid var(--border-default);border-radius:var(--wb-r);background:var(--surface-2);cursor:grab;text-align:start}
.wb-card:hover{border-color:var(--border-control)}.wb-card:active{cursor:grabbing}
.wb-form{display:grid;grid-template-columns:130px 1fr;gap:var(--sp-6) var(--sp-8);align-items:center;padding:var(--panel-pad)}
.wb-input{height:var(--control-h);padding:0 var(--pad-x);border:1px solid var(--border-control);border-radius:var(--radius);background:var(--surface-1);color:var(--fg-1);font:inherit;min-width:0}
.wb-input:focus{outline:0;border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring)}.wb-input[data-warn]{border-color:var(--medium-fg)}
.wb-sw{width:34px;height:20px;border-radius:99px;border:1px solid var(--border-control);background:var(--bg-muted);position:relative;cursor:pointer;padding:0;flex:none}
.wb-sw::after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:14px;height:14px;border-radius:99px;background:var(--fg-3);transition:inset-inline-start var(--motion-fast)}
.wb-sw[aria-checked="true"]{background:var(--btn-primary-bg);border-color:transparent}.wb-sw[aria-checked="true"]::after{inset-inline-start:16px;background:var(--btn-primary-fg)}
.wb-menu{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:50;min-width:220px;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);padding:var(--sp-4)}
.wb-mi{display:flex;align-items:center;gap:8px;width:100%;height:var(--control-h-sm);padding:0 var(--pad-x);border:0;background:transparent;border-radius:calc(var(--radius) - 2px);cursor:pointer;text-align:start}
.wb-mi:hover{background:var(--hover-bg)}.wb-mi[aria-checked="true"]{font-weight:600}.wb-ml{padding:var(--sp-6) var(--pad-x) var(--sp-2);font-size:var(--text-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3)}
.wb-panel-r{width:340px;flex:none}
.wb-empty{padding:calc(var(--panel-pad) * 2);color:var(--fg-3);text-align:center}

.wb-wn>span:last-child{white-space:nowrap;flex:none}
.wb-kl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-bar>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wb-page{overflow:auto}
@media (max-width:1180px){
  .wb-rail{display:none}
  .wb-grid2{grid-template-columns:minmax(0,1fr);flex:none}
  .wb-left{width:188px}
  .wb-panel-r{width:280px}
}
@media (max-width:860px){
  .wb-left{display:none}
  .wb-search{flex-basis:200px}.wb-asat,.wb-pn span{display:none}
}

/* Page header bar (title + subtitle | actions) and child-page variant (back link + specific title) */
.wb-ph{position:sticky;top:0;z-index:2;flex:none;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;padding:0 var(--panel-pad);background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--wb-r)}
.wb-ph-l{display:flex;flex-direction:column;gap:2px;min-width:0}
.wb-ph-tr{display:flex;align-items:center;gap:8px;min-width:0}
.wb-ph-t{margin:0;font-size:var(--text-xl);line-height:var(--text-xl-lh);font-weight:600;letter-spacing:-.02em;color:var(--fg-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-ph-s{font-size:calc(var(--font-body) - 1px);color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-ph-r{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:none;margin-inline-start:auto}
.wb-back{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;cursor:pointer;font-size:calc(var(--font-body) - 1px);font-weight:500;color:var(--fg-3);align-self:flex-start}
.wb-back:hover{color:var(--fg-1)}.wb-back:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}
.wb-back svg{width:calc(var(--icon) - 1px);height:calc(var(--icon) - 1px)}

/* Connected sources panel */
.wb-sh{display:flex;flex-direction:column;gap:2px;padding:var(--sp-8) var(--pad-x) var(--sp-6);flex:none}
.wb-sh-t{font-size:var(--text-2xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3)}
.wb-sh-l{align-self:flex-start;padding:0;border:0;background:transparent;cursor:pointer;font-size:var(--text-2xs);color:var(--fg-3)}
.wb-sh-l:hover{color:var(--fg-1)}.wb-sh-l:focus-visible,.wb-sr:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}
.wb-sr{display:flex;align-items:center;gap:var(--sp-8);width:100%;height:var(--row-h);min-height:28px;padding:0 var(--pad-x);border:0;background:transparent;cursor:pointer;text-align:start;color:var(--fg-1)}
.wb-sr:hover{background:var(--wb-sel)}
.wb-sd{width:8px;height:8px;border-radius:99px;flex:none}
.wb-sn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-sr .wb-mono{font-size:var(--text-2xs);flex:none}
.wb-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Ask Spectrum AI: collapsed sliver, full page height, prism border */
.wb-rail-c{width:40px;flex:none;display:flex;flex-direction:column;min-height:0}
.wb-sliver{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:10px 0;cursor:pointer;color:var(--fg-1);border:1px solid transparent;background:linear-gradient(var(--surface-1),var(--surface-1)) padding-box,var(--wb-prism) border-box;border-radius:var(--wb-r)}
.wb-sliver:hover{background:linear-gradient(var(--bg-elevated),var(--bg-elevated)) padding-box,var(--wb-prism) border-box}
.wb-sliver:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}
.wb-sliver-ic{width:28px;height:28px;display:grid;place-items:center;border-radius:5px;flex:none;color:var(--fg-1)}
.wb-sliver-l{writing-mode:vertical-rl;font-size:calc(var(--font-body) - 1px);font-weight:500;color:var(--fg-2);white-space:nowrap}
.wb-sliver:hover .wb-sliver-l{color:var(--fg-1)}
[dir="rtl"] .wb-sliver-l{transform:none}
@media (max-width:1180px){.wb-rail-c{display:flex}}
