/* Order Worksheet (public/js/worksheet.js). Builds on impal.css tokens and the TOD section's classes (tod.css). */
.ui-page [hidden]{display:none!important}
.ws-title{font-size:14px;color:var(--ui-ink,#0f172a)}
.ws-stats{display:inline-flex;flex-wrap:wrap;gap:4px 14px;margin-left:8px;font-size:12px;color:var(--ui-muted,#566275)}
.ws-stats b{color:var(--ui-ink,#0f172a);font-variant-numeric:tabular-nums}
.ws-note{height:30px;width:150px;min-width:0;border:1px solid var(--ui-line,#e2e7ee);border-radius:6px;padding:4px 8px;font:inherit;font-size:12px;
  background:var(--panel);color:var(--text)}
.ws-note:focus{outline:2px solid color-mix(in srgb, var(--blue) 25%, transparent);border-color:var(--blue)}
.ws-section{margin:0 0 16px}
.ws-section h4{margin:0 0 4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-label,#5f6b7e);font-weight:600;
  padding-bottom:6px;border-bottom:1px solid var(--ui-line,#e2e7ee)}

.ui-seg .ws-chip.hot:not(.active){background:var(--ui-warn-bg);color:var(--ui-warn);font-weight:600}
.ws-add{display:flex;gap:6px;align-items:center}
.ws-add input{height:30px;width:170px;padding:4px 8px;font:inherit;font-size:12px;border:1px solid var(--ui-line,#e2e7ee);border-radius:6px;background:var(--panel);color:var(--text)}
.ws-add input:focus{outline:2px solid color-mix(in srgb, var(--blue) 25%, transparent);border-color:var(--blue)}

.ws-qty{width:76px;text-align:right;border:1px solid var(--line);border-radius:7px;padding:4px 6px;font:inherit;font-size:13px;
  font-variant-numeric:tabular-nums;background:var(--panel);color:var(--text)}
.ws-qty.chg{border-color:var(--amber);background:var(--amber-bg)}
.ws-rem{width:150px;border:1px solid var(--line);border-radius:7px;padding:4px 6px;font:inherit;font-size:12.5px;background:var(--panel);color:var(--text)}
.ws-warn{color:var(--amber);font-weight:700}
.tod-pill.bad{background:#fdf0ee;color:var(--red,#b42318)}
.ws-livebar{margin:-2px 0 10px;font-size:12px;color:var(--ui-ink-2,#334155);background:var(--ui-info-bg,#eef4ff);border-radius:6px;padding:6px 10px}

/* Worksheet Logic: flat rows, label then value beside it (no wide gap) */
.ws-key{display:grid;grid-template-columns:minmax(0,560px) 200px;gap:4px 24px;align-items:center;padding:8px 0;border-bottom:1px solid var(--ui-line-soft,#edf0f4)}
.ws-key.wide{grid-template-columns:minmax(0,1fr)}
.ws-klabel{font-size:12.5px;font-weight:600;color:var(--ui-ink,#0f172a)}
.ws-klabel .sub{display:block;font-weight:400;font-size:11.5px;color:var(--ui-ink-2,#334155);margin-top:2px}
.ws-klabel .ui-pill{margin-left:6px;vertical-align:middle}
.ws-kval input[type=number],.ws-kval select,.ws-kval textarea{width:100%;height:30px;border:1px solid var(--ui-line,#e2e7ee);border-radius:6px;padding:4px 8px;
  font:inherit;font-size:12px;background:var(--panel);color:var(--text)}
.ws-kval textarea{height:auto}
.ws-kval .tod-chk{margin:0;font-size:12.5px}
.ws-rules{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.ws-rule{display:grid;grid-template-columns:20px minmax(180px,1.2fr) minmax(160px,1.2fr) 14px minmax(180px,1.3fr) minmax(120px,1fr) auto;gap:6px;
  align-items:start;padding:6px 0;border-bottom:1px solid var(--ui-line-soft,#edf0f4)}
.ws-rule select,.ws-rule textarea,.ws-rule input{width:100%;min-height:30px;border:1px solid var(--ui-line,#e2e7ee);border-radius:6px;padding:4px 8px;font:inherit;font-size:12px;background:var(--panel);color:var(--text)}
.ws-rule textarea{resize:vertical}
.ws-rule .ws-off{visibility:hidden}   /* keeps its column, so the result box stays in place */
.ws-rn{font-weight:700;color:var(--ui-muted,#566275);padding-top:7px;text-align:center;font-size:12px}
.ws-arrow{padding-top:6px;color:var(--ui-muted,#566275)}
.ws-rbtns{display:flex;gap:4px}
.ws-rbtns .ui-btn{padding:0 9px}

@media (max-width:900px){
  .ws-key{grid-template-columns:1fr}
  .ws-rule .ws-off{display:none}
  .ws-rule{grid-template-columns:24px 1fr;}
  .ws-rule > *:not(.ws-rn){grid-column:2}
  .ws-arrow{display:none}
}

/* The list area fills the screen; the pager stays at the bottom (grid-card is already a flex column). */
#wsRuns,#wsLines{display:flex;flex-direction:column;flex:1;min-height:0}
.ws-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);z-index:400;background:var(--panel,#fff);
  border-left:1px solid var(--ui-line,#e2e7ee);box-shadow:-10px 0 30px rgb(0 0 0 / .12);padding:14px 16px;display:flex;flex-direction:column}
.ws-drawer-body{overflow-y:auto;flex:1;min-height:0}
.ws-ev{padding:9px 0;border-bottom:1px solid var(--ui-line-soft,#edf0f4);font-size:12.5px;color:var(--ui-ink,#0f172a)}
.ws-ev .sub{display:block;color:var(--ui-ink-2,#334155);font-size:11.5px;margin-top:2px;overflow-wrap:anywhere}

.ws-wait{max-width:720px;margin:24px 0;padding:18px 20px;border:1px solid var(--ui-line,#e2e7ee);border-radius:8px;background:var(--panel,#fff);
  font-size:13px;line-height:1.55;color:var(--ui-ink-2,#334155);display:grid;gap:6px}
.ws-wait b{color:var(--ui-ink,#0f172a)}
.ws-wait .grid-spin{display:inline-block;margin-right:8px;vertical-align:-2px}
.ws-wait.bad{border-color:color-mix(in srgb, var(--ui-bad,#b91c1c) 40%, var(--ui-line,#e2e7ee));background:var(--ui-bad-bg,#fdf0ee)}
.ws-wait .sub{color:var(--ui-muted,#566275);font-size:12px}
.ws-wait-acts{display:flex;gap:8px;margin-top:6px}

/* Compact request table */
#wsLines table.grid thead th{white-space:normal;line-height:1.25;vertical-align:bottom;padding-top:7px;padding-bottom:7px}
#wsLines table.grid tbody td{padding-top:6px;padding-bottom:6px}
#wsLines table.grid tbody td.key{max-width:380px;overflow:hidden}
#wsLines td.key .ws-pl,#wsLines td.key .sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:380px}
#wsLines .ws-desc{color:var(--ui-ink-2,#334155);font-weight:400;font-size:12px}
#wsLines .ws-sc{color:var(--ui-muted,#566275)}
.ws-0{color:var(--ui-line,#cfd6e0)}
.ws-qty{width:64px;height:26px;font-size:12.5px}
.ws-transfer{color:var(--ui-info,#1d4ed8);font-weight:700;cursor:help;border-bottom:1px dotted currentColor}
.ws-rule-w{color:var(--ui-ink-2,#334155);font-size:11.5px;cursor:help}
.ws-fms{display:inline-block;min-width:20px;text-align:center;border-radius:5px;font-size:11px;font-weight:700;padding:1px 5px;background:var(--ui-line-soft,#edf0f4);color:var(--ui-ink-2,#334155)}
.ws-fms.F{background:var(--ui-ok-bg);color:var(--ui-ok)}
.ws-fms.M{background:var(--ui-info-bg);color:var(--ui-info)}
.ws-fms.S{background:var(--ui-warn-bg);color:var(--ui-warn)}
