/* CUTLINE workspace, on the house tokens (house.css). Small text uses --umber,
   not --clay: clay on bone is 3.5:1, below WCAG AA for text this size. */
.ws .eyebrow,.ws .note,.ws .muted{color:var(--umber)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ws-top{padding:clamp(48px,7vw,96px) 0 24px}
.ws-alert{margin-top:24px;padding:14px 18px;border:1px solid var(--line-strong);background:var(--white);max-width:760px}
.ws-alert[data-kind="error"]{border-color:var(--ink);font-weight:500}
.ws-alert .tl{margin-left:14px}
.ws-have,.ws-signin{margin-top:28px;border-top:1px solid var(--line)}
.ws-have .form,.ws-signin .form{padding:4px 0 24px}
.kc-key{display:block;font:500 15px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;padding:18px;border:1px solid var(--line-strong);background:var(--white);margin:18px 0}
.ws-bar{position:sticky;top:64px;z-index:30;background:var(--linen);border-bottom:1px solid var(--line)}
.ws-bar-in{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px}
.ws-acct{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:baseline;margin:0}
.ws-k{font:500 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--umber)}
.ws-bal b{font-weight:600}
.ws-acts{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.ws-acts .btn{padding:13px 22px}
.ws-more{position:relative}
.ws-more summary{cursor:pointer;list-style:none;font:500 10.5px/1 var(--sans);letter-spacing:var(--track);text-transform:uppercase;padding:13px 4px}
.ws-more summary::-webkit-details-marker{display:none}
.ws-more-in{position:absolute;right:0;top:100%;background:var(--bone);border:1px solid var(--line-strong);padding:18px;display:grid;gap:14px;min-width:300px;z-index:5}
.ws-inline{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end}
.ws-inline label{font:500 10px/1 var(--sans);letter-spacing:var(--track);text-transform:uppercase;color:var(--umber);width:100%}
.ws-inline input{flex:1;min-width:160px;font:15px/1.4 var(--sans);color:var(--ink);border:0;border-bottom:1px solid var(--line-strong);background:transparent;padding:8px 0}
.ws-live{margin-top:56px}
.ws-live-frames{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.ws-live-frames figure{margin:0;background:var(--white);display:flex;flex-direction:column}
.ws-live-frames figure.pending{background:var(--linen);min-height:200px}
.ws-live-frames img{width:100%;height:300px;object-fit:contain}
.ws-live-frames figcaption{font:500 10px/1 var(--sans);letter-spacing:var(--track);text-transform:uppercase;color:var(--umber);padding:12px;margin-top:auto}
#ws-stages{list-style:none;margin:24px 0;padding:0;border-top:1px solid var(--line)}
#ws-stages li{display:grid;grid-template-columns:200px 1fr 64px;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--umber)}
#ws-stages li.active{color:var(--ink)}
#ws-stages li.active .s-name{font-weight:700}
#ws-stages li.done{color:var(--umber)}
#ws-stages li.flagged .s-detail{color:var(--ink);font-weight:600}
.s-name{font:500 10.5px/1.6 var(--sans);letter-spacing:var(--track);text-transform:uppercase}
.s-ms{text-align:right;font-size:12px}
#live-fields{margin:0;border-top:1px solid var(--line)}
#live-fields div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
#live-fields dt{font:500 10px/1.8 var(--sans);letter-spacing:var(--track);text-transform:uppercase;color:var(--umber)}
#live-fields dd{margin:0}
.ws-cols{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.ws-list ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ws-pk{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:14px 0;cursor:pointer;display:flex;justify-content:space-between;gap:12px;font:inherit;color:inherit}
.ws-pk[aria-current="true"] .ws-pk-name{text-decoration:underline;text-underline-offset:4px}
.ws-pk-st{font:500 9.5px/1.8 var(--sans);letter-spacing:var(--track);text-transform:uppercase;color:var(--umber);white-space:nowrap}
.ws-pk-st.st-preview,.ws-pk-st.st-failed{color:var(--ink);font-weight:600}
.ws-empty{padding:18px 0;color:var(--umber)}
.ws-pack-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:baseline}
.ws-pack h2:focus{outline:none}
.pk-preview{margin:18px 0;padding:16px 18px;border:1px solid var(--line-strong);background:var(--linen);display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.pk-preview p{margin:0;max-width:560px}
.ws-dl{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 28px;align-items:center}
.ws-dl .btn{padding:12px 18px}
.ws .btn[disabled]{opacity:.45;cursor:not-allowed}
.ws [role="tablist"]{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:28px;overflow-x:auto}
.ws [role="tab"]{background:none;border:0;border-bottom:1px solid transparent;margin-bottom:-1px;padding:14px 0;font:500 10.5px/1 var(--sans);letter-spacing:var(--track);text-transform:uppercase;color:var(--umber);cursor:pointer}
.ws [role="tab"][aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.ws-sub{margin-top:36px}
.ws-table-wrap{overflow-x:auto}
.ws-t td,.ws-t th{padding:10px 14px 10px 0;font-size:13.5px}
.ws-sw{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ws-sw li{display:flex;gap:12px;align-items:center}
.ws-sw .chip{width:28px;height:28px;border:1px solid var(--line-strong);flex:none}
.ws-flags li{margin-bottom:10px}
.ed-table td{padding:6px 10px 6px 0}
.ed-table input{width:100%;min-width:72px;font:14px/1.4 var(--sans);color:var(--ink);border:0;border-bottom:1px solid var(--line-strong);background:transparent;padding:6px 0}
.ed-actions{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:28px}
.cp-form{margin-bottom:8px}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:24px}
.cp-grid:empty{display:none}
.cp-fig{margin:0;background:var(--white);padding:14px;display:flex;flex-direction:column;gap:10px}
.cp-fig img{width:100%;height:260px;object-fit:contain;background:var(--linen)}
.cp-fig.pending{min-height:120px}
.cp-fig figcaption{font-size:12.5px;color:var(--umber)}
#fx-list{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--line)}
#fx-list li{padding:14px 0;border-bottom:1px solid var(--line)}
#fx-list p{margin:0 0 6px}
#fx-list blockquote{margin:8px 0;padding-left:14px;border-left:2px solid var(--line-strong);color:var(--umber)}
.fx-url{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:14px 0 24px}
.fx-url input{flex:1;min-width:240px;font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;padding:10px;border:1px solid var(--line-strong);background:var(--white);color:var(--ink)}
@media (max-width:900px){.ws-cols{grid-template-columns:1fr}.ws-bar{top:58px}}
@media (max-width:640px){.ws-live-frames{grid-template-columns:1fr}#ws-stages li{grid-template-columns:1fr 64px}#ws-stages .s-detail{grid-column:1/-1}#live-fields div{grid-template-columns:1fr;gap:2px}}
/* house.css colours form labels and table headers --clay too; same contrast fix. */
.ws .field label,.ws table.t th{color:var(--umber)}
/* .tl is the house text link; as a <button> it needs the browser's button chrome removed. */
.ws button.tl{background:none;border:0;border-radius:0;padding:0 0 6px;color:inherit;cursor:pointer}
/* Headings take focus from script only (tabindex=-1) to move screen readers; no box. */
.ws h2[tabindex="-1"]:focus{outline:none}
/* The script shows and hides with the hidden attribute; rules that set display
   (grid rows, .form, .btn, .tl, the preview banner) would otherwise override it. */
.ws [hidden]{display:none!important}
