/* Staff workbench. Brand values come from tokens.css (Naldano/brand); this file only uses its properties.
   The workbench is a process room: terracotta (atelier ink, plaster) carries the accents, forest ink the text. */
:root{color-scheme:light}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:var(--text-body)/1.6 var(--sans);min-height:100vh}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
strong,b{font-weight:500}
em{font-style:italic}
:focus-visible{outline:2px solid var(--atelier-ink);outline-offset:2px}

/* Header: wordmark top left, then who is signed in, the customer and the session end. */
.top{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs) var(--space-s);padding:var(--space-s) var(--gutter);border-bottom:1px solid var(--line);background:var(--paper)}
.wordmark{display:inline-flex;line-height:0}
.wordmark img{height:26px;width:auto}
.top .label{margin:0}
.env-pill{font-size:12px;letter-spacing:.07em;padding:3px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--atelier-ink);background:var(--page)}
.who{margin-left:auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs) var(--space-s);font-size:14px}
.customer-switch{background:var(--page);border:1px solid var(--line);border-radius:var(--radius-pill);padding:4px 14px;cursor:pointer;font-size:14px}
.customer-switch:hover{border-color:var(--atelier-ink)}
.customer-id{font-family:var(--mono);font-size:.92em;color:var(--atelier-ink)}
.session-end{font-size:13px}

.customer-nav{display:flex;flex-wrap:wrap;gap:2px var(--space-xs);padding:0 var(--gutter);border-bottom:1px solid var(--line);background:var(--page)}
.nav-item{background:none;border:0;border-bottom:2px solid transparent;padding:10px 6px;cursor:pointer;color:var(--moss);font-size:var(--text-small)}
.nav-item:hover{color:var(--ink)}
.nav-item.current{color:var(--atelier-ink);border-bottom-color:var(--atelier-ink);font-weight:500}

main{max-width:var(--max-width);margin:0 auto;padding:var(--space-l) var(--gutter) var(--space-xl)}
.screen{display:flex;flex-direction:column;gap:var(--space-s);min-width:0}
.screen.start{padding-top:var(--space-xl);max-width:640px}
.screen.start .button{align-self:flex-start}

/* Label, title, sentence */
.label{font-size:var(--text-label);font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--moss);margin:0}
.title-block{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-xs)}
h1{font-family:var(--serif);font-weight:400;font-size:var(--text-chapter);letter-spacing:-.02em;line-height:1.05;margin:0;overflow-wrap:anywhere}
h2{font-family:var(--serif);font-weight:500;font-size:var(--text-entry);margin:var(--space-m) 0 0}
.lead{margin:0;max-width:68ch;color:var(--ink-soft)}
p{margin:0}
.note{color:var(--moss);font-size:var(--text-small)}
.mono{font-family:var(--mono);font-size:.88em;overflow-wrap:anywhere}

/* Buttons: pills with a fine outline; primary in atelier ink; destructive on plaster. */
.button{border:1px solid var(--ink);background:transparent;border-radius:var(--radius-pill);padding:8px 18px;cursor:pointer;font-size:var(--text-small);line-height:1.4;white-space:nowrap;transition:background .15s,color .15s}
.button:hover:not(:disabled){background:var(--ink);color:var(--page)}
.button.primary{background:var(--atelier-ink);border-color:var(--atelier-ink);color:var(--cream)}
.button.primary:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}
.button.danger{background:var(--plaster);border-color:var(--atelier-ink);color:var(--atelier-ink);font-weight:500}
.button.danger:hover:not(:disabled){background:var(--atelier-ink);color:var(--cream)}
.button.quiet{border-color:var(--line);color:var(--ink-soft);padding:5px 14px}
.button.quiet:hover:not(:disabled){background:var(--parchment);color:var(--ink)}
.button:disabled{opacity:.45;cursor:not-allowed}
.button-row{display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.link-button{background:none;border:0;padding:0;cursor:pointer;color:var(--atelier-ink);text-decoration:underline;text-underline-offset:3px;text-align:left;overflow-wrap:anywhere}
.back{align-self:flex-start;background:none;border:0;padding:0;cursor:pointer;color:var(--moss);font-size:var(--text-small)}
.back:hover{color:var(--ink)}

/* Forms */
.input{display:block;width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:7px 10px;font-size:var(--text-small);min-width:0}
.input:focus{outline:none;border-color:var(--atelier-ink);box-shadow:0 0 0 3px var(--plaster)}
label{display:flex;flex-direction:column;gap:4px;min-width:0}
.filters,.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-s);padding:var(--space-s);background:var(--page);border:1px solid var(--line);border-radius:var(--radius)}
.filters label{flex:1 1 150px}
.filters label:first-child,.inline-form .grow{flex:2 1 240px}
.filter-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}
.inline-form label{flex:1 1 180px}
fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}
.choice{flex-direction:row;align-items:baseline;gap:10px;font-size:var(--text-small)}
.choice input{flex:none}
.deletion-form{display:flex;flex-direction:column;gap:var(--space-s);padding:var(--space-m);background:var(--page);border:1px solid var(--line);border-radius:var(--radius);max-width:760px}
.chosen-files{margin:0 0 0 28px;padding:0;list-style:none;font-size:var(--text-small);color:var(--ink-soft)}
.dry-run,.release-box{display:flex;flex-direction:column;gap:var(--space-s);padding:var(--space-m);border:1px solid var(--atelier-ink);border-radius:var(--radius);background:var(--page);max-width:760px}
.confirm{flex-direction:row;align-items:baseline;gap:10px}

/* Notices and job lines */
.notice{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-s);align-items:baseline;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--page);font-size:var(--text-small)}
.notice.warn{background:var(--plaster);border-color:var(--atelier-ink);color:var(--atelier-ink)}
.notice.ok{background:var(--parchment);color:var(--garden-ink)}
main > .notice{margin-bottom:var(--space-s)}
.job-line{display:flex;align-items:center;gap:10px;color:var(--moss);font-size:var(--text-small)}
.spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--atelier-ink);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation:none}}

/* Tables: 15 px, labels as column heads, data cells in mono where they are data. */
.table-scroll,.sheet-scroll{overflow-x:auto;max-width:100%}
table.data{width:100%;border-collapse:collapse;font-size:var(--text-small)}
table.data th{font-size:var(--text-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--moss);text-align:left;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
table.data td{padding:8px;border-bottom:1px solid var(--hair);vertical-align:top;overflow-wrap:break-word}
table.data tr.selected td{background:var(--page)}
table.data tr.denied td{background:var(--plaster);color:var(--atelier-ink)}
table.data .check{width:32px}
table.data .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.data .time{white-space:nowrap;color:var(--moss)}
table.data .actions{white-space:nowrap;text-align:right}
table.data .actions .button + .button{margin-left:6px}
.files-table .file-name{min-width:180px}
.files-table .comment{min-width:200px;color:var(--ink-soft)}
.kind{display:block;font-size:13px;color:var(--moss)}
.type-chip{display:inline-block;white-space:nowrap;font-family:var(--mono);font-size:12px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink-soft)}
.status{display:inline-block;padding:1px 10px;border-radius:var(--radius-pill);font-size:13px;white-space:nowrap;background:var(--paper);color:var(--moss)}
.status.accepted,.status.job-done{background:var(--parchment);color:var(--garden-ink)}
.status.virus,.status.unscannable,.status.job-failed{background:var(--plaster);color:var(--atelier-ink)}
.selection-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-s);font-size:var(--text-small);color:var(--moss)}
.counts-table{max-width:420px}

/* Customer choice: equal tiles in a grid, one column on a phone up to four on a wide window. Every row is as tall
   as the tallest tile, so a long name never makes one tile stand out; the grant and AI lines sit at the bottom. */
.customer-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,248px),1fr));grid-auto-rows:1fr;gap:var(--space-s)}
.customer-list li{display:flex;min-width:0}
.customer-card{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-s);padding:var(--space-m);background:var(--page);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;text-align:left;transition:border-color .15s,background-color .15s}
.customer-card:hover,.customer-card:focus-visible{border-color:var(--atelier-ink)}
.customer-card:focus-visible{outline-offset:3px}
.customer-card:active{background:var(--parchment)}
.customer-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs)}
.customer-card .customer-id{font-size:13px;letter-spacing:.04em;color:var(--moss)}
.customer-go{flex:none;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background-color .15s,border-color .15s,color .15s}
.customer-card:hover .customer-go,.customer-card:focus-visible .customer-go{background:var(--atelier-ink);border-color:var(--atelier-ink);color:var(--cream)}
.customer-name{font-family:var(--serif);font-size:var(--text-entry);font-weight:500;line-height:1.15;overflow-wrap:anywhere}
.customer-meta{margin-top:auto;padding-top:var(--space-s);border-top:1px solid var(--hair);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs)}
.customer-until{font-size:var(--text-small);color:var(--atelier-ink);font-variant-numeric:tabular-nums}
.customer-ai{font-size:13px;padding:1px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);color:var(--ink-soft)}

/* Cases */
.item-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.item-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px var(--space-s);padding:10px 0;border-bottom:1px solid var(--hair)}
.analysis-detail{flex-basis:100%;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-s);background:var(--page);border:1px solid var(--line);border-radius:var(--radius)}
.analysis-detail .button{align-self:flex-start}
pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 var(--mono);background:var(--page);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-s)}
.analysis-text,.confirmation{font-family:var(--sans);font-size:var(--text-small);max-height:60vh;overflow:auto}

/* View: the inert view model; nothing in here is a link or loads anything. */
.file-meta{font-size:var(--text-small);color:var(--moss);overflow-wrap:anywhere}
.file-meta .file-name{color:var(--ink);font-weight:500}
.part-trail{font-size:var(--text-small);overflow-wrap:anywhere}
.view-wrap.loading{opacity:.55}
.view{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-m);align-items:start}
.view-main{display:flex;flex-direction:column;gap:var(--space-s);min-width:0}
.view-title{display:flex;align-items:baseline;gap:var(--space-xs);flex-wrap:wrap}
.view-name{font-family:var(--serif);font-size:var(--text-entry);font-weight:500;overflow-wrap:anywhere}
.view-body{background:var(--page);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-m);min-width:0;overflow:hidden}
.view-text{background:none;border:0;padding:0;max-height:70vh;overflow:auto}
.view-doc{font-size:var(--text-small);overflow-wrap:anywhere}
.doc-p{margin:0 0 .7em}
.doc-h{font-weight:500;margin:.8em 0 .4em}
.doc-list{margin:0 0 .7em;padding-left:1.2em}
.doc-item{display:list-item;list-style:disc}
.doc-table{display:table;border-collapse:collapse;margin:0 0 .7em}
.doc-row{display:table-row}
.doc-cell{display:table-cell;border:1px solid var(--line);padding:4px 8px;vertical-align:top}
.doc-quote{border-left:2px solid var(--line);padding-left:var(--space-s);color:var(--ink-soft);margin:0 0 .7em}
.inert-link{color:var(--atelier-ink)}
.inert-url{font-family:var(--mono);font-size:.85em;color:var(--moss)}
.inert-image{font-family:var(--mono);font-size:.85em;color:var(--moss)}
.mail-headers{display:grid;gap:2px;margin:0 0 var(--space-s);padding-bottom:var(--space-s);border-bottom:1px solid var(--line);font-size:var(--text-small)}
.mail-headers div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--space-xs)}
.mail-headers dt{color:var(--moss)}
.mail-headers dd{margin:0;overflow-wrap:anywhere}
.view-image{display:block;max-width:100%;height:auto;border:1px solid var(--line);background:#fff}
.view-pdf{display:flex;flex-direction:column;gap:var(--space-s)}
.pager{display:flex;align-items:center;gap:var(--space-s);font-size:var(--text-small)}
.sheet-tabs{display:flex;flex-wrap:wrap;gap:4px}
.tab{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px 12px;cursor:pointer;font-size:13px}
.tab.current{background:var(--atelier-ink);border-color:var(--atelier-ink);color:var(--cream)}
table.sheet{border-collapse:collapse;font:12px/1.5 var(--mono)}
table.sheet th{background:var(--parchment);color:var(--moss);font-weight:400;padding:2px 8px;border:1px solid var(--line);position:sticky;top:0}
table.sheet tbody th{position:static;text-align:right;white-space:nowrap}
table.sheet td{border:1px solid var(--line);padding:2px 8px;vertical-align:top;min-width:60px;max-width:320px;overflow-wrap:anywhere;background:#fff}
table.sheet tr.hidden-row td{background:var(--parchment)}
.marker{color:var(--atelier-ink)}
.cell-value{display:block}
.cell-formula{display:block;color:var(--atelier-ink)}
.cell-comment{display:block;color:var(--moss);font-style:italic}
.view-side{display:flex;flex-direction:column;gap:var(--space-s);min-width:0}
.side-block{display:flex;flex-direction:column;gap:6px;padding:var(--space-s);background:var(--page);border:1px solid var(--line);border-radius:var(--radius);font-size:var(--text-small)}
.side-block ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.flags li{display:flex;flex-direction:column}
.flag{color:var(--atelier-ink);font-weight:500}
.flag-detail{font-family:var(--mono);font-size:12px;color:var(--moss);overflow-wrap:anywhere}
.metadata{margin:0;display:flex;flex-direction:column;gap:4px}
.metadata dt{color:var(--moss);font-size:13px}
.metadata dd{margin:0;overflow-wrap:anywhere}

/* Cleanse review: spans in plaster with atelier ink; switched-off spans struck through. */
.review{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-m);align-items:start}
.review-main,.review-side{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}
.review-text{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.8 var(--mono);background:var(--page);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-s);max-height:70vh;overflow:auto}
mark.span{background:var(--plaster);color:var(--atelier-ink);border-bottom:2px solid var(--atelier-ink);border-radius:var(--radius);padding:0 1px;cursor:pointer}
mark.span.locked{cursor:default;border-bottom-style:double}
mark.span.off{background:transparent;color:var(--ink);border-bottom:2px dashed var(--line);text-decoration:line-through;text-decoration-color:var(--moss)}
mark.span.src-residual{border-bottom-style:dotted}
mark.span::after{content:" " attr(data-label);font:10px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;vertical-align:super;color:var(--atelier-ink)}
mark.span.off::after{color:var(--moss)}
.add-span{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);min-height:40px}
.add-span .input{width:auto}
.counts{list-style:none;margin:0 0 var(--space-s);padding:0;display:flex;flex-wrap:wrap;gap:6px}
.counts li{font-size:13px;padding:2px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--page)}
.result-text{max-height:60vh;overflow:auto}
.release-box .button{align-self:flex-start}
.release-box select{max-width:320px}
.phrase{font-size:var(--text-small);color:var(--ink-soft)}
.phrase .mono{color:var(--atelier-ink)}

@media (max-width:860px){
  .view,.review{grid-template-columns:1fr}
}
@media (max-width:560px){
  .who{margin-left:0;width:100%}
  h1{font-size:34px}
  .view-body{padding:var(--space-s)}
}
.line-mark::before{content:attr(data-line);display:inline-block;margin-right:6px;padding:0 6px;border-radius:var(--radius-pill);background:var(--atelier-ink);color:var(--cream);font:500 10px/1.6 var(--sans);letter-spacing:.04em;vertical-align:1px}
