/* ============================================================
   MULTI-OPS UI — CANONICAL DESIGN SYSTEM (v2)
   Neutral dark canvas · near-white text · red = ACCENT ONLY
   No red-brown gradients. No pale-blue fills. No red body text.

   Include AFTER nothing else; this replaces the legacy theme.css
   tokens + the inline :root in agent.html. All templates link this.
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* surfaces — neutral, cool, NOT red-tinted */
  --bg:#0b0e14;
  --surface-1:#12161f;   /* cards / tiles            */
  --surface-2:#171c27;   /* inputs / rows            */
  --surface-3:#1e2532;   /* headers / raised         */
  --chrome:#12161f;      /* top bar · dock · window head */

  /* borders */
  --border:#262e3d;
  --border-strong:#33405a;

  /* text — near-white, never red, never beige */
  --text:#e8ecf3;
  --text-muted:#a3adc0;
  --text-dim:#737f95;

  /* RED = accent only */
  --accent:#e5484d;
  --accent-hover:#f2555a;
  --accent-soft:rgba(229,72,77,.14);   /* active/selected wash */
  --accent-border:rgba(229,72,77,.45); /* focus / active border */

  /* semantic (data, deltas, status) */
  --ok:#34c98a;
  --bad:#f26d6d;
  --warn:#f4b740;

  /* chart palette (bright, distinct) */
  --c1:#4c8dff; --c2:#34c98a; --c3:#f4b740; --c4:#e5484d;

  /* type — Arvo only · decremental ladder 14px(max) → 8px(min) · no bold */
  --font:'Arvo',serif;
  --fs-8:8px; --fs-9:9px; --fs-10:10px; --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px;
  --fs-micro:var(--fs-9); --fs-xs:var(--fs-10); --fs-label:var(--fs-10);
  --fs-body:var(--fs-11); --fs-md:var(--fs-11);
  --fs-sm:var(--fs-12); --fs-sub:var(--fs-12);
  --fs-card:var(--fs-13);
  --fs-title:var(--fs-14); --fs-heading:var(--fs-14); --fs-lg:var(--fs-14); --fs-xl:var(--fs-14); --fs-2xl:var(--fs-14);
  --fw-normal:400; --fw-med:400; --fw-bold:400;

  /* space · radius · elevation */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:28px;
  --r1:6px; --r2:8px; --r3:12px;
  --e1:0 1px 2px rgba(0,0,0,.4);
  --e2:0 8px 24px rgba(0,0,0,.45);
  --h-ctl:34px;
}

/* ---------- 2. BASE ---------- */
*{box-sizing:border-box}
html,body{margin:0;height:100%;overscroll-behavior-x:none}
body{
  font-family:var(--font); font-size:var(--fs-md); font-weight:400;
  color:var(--text); background:var(--bg);
}
label{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin:0 0 var(--s1)}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--accent)}
::selection{background:var(--accent-soft)}

/* ---------- 3. CONTROLS (dark on dark) ---------- */
input,select,textarea{
  width:100%;height:var(--h-ctl);padding:0 var(--s2);
  background:var(--surface-2);color:var(--text);
  border:1px solid var(--border);border-radius:var(--r2);
  font:inherit;font-size:var(--fs-md);outline:0;transition:border-color .12s,box-shadow .12s;
}
textarea{height:auto;padding:var(--s2);resize:vertical}
input::placeholder,textarea::placeholder{color:rgba(139,150,168,.5)}
input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}
input:focus,select:focus,textarea:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}

/* light controls only inside the requesters (add .theme-light to <body>) */
body.theme-light{
  --bg:#FFF5F5; --surface-1:#FFF5F5; --surface-2:#FFEDED; --surface-3:#FFE5E5;
  --border:rgba(194,58,51,.25); --border-strong:rgba(194,58,51,.45);
  --text:#650808; --text-muted:#a25b55; --text-dim:#c08a85;
  --accent:#c23a33; --accent-hover:#a52f29; --accent-soft:rgba(194,58,51,.12); --accent-border:rgba(194,58,51,.45);
  background:var(--bg);color:var(--text);
}

/* ---------- 4. BUTTONS ---------- */
.btn{
  height:var(--h-ctl);padding:0 var(--s3);display:inline-flex;align-items:center;gap:var(--s1);
  background:var(--surface-2);color:var(--text);
  border:1px solid var(--border);border-radius:var(--r2);
  font-size:var(--fs-md);font-weight:400;cursor:pointer;transition:.12s;
}
.btn:hover{background:var(--surface-3);border-color:var(--border-strong)}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.primary:hover{background:var(--accent-hover)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}
.btn.ghost:hover{color:var(--text);background:var(--surface-2)}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- 5. CARDS / BLOCKS ---------- */
.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r3);overflow:hidden}
.card-h{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);
  font-size:var(--fs-md);font-weight:400;color:var(--text);cursor:pointer;
  display:flex;align-items:center;gap:var(--s2);background:var(--surface-2)}
.card-h:hover{background:var(--surface-3)}
.card-b{padding:var(--s4)}

/* ---------- 6. CENTRAL FILTER BAR ---------- */
.bar{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:flex-end;
  background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r3);padding:var(--s3) var(--s4)}
.bar .f{min-width:170px}
.bar .f>label{text-transform:uppercase;letter-spacing:.06em}

/* ---------- 7. SCORECARDS ---------- */
.sc{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3)}
.sc-tile{
  background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r3);
  padding:var(--s3) var(--s4);cursor:pointer;transition:.12s;
}
.sc-tile:hover{border-color:var(--border-strong);background:var(--surface-2)}
.sc-tile.on{border-color:var(--accent-border);background:var(--accent-soft)}
.sc-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2)}
.sc-name{font-size:var(--fs-md);font-weight:400;color:var(--text)}
.sc-count{font-size:var(--fs-xs);color:var(--text-dim)}
.sc-big{font-size:var(--fs-2xl);font-weight:400;color:var(--text);
  font-variant-numeric:tabular-nums;margin:var(--s2) 0}
.sc-row{display:flex;justify-content:space-between;gap:var(--s2);font-size:var(--fs-sm);color:var(--text-muted)}
.sc-row b{color:var(--text);font-weight:400;font-variant-numeric:tabular-nums}
.sc-delta.up{color:var(--ok)} .sc-delta.down{color:var(--bad)}

/* ---------- 8. TABLE ---------- */
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}
.tbl th{
  position:sticky;top:0;z-index:1;background:var(--surface-3);color:var(--text-muted);
  font-weight:400;text-align:center;text-transform:uppercase;letter-spacing:.05em;
  font-size:var(--fs-xs);height:34px;padding:0 var(--s2);border-bottom:1px solid var(--border);cursor:pointer;
}
.tbl th:first-child,.tbl td:first-child{text-align:left;padding-left:var(--s4)}
.tbl td{height:32px;padding:0 var(--s2);border-bottom:1px solid var(--border);color:var(--text)}
.tbl td.num{text-align:center;font-variant-numeric:tabular-nums}
.tbl tbody tr:nth-child(even){background:rgba(255,255,255,.02)}
.tbl tbody tr:hover{background:var(--surface-2)}
.tbl tr.sub td{background:var(--surface-2);color:var(--text);font-weight:400}
.tbl tr.total td{background:var(--surface-3);color:var(--text);font-weight:400}
.tbl .up{color:var(--ok)} .tbl .down{color:var(--bad)}

/* ---------- 9. PILLS / CHIPS / STATUS ---------- */
.pill{display:inline-flex;align-items:center;gap:var(--s1);height:22px;padding:0 var(--s2);
  border-radius:999px;border:1px solid var(--border);background:var(--surface-2);
  color:var(--text-muted);font-size:var(--fs-xs)}
.pill.on{background:var(--accent-soft);border-color:var(--accent-border);color:var(--text)}
.pill.ok{color:var(--ok);border-color:rgba(52,201,138,.35)}
.pill.bad{color:var(--bad);border-color:rgba(242,109,109,.35)}

/* ---------- 10. OVERLAY CONTROL (searchable) ---------- */
.ac{position:relative}
.ac-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:min(460px,92vw);z-index:80;
  background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r2);
  box-shadow:var(--e2);max-height:260px;overflow:auto;display:none}
.ac-item{padding:var(--s2) var(--s3);font-size:var(--fs-md);color:var(--text);
  border-bottom:1px solid var(--border);cursor:pointer;white-space:nowrap}
.ac-item:hover{background:var(--accent-soft)}
.ac-all{padding:var(--s2) var(--s3);font-size:var(--fs-sm);font-weight:400;
  color:var(--accent);background:var(--surface-2);cursor:pointer;white-space:nowrap}
.ac-empty{padding:var(--s2) var(--s3);font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap}
.ac-box{display:inline-block;width:11px;height:11px;border:1px solid var(--border-strong);
  border-radius:3px;margin-right:var(--s2)}
.ac-box.on{background:var(--accent);border-color:var(--accent)}
.ac-chips{display:flex;flex-wrap:wrap;gap:var(--s1);margin:var(--s1) 0}
.ac-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--s2);
  border-radius:999px;background:var(--surface-2);border:1px solid var(--border);
  color:var(--text);font-size:var(--fs-xs)}
.ac-chip b{color:var(--text-dim);cursor:pointer}

/* ---------- 11. CHART ---------- */
.chart{background:transparent;border:1px solid var(--border);border-radius:var(--r3);padding:var(--s3)}
.chart .grid{stroke:var(--border)}
.chart .axis{fill:var(--text-dim);font-size:var(--fs-10)}
.chart .lbl{fill:var(--text-muted);font-size:var(--fs-10)}

/* ---------- 12. STRUCTURE MAP ---------- */
.map{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);align-items:center;
  background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r3);padding:var(--s2) var(--s3)}
.map-root{color:var(--text-muted);font-weight:400;text-transform:uppercase;
  font-size:var(--fs-xs);letter-spacing:.06em}
.map-arrow{color:var(--text-dim)}
.map-node{height:24px;padding:0 var(--s2);border-radius:999px;border:1px solid var(--border);
  background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer}
.map-node:hover{border-color:var(--border-strong);color:var(--text)}
.map-node.on{background:var(--accent-soft);border-color:var(--accent-border);color:var(--text)}
.map-node b{color:var(--text-dim);font-weight:400}

/* ---------- 13. LEGACY ALIASES (templates still using old var names) ---------- */
:root{
  --ink:var(--text); --muted:var(--text-muted); --dim:var(--text-dim);
  --line:var(--border); --card:var(--surface-1); --card2:var(--surface-2);
  --blue:var(--c1);
}


/* ============================================================
   TEMPLATE STYLES (O29 extraction) — scoped per template body class
   ============================================================ */

/* ---- agent.html ---- */
body.tpl-agent, body.tpl-agent{height:100%}body.tpl-agent{overflow:hidden;margin:0;display:flex;flex-direction:column}body.tpl-agent .brand{width:50px;height:50px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;
 margin:0;
 background:var(--chrome);
 border:2px solid var(--accent-border);
 box-shadow:0 3px 10px rgba(0,0,0,.45);transition:.15s}body.tpl-agent .brand:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft), 0 6px 16px var(--accent-soft)}body.tpl-agent .brand-inner{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;
 font-family:var(--font);font-size:var(--fs-14);font-weight:400;line-height:1.2;text-align:center;color:var(--text);
 background:var(--text);border:1px solid var(--accent-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.7);transition:.15s}body.tpl-agent .brand:hover .brand-inner{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft), inset 0 1px 0 rgba(255,255,255,.7)}body.tpl-agent #top{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 14px;flex:0 0 auto;border-bottom:1px solid var(--border);background:var(--chrome)}body.tpl-agent .pill{border-radius:99px;padding:4px 10px;font-size:var(--fs-12);background:rgba(255,255,255,.06);color:var(--muted);font-weight:400}body.tpl-agent .pill.ok{background:rgba(45,152,101,.18);color:var(--accent)}body.tpl-agent .pill.ok::after{content:'▼';color:var(--accent);margin-left:5px;font-size:var(--fs-xs);vertical-align:1px}body.tpl-agent .pill.bad{background:rgba(212,88,88,.18);color:var(--bad)}body.tpl-agent #shell{flex:1;display:flex;min-height:0}body.tpl-agent .docktab{position:absolute;top:50%;transform:translateY(-50%);width:22px;height:46px;display:grid;place-items:center;
 border:1px solid var(--accent-border);background:var(--chrome);
 color:var(--text);cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.45);z-index:25;transition:.15s;border-radius:6px}body.tpl-agent .docktab:hover{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 2px var(--accent-soft)}body.tpl-agent .docktab .dtri{color:var(--accent);font-size:var(--fs-12);line-height:1}body.tpl-agent #dockHide{right:-11px}body.tpl-agent #dockExpand{left:-11px;display:none}body.tpl-agent #dock.hidden #dockHide{display:none}body.tpl-agent #dock.hidden ~ #stage #dockExpand{display:grid}body.tpl-agent #dock{position:relative;flex:0 0 auto;width:340px;min-width:220px;max-width:720px;display:flex;flex-direction:column;min-height:0;height:100%;
 background:var(--chrome);
 border-right:1px solid var(--border);z-index:20;transition:flex-basis .2s,margin-left .2s,width .2s}body.tpl-agent #dock::after{content:'';position:absolute;top:0;right:0;bottom:0;width:3px;background:var(--accent);opacity:0;transition:opacity .18s;box-shadow:0 0 10px var(--accent);pointer-events:none}body.tpl-agent #dock:hover::after{opacity:1}body.tpl-agent #docklinks{border-top:1px solid var(--border);padding:8px 12px 12px;display:flex;flex-direction:column;flex:0 0 auto}body.tpl-agent .dl-toggle{display:flex;align-items:center;gap:7px;width:100%;border:0;background:transparent;cursor:pointer;padding:7px 4px;font-family:var(--font);font-size:var(--fs-xs);font-weight:400;letter-spacing:.4px;color:var(--accent);text-align:left}body.tpl-agent .dl-toggle .arrow{color:var(--accent);transition:transform .18s;font-size:var(--fs-xs)}body.tpl-agent .dl-toggle.folded .arrow{transform:rotate(-90deg)}body.tpl-agent .dl-body{display:flex;flex-direction:column;gap:1px;padding:2px 0 0}body.tpl-agent .dl-body.hidden{display:none}body.tpl-agent .durl{display:flex;flex-direction:column;padding:6px 8px;border-radius:7px;text-decoration:none;border-left:2px solid transparent;transition:background .15s,border-color .15s}body.tpl-agent .durl:hover{background:var(--accent-soft);border-left-color:var(--accent)}body.tpl-agent .durl-label{font-size:var(--fs-12);color:var(--text);font-weight:400;letter-spacing:.2px}body.tpl-agent .durl-val{font-size:var(--fs-xs);color:var(--muted);opacity:.72;margin-top:2px;word-break:break-all}body.tpl-agent .durl.logout .durl-label{color:var(--accent)}body.tpl-agent #dock.hidden{display:none}body.tpl-agent .dock-head{display:flex;align-items:center;justify-content:center;padding:12px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}body.tpl-agent .dock-arrows{display:flex;align-items:center;gap:2px;background:var(--surface-2);border-radius:var(--r1);padding:9px 12px;color:var(--text)}body.tpl-agent #dockbody{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:rgba(204,65,37,.55) transparent}body.tpl-agent #dockbody::-webkit-scrollbar{width:6px}body.tpl-agent #dockbody::-webkit-scrollbar-track{background:transparent}body.tpl-agent #dockbody::-webkit-scrollbar-thumb{background:rgba(204,65,37,.5);border-radius:99px}body.tpl-agent .dock-item{display:inline-flex;align-items:center;width:auto;max-width:100%;border:1px solid var(--ctl-border);border-radius:99px;padding:6px 12px;
 background:var(--surface-2);
 color:var(--text);font-family:var(--font);font-size:var(--fs-12);font-weight:400;letter-spacing:.2px;
 cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:border-color .15s,box-shadow .15s}body.tpl-agent .dock-item:hover{border-color:var(--ctl-hover);box-shadow:0 0 0 1px var(--ctl-border)}body.tpl-agent .dock-section{margin-bottom:6px;border-radius:12px;border:1px solid var(--ctl-border);overflow:hidden}body.tpl-agent .dock-sep{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--ctl-border);background:var(--surface-2);cursor:pointer;padding:10px 12px;border-radius:9px;font-family:var(--font);font-size:var(--fs-12);font-weight:400;letter-spacing:.4px;color:var(--text);text-align:left}body.tpl-agent .dock-sep:hover{border-color:var(--ctl-hover);box-shadow:0 0 0 1px var(--ctl-border)}body.tpl-agent .dock-sep .arrow{transition:transform .18s;font-size:var(--fs-xs);color:var(--text)}body.tpl-agent .dock-section.folded .arrow{transform:rotate(-90deg)}body.tpl-agent .dock-sep .cnt{margin-left:auto;font-size:var(--fs-xs);letter-spacing:.5px;opacity:.55;font-weight:400}body.tpl-agent .dock-body{padding:0 8px 10px;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px}body.tpl-agent .dock-section.folded .dock-body{display:none}body.tpl-agent .dock-section .dock-item{margin-bottom:0}body.tpl-agent .dock-item:focus-visible, body.tpl-agent .dock-sep:focus-visible, body.tpl-agent .dl-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}body.tpl-agent .dock-resize{position:absolute;top:0;right:-5px;bottom:0;width:10px;cursor:ew-resize;z-index:5}body.tpl-agent .dock-resize::after{content:"";position:absolute;top:50%;right:4px;width:3px;height:34px;border-radius:3px;background:rgba(194,58,51,.5);transform:translateY(-50%)}body.tpl-agent #stage{flex:1;min-width:0;position:relative;overflow:hidden;background:radial-gradient(1200px 700px at 50% -10%, rgba(115,67,67,.18), transparent 60%), rgba(6,9,17,.6)}body.tpl-agent .floatwin{position:absolute;display:flex;flex-direction:column;border-radius:12px;min-width:260px;min-height:120px;
 border:2px solid var(--accent-border);
 background:var(--chrome);
 box-shadow:0 6px 18px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(10px)}body.tpl-agent .floatwin.open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft), 0 16px 38px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.2)}body.tpl-agent .floatwin.collapsed{height:auto!important;min-height:0;border-color:rgba(204,65,37,.35);box-shadow:0 4px 12px rgba(0,0,0,.4)}body.tpl-agent .floatwin.collapsed .fw-body{display:none}body.tpl-agent .fw-head{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;user-select:none;border-bottom:1px solid rgba(255,255,255,.18);flex:0 0 auto}body.tpl-agent .fw-logo{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;
 background:var(--chrome);
 border:1px solid rgba(204,65,37,.45);box-shadow:0 2px 6px rgba(0,0,0,.4);transition:.15s}body.tpl-agent .fw-logo:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}body.tpl-agent .fw-logo-inner{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;
 font-family:var(--font);font-size:var(--fs-12);font-weight:400;line-height:1.05;text-align:center;color:var(--text);
 background:var(--text);border:1px solid var(--accent-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}body.tpl-agent .fw-title{font-family:var(--font);font-size:var(--fs-14);font-weight:400;letter-spacing:.2px;color:var(--text);background:var(--text);border-radius:7px;padding:3px 9px;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.tpl-agent .fw-min{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(204,65,37,.45);border-radius:6px;background:var(--text);color:var(--text);cursor:pointer;font-weight:400;flex:0 0 auto;margin-left:auto}body.tpl-agent .fw-min:hover{border-color:var(--accent);box-shadow:0 0 0 2px rgba(255,75,63,.4)}body.tpl-agent .fw-body{flex:1 1 auto;min-height:0;overflow:auto;padding:14px;font-size:var(--fs-14);color:var(--text)}body.tpl-agent .fw-resize{position:absolute;right:-4px;bottom:-4px;width:16px;height:16px;cursor:nwse-resize;z-index:6}body.tpl-agent .fw-resize::after{content:"";position:absolute;right:2px;bottom:2px;width:9px;height:9px;border-right:2px solid rgba(204,65,37,.6);border-bottom:2px solid rgba(204,65,37,.6);border-radius:0 0 3px 0}body.tpl-agent input, body.tpl-agent label, body.tpl-agent .row, body.tpl-agent .st{font-family:inherit}body.tpl-agent .fw-body label{display:block;font-size:var(--fs-14);color:#f0e4dc;margin:10px 0 5px;font-weight:400}body.tpl-agent .fw-body input{width:100%;padding:9px 10px;border:1px solid var(--ctl-border);border-radius:8px;background:var(--ctl-bg);color:var(--ctl-fg);outline:0;font-size:var(--fs-14);font-weight:400}body.tpl-agent .fw-body input::placeholder{color:var(--ctl-placeholder)}body.tpl-agent .fw-body input:hover{border-color:var(--ctl-hover);box-shadow:0 0 0 1px var(--ctl-border)}body.tpl-agent .fw-body input:focus{border-color:var(--ctl-hover);box-shadow:0 0 0 1px var(--ctl-border)}body.tpl-agent .fw-body select{width:100%;padding:var(--s2) var(--s3);min-height:var(--ctl-h);border:1px solid var(--ctl-border);border-radius:var(--r2);background:var(--ctl-bg);color:var(--ctl-fg);outline:0;font-size:var(--fs-sm);font-weight:400;font-family:inherit}body.tpl-agent .fw-body select:hover{border-color:var(--ctl-hover);box-shadow:0 0 0 1px var(--ctl-border)}body.tpl-agent .reqbar{margin-bottom:14px}body.tpl-agent .reqbar select{width:100%;padding:7px 10px;border:1px solid var(--ctl-border);border-radius:8px;background:var(--ctl-bg);color:var(--ctl-fg);font-size:var(--fs-12);font-weight:400;font-family:inherit}body.tpl-agent .fw-body .field{margin:0}body.tpl-agent .fw-body .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}body.tpl-agent .credstate{border:1px solid rgba(224,162,60,.4);background:rgba(224,162,60,.12);color:var(--warn);border-radius:9px;padding:9px 11px;font-size:var(--fs-12);font-weight:400;margin-bottom:4px}body.tpl-agent .credstate.on{border-color:rgba(45,152,101,.4);background:rgba(45,152,101,.14);color:var(--ok)}body.tpl-agent .btn{border:1px solid var(--ac-border);background:var(--text);color:var(--text);border-radius:8px;padding:9px 12px;font-size:var(--fs-14);font-weight:400;cursor:pointer}body.tpl-agent .btn.primary{background:var(--text);border-color:var(--text);color:var(--text)}body.tpl-agent .btn.primary:disabled{opacity:.5;cursor:not-allowed}body.tpl-agent .link{display:flex;align-items:center;gap:8px;color:var(--text);font-size:var(--fs-14);font-weight:400;text-decoration:none;padding:8px 10px;border-radius:8px;border:1px solid var(--ac-border);background:var(--text);margin:8px 0}body.tpl-agent .link:hover{border-color:var(--text);box-shadow:0 0 0 2px rgba(204,65,37,.25)}body.tpl-agent .link .chip{font-family:var(--font);font-size:var(--fs-12);font-weight:400;color:var(--text);background:var(--text);border-radius:6px;padding:3px 8px;flex:0 0 auto}body.tpl-agent .qrrow{display:flex;align-items:center;gap:14px}body.tpl-agent .qrbox-wrap{flex:0 0 auto;background:#fff;border-radius:10px;padding:8px;width:124px;height:124px;display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.35)}body.tpl-agent #qrbox{width:104px;height:104px;display:grid;place-items:center}body.tpl-agent .row{border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:9px 10px;background:rgba(255,255,255,.06)}body.tpl-agent .row b{font-size:var(--fs-14);font-weight:400;color:#f6efe2}body.tpl-agent .row small{display:block;color:var(--text-muted);font-size:var(--fs-12);margin-top:3px;font-weight:400}body.tpl-agent .st{font-size:var(--fs-xs);font-weight:400;border-radius:99px;padding:2px 8px;margin-left:6px;text-transform:capitalize}body.tpl-agent .st.NEW{background:rgba(255,255,255,.08);color:#cbbba4}body.tpl-agent .st.RUNNING{background:rgba(79,143,214,.22);color:var(--blue)}body.tpl-agent .st.DONE{background:rgba(45,152,101,.22);color:var(--ok)}body.tpl-agent .st.ERROR{background:rgba(212,88,88,.22);color:var(--bad)}body.tpl-agent .st.WAITING-FOR-AGENT, body.tpl-agent .st.WAITING-FOR-MFA{background:rgba(224,162,60,.22);color:var(--warn)}body.tpl-agent .switch{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}body.tpl-agent .switch span{font-size:var(--fs-12);font-weight:400;color:var(--text)}body.tpl-agent .toggle{position:relative;width:42px;height:24px;background:rgba(255,255,255,.08);border-radius:99px;cursor:pointer}body.tpl-agent .toggle::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:.15s}body.tpl-agent .toggle.on{background:var(--accent)}body.tpl-agent .toggle.on::after{left:21px;background:#fff}body.tpl-agent .toast{position:fixed;right:16px;bottom:16px;z-index:200;display:none;max-width:340px;padding:12px 14px;border-radius:10px;background:var(--ink);color:#0a0e16;font-size:var(--fs-12);font-weight:400}body.tpl-agent .toast.show{display:block}body.tpl-agent #stage table tbody tr:nth-child(even){background:rgba(194,58,51,.10)}body.tpl-agent #stage table tbody tr:nth-child(odd){background:rgba(255,255,255,.03)}body.tpl-agent #dockbody .row:nth-child(even){background:rgba(255,255,255,.03)}body.tpl-agent .kfpanel{border:1px solid rgba(204,65,37,.4);border-radius:10px;margin-bottom:10px;background:linear-gradient(180deg,rgba(115,67,67,.28),rgba(63,38,38,.16));overflow:hidden}body.tpl-agent .kfhead{width:100%;text-align:left;background:rgba(115,67,67,.38);color:var(--accent-weak);border:0;padding:8px 10px;font-size:var(--fs-12);font-weight:400;cursor:pointer;display:flex;gap:6px;align-items:center}body.tpl-agent .kfbody{padding:8px 10px}body.tpl-agent .kfpanel.bulk .kfhead{background:rgba(63,38,38,.42)}body.tpl-agent .catkpi{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:baseline;padding:var(--s2) var(--s3);margin-bottom:var(--s3);border:1px solid var(--border);border-radius:var(--r3);background:var(--surface-1);font-size:var(--fs-xs);color:var(--text-muted)}body.tpl-agent .catkpi b{color:var(--text);font-size:var(--fs-md);font-weight:400}body.tpl-agent .catlevel{display:flex;gap:var(--s3);align-items:flex-start;margin:var(--s1) 0}body.tpl-agent .catlbl{flex:0 0 120px;font-size:var(--fs-xs);color:var(--text-muted);padding-top:6px;text-transform:uppercase;letter-spacing:.05em}body.tpl-agent .cathint{font-size:var(--fs-xs);color:var(--text-dim)}body.tpl-agent .csort{cursor:pointer}body.tpl-agent .catchip{display:inline-block;margin:2px var(--s1) 2px 0;padding:2px var(--s2);border:1px solid var(--border);border-radius:999px;font-size:var(--fs-xs);color:var(--text);background:var(--surface-2)}


/* ---- requester.html ---- */
body.tpl-requester{position:relative;z-index:1}body.tpl-requester .page{max-width:560px;margin:auto;padding:16px 14px 90px;position:relative;z-index:1}body.tpl-requester .top{display:flex;align-items:center;justify-content:space-between}body.tpl-requester .mark{display:flex;align-items:center;gap:5px;border-radius:10px;background:var(--accent);color:#fff;font-weight:400;font-size:var(--fs-14);padding:7px 12px;letter-spacing:.3px}body.tpl-requester .mark b{font-weight:400;font-size:var(--fs-14);letter-spacing:.5px}body.tpl-requester .who{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}body.tpl-requester .group{border:1px solid var(--line);border-radius:14px;background:var(--card);margin-top:12px;overflow:hidden;backdrop-filter:blur(8px)}body.tpl-requester .g-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px;border:0;background:transparent;color:var(--ink);font-size:var(--fs-14);font-weight:400}body.tpl-requester .group.open>.g-head .arrow{transform:rotate(90deg)}body.tpl-requester .g-body{display:none;padding:0 12px 12px}body.tpl-requester .group.open>.g-body{display:block}body.tpl-requester .act{display:block;width:100%;text-align:left;padding:11px 13px;margin:3px 0;border:1px solid var(--line);border-radius:10px;background:var(--card2);color:var(--ink);font-size:var(--fs-12);font-weight:400}body.tpl-requester .list{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}body.tpl-requester .empty{padding:24px;text-align:center;color:var(--muted);font-size:var(--fs-12);font-weight:400}body.tpl-requester .request{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px;border-bottom:1px solid var(--line)}body.tpl-requester .request:last-child{border:0}body.tpl-requester .request b{font-size:var(--fs-12);display:block;font-weight:400}body.tpl-requester .request small{display:block;margin-top:4px;color:var(--muted);font-size:var(--fs-10);font-weight:400}body.tpl-requester .pill{border-radius:99px;background:rgba(255,255,255,.06);padding:5px 8px;font-size:var(--fs-8);font-weight:400;align-self:start;text-transform:capitalize}body.tpl-requester .pill.DONE{background:rgba(45,152,101,.16);color:var(--ok)}body.tpl-requester .pill.ERROR{background:rgba(212,88,88,.16);color:var(--bad)}body.tpl-requester .pill.RUNNING{background:rgba(79,143,214,.16);color:var(--blue)}body.tpl-requester .pill.WAITING, body.tpl-requester .pill.WAITING-FOR-AGENT, body.tpl-requester .pill.WAITING-FOR-MFA{background:rgba(224,162,60,.16);color:var(--warn)}body.tpl-requester .backdrop{position:fixed;inset:0;z-index:20;display:none;place-items:center;padding:16px;background:rgba(3,5,9,.82)}body.tpl-requester .backdrop.open{display:grid}body.tpl-requester .panel{width:min(520px,100%);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:var(--card);backdrop-filter:blur(12px)}body.tpl-requester .panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}body.tpl-requester .panel-head h2{margin:0;font-size:var(--fs-14);font-weight:400}body.tpl-requester .close{width:30px;height:30px;border:0;border-radius:50%;background:var(--card2);color:var(--ink);font-size:var(--fs-14);font-weight:400}body.tpl-requester .form{overflow:auto;padding:16px}body.tpl-requester .field{display:grid;gap:6px;margin-bottom:12px}body.tpl-requester .field span{font-size:var(--fs-14);font-weight:400;color:#8fc1ee}body.tpl-requester .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}body.tpl-requester .fld{position:relative;margin-bottom:12px}body.tpl-requester .fld input, body.tpl-requester .fld select, body.tpl-requester .fld select.flat{width:100%;padding:15px 12px 5px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:var(--ink);font:inherit;font-weight:400;outline:0}body.tpl-requester .fld label{position:absolute;left:13px;top:13px;font-size:var(--fs-12);color:var(--muted);pointer-events:none;transition:all .16s;font-weight:400}body.tpl-requester .fld input:focus, body.tpl-requester .fld select:focus{border-color:var(--accent);background:rgba(255,255,255,.07)}body.tpl-requester .fld input:focus+label, body.tpl-requester .fld input:not(:placeholder-shown)+label, body.tpl-requester .fld select+label{top:4px;font-size:var(--fs-8);color:var(--accent)}body.tpl-requester .fld select{padding:14px 12px 4px}body.tpl-requester .gps{position:absolute;right:10px;bottom:6px;border:0;background:transparent;color:var(--blue);font-size:var(--fs-10);font-weight:400;padding:0;cursor:pointer}body.tpl-requester .camera{position:relative;min-height:56px;display:grid;place-items:center;border:2px dashed rgba(101,8,8,.3);border-radius:12px;background:#FFF5F5;overflow:hidden;padding:8px}body.tpl-requester .camera input{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:3}body.tpl-requester .camera img{width:100%;max-height:260px;object-fit:contain;z-index:1}body.tpl-requester .camera .camretake{position:absolute;right:8px;bottom:8px;z-index:4;border:1px solid #650808;background:#FFF5F5;color:#650808;border-radius:7px;padding:4px 10px;font-size:var(--fs-12);font-weight:400;cursor:pointer;pointer-events:auto}body.tpl-requester /* source toggle (camera / gallery) */
.srcrow{display:flex;gap:6px;margin-bottom:6px}body.tpl-requester .srcbtn{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px;background:var(--card2);color:var(--ink);font-size:var(--fs-12);font-weight:400;cursor:pointer}body.tpl-requester .srcbtn.on{border-color:var(--accent);color:var(--accent)}body.tpl-requester .chipbtn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--card2);color:var(--ink);font-size:var(--fs-10);font-weight:400;cursor:pointer}body.tpl-requester .chipbtn.on{border-color:var(--accent);color:var(--accent)}body.tpl-requester .note{font-size:var(--fs-10);color:var(--muted);font-weight:400;margin-top:-4px}body.tpl-requester .foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}body.tpl-requester .secondary{border:1px solid var(--line);background:transparent;color:var(--ink)}body.tpl-requester .primary{background:var(--accent);color:#fff}body.tpl-requester .secondary, body.tpl-requester .primary{border-radius:9px;padding:10px 14px;font-size:var(--fs-12);font-weight:400}body.tpl-requester .primary:disabled{opacity:.5}body.tpl-requester .toast{position:fixed;right:14px;bottom:14px;z-index:30;display:none;max-width:340px;padding:12px 14px;border-radius:10px;background:var(--ink);color:var(--card2);font-size:var(--fs-12);font-weight:400}body.tpl-requester .toast.show{display:block}body.tpl-requester /* requester form styling */
.page input, body.tpl-requester .page select, body.tpl-requester .page textarea{background:#FFF5F5;border:1px solid rgba(101,8,8,.22);color:#650808}body.tpl-requester .page input:focus, body.tpl-requester .page select:focus, body.tpl-requester .page textarea:focus{border-color:#650808;background:#FFF5F5;box-shadow:0 0 0 1px rgba(101,8,8,.3)}body.tpl-requester .page input::placeholder, body.tpl-requester .page textarea::placeholder{color:rgba(101,8,8,.5)}body.tpl-requester .req-heading{font-size:var(--fs-14);font-weight:400;color:#650808;margin-bottom:8px;letter-spacing:.2px}body.tpl-requester .mode-toggle{display:flex;gap:10px}body.tpl-requester .mode-opt{flex:1;display:flex;align-items:center;gap:9px;padding:12px;border:1px solid rgba(101,8,8,.22);border-radius:12px;cursor:pointer;position:relative;background:#FFF5F5}body.tpl-requester .mode-opt:nth-child(2){background:#FFE5E5}body.tpl-requester .mode-opt:nth-child(3){background:#FFD6D6}body.tpl-requester .mode-opt input{position:absolute;opacity:0;pointer-events:none}body.tpl-requester .mode-dot{width:15px;height:15px;border-radius:50%;border:1px solid rgba(101,8,8,.4);flex:0 0 auto;transition:.15s}body.tpl-requester .mode-label{font-size:var(--fs-14);font-weight:400;color:#650808}body.tpl-requester .mode-opt.on{border:2px solid #650808}body.tpl-requester .mode-opt.on .mode-dot{background:#650808;border-color:#650808;box-shadow:0 0 0 2px rgba(101,8,8,.3)}body.tpl-requester .sec{border:1px solid rgba(101,8,8,.22);border-radius:12px;overflow:visible;margin-bottom:10px;background:rgba(255,245,245,.22)}body.tpl-requester .sec-h{display:flex;align-items:center;gap:8px;width:100%;border:0;background:#FFE5E5;color:#650808;cursor:pointer;padding:10px 12px;font-size:var(--fs-12);font-weight:400;text-align:left}body.tpl-requester .sec-h .arr{transition:transform .18s;font-size:var(--fs-10);color:#650808}body.tpl-requester .sec.folded .arr{transform:rotate(-90deg)}body.tpl-requester .sec-b{display:block;padding:10px 12px}body.tpl-requester .sec.folded .sec-b{display:none}body.tpl-requester .bulk-table{width:100%;border-collapse:collapse;font-size:var(--fs-12);color:#650808;margin-top:4px;table-layout:fixed}body.tpl-requester .bulk-table th{background:#FFD6D6;color:#650808;padding:6px;font-weight:400;text-align:left;border:1px solid rgba(101,8,8,.25);white-space:nowrap;position:relative}body.tpl-requester .bulk-table .col-handle{position:absolute;top:0;right:-3px;bottom:0;width:7px;cursor:col-resize;z-index:2}body.tpl-requester .bulk-table .col-handle:hover{background:rgba(101,8,8,.25)}body.tpl-requester .bulk-table td{padding:0;border:1px solid rgba(101,8,8,.2);margin:0}body.tpl-requester .bulk-table td.sn{background:#FFE5E5;text-align:center;color:#650808;font-size:var(--fs-10);padding:4px;width:34px;cursor:row-resize}body.tpl-requester .bulk-table input, body.tpl-requester .bulk-table select{border:0;border-radius:0;background:#FFF5F5;color:#650808;padding:5px 6px;font-size:var(--fs-12);width:100%;box-sizing:border-box}body.tpl-requester .bulk-table select{appearance:auto}body.tpl-requester .bulk-table .bulk-del{border:0;background:transparent;color:#650808;font-size:var(--fs-12);cursor:pointer;padding:2px 6px}body.tpl-requester .bulk-table td.bulk-sel{background:#FBDEDE;box-shadow:inset 0 0 0 1.5px #650808}body.tpl-requester .bulk-table td.bulk-sel input, body.tpl-requester .bulk-table td.bulk-sel select{background:transparent}body.tpl-requester .bulk-fill{position:absolute;right:-4px;bottom:-4px;width:11px;height:11px;background:#650808;border:1px solid #fff;border-radius:2px;cursor:crosshair;z-index:6}body.tpl-requester body.bulk-dragging *{cursor:crosshair!important;user-select:none}body.tpl-requester #bulk_scroll{position:relative}body.tpl-requester /* responsive: auto-detect device viewport and adapt layout */
html[data-device="desktop"] .page{max-width:1100px}body.tpl-requester html[data-device="desktop"] #credentials{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}body.tpl-requester html[data-device="desktop"] #credentials .sec{margin-bottom:0}body.tpl-requester html[data-device="desktop"] #credentials .sec[data-sec="sec_bulk"]{grid-column:1/-1}body.tpl-requester html[data-device="desktop"] #bulk_scroll{max-height:62vh}body.tpl-requester html[data-device="desktop"] .bulk-table{min-width:960px}body.tpl-requester .logback{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(3,5,9,.82)}body.tpl-requester .logpanel{width:min(480px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-radius:14px;background:#FFF5F5;border:1px solid rgba(101,8,8,.35)}body.tpl-requester .loghead{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-size:var(--fs-14);font-weight:400;color:#650808;border-bottom:1px solid rgba(101,8,8,.2)}body.tpl-requester .logbody{overflow:auto;padding:10px 14px;font-size:var(--fs-12);color:#650808}body.tpl-requester .logbody table{width:100%;border-collapse:collapse}body.tpl-requester .logbody td{padding:6px 8px;border-bottom:1px solid rgba(101,8,8,.08);vertical-align:top}body.tpl-requester .logbody td:first-child{white-space:nowrap;font-weight:400;opacity:.7}body.tpl-requester .logfoot{display:flex;gap:6px;padding:10px 14px;border-top:1px solid rgba(101,8,8,.2)}body.tpl-requester .logpanel .close{width:28px;height:28px;border:0;border-radius:50%;background:rgba(101,8,8,.08);color:#650808;font-size:var(--fs-14);cursor:pointer}body.tpl-requester .request:nth-child(even){background:rgba(255,140,120,.10)}body.tpl-requester .request:nth-child(odd){background:rgba(255,255,255,.04)}body.tpl-requester /* cross-division requester links: dashboard/desktop only — mobile users
   get their own single-division link */
@media (max-width:767px){.divlink{display:none}}


/* ---- requester_nfv.html ---- */
body.tpl-requester-nfv{position:relative;z-index:1}body.tpl-requester-nfv .page{max-width:560px;margin:auto;padding:16px 14px 90px;position:relative;z-index:1}body.tpl-requester-nfv .top{display:flex;align-items:center;justify-content:space-between}body.tpl-requester-nfv .mark{display:flex;align-items:center;gap:5px;border-radius:10px;background:var(--accent);color:#fff;font-weight:400;font-size:var(--fs-14);padding:7px 12px;letter-spacing:.3px}body.tpl-requester-nfv .mark b{font-weight:400;font-size:var(--fs-14);letter-spacing:.5px}body.tpl-requester-nfv .who{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}body.tpl-requester-nfv .maincard{border:1px solid rgba(194,58,51,.35);border-radius:14px;overflow:hidden;background:rgba(255,245,245,.22);padding:6px;margin-bottom:10px}body.tpl-requester-nfv .maincard .sec{margin-bottom:4px;border-radius:10px}body.tpl-requester-nfv .maincard .sec:last-child{margin-bottom:0}body.tpl-requester-nfv .sec{border:1px solid rgba(194,58,51,.22);border-radius:12px;overflow:visible;margin-bottom:10px;background:rgba(255,245,245,.22)}body.tpl-requester-nfv .sec-h{display:flex;align-items:center;gap:8px;width:100%;border:0;background:#FFE5E5;color:#c23a33;cursor:pointer;padding:10px 12px;font-size:var(--fs-12);font-weight:400;text-align:left}body.tpl-requester-nfv .sec-h .arr{transition:transform .18s;font-size:var(--fs-10);color:#c23a33}body.tpl-requester-nfv .sec.folded .arr{transform:rotate(-90deg)}body.tpl-requester-nfv .sec-b{display:block;padding:10px 12px}body.tpl-requester-nfv .sec.folded .sec-b{display:none}body.tpl-requester-nfv .req-heading{font-size:var(--fs-14);font-weight:400;color:#c23a33;margin-bottom:8px;letter-spacing:.2px}body.tpl-requester-nfv .page input, body.tpl-requester-nfv .page select, body.tpl-requester-nfv .page textarea{background:#FFF5F5;border:1px solid rgba(194,58,51,.25);color:#c23a33;border-radius:8px;padding:9px 10px;font-size:var(--fs-14);font-weight:400;width:100%;box-sizing:border-box;margin:4px 0 10px;font-family:inherit}body.tpl-requester-nfv .page input:focus, body.tpl-requester-nfv .page select:focus, body.tpl-requester-nfv .page textarea:focus{border-color:#c23a33;box-shadow:0 0 0 1px rgba(194,58,51,.3);outline:0}body.tpl-requester-nfv .page label{font-size:var(--fs-12);color:#c23a33;font-weight:400}body.tpl-requester-nfv .page input::placeholder, body.tpl-requester-nfv .page textarea::placeholder{color:rgba(13,49,95,.12)}body.tpl-requester-nfv .primary{background:#c23a33;color:#FFF5F5;border:0;border-radius:9px;padding:10px 14px;font-size:var(--fs-12);font-weight:400;width:100%;margin-top:8px}body.tpl-requester-nfv .primary:disabled{opacity:.5}body.tpl-requester-nfv .secondary{border:1px solid rgba(194,58,51,.25);background:transparent;color:#c23a33;border-radius:9px;padding:8px 12px;font-size:var(--fs-12)}body.tpl-requester-nfv .cfg{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(159,198,232,.30)}body.tpl-requester-nfv .cfg span{font-size:var(--fs-12);color:#f4cccc;flex:1;padding-right:8px}body.tpl-requester-nfv .cfg input[type=number]{width:76px;margin:0}body.tpl-requester-nfv .toggle{position:relative;width:38px;height:20px;background:rgba(255,158,138,.28);border-radius:99px;cursor:pointer;flex:0 0 auto;transition:.15s}body.tpl-requester-nfv .toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#FFF5F5;transition:.15s}body.tpl-requester-nfv .toggle.on{background:#ff9e8a}body.tpl-requester-nfv .toggle.on::after{left:20px}body.tpl-requester-nfv .subsec{border:1px solid rgba(159,198,232,.30);border-radius:9px;margin:6px 0;background:rgba(255,255,255,.03);overflow:hidden}body.tpl-requester-nfv .subsec-h{display:flex;align-items:center;gap:8px;width:100%;border:0;background:rgba(255,158,138,.10);color:#ff9e8a;cursor:pointer;padding:8px 10px;font-size:var(--fs-12);font-weight:400;text-align:left}body.tpl-requester-nfv .subsec-h .arr{transition:transform .18s;font-size:var(--fs-10);color:#ff9e8a}body.tpl-requester-nfv .subsec.folded .arr{transform:rotate(-90deg)}body.tpl-requester-nfv .subsec-b{display:block;padding:6px 10px 10px}body.tpl-requester-nfv .subsec.folded .subsec-b{display:none}body.tpl-requester-nfv .cfgwrap{border:1px solid rgba(159,198,232,.28);border-radius:8px;padding:0 10px}body.tpl-requester-nfv .list{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden;margin-top:10px}body.tpl-requester-nfv .empty{padding:24px;text-align:center;color:var(--muted);font-size:var(--fs-12);font-weight:400}body.tpl-requester-nfv .request{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px;border-bottom:1px solid var(--line)}body.tpl-requester-nfv .request b{font-size:var(--fs-12);display:block;font-weight:400}body.tpl-requester-nfv .request small{display:block;margin-top:4px;color:var(--muted);font-size:var(--fs-10);font-weight:400}body.tpl-requester-nfv .pill{border-radius:99px;background:rgba(255,255,255,.06);padding:5px 8px;font-size:var(--fs-8);font-weight:400;align-self:start;text-transform:capitalize}body.tpl-requester-nfv .pill.DONE{background:rgba(45,152,101,.16);color:var(--ok)}body.tpl-requester-nfv .pill.ERROR{background:rgba(212,88,88,.16);color:var(--bad)}body.tpl-requester-nfv .pill.RUNNING{background:rgba(79,143,214,.16);color:var(--blue)}body.tpl-requester-nfv .toast{position:fixed;right:14px;bottom:14px;z-index:30;display:none;max-width:340px;padding:12px 14px;border-radius:10px;background:var(--ink);color:var(--card2);font-size:var(--fs-12);font-weight:400}body.tpl-requester-nfv .toast.show{display:block}body.tpl-requester-nfv textarea.bulk{min-height:120px;font-size:var(--fs-12)}body.tpl-requester-nfv .warn{display:none;font-size:var(--fs-10);color:#ff4b3f;margin:-6px 0 8px;font-weight:400}body.tpl-requester-nfv .note{font-size:var(--fs-10);color:#c23a33}body.tpl-requester-nfv #c_map, body.tpl-requester-nfv #u_map{height:200px;border-radius:9px;border:1px solid rgba(194,58,51,.25);background:#e8e4d8;z-index:1}body.tpl-requester-nfv #c_search{width:100%}body.tpl-requester-nfv .georesults{background:#FFF5F5;border:1px solid rgba(194,58,51,.25);border-radius:8px;overflow:hidden;margin:0 0 8px}body.tpl-requester-nfv .georesults div{padding:8px 10px;font-size:var(--fs-12);color:#c23a33;border-bottom:1px solid rgba(194,58,51,.08);cursor:pointer}body.tpl-requester-nfv .georesults div:last-child{border-bottom:0}body.tpl-requester-nfv .logback{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(3,5,9,.82)}body.tpl-requester-nfv .logpanel{width:min(480px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-radius:14px;background:#FFF5F5;border:1px solid rgba(101,8,8,.35)}body.tpl-requester-nfv .loghead{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-size:var(--fs-14);font-weight:400;color:#650808;border-bottom:1px solid rgba(101,8,8,.2)}body.tpl-requester-nfv .logbody{overflow:auto;padding:10px 14px;font-size:var(--fs-12);color:#650808}body.tpl-requester-nfv .logbody table{width:100%;border-collapse:collapse}body.tpl-requester-nfv .logbody td{padding:6px 8px;border-bottom:1px solid rgba(101,8,8,.08);vertical-align:top}body.tpl-requester-nfv .logbody td:first-child{white-space:nowrap;font-weight:400;opacity:.7}body.tpl-requester-nfv .logfoot{display:flex;gap:6px;padding:10px 14px;border-top:1px solid rgba(101,8,8,.2)}body.tpl-requester-nfv .logpanel .close{width:28px;height:28px;border:0;border-radius:50%;background:rgba(101,8,8,.08);color:#650808;font-size:var(--fs-14);cursor:pointer}body.tpl-requester-nfv .req-heading{color:#ff9e8a;font-size:var(--fs-14);font-weight:400;letter-spacing:.2px}body.tpl-requester-nfv .page label{color:#ffb9ad;font-size:var(--fs-14);font-weight:400}body.tpl-requester-nfv .note{color:#ffb9ad}body.tpl-requester-nfv .sec-h{font-size:var(--fs-14);color:#ff9e8a}body.tpl-requester-nfv .request:nth-child(even){background:rgba(255,140,120,.10)}body.tpl-requester-nfv .request:nth-child(odd){background:rgba(255,255,255,.04)}body.tpl-requester-nfv /* cross-division requester links: dashboard/desktop only — mobile users
   get their own single-division link */
@media (max-width:767px){.divlink{display:none}}


/* ---- shopper.html ---- */
body.tpl-shopper{overflow:auto}body.tpl-shopper header{display:flex;align-items:center;gap:14px;padding:12px 16px;background:rgba(9,13,22,.55);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}body.tpl-shopper .sp{flex:1}body.tpl-shopper #desk{position:relative;padding:18px;max-width:760px;margin:auto}body.tpl-shopper .win{background:linear-gradient(160deg,rgba(180,170,160,.15),rgba(124,82,56,.14));backdrop-filter:blur(10px);border:1px solid rgba(198,188,176,.18);border-radius:10px;box-shadow:0 12px 34px rgba(0,0,0,.35);margin-bottom:14px;overflow:hidden}body.tpl-shopper .w-head{display:flex;align-items:center;padding:11px 14px;cursor:pointer;user-select:none;border-bottom:1px solid rgba(198,188,176,.10)}body.tpl-shopper .w-title{font-size:var(--fs-12);font-weight:400;letter-spacing:.4px;flex:1}body.tpl-shopper .w-head .chev{font-size:var(--fs-10);color:var(--muted);transition:transform .15s}body.tpl-shopper .win.open .chev{transform:rotate(90deg)}body.tpl-shopper .w-body{display:none;padding:14px}body.tpl-shopper .win.open .w-body{display:block}body.tpl-shopper .field{display:grid;gap:6px;margin-bottom:12px}body.tpl-shopper .field span{font-size:var(--fs-10);font-weight:400;color:var(--muted)}body.tpl-shopper .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}body.tpl-shopper .sec{border:1px solid var(--line);border-radius:9px;margin-bottom:10px;background:var(--card2)}body.tpl-shopper .sec-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;font-size:var(--fs-12);font-weight:400}body.tpl-shopper .sec-body{display:none;padding:0 12px 10px}body.tpl-shopper .sec.open .sec-body{display:block}body.tpl-shopper .cfg{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}body.tpl-shopper .cfg:last-child{border-bottom:0}body.tpl-shopper .cfg span{font-size:var(--fs-12);font-weight:400;color:var(--ink)}body.tpl-shopper .cfg input[type=number]{width:70px;border:1px solid rgba(101,8,8,.22);border-radius:6px;background:#FFF5F5;color:#650808;padding:5px 8px;font-size:var(--fs-12);font-weight:400}body.tpl-shopper .toggle{position:relative;width:38px;height:20px;background:rgba(255,255,255,.08);border-radius:99px;cursor:pointer}body.tpl-shopper .toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:.15s}body.tpl-shopper .toggle.on{background:var(--accent)}body.tpl-shopper .toggle.on::after{left:20px;background:#fff}body.tpl-shopper #map{height:220px;border-radius:9px;border:1px solid var(--line);background-color:#e8e4d8;background-image:linear-gradient(rgba(120,120,120,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(120,120,120,.25) 1px,transparent 1px);background-size:40px 40px}body.tpl-shopper .btn{border:1px solid var(--line);background:var(--card2);color:var(--ink);border-radius:8px;padding:9px 14px;font-size:var(--fs-12);font-weight:400;cursor:pointer}body.tpl-shopper .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;width:100%;margin-top:12px}body.tpl-shopper .toast{position:fixed;right:16px;bottom:16px;z-index:100;display:none;max-width:340px;padding:12px 14px;border-radius:10px;background:var(--ink);color:#0a0e16;font-size:var(--fs-12);font-weight:400}body.tpl-shopper .toast.show{display:block}


/* ---- login.html ---- */
body.tpl-login{display:grid;place-items:center;min-height:100vh}body.tpl-login .panel{width:min(360px,92vw);display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px 0}body.tpl-login .field{width:100%;display:grid;gap:6px}body.tpl-login .field label{font-size:var(--fs-12);color:var(--muted);font-weight:400;margin:0;letter-spacing:.4px}body.tpl-login .inputrow{display:flex;align-items:center;gap:6px;border:1px solid rgba(101,8,8,.22);border-radius:8px;background:#FFF5F5;padding:0 12px;transition:border-color .15s,box-shadow .15s}body.tpl-login .inputrow:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}body.tpl-login .inputrow:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}body.tpl-login .inputrow input{flex:1;border:0;background:transparent;padding:11px 0;color:#650808;font:inherit;font-weight:400;min-width:0}body.tpl-login .inputrow input::placeholder{color:rgba(101,8,8,.5)}body.tpl-login .inputrow input:focus{outline:0}body.tpl-login .eye{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:var(--fs-10);font-weight:400;letter-spacing:.5px;padding:4px 0}body.tpl-login .eye:hover{color:var(--ink)}body.tpl-login .save{border:1px solid var(--bad);background:transparent;color:var(--ink);border-radius:8px;padding:9px 26px;font-size:var(--fs-12);font-weight:400;letter-spacing:.5px;cursor:pointer;transition:border-color .15s,color .15s}body.tpl-login .save:hover{border-color:var(--blue);color:var(--blue)}body.tpl-login .toast{font-size:var(--fs-12);color:var(--warn);min-height:14px;font-weight:400}body.tpl-login .hint{font-size:var(--fs-10);color:var(--muted);font-weight:400;text-align:center;line-height:1.5}


/* ---- first_run.html ---- */
body.tpl-first-run{display:grid;place-items:center;min-height:100vh}body.tpl-first-run .panel{width:min(360px,92vw);display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px 0}body.tpl-first-run .field{width:100%;display:grid;gap:6px}body.tpl-first-run .field label{font-size:var(--fs-12);color:var(--muted);font-weight:400;margin:0;letter-spacing:.4px}body.tpl-first-run .inputrow{display:flex;align-items:center;gap:6px;border:1px solid rgba(101,8,8,.22);border-radius:8px;background:#FFF5F5;padding:0 12px;transition:border-color .15s,box-shadow .15s}body.tpl-first-run .inputrow:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}body.tpl-first-run .inputrow:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}body.tpl-first-run .inputrow input{flex:1;border:0;background:transparent;padding:11px 0;color:#650808;font:inherit;font-weight:400;min-width:0}body.tpl-first-run .inputrow input::placeholder{color:rgba(101,8,8,.5)}body.tpl-first-run .inputrow input:focus{outline:0}body.tpl-first-run .inputrow select{border:0;background:transparent;color:#650808;font:inherit;font-weight:400;padding:11px 0;appearance:none;cursor:pointer;max-width:140px}body.tpl-first-run .inputrow select:focus{outline:0}body.tpl-first-run .at{color:var(--muted);font-size:var(--fs-12)}body.tpl-first-run .eye{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:var(--fs-10);font-weight:400;letter-spacing:.5px;padding:4px 0}body.tpl-first-run .eye:hover{color:var(--ink)}body.tpl-first-run .save{border:1px solid var(--bad);background:transparent;color:var(--ink);border-radius:8px;padding:9px 26px;font-size:var(--fs-12);font-weight:400;letter-spacing:.5px;cursor:pointer;transition:border-color .15s,color .15s}body.tpl-first-run .save:hover{border-color:var(--blue);color:var(--blue)}body.tpl-first-run .toast{font-size:var(--fs-12);color:var(--warn);min-height:14px;font-weight:400}



/* ---- O29 inline-style extraction (scoped classes) ---- */
body.tpl-agent .sd0845c94{width:100%;border:0;display:block;height:100%}
body.tpl-agent .s7d40101c{width:auto;padding:2px 7px;font-size:var(--fs-12)}
body.tpl-agent .scb662527{white-space:nowrap}
body.tpl-agent .s2f5bc031{width:auto;padding:4px 8px}
body.tpl-agent .s1c267686{margin-bottom:10px}
body.tpl-agent .sd8f46d24{display:flex;gap:4px;flex-wrap:wrap}
body.tpl-agent .s38f51aa2{width:100%}
body.tpl-agent .scd61b0df{position:sticky;top:0;background:#101826}
body.tpl-agent .s84cab819{text-align:left;padding:5px 8px;font-weight:400}
body.tpl-agent .sad7d8b6f{padding:4px}
body.tpl-agent .s23dad27a{overflow:auto}
body.tpl-agent .s7690f355{width:100%;border-collapse:collapse;font-size:var(--fs-12)}
body.tpl-agent .sd466e39d{color:var(--text-muted);font-size:var(--fs-12)}
body.tpl-agent .s83a76f05{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
body.tpl-agent .s6702fc9a{flex:1;min-width:150px}
body.tpl-agent .sfe1f5f19{width:auto;flex:0 0 auto}
body.tpl-agent .s81649fe2{flex:0 0 auto}
body.tpl-agent .s5956b701{color:var(--text-muted)}
body.tpl-agent .sf5644efb{width:100%;margin-top:12px}
body.tpl-agent .sa4314766{margin-top:8px;font-size:var(--fs-xs);color:var(--text-muted)}
body.tpl-agent .s32780489{margin:8px 0}
body.tpl-agent .s3b01724f{width:auto;margin:0 4px 0 0;padding:6px 10px}
/* RULE #1: source is a compact label + temporary popup, never a permanent tab bar */
body.tpl-agent .rep-src{position:relative;display:inline-block;margin:0 0 4px}
body.tpl-agent .rep-src>.btn{width:auto;padding:5px 10px;font-size:var(--fs-12)}
body.tpl-agent .rep-src-menu{display:none;position:absolute;left:0;top:calc(100% + 4px);z-index:40;background:#fff;border:1px solid #dbe4f0;border-radius:8px;box-shadow:0 8px 20px rgba(13,49,95,.18);padding:4px;min-width:150px}
body.tpl-agent .rep-src-menu.open{display:block}
body.tpl-agent .rep-src-menu>.btn{display:block;width:100%;text-align:left;margin:0 0 3px;padding:6px 10px}
body.tpl-agent .rep-src-menu>.btn:last-child{margin-bottom:0}
body.tpl-agent .sc1908835{display:flex;gap:4px}
body.tpl-agent .s356776fd{width:auto;padding:4px 10px}
body.tpl-agent .s548fc9e9{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
body.tpl-agent .s0bfd6786{width:auto}
body.tpl-agent .sb14cac2a{font-size:var(--fs-xs);color:var(--text-muted)}
body.tpl-agent .sd97ea420{overflow:auto;max-height:460px;border:1px solid var(--line);border-radius:8px}
body.tpl-agent .s47c929d4{color:var(--text-muted);padding:14px}
body.tpl-agent .s91055879{display:flex;gap:8px;align-items:center;margin-top:8px}
body.tpl-agent .s67fd89ff{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);font-weight:400}
body.tpl-agent .s31811e0d{padding:14px;color:var(--text-muted)}
body.tpl-agent .sa56a699a{padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.05)}
body.tpl-agent .s8f1d9b06{font-size:var(--fs-12);color:var(--text-muted)}
body.tpl-agent .sad87675e{margin-top:12px}
body.tpl-agent .sc51f09d3{color:var(--text-muted);padding:16px}
body.tpl-agent .sa18fe668{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.06)}
body.tpl-agent .s24f8855c{opacity:.7;font-size:var(--fs-12)}
body.tpl-agent .s1c2b2651{font-size:var(--fs-12)}
body.tpl-agent .s8d456e5a{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:10px}
body.tpl-agent .sc7b4fc30{font-size:var(--fs-xs);opacity:.55;margin-top:10px}
body.tpl-agent .s6b41c401{color:var(--accent-weak)}
body.tpl-agent .s4ad24882{color:#4dff88}
body.tpl-agent .sd0b0129c{width:auto;padding:5px 10px}
body.tpl-agent .sb64ba2fb{display:flex;gap:6px;margin:8px 0}
body.tpl-agent .s8dde2904{margin-top:8px}
body.tpl-agent .sb5375524{font-size:var(--fs-xs);opacity:.7}
body.tpl-agent .s5e430fc8{font-size:var(--fs-14)}
body.tpl-agent .s285ba41b{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
body.tpl-agent .s67fa1708{font-size:var(--fs-xs);opacity:.55}
body.tpl-agent .sc918ac65{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.05)}
body.tpl-agent .se587819c{overflow:auto;max-height:520px}
body.tpl-agent .s5cfd9b67{font-size:var(--fs-xs);opacity:.55;margin-top:8px}
body.tpl-agent .sd78cbc2a{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px}
body.tpl-agent .scc29b85a{font-size:var(--fs-12);font-weight:400}
body.tpl-agent .s95b9a7c8{width:auto;margin:0;padding:8px 12px}
body.tpl-agent .s48ebf582{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:8px}
body.tpl-agent .sf1cd9532{fill:var(--c2)}
body.tpl-agent .sd393756c{fill:var(--c4)}
body.tpl-agent .sd6cbbf21{stroke:var(--c1)}
body.tpl-agent .sd21030a4{stroke:var(--c4)}
body.tpl-agent .s6a0137b1{fill:var(--c1)}
body.tpl-agent .s13763e98{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2)}
body.tpl-agent .sd59a52ce{min-width:200px}
body.tpl-agent .see0091e7{min-width:220px}
body.tpl-agent .s1b03c683{align-self:center}
body.tpl-agent .s6fc1b783{display:flex;align-items:center;gap:8px;margin:6px 0}
body.tpl-agent .s90f31ccc{overflow:auto;max-height:360px}
body.tpl-agent .s8ad6b8ab{overflow:auto;margin-top:6px}
body.tpl-agent .sd7638f66{display:flex;gap:8px;align-items:center;margin:6px 0}
body.tpl-agent .se0dff2b6{position:relative}
body.tpl-agent .s6fa525ee{flex:1}
body.tpl-agent .s2fb59d10{color:var(--accent-weak);font-weight:400}
body.tpl-agent .s755bfb62{margin-left:auto}
body.tpl-agent .sea056d83{color:var(--accent-weak);font-size:var(--fs-12);margin-top:6px}
body.tpl-agent .s33716767{width:100%;text-align:left}
body.tpl-agent .s1a49403d{margin-top:10px}
body.tpl-agent .scc4d2e7b{margin:8px 0;font-size:var(--fs-12);color:var(--text-muted)}
body.tpl-agent .s40b8dd5a{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}
body.tpl-agent .s94047a11{text-align:left;padding:5px 6px;font-weight:400}
body.tpl-agent .sbb4b50d2{overflow:auto;max-height:440px}
body.tpl-agent .sed842b89{font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px}
body.tpl-agent .s7310f316{width:100%;margin-top:8px}
body.tpl-agent .s81a205c6{width:100%;margin-top:10px}
body.tpl-agent .s26648d88{width:100%;margin-top:6px}
body.tpl-agent .s537b0533{margin-top:10px;font-size:var(--fs-12);font-weight:400;color:var(--text-muted);white-space:pre-wrap}
body.tpl-agent .s96df90be{font-size:var(--fs-xs);color:var(--accent-weak)}
body.tpl-agent .s81b92b45{font-family:var(--font)}
body.tpl-agent .s179f121f{display:none}
body.tpl-requester .s4a333dc4{width:100%;margin-top:12px}
body.tpl-requester .s43177dd9{display:none}
body.tpl-requester .s3cf7cdc7{padding:6px 10px;font-size:var(--fs-12)}
body.tpl-requester .s9ede4f28{padding:6px 10px;font-size:var(--fs-10);text-decoration:none}
body.tpl-requester .s8c75bfc6{width:auto;font-size:var(--fs-12);padding:5px 7px}
body.tpl-requester .s0961b693{margin-top:14px}
body.tpl-requester .s93f20771{width:100%;margin-top:14px}
body.tpl-requester .s5063edae{font-size:var(--fs-8);opacity:.45;text-align:center;margin:6px 0}
body.tpl-requester .s40cc24a0{color:var(--muted);font-size:var(--fs-12)}
body.tpl-requester .s57c19f74{font-size:var(--fs-10);color:var(--blue);margin-top:4px}
body.tpl-requester .sbb53311a{display:flex;gap:6px}
body.tpl-requester .sd05e7a2b{width:110px}
body.tpl-requester .sb444432b{flex:1}
body.tpl-requester .sc14d0973{font-size:var(--fs-10);font-weight:400;color:var(--warn);margin:-4px 0 10px}
body.tpl-requester .s9913ee76{width:auto;padding:5px 10px;font-size:var(--fs-10)}
body.tpl-requester .sf99df5c2{width:100%;border-radius:10px;color:var(--ink);font:inherit;font-weight:400;padding:10px}
body.tpl-requester .s6d131bd3{width:26px}
body.tpl-requester .sb1736cec{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}
body.tpl-requester .se83378d3{width:auto}
body.tpl-requester .s7ff533c0{font-size:var(--fs-12);color:#650808;display:flex;align-items:center;gap:5px}
body.tpl-requester .s585443fa{width:auto;background:transparent;border:0;color:#650808}
body.tpl-requester .s7d126700{font-size:var(--fs-10);color:#650808}
body.tpl-requester .s2a402e19{overflow:auto;max-height:420px;min-height:220px;min-width:300px;resize:both;border:1px solid rgba(101,8,8,.25);border-radius:8px}
body.tpl-requester .sfa37cbfb{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
body.tpl-requester .s439842cb{padding:3px 8px;font-size:var(--fs-10)}
body.tpl-requester .s16d1b74d{flex:1;padding:7px}
body.tpl-requester-nfv .s344c95d6{font-size:var(--fs-10);margin-left:6px;opacity:.85}
body.tpl-requester-nfv .sa9792e4d{display:none}
body.tpl-requester-nfv .se090adf9{padding:5px 10px;font-size:var(--fs-10);text-decoration:none}
body.tpl-requester-nfv .s0bfa84e6{margin-top:14px}
body.tpl-requester-nfv .s8b7fe7b7{font-size:var(--fs-8);opacity:.45;text-align:center;margin:6px 0}
body.tpl-requester-nfv .sb6a36b69{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
body.tpl-requester-nfv .s6b2c8106{padding:3px 8px;font-size:var(--fs-10)}
body.tpl-requester-nfv .s4bc62fbf{flex:1;padding:7px}
body.tpl-shopper .sdc9b26c6{font-size:var(--fs-12);font-weight:400;letter-spacing:1px}
body.tpl-shopper .s979c2d14{margin-top:10px;font-size:var(--fs-10);font-weight:400;color:var(--muted)}

/* ============================================================
   PRE-O25 (theme.css era) RESTORE — original palette on the
   current component classes. Dark gradient canvas, cream
   controls, orange #f05a3c accent, red-brown chrome.
   ============================================================ */
:root{
  --bg:#0a0f1a;
  --surface-1:rgba(16,22,36,.55);
  --surface-2:rgba(9,13,22,.62);
  --surface-3:rgba(13,23,41,.74);
  --chrome:rgba(8,13,24,.74);
  --border:rgba(255,255,255,.08);
  --border-strong:rgba(255,255,255,.18);
  --text:#e8edf6; --text-muted:#8b96a8; --text-dim:#5c6675; --text-inverse:#0a0e16;
  --accent:#f05a3c; --accent-hover:#ff6d4f; --accent-active:#d1482e;
  --accent-soft:rgba(240,90,60,.14); --accent-border:rgba(240,90,60,.45);
  --accent-weak:#ffb9ad; --accent-strong:#c23a33;
  --ok:#2d9865; --ok2:#2d9865; --bad:#d45858; --bad2:#d45858; --warn:#e0a23c;
  --c1:#f05a3c; --c2:#2d9865; --c3:#e0a23c; --c4:#d45858;
  --ctl-bg:#FFF5F5; --ctl-fg:#650808; --ctl-border:rgba(101,8,8,.22);
  --ctl-hover:#650808; --ctl-placeholder:rgba(101,8,8,.5);
  --ink:#e8edf6; --muted:#8b96a8; --dim:#5c6675; --line:rgba(255,255,255,.08);
  --card:rgba(16,22,36,.55); --card2:rgba(9,13,22,.6); --blue:#4f8fd6;
}
body{ color:var(--ink); background:linear-gradient(rgb(3,5,9) 0%, rgb(5,10,20) 28%, rgb(8,16,32) 46%, rgb(13,23,41) 58%, rgb(26,22,36) 66%, rgb(36,27,24) 76%, rgb(42,29,22) 86%, rgb(51,31,20) 100%); background-attachment:fixed; }
body.theme-light{
  --bg:#FFF5F5; --surface-1:#FFF5F5; --surface-2:#FFEDED; --surface-3:#FFE5E5;
  --chrome:rgba(255,245,245,.92);
  --border:rgba(194,58,51,.25); --border-strong:rgba(194,58,51,.45);
  --text:#650808; --text-muted:#a25b55; --text-dim:#c08a85;
  --ctl-bg:#FFF5F5; --ctl-fg:#650808; --ctl-border:rgba(101,8,8,.22);
  --ctl-hover:#650808; --ctl-placeholder:rgba(101,8,8,.5);
  --accent:#c23a33; --accent-hover:#a52f29; --accent-soft:rgba(194,58,51,.12);
  --accent-border:rgba(194,58,51,.45); --accent-weak:#c23a33; --accent-strong:#c23a33;
}
input,select,textarea{ background:var(--ctl-bg); color:var(--ctl-fg); border-color:var(--ctl-border); }
input:hover,select:hover,textarea:hover{ border-color:var(--ctl-hover); box-shadow:0 0 0 1px rgba(101,8,8,.3); }
input:focus,select:focus,textarea:focus{ border-color:var(--ctl-hover); box-shadow:0 0 0 1px rgba(101,8,8,.3); }
input::placeholder,textarea::placeholder{ color:var(--ctl-placeholder); }
body.tpl-agent .brand,body.tpl-agent .docktab{ background:linear-gradient(45deg,#5f3a3a 0%,#734343 45%,#3f2626 100%); border-color:rgba(204,65,37,.45); }
body.tpl-agent .brand-inner,body.tpl-agent .fw-logo-inner{ background:var(--card); color:#e8edf6; border-color:rgba(204,65,37,.9); }
body.tpl-agent #stage{ background:radial-gradient(1200px 700px at 50% -10%, rgba(115,67,67,.18), transparent 60%), rgba(6,9,17,.6); }
body.tpl-agent .floatwin,body.tpl-agent #dock,body.tpl-agent #top{ background:linear-gradient(180deg, rgba(8,13,24,.85), rgba(12,20,36,.85)); border-color:rgba(194,58,51,.35); }

/* chart classes (used by the catalog combo chart) */
.chart{background:#fff;border:1px solid var(--maroon,var(--accent));border-radius:8px;padding:8px}
.chart .grid{stroke:rgba(101,8,8,.12)}
.chart .axis{fill:var(--text-dim);font-size:var(--fs-10)}
.chart .lbl{fill:var(--text-muted);font-size:var(--fs-10)}
.chart .bar{fill:#2d9865}
.chart .bar-2{fill:#e0533d}
.chart .line-cur{stroke:#f05a3c;stroke-width:2.5;fill:none}
.chart .line-prev{stroke:#d45858;stroke-width:2.5;fill:none;stroke-dasharray:5 3}
.chart .dot{fill:#f05a3c}
/* chart on dark (pre-O25): transparent plot, green/red stack, orange current line */
.chart{background:transparent;border:1px solid var(--border);border-radius:var(--r3);padding:var(--s3)}

/* ============================================================
   O32 — OWNER CRIMSON RE-THEME (edit-in-place; no class/layout change)
   Rose canvas · white surfaces · dark-blue dock/headers · red primary
   Colour-block KPI tiles · blue-header tables · orange/blue/charcoal bars
   Fields: rose #ffe3e3 fill + navy #0d315f font (never rose-on-rose).
   ============================================================ */
:root{
  color-scheme:light;
  --red-50:#fff5f5; --red-100:#ffe3e3; --red-200:#ffc9c9; --red-300:#ffa8a8;
  --red-500:#fa5252; --red-600:#e03131; --red-700:#c92a2a; --red-800:#5c0e10; --red-900:#2b0406;

  --bg:#fff5f5; --surface-1:#ffffff; --surface-2:#ffe3e3; --surface-3:#ffc9c9;
  --chrome:#123f7a;
  --border:#ffc9c9; --border-strong:#ffa8a8;
  --text:#2b0406; --text-muted:#684c4d; --text-dim:#8a6d6e; --text-inverse:#ffffff;
  --heading:#5c0e10;
  --accent:#c92a2a; --accent-hover:#5c0e10; --accent-active:#2b0406;
  --accent-soft:#ffe3e3; --accent-border:#ffa8a8; --accent-weak:#a52f29; --accent-strong:#5c0e10;
  --ok:#176b45; --bad:#b02525; --warn:#8a4b08;
  --c1:#ff6b00; --c2:#1559c7; --c3:#343a40; --c4:#c92a2a;

  --report-orange:#ff6b00; --report-orange-dark:#a84400;
  --report-blue:#1559c7; --report-blue-dark:#0d3d8f;
  --report-wine:#6b1235; --report-charcoal:#343a40;
  --report-gray-50:#f7f7f7; --report-gray-100:#f1f3f5; --report-gray-200:#e5e7eb;
  --report-gray-300:#d1d5db; --report-smoke:#f5f5f5; --report-white:#ffffff;
  --report-gray-gradient:linear-gradient(180deg,#f7f7f7 0%,#d1d5db 100%);
  --dock-blue:#123f7a; --dock-blue-strong:#0d315f; --dock-divider:#d1d5db; --dock-edge:#b75a21;
  --table-header-bg:#dbeafe; --table-header-rule:#1559c7;
  --table-total-bg:#dbeafe; --table-total-rule:#1559c7;
  --color-chart-grid:#e5e7eb; --mint:#176b45;

  --ctl-bg:#ffe3e3; --ctl-fg:#0d315f; --ctl-border:#ffa8a8;
  --ctl-hover:#0d315f; --ctl-placeholder:rgba(13,49,95,.55);

  --ink:var(--text); --muted:var(--text-muted); --dim:var(--text-dim);
  --line:var(--border); --card:var(--surface-1); --card2:var(--surface-2);
  --blue:#1559c7; --maroon:#5c0e10;
}
body{background:#fff5f5;color:var(--text)}
body.theme-light{background:#fff5f5;color:var(--text)}

/* ---------- FIELD RULE (owner): rose fill + navy font ---------- */
input,select,textarea,.ac-q,.inputrow{
  background:#ffe3e3!important;color:#0d315f!important;border-color:#ffa8a8!important;
}
input:hover,select:hover,textarea:hover{border-color:#0d315f!important}
input:focus,select:focus,textarea:focus{border-color:#0d315f!important;box-shadow:0 0 0 3px rgba(201,42,42,.18)!important}
input::placeholder,textarea::placeholder,.inputrow input::placeholder{color:rgba(13,49,95,.5)!important}
select option{background:#ffffff;color:#0d315f}
input[type=date],input[type=number]{color-scheme:light}

/* ---------- DASHBOARD: dark-blue dock / top / window heads ---------- */
body.tpl-agent #top{background:#123f7a;color:#fff;border-bottom:1px solid #0d315f}
body.tpl-agent #top .pill{background:rgba(255,255,255,.16);color:#fff}
body.tpl-agent .pill.ok{background:rgba(52,201,138,.28);color:#fff}
body.tpl-agent .pill.ok::after{color:#d7ffe9}
body.tpl-agent .pill.bad{background:rgba(255,138,138,.28);color:#ffe3e3}
body.tpl-agent .brand{background:#0d315f;border-color:#ffa8a8}
body.tpl-agent .brand-inner{background:#fff;color:#0d315f;border-color:#ffa8a8}
body.tpl-agent .docktab{background:#0d315f;border-color:#ffa8a8;color:#fff}
body.tpl-agent .docktab:hover{border-color:#ffd7b5;color:#fff}
body.tpl-agent .docktab .dtri{color:#ffd7b5}
body.tpl-agent #dock{background:#123f7a;border-right:1px solid #0d315f}
body.tpl-agent #dock::after{background:#ff6b00;box-shadow:0 0 10px rgba(255,107,0,.75)}
body.tpl-agent #docklinks{border-top-color:rgba(255,255,255,.22)}
body.tpl-agent .dl-toggle{color:#ffe3e3}
body.tpl-agent .dl-toggle .arrow{color:#ffd7b5}
body.tpl-agent .durl-label{color:#fff}
body.tpl-agent .durl-val{color:rgba(255,255,255,.75)}
body.tpl-agent .durl:hover{background:rgba(255,255,255,.14);border-left-color:#ffa8a8}
body.tpl-agent .durl.logout .durl-label{color:#ffd7b5}
body.tpl-agent .dock-head{border-bottom-color:rgba(255,255,255,.18)}
body.tpl-agent .dock-arrows{background:rgba(255,255,255,.12);color:#fff}
body.tpl-agent .dock-section{border-color:rgba(255,255,255,.22)}
body.tpl-agent .dock-sep{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.22)}
body.tpl-agent .dock-sep:hover{border-color:#ffa8a8;box-shadow:0 0 0 1px rgba(255,168,168,.5)}
body.tpl-agent .dock-sep .arrow{color:#ffe3e3}
body.tpl-agent .dock-item{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.22)}
body.tpl-agent .dock-item:hover{border-color:#ffa8a8;box-shadow:0 0 0 1px rgba(255,168,168,.5)}
body.tpl-agent .dock-item:focus-visible,body.tpl-agent .dock-sep:focus-visible,body.tpl-agent .dl-toggle:focus-visible{box-shadow:0 0 0 2px #ffd7b5}
body.tpl-agent .dock-resize::after{background:rgba(255,168,168,.7)}

/* stage + floating windows */
body.tpl-agent #stage{background:#fff5f5}
body.tpl-agent .floatwin{background:#ffffff;border-color:#ffc9c9}
body.tpl-agent .floatwin.open{border-color:#c92a2a;box-shadow:0 0 0 2px rgba(201,42,42,.16),0 16px 38px rgba(43,4,6,.20)}
body.tpl-agent .floatwin.collapsed{border-color:#ffa8a8}
body.tpl-agent .fw-head{background:#123f7a;border-bottom:1px solid #0d315f}
body.tpl-agent .fw-title{background:transparent;color:#fff}
body.tpl-agent .fw-logo{background:#0d315f;border-color:#ffa8a8}
body.tpl-agent .fw-logo-inner{background:#fff;color:#0d315f;border-color:#ffa8a8}
body.tpl-agent .fw-min{background:rgba(255,255,255,.16);color:#fff;border-color:#ffa8a8}
body.tpl-agent .fw-min:hover{border-color:#ffd7b5;box-shadow:0 0 0 2px rgba(255,215,181,.45)}
body.tpl-agent .fw-body{background:#fff;color:var(--text)}
body.tpl-agent .fw-body label{color:var(--heading)}
body.tpl-agent .fw-resize::after{border-color:rgba(201,42,42,.6)}

/* ---------- CARDS / BLOCKS / SECTION HEADERS ---------- */
.card,.catblock{background:#ffffff;border-color:#ffc9c9}
.card-h{background:#123f7a;color:#fff;border-bottom:1px solid #0d315f}
.card-h:hover{background:#0d315f}
.card-b{background:#ffffff}

/* ---------- CENTRAL FILTER ---------- */
.bar,.catcentral{background:#ffe3e3;border-color:#ffa8a8}
.bar .f>label,.catcentral label,.catlbl,.cathint{color:var(--heading)}

/* ---------- SCORECARDS (colour-block KPI) ---------- */
.sc-tile,.kpi-card{background:#ffffff;border-color:#ffc9c9}
.sc-tile:hover{background:#fff5f5;border-color:#ffa8a8}
.sc-tile.on{border-color:#c92a2a;box-shadow:0 0 0 2px rgba(201,42,42,.25)}
.kpi-card--revenue,.sc-tile.kpi-card--revenue{background:#ff6b00;border-color:#ff6b00}
.kpi-card--profit,.sc-tile.kpi-card--profit{background:#1559c7;border-color:#1559c7}
.kpi-card--orders,.sc-tile.kpi-card--orders{background:#6b1235;border-color:#6b1235}
.kpi-card--average,.sc-tile.kpi-card--average{background:#343a40;border-color:#343a40}
:is(.kpi-card--revenue,.kpi-card--profit,.kpi-card--orders,.kpi-card--average)
 :is(.sc-name,.sc-count,.sc-big,.sc-row,.sc-row b,.sc-delta,.kpi-card__label,.kpi-card__value){color:#fff}
.sc-big{font-size:var(--fs-14);font-weight:400;line-height:1.05}

/* ---------- TABLE: blue header, zebra, totals ---------- */
.tbl,.cattable,.data-table{color:var(--text)}
.tbl th,.cattable th,.data-table th{
  background:#dbeafe;color:#0d315f;
  border-top:1px solid #1559c7;border-bottom:2px solid #1559c7;
}
.tbl td{border-bottom-color:#ffc9c9}
.tbl tbody tr:nth-child(odd){background:#ffffff}
.tbl tbody tr:nth-child(even){background:#f7f7f7}
.tbl tbody tr:hover{background:#ffe3e3}
.tbl tr.sub td{background:#eaf1ff;color:#0d315f;font-weight:400}
.tbl tr.total td{background:#dbeafe;color:#0d315f;font-weight:400;border-top:2px solid #1559c7}
.tbl .up{color:#176b45}.tbl .down{color:#b02525}

/* ---------- CHART: orange/blue/charcoal bars, red trend, gray grid ---------- */
.chart{background:#ffffff;border-color:#ffc9c9}
.chart .grid,.chart .chart__grid-line{stroke:#e5e7eb}
.chart .axis,.chart__axis{fill:#684c4d}
.chart .lbl,.chart__label{fill:#684c4d}
.chart .chart__bar--1,.chart .bar{fill:#ff6b00}
.chart .chart__bar--2{fill:#1559c7}
.chart .chart__bar--3,.chart .bar-2{fill:#343a40}
.chart .chart__series--primary,.chart .line-cur{stroke:#c92a2a;stroke-width:2.5;fill:none}
.chart .chart__series--muted,.chart .line-prev{stroke:#1559c7;stroke-width:2.5;fill:none;stroke-dasharray:5 3}
.chart .chart__dot,.chart .dot{fill:#c92a2a}

/* ---------- OVERLAY CONTROL ---------- */
.ac-menu{background:#ffffff;border-color:#ffa8a8}
.ac-item{color:var(--text);border-bottom-color:#ffc9c9}
.ac-item:hover{background:#ffe3e3}
.ac-all{background:#ffe3e3;color:#0d315f}
.ac-empty{color:var(--text-dim)}
.ac-box{border-color:#ffa8a8}
.ac-box.on{background:#c92a2a;border-color:#c92a2a}
.ac-chip{background:#ffe3e3;border-color:#ffa8a8;color:#0d315f}
.ac-chip b{color:#0d315f}

/* ---------- MAP / PILLS / BUTTONS ---------- */
.map{background:#ffffff;border-color:#ffc9c9}
.map-root,.map-arrow{color:var(--heading)}
.map-node{background:#ffe3e3;border-color:#ffa8a8;color:#0d315f}
.map-node b{color:#684c4d}
.map-node:hover{border-color:#c92a2a;color:#0d315f}
.map-node.on{background:#c92a2a;border-color:#c92a2a;color:#fff}
.map-node.on b{color:#ffe3e3}
.pill{background:#ffe3e3;border-color:#ffa8a8;color:#0d315f}
.pill.on{background:#c92a2a;border-color:#c92a2a;color:#fff}
.pill.ok{color:#176b45;border-color:#176b45;background:#eafaf1}
.pill.bad{color:#b02525;border-color:#b02525;background:#fff0f0}
.btn{background:#ffffff;color:#0d315f;border-color:#ffa8a8}
.btn:hover{background:#ffe3e3;border-color:#c92a2a}
.btn.primary{background:#c92a2a;color:#fff;border-color:#c92a2a}
.btn.primary:hover{background:#5c0e10}
.btn.ghost{background:transparent;color:#5c0e10}
.toast{background:#0d315f;color:#fff}
.s4ad24882{color:#176b45}

/* ---------- REQUESTERS (same system, light) ---------- */
body.tpl-requester .mark,body.tpl-requester-nfv .mark{background:#c92a2a;color:#fff}
body.tpl-requester .req-heading,body.tpl-requester-nfv .req-heading{color:#5c0e10}
body.tpl-requester .sec,body.tpl-requester-nfv .sec,body.tpl-requester .maincard,body.tpl-requester-nfv .maincard{
  background:#ffffff;border-color:#ffc9c9
}
body.tpl-requester .sec-h,body.tpl-requester-nfv .sec-h{background:#ffc9c9;color:#5c0e10}
body.tpl-requester .sec-h .arr,body.tpl-requester-nfv .sec-h .arr{color:#5c0e10}
body.tpl-requester .srcbtn.on,body.tpl-requester .chipbtn.on{color:#0d315f;border-color:#0d315f}
body.tpl-requester .list{background:#ffffff;border-color:#ffc9c9}
body.tpl-requester .request b{color:var(--text)}
body.tpl-requester .request small,body.tpl-requester .empty,body.tpl-requester .note{color:var(--text-muted)}
body.tpl-requester .toast,body.tpl-requester-nfv .toast{background:#0d315f;color:#fff}
body.tpl-requester .page input,body.tpl-requester .page select,body.tpl-requester .page textarea{background:#ffe3e3;color:#0d315f;border-color:#ffa8a8}
body.tpl-requester .mode-opt{background:#ffe3e3;border-color:#ffa8a8}
body.tpl-requester .mode-opt:nth-child(2){background:#ffc9c9}
body.tpl-requester .mode-opt:nth-child(3){background:#ffd6d6}
body.tpl-requester .mode-label{color:#5c0e10}
body.tpl-requester .mode-opt.on{border-color:#c92a2a}
body.tpl-requester .mode-opt.on .mode-dot{background:#c92a2a;border-color:#c92a2a;box-shadow:0 0 0 2px rgba(201,42,42,.3)}

/* NFV requester — was dark/salmon; bring it onto the light system */
body.tpl-requester-nfv .cfg{border-bottom-color:#ffc9c9}
body.tpl-requester-nfv .cfg span{color:#5c0e10}
body.tpl-requester-nfv .toggle{background:#ffc9c9}
body.tpl-requester-nfv .toggle::after{background:#ffffff}
body.tpl-requester-nfv .toggle.on{background:#c92a2a}
body.tpl-requester-nfv .subsec{border-color:#ffc9c9;background:#ffffff}
body.tpl-requester-nfv .subsec-h{background:#ffc9c9;color:#5c0e10}
body.tpl-requester-nfv .subsec-h .arr{color:#5c0e10}
body.tpl-requester-nfv .cfgwrap{border-color:#ffc9c9}
body.tpl-requester-nfv .warn{color:#b02525}
body.tpl-requester-nfv .georesults{background:#ffe3e3;border-color:#ffa8a8}
body.tpl-requester-nfv .georesults div{color:#0d315f;border-bottom-color:#ffc9c9}

/* ---------- SHOPPER ---------- */
body.tpl-shopper .win{background:#ffffff;border-color:#ffc9c9;box-shadow:0 12px 34px rgba(43,4,6,.10)}
body.tpl-shopper .w-head{background:#123f7a;border-bottom:1px solid #0d315f}
body.tpl-shopper .w-title{color:#fff}
body.tpl-shopper .w-head .chev{color:#ffe3e3}
body.tpl-shopper .field span{color:var(--heading)}
body.tpl-shopper .cfg{border-bottom-color:#ffc9c9}
body.tpl-shopper .cfg span{color:#5c0e10}
body.tpl-shopper .cfg input[type=number]{background:#ffe3e3;color:#0d315f;border-color:#ffa8a8}
body.tpl-shopper .toggle{background:#ffc9c9}
body.tpl-shopper .toggle::after{background:#ffffff}
body.tpl-shopper .toggle.on{background:#c92a2a}
body.tpl-shopper .sec{background:#ffffff;border-color:#ffc9c9}

/* ---------- LOGIN / FIRST RUN ---------- */
body.tpl-login .inputrow,body.tpl-first-run .inputrow{background:#ffe3e3;border-color:#ffa8a8}
body.tpl-login .inputrow input,body.tpl-first-run .inputrow input{color:#0d315f}
body.tpl-login .inputrow input::placeholder,body.tpl-first-run .inputrow input::placeholder{color:rgba(13,49,95,.55)}
body.tpl-login .save,body.tpl-first-run .save{border-color:#c92a2a;color:#5c0e10}

/* ---------- O32b CONTRAST FIXES (text that went light-on-white) ---------- */
body.tpl-agent .toast{background:#0d315f;color:#fff}
body.tpl-agent .row{background:#fff5f5;border-color:#ffc9c9}
body.tpl-agent .row b{color:var(--text)}
body.tpl-agent .row small{color:var(--text-muted)}
body.tpl-agent .st.NEW{background:#ffe3e3;color:#5c0e10}
body.tpl-agent .kfpanel.bulk .kfhead{background:#0d315f;color:#fff}
body.tpl-agent .kfpanel{border-color:#ffc9c9;background:#ffffff}
body.tpl-agent .catchip{background:#ffe3e3;border-color:#ffa8a8;color:#0d315f}
body.tpl-agent .credstate{background:#fff7e6;color:#8a4b08;border-color:#e0a23c}
body.tpl-agent .credstate.on{background:#eafaf1;color:#176b45;border-color:#176b45}
body.tpl-requester .field span{color:var(--heading)}
body.tpl-requester .fld input:focus+label,body.tpl-requester .fld input:not(:placeholder-shown)+label,body.tpl-requester .fld select+label{color:#0d315f}
body.tpl-requester .pill,body.tpl-requester-nfv .pill{background:#ffe3e3;border-color:#ffa8a8;color:#0d315f}
body.tpl-requester-nfv .page label{color:#5c0e10}
body.tpl-requester-nfv .note{color:var(--text-muted)}
body.tpl-requester-nfv .secondary{color:#5c0e10;border-color:#ffa8a8}
body.tpl-requester-nfv .request:nth-child(odd){background:#ffffff}
body.tpl-requester-nfv .request:nth-child(even){background:#fff5f5}
body.tpl-shopper header{background:#ffffff;border-bottom-color:#ffc9c9}
body.tpl-shopper .toast{background:#0d315f;color:#fff}

/* ===== DOCK LAYOUT - EXACT (owner hex) ===== */
body.tpl-agent{background:#f4cccc;}
body.tpl-agent #top{background:#74221b;color:#fff;border-bottom:0;}
body.tpl-agent #pagebottom{height:14px;background:#74221b;flex:0 0 auto;}

/* dock panel */
body.tpl-agent #dock{background:#f4cccc;border-right:3px solid #74221b;padding:0;gap:0;}

/* title bar */
body.tpl-agent .dock-head{display:flex;align-items:center;justify-content:center;
  background:#f4cccc;color:#1c4587;font-weight:400;font-size:var(--fs-14);letter-spacing:.5px;
  border:2px solid #1c4587;border-radius:0;padding:10px 12px;margin:0;}

/* line space between blocks (dock width only) */
body.tpl-agent .dock-head{margin-bottom:12px;position:relative;}
body.tpl-agent .dock-head::after{content:'';position:absolute;left:0;right:0;bottom:-12px;height:12px;background:#74221b;}
body.tpl-agent #dockbody{padding:0;margin:0;gap:0;display:flex;flex-direction:column;}
body.tpl-agent .dock-section{border:0;border-radius:0;margin:0;padding:0;background:transparent;overflow:visible;}
body.tpl-agent .dock-section + .dock-section{margin-top:12px;position:relative;}
body.tpl-agent .dock-section + .dock-section::before{content:'';position:absolute;left:0;right:0;top:-12px;height:12px;background:#74221b;}

/* group header */
body.tpl-agent .dock-sep{display:flex;align-items:center;gap:8px;width:100%;
  background:#1c4587;color:#ffffff;font-weight:400;font-size:var(--fs-14);letter-spacing:.3px;
  border:0;border-radius:0;padding:9px 12px;text-align:left;}
body.tpl-agent .dock-sep .arrow{color:#ffffff;}
body.tpl-agent .dock-sep .cnt{margin-left:auto;color:#ffffff;opacity:.85;font-weight:400;}

/* member rows - full width, equal height, exact fill cycle */
body.tpl-agent .dock-body{display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;padding:0;}
body.tpl-agent .dock-item{display:block;width:100%;height:34px;line-height:34px;
  color:#000000;font-weight:400;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border:0;border-radius:0;padding:0 12px;margin:0;background:#ffffff;}
body.tpl-agent .dock-body .dock-item:nth-child(4n+1){background:#ffffff;}
body.tpl-agent .dock-body .dock-item:nth-child(4n+2){background:#f3f3f3;}
body.tpl-agent .dock-body .dock-item:nth-child(4n+3){background:#d9d9d9;}
body.tpl-agent .dock-body .dock-item:nth-child(4n+4){background:#cccccc;}
body.tpl-agent .dock-item:hover{background:#ffe3e3;}

/* ===== O35 - FINAL DOCK TWEAKS (owner hex) ===== */
/* 1. page background -> #f4cccc (whole page / content area behind everything) */
body.tpl-agent{background:#f4cccc !important;}
body.tpl-agent #stage{background:#f4cccc !important;}

/* 2. dock title header -> half size (its fill stays as-is) */
body.tpl-agent .dock-head{padding:5px 12px !important;}
body.tpl-agent .dock-head{font-size:var(--fs-12)!important;}

/* 3. dock blank rows BETWEEN groups -> page theme #f4cccc (not header, footer, or title divider) */
body.tpl-agent .dock-section + .dock-section::before{background:#f4cccc !important;}

/* 4. dock last section 'useful links' colours */
body.tpl-agent .dl-toggle{color:#675f5f !important;font-weight:400;}
body.tpl-agent .dl-toggle .arrow{color:#675f5f !important;}
body.tpl-agent .dl-body .durl-label{color:#1155cc !important;font-style:italic !important;}
body.tpl-agent .dl-body .durl-val{color:#1155cc !important;font-style:italic !important;}
body.tpl-agent .dl-body .durl.logout .durl-label{color:#1155cc !important;font-style:italic !important;}

/* 5. hover accent - bright red 1pt border on every dock content rectangle (title, group titles, member rows, links) */
body.tpl-agent .dock-head:hover,
body.tpl-agent .dock-sep:hover,
body.tpl-agent .dock-item:hover,
body.tpl-agent .durl:hover{box-shadow:inset 0 0 0 1px #ff0000;}

/* 6. single fill directly below the dock title "Ops Functions Plugins" -> green #34a853 (title divider only) */
body.tpl-agent .dock-head::after{background:#34a853 !important;}

/* 7. box the Plugin Title Row + the green blank row together in a 2pt page-theme (#f4cccc) border
      (replaces the left/right blue title border; green row now sits INSIDE the box) */
body.tpl-agent .dock-head{
  display:block !important;
  position:relative !important;
  background:#f4cccc !important;
  border:2px solid #f4cccc !important;
  border-radius:0 !important;
  padding:5px 12px 0 !important;
  margin:0 0 12px 0 !important;
  color:#1c4587 !important;font-weight:400;font-size:var(--fs-12)!important;
  letter-spacing:.5px !important;text-align:center !important;
}
body.tpl-agent .dock-head::after{
  content:'' !important;
  display:block !important;
  position:static !important;
  left:auto !important;right:auto !important;bottom:auto !important;
  height:12px !important;
  margin:6px -12px 0 -12px !important;
  background:#34a853 !important;
}

/* 8. title row fill -> blue #4285f4 with white title text (green row + 2pt page-theme box kept) */
body.tpl-agent .dock-head{background:#4285f4 !important;color:#ffffff !important;}

/* ===== O36 - TYPOGRAPHY: Arvo (self-hosted) app-wide + NO BOLD anywhere + dock 12/11/10pt ===== */
@font-face{font-family:'Arvo';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/Arvo-Regular.woff2') format('woff2');}
@font-face{font-family:'Arvo';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/Arvo-Italic.woff2') format('woff2');}
:root{--font:'Arvo',serif;}
/* uniform type: Arvo everywhere, and no bold on any text (real or pseudo) */
body,body *,body *::before,body *::after{font-family:var(--font);font-weight:400;}
/* dock type hierarchy: title 12pt, headings 11pt, sub-headings 10pt - all regular */
body.tpl-agent .dock-head{font-size:var(--fs-14)!important;font-weight:400;}
body.tpl-agent .dock-sep{font-size:var(--fs-14)!important;font-weight:400;}
body.tpl-agent .dock-item{font-size:var(--fs-14)!important;font-weight:400;}

/* ===== O36 - DASHBOARD UI PASS (body.tpl-agent only; requesters untouched) ===== */
/* 1. page / card background */
body.tpl-agent, body.tpl-agent .fw-body, body.tpl-agent #stage{background:#f4cccc !important;}
/* 2. filter outer box fill (every card) */
body.tpl-agent .catcentral, body.tpl-agent .reqbar, body.tpl-agent .filter-panel{background:#f4cccc !important;border:1px solid #74221b !important;}
/* 3. filter sections - clean 4pt space between each filter row */
body.tpl-agent .catlevel + .catlevel, body.tpl-agent .catcentral .cc + .cc{margin-top:4px !important;}
/* 4. filter input / list fields: white fill; hover = 1px red border + #eef9cd; focus red, no shadow */
body.tpl-agent .fw-body input, body.tpl-agent .fw-body select, body.tpl-agent .fw-body textarea,
body.tpl-agent .catcentral input, body.tpl-agent .catcentral select, body.tpl-agent .ac .ac-q{
  background:#ffffff !important;border:1px solid #cfcfcf !important;}
body.tpl-agent .fw-body input:hover, body.tpl-agent .fw-body select:hover, body.tpl-agent .fw-body textarea:hover,
body.tpl-agent .catcentral input:hover, body.tpl-agent .catcentral select:hover, body.tpl-agent .ac .ac-q:hover{
  border:1px solid #e03131 !important;background:#eef9cd !important;}
body.tpl-agent .fw-body input:focus, body.tpl-agent .fw-body select:focus, body.tpl-agent .catcentral input:focus,
body.tpl-agent .catcentral select:focus, body.tpl-agent .ac .ac-q:focus{border:1px solid #e03131 !important;box-shadow:none !important;}
/* 6. master fold-all control in the card header area */
body.tpl-agent .fw-foldall{flex:0 0 auto;margin-left:auto;margin-right:8px;padding:2px 8px;
  background:#ffffff;color:#1c4587;border:1px solid #cfcfcf;border-radius:4px;
  font-family:var(--font);font-size:var(--fs-12);font-weight:400;cursor:pointer;line-height:1.4;}
body.tpl-agent .fw-foldall:hover{background:#eef9cd;border-color:#e03131;}
body.tpl-agent .fw-foldall:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #ff0000;}
body.tpl-agent .fw-min{margin-left:8px;}

/* ===== O37 - UNIFORM DASHBOARD FORMAT (owner paste) ===== */
/* page */
body.tpl-agent, body.tpl-agent .fw-body, body.tpl-agent #stage{ background:#f4cccc !important; color:#265cb3 !important; }

/* inputs / search / chips / shapes: fill #f4cccc, red border, NAVY font */
body.tpl-agent .fw-body input, body.tpl-agent .fw-body select, body.tpl-agent .fw-body textarea,
body.tpl-agent .catcentral input, body.tpl-agent .catcentral select, body.tpl-agent .ac .ac-q{
  background:#f4cccc !important; color:#265cb3 !important; border:1px solid #e03131 !important; }
body.tpl-agent .fw-body input:hover, body.tpl-agent .fw-body select:hover, body.tpl-agent .catcentral input:hover,
body.tpl-agent .catcentral select:hover, body.tpl-agent .ac .ac-q:hover{ box-shadow:0 0 0 2px #e03131 !important; }
body.tpl-agent .ac-item, body.tpl-agent .ac-all{ color:#265cb3 !important; }
body.tpl-agent .ac-chip, body.tpl-agent .catchip, body.tpl-agent .pill{ background:#f4cccc !important; color:#265cb3 !important; border:1px solid #e03131 !important; }

/* ===== O37 retouch - (A) CARD HEADER chrome back to BLUE fill + WHITE font ===== */
body.tpl-agent .fw-head{background:#123f7a !important;border-bottom:1px solid #0d315f !important;color:#fff !important;}
body.tpl-agent .fw-title{background:transparent !important;color:#fff !important;}
body.tpl-agent .fw-logo{background:#0d315f !important;border-color:#ffa8a8 !important;}
body.tpl-agent .fw-logo-inner{background:#ffffff !important;color:#0d315f !important;}
body.tpl-agent .fw-foldall{background:#0d315f !important;color:#ffffff !important;border:1px solid #ffa8a8 !important;}
body.tpl-agent .fw-min{background:#0d315f !important;color:#ffffff !important;border:1px solid #ffa8a8 !important;}
body.tpl-agent .fw-foldall:hover{background:#ffd7b5 !important;color:#0d315f !important;border-color:#ffd7b5 !important;}

/* ===== O37 retouch - (1) CENTRAL FILTER BAR: white box, navy titles, rose square cubes, mint hover ===== */
body.tpl-agent .bar.filter-panel{background:#ffffff !important;border:1px solid #74221b !important;}
body.tpl-agent .bar.filter-panel label{color:#265cb3 !important;}
body.tpl-agent .bar.filter-panel input, body.tpl-agent .bar.filter-panel select, body.tpl-agent .bar.filter-panel textarea, body.tpl-agent .bar.filter-panel .ac-q{
  background:#f4cccc !important;color:#265cb3 !important;border:1px solid #e03131 !important;border-radius:0 !important;box-shadow:none !important;}
body.tpl-agent .bar.filter-panel input:hover, body.tpl-agent .bar.filter-panel select:hover, body.tpl-agent .bar.filter-panel .ac-q:hover{
  background:#e9f7ef !important;border-color:#34a853 !important;box-shadow:0 0 0 2px #34a853 !important;}
body.tpl-agent .bar.filter-panel input:focus, body.tpl-agent .bar.filter-panel select:focus, body.tpl-agent .bar.filter-panel .ac-q:focus{
  border-color:#34a853 !important;box-shadow:0 0 0 2px #34a853 !important;}

/* ===== O37 retouch - no UPPERCASE anywhere (AAA / non-AAA are literal), ProperCase titles ===== */
body, body *{text-transform:none !important;}

/* filter box: content mid-centered, equal space to all 4 sides; fields = rectangular cubes (square edges) */
body.tpl-agent .bar.filter-panel{align-items:center !important;padding:12px !important;gap:12px !important;}
body.tpl-agent .bar.filter-panel .f{min-width:160px;}
body.tpl-agent .bar.filter-panel input, body.tpl-agent .bar.filter-panel select, body.tpl-agent .bar.filter-panel .ac-q{
  height:32px !important;min-height:32px !important;border-radius:0 !important;}

/* ===== O37 retouch - "Non Food Verticals" scorecard chips ===== */
body.tpl-agent .nfc-title{display:block;text-align:left;color:#265cb3 !important;font-size:var(--fs-14);font-weight:400;margin:2px 0 8px 0;}
body.tpl-agent .nfc-main, body.tpl-agent .nfc-verts{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;}
body.tpl-agent .nfc-main{margin:0 0 12px 0;}
body.tpl-agent .nfc-chip{flex:0 0 auto;}
body.tpl-agent .nfc-chip{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;
  background:#f4cccc !important;border:1px solid #e03131 !important;border-radius:0 !important;
  padding:8px 10px !important;cursor:pointer;color:#265cb3 !important;font-family:var(--font);font-size:inherit;}
body.tpl-agent .nfc-chip:hover{background:#e9f7ef !important;border-color:#34a853 !important;box-shadow:0 0 0 2px #34a853 !important;}
body.tpl-agent .nfc-chip.on{border-color:#74221b !important;box-shadow:inset 0 0 0 2px #74221b !important;}
body.tpl-agent .nfc-name{font-size:var(--fs-14)!important;color:#265cb3 !important;line-height:1.2;font-weight:400;}
body.tpl-agent .nfc-total{font-size:var(--fs-12)!important;color:#265cb3 !important;opacity:.9;font-weight:400;}

/* O37 retouch 5 - section-2 outer box: white fill, same cube style as the filter box */
body.tpl-agent .nfc-box{background:#ffffff !important;border:1px solid #74221b !important;border-radius:12px !important;padding:12px !important;margin:0 0 12px 0 !important;}
body.tpl-agent .nfc-box .nfc-title{margin:0 0 10px 0 !important;}

/* ===== O37 retouch 4 - rounded "cube" shapes (not sharp rectangles) for inputs, chips, filter box ===== */
body.tpl-agent .bar.filter-panel{border-radius:12px !important;}
body.tpl-agent .bar.filter-panel input, body.tpl-agent .bar.filter-panel select, body.tpl-agent .bar.filter-panel textarea, body.tpl-agent .bar.filter-panel .ac-q{
  border-radius:8px !important;}
body.tpl-agent .fw-body input, body.tpl-agent .fw-body select, body.tpl-agent .fw-body textarea,
body.tpl-agent .catcentral input, body.tpl-agent .catcentral select, body.tpl-agent .ac .ac-q{
  border-radius:8px !important;}
body.tpl-agent .nfc-chip{border-radius:8px !important;}

/* ===== O37 retouch 7 - SCORECARDS: white outer boundary + 4 evenly-distributed colour columns ===== */
body.tpl-agent .sc-box{background:#ffffff !important;border:1px solid #e03131 !important;border-radius:12px !important;padding:12px !important;margin:0 0 12px 0 !important;}
body.tpl-agent .sc.kpi-grid{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:10px !important;}
body.tpl-agent .sc-tile.kpi-card{display:flex !important;flex-direction:column !important;justify-content:space-between !important;
  min-height:96px !important;border:1px solid #e03131 !important;border-radius:8px !important;
  background:#efefef !important;color:#4a6fc4 !important;padding:10px 12px !important;}
body.tpl-agent .sc.kpi-grid .sc-tile.kpi-card:nth-child(4n+1){background:#efefef !important;}
body.tpl-agent .sc.kpi-grid .sc-tile.kpi-card:nth-child(4n+2){background:#d9d9d9 !important;}
body.tpl-agent .sc.kpi-grid .sc-tile.kpi-card:nth-child(4n+3){background:#cccccc !important;}
body.tpl-agent .sc.kpi-grid .sc-tile.kpi-card:nth-child(4n+4){background:#b7b7b7 !important;}
body.tpl-agent .sc-tile.kpi-card .sc-name, body.tpl-agent .sc-tile.kpi-card .sc-big,
body.tpl-agent .sc-tile.kpi-card .kpi-card__label, body.tpl-agent .sc-tile.kpi-card .kpi-card__value{color:#4a6fc4 !important;}
body.tpl-agent .sc-tile.kpi-card .sc-ai{display:flex !important;justify-content:space-between !important;gap:8px !important;margin-top:6px !important;font-size:var(--fs-12)!important;}
body.tpl-agent .sc-tile.kpi-card .sc-active{color:#176b45 !important;text-align:left !important;}
body.tpl-agent .sc-tile.kpi-card .sc-inactive{color:#c92a2a !important;text-align:right !important;}

/* ===== O37 retouch 8 - page top bar (reduced red rectangle) + logo cube; dock title alignment ===== */
body.tpl-agent #top{height:34px !important;padding:0 8px !important;background:#74221b !important;border-bottom:0 !important;align-items:center !important;}
body.tpl-agent #top .topbar-rose{flex:1 !important;height:16px !important;background:#f4cccc !important;border-radius:4px !important;margin-right:8px !important;}
/* logo reinstated (blue box + white inner), sized to fit the reduced top bar */
body.tpl-agent .brand{width:28px !important;height:28px !important;border-radius:7px !important;background:#0d315f !important;border:2px solid #ffa8a8 !important;padding:0 !important;box-shadow:0 2px 6px rgba(0,0,0,.35) !important;margin:0 !important;flex:0 0 auto !important;}
body.tpl-agent .brand-inner{width:20px !important;height:20px !important;border-radius:5px !important;background:#ffffff !important;color:#0d315f !important;border:1px solid #ffa8a8 !important;box-shadow:none !important;padding:0 !important;font-size:var(--fs-8)!important;line-height:1.05 !important;display:grid !important;place-items:center !important;text-align:center !important;}
/* dock title top border flush with the dashboard content top */
body.tpl-agent #dock{padding-top:0 !important;}
body.tpl-agent .dock-head{margin-top:0 !important;}

/* ===== O37 retouch 10 - DOCK: fit width, cube shapes, no bold, no counts, red hover ===== */
body.tpl-agent #dock{width:max-content !important;min-width:0 !important;max-width:100% !important;border-right:0 !important;border-radius:12px !important;overflow:hidden !important;}
body.tpl-agent #dock::after{background:#e03131 !important;box-shadow:0 0 10px rgba(224,49,49,.75) !important;}
/* -2pt fonts, no bold: title 10pt, headings 9pt, sub-headings 8pt */
body.tpl-agent .dock-head{font-size:var(--fs-14)!important;font-weight:400;border-radius:8px !important;margin:8px !important;}
body.tpl-agent .dock-sep{font-size:var(--fs-12)!important;font-weight:400;border-radius:6px !important;margin:0 0 2px !important;}
body.tpl-agent .dock-item{font-size:var(--fs-12)!important;font-weight:400;border-radius:6px !important;margin:0 0 2px !important;}
/* remove the plugin counts on the side */
body.tpl-agent .dock-sep .cnt{display:none !important;}
/* inset the mini cubes inside the dock */
body.tpl-agent #dockbody{padding:0 8px 8px !important;}

/* ===== O37 retouch 11 - SCORECARDS v2 (reference layout): big total left, entity right, active/inactive halves; fit content, 3 rows ===== */
body.tpl-agent .sc-box{background:#ffffff !important;border:1px solid #dadce0 !important;border-radius:12px !important;padding:12px !important;margin:0 0 12px 0 !important;width:max-content !important;max-width:100% !important;}
body.tpl-agent .sc3-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,max-content)) !important;justify-content:space-between !important;gap:12px !important;}
body.tpl-agent .sc3-card{border:1px solid #dadce0 !important;border-radius:10px !important;background:#f7f8fa !important;padding:8px !important;cursor:pointer !important;min-width:230px !important;}
body.tpl-agent .sc3-card.on{border-color:#1a5fd6 !important;box-shadow:0 0 0 2px rgba(26,95,214,.25) !important;}
body.tpl-agent .sc3-top{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:10px !important;padding:2px 6px 8px !important;}
body.tpl-agent .sc3-total{font-size:var(--fs-14)!important;line-height:1 !important;color:#1a5fd6 !important;font-weight:400;}
body.tpl-agent .sc3-right{display:flex !important;align-items:baseline !important;gap:8px !important;}
body.tpl-agent .sc3-lbl{font-size:var(--fs-12)!important;color:#1a5fd6 !important;}
body.tpl-agent .sc3-ent{font-size:var(--fs-12)!important;color:#2b0406 !important;}
body.tpl-agent .sc3-bottom{display:grid !important;grid-template-columns:1fr 1fr !important;gap:8px !important;}
body.tpl-agent .sc3-half{border:1px solid #e6e6e6 !important;border-radius:8px !important;background:#ffffff !important;padding:6px 8px !important;}
body.tpl-agent .sc3-num{font-size:var(--fs-14)!important;line-height:1.1 !important;}
body.tpl-agent .sc3-row{display:flex !important;justify-content:space-between !important;gap:8px !important;font-size:var(--fs-12)!important;}
body.tpl-agent .sc3-act .sc3-num, body.tpl-agent .sc3-act .sc3-row{color:#1e8e3e !important;}
body.tpl-agent .sc3-ina .sc3-num, body.tpl-agent .sc3-ina .sc3-row{color:#d93025 !important;}

/* ===== O37 retouch 12 - SCORECARDS 3D nested cubes: white outer, grey top-row cube, lighter grey active/inactive cubes ===== */
body.tpl-agent .sc3-card{background:#ffffff !important;border:1px solid #e2e2e5 !important;border-radius:12px !important;padding:8px !important;box-shadow:0 3px 10px rgba(0,0,0,.10) !important;}
body.tpl-agent .sc3-top{background:linear-gradient(180deg,#f6f6f7,#ececee) !important;border:1px solid #e3e3e6 !important;border-radius:8px !important;box-shadow:inset 0 1px 0 #ffffff, 0 1px 3px rgba(0,0,0,.10) !important;}
body.tpl-agent .sc3-half{background:linear-gradient(180deg,#fbfbfc,#f3f3f5) !important;border:1px solid #e9e9ec !important;border-radius:8px !important;box-shadow:inset 0 1px 0 #ffffff, 0 1px 2px rgba(0,0,0,.07) !important;}

/* ===== O37 retouch 13 - SCORECARDS: golden 2pt outer cube + faint 1pt inner cubes + Dusk Gold / Evening Smoke / Vintage morning blue gradients; 4 per row ===== */
body.tpl-agent .sc3-grid{grid-template-columns:repeat(4,minmax(0,max-content)) !important;}
body.tpl-agent .sc3-card{background:linear-gradient(180deg,#fdfaf3,#f3ead6) !important;border:2px solid #d4af37 !important;border-radius:14px !important;box-shadow:0 3px 10px rgba(120,90,20,.18) !important;padding:9px !important;}
body.tpl-agent .sc3-top{background:linear-gradient(180deg,#f3f3f4,#dcdcde) !important;border:1px solid #e2e2e4 !important;border-radius:9px !important;box-shadow:inset 0 1px 0 #ffffff,0 1px 3px rgba(0,0,0,.10) !important;}
body.tpl-agent .sc3-half{border-width:1px !important;border-style:solid !important;border-radius:9px !important;box-shadow:inset 0 1px 0 #ffffff,0 1px 2px rgba(0,0,0,.07) !important;}
body.tpl-agent .sc3-act{background:linear-gradient(180deg,#e9f0fc,#c9d8f0) !important;border-color:#cdddf5 !important;}
body.tpl-agent .sc3-ina{background:linear-gradient(180deg,#f8ecd6,#e9d3a6) !important;border-color:#e6d3a3 !important;}

/* ===== O37 retouch 14 - SCORECARDS: equal spacing, rusty-gold 2pt outer, exact inner fills, per-row outer radial gradients ===== */
/* equal spacing: outer padding == gap between the 3 inner cubes */
body.tpl-agent .sc3-card{display:flex !important;flex-direction:column !important;gap:10px !important;padding:10px !important;border:2px solid #a9711a !important;border-radius:14px !important;}
body.tpl-agent .sc3-bottom{gap:10px !important;}
body.tpl-agent .sc3-top{margin:0 !important;}
/* exact inner fills (cube 1 = Evening Smoke kept; cube 2 active #e5efff; cube 3 inactive #f4e3e3) */
body.tpl-agent .sc3-act{background:#e5efff !important;border-color:#cdddf0 !important;}
body.tpl-agent .sc3-ina{background:#f4e3e3 !important;border-color:#ecd2d2 !important;}
/* outer cube fill per row (radial) */
body.tpl-agent .sc3-r1{background:radial-gradient(circle at 50% 42%, #d2691e 0%, #cfe0f5 58%) !important;}
body.tpl-agent .sc3-r2{background:radial-gradient(circle at 50% 42%, #f4c07a 0%, #e69138 62%) !important;}
body.tpl-agent .sc3-r3{background:radial-gradient(circle at 50% 42%, #bfbfbf 0%, #3f3f3f 62%) !important;}

/* ===== O37 retouch 15 - scorecard spacing/alignment, section-1 single row, section folds, dock hide cube ===== */
/* scorecards: spacing <= 2px */
body.tpl-agent .sc3-card{padding:2px !important;gap:2px !important;}
body.tpl-agent .sc3-bottom{gap:2px !important;}
/* top cube: total lower-left, texts (total + entity) upper-right */
body.tpl-agent .sc3-top{align-items:flex-end !important;justify-content:space-between !important;padding:2px 5px !important;}
body.tpl-agent .sc3-right{align-self:flex-start !important;display:flex !important;flex-direction:column !important;align-items:flex-end !important;gap:1px !important;}
/* active/inactive cube: number upper-left, % upper-right, text lower-middle */
body.tpl-agent .sc3-half{padding:3px 6px !important;}
body.tpl-agent .sc3-hrow{display:flex !important;align-items:baseline !important;justify-content:space-between !important;gap:6px !important;}
body.tpl-agent .sc3-txt{text-align:center !important;}
/* section 1: ONE row, equal cubes, 4px padding all sides */
body.tpl-agent .bar.filter-panel{flex-wrap:nowrap !important;padding:4px !important;gap:4px !important;}
body.tpl-agent .bar.filter-panel .f{flex:1 1 0 !important;min-width:0 !important;}
body.tpl-agent .bar.filter-panel input, body.tpl-agent .bar.filter-panel select,
body.tpl-agent .bar.filter-panel .ac-q, body.tpl-agent .bar.filter-panel .ac{width:100% !important;min-width:0 !important;height:30px !important;min-height:30px !important;}
/* fold sections (Filters / Scorecards) keep the 12px rhythm */
body.tpl-agent #fw-catalog .card.panel{margin:0 0 8px 0 !important;}
/* dock hide tab: small vertical cube with the symbol fitted inside */
body.tpl-agent .docktab{width:20px !important;height:30px !important;border-radius:5px !important;border:1px solid #ffa8a8 !important;background:#0d315f !important;color:#fff !important;}
body.tpl-agent .docktab .dtri{font-size:var(--fs-12)!important;color:#ffffff !important;}

/* ===== O37 retouch 16 - slim text section-titles, collapsed=text, 25px cube window header, dock-hide sign, cubes ===== */
/* section titles: plain red text, fit to text, 21px row, NO border/bg */
body.tpl-agent #fw-catalog .card-h.panel__header{display:inline-flex !important;align-items:center !important;width:auto !important;max-width:100% !important;height:21px !important;line-height:21px !important;padding:0 4px !important;margin:0 !important;border:0 !important;background:transparent !important;color:#c92a2a !important;font-size:var(--fs-14)!important;font-weight:400;box-shadow:none !important;}
/* expanded section = cube; collapsed section = just the plain title (no long empty box) */
body.tpl-agent #fw-catalog .card.panel{width:100% !important;background:#f3f3f3 !important;border:1px solid #e03131 !important;border-radius:12px !important;padding:6px 8px !important;margin:0 0 8px 0 !important;}
body.tpl-agent #fw-catalog .card.panel:not(:has(.card-b)){width:max-content !important;background:transparent !important;border:0 !important;border-radius:0 !important;padding:0 !important;box-shadow:none !important;}
/* Assortment Parity (window) header: 25px row, cube, length unchanged */
body.tpl-agent .fw-head{height:25px !important;min-height:25px !important;padding:0 8px !important;gap:8px !important;border-radius:12px 12px 0 0 !important;}
body.tpl-agent .fw-logo{width:20px !important;height:20px !important;border-radius:5px !important;}
body.tpl-agent .fw-logo-inner{width:16px !important;height:16px !important;border-radius:3px !important;font-size:var(--fs-8)!important;line-height:1.05 !important;}
body.tpl-agent .fw-title{font-size:var(--fs-14)!important;}
body.tpl-agent .fw-foldall{height:18px !important;min-height:18px !important;width:18px !important;padding:0 !important;border-radius:5px !important;font-size:var(--fs-12)!important;line-height:1 !important;}
body.tpl-agent .fw-min{width:18px !important;height:18px !important;min-height:18px !important;padding:0 !important;border-radius:5px !important;font-size:var(--fs-12)!important;}
/* dock hide tab: keep the box, just fit the arrow inside (make it visible) */
body.tpl-agent .docktab{overflow:hidden !important;}
body.tpl-agent .docktab .dtri{font-size:var(--fs-10)!important;line-height:1 !important;}

/* ===== O37 retouch 17 - filter nudge, scorecard full colouring, drill cubes fit text, chart colours ===== */
/* 1. filter control: nudge the cube box 3px and centre the fields */
body.tpl-agent .bar.filter-panel{position:relative !important;top:3px !important;}
body.tpl-agent .bar.filter-panel .f{justify-content:center !important;align-items:stretch !important;}
/* 2. scorecards: colour ALL active values green, ALL inactive values red (texts, numbers, %) */
body.tpl-agent .sc3-act .sc3-num, body.tpl-agent .sc3-act .sc3-row, body.tpl-agent .sc3-act .sc3-pct, body.tpl-agent .sc3-act .sc3-txt{color:#1e8e3e !important;}
body.tpl-agent .sc3-ina .sc3-num, body.tpl-agent .sc3-ina .sc3-row, body.tpl-agent .sc3-ina .sc3-pct, body.tpl-agent .sc3-ina .sc3-txt{color:#d93025 !important;}
/* 3a. table/report drill filter cubes: fit to text, not full page length */
body.tpl-agent #fw-catalog .catlevel .s6fa525ee{flex:0 1 auto !important;}
body.tpl-agent #fw-catalog .catlevel .ac,
body.tpl-agent #fw-catalog .catlevel .ac-q,
body.tpl-agent #fw-catalog .catlevel input,
body.tpl-agent #fw-catalog .catlevel .ac-menu{width:auto !important;min-width:190px !important;max-width:340px !important;}
/* 3b. chart: orange active bars, sky-blue inactive bars, green active line, red inactive line, readable */
body.tpl-agent .chart svg{overflow:visible !important;}
body.tpl-agent .chart .chart__bar--1{fill:#ff6b00 !important;}
body.tpl-agent .chart .chart__bar--3{fill:#5bc0eb !important;}
body.tpl-agent .chart .chart__series--active{stroke:#1e8e3e !important;stroke-width:2.5 !important;fill:none !important;}
body.tpl-agent .chart .chart__series--inactive{stroke:#d93025 !important;stroke-width:2.5 !important;fill:none !important;}
body.tpl-agent .chart .chart__dot--active{fill:#1e8e3e !important;}
body.tpl-agent .chart .chart__dot--inactive{fill:#d93025 !important;}
body.tpl-agent .chart .chart__label, body.tpl-agent .chart .chart__axis{fill:#2b0406 !important;font-size:var(--fs-10)!important;}
body.tpl-agent .chart .chart__grid-line{stroke:#e5e7eb !important;}

/* ===== O37 retouch 18 - responsive scorecards (no stack), swap texts up / N-% below, report drill row evenly distributed, table no scroll ===== */
/* scorecards: 4 equal columns that shrink/grow with the page; card fills; total scales */
body.tpl-agent .sc-box{width:100% !important;max-width:100% !important;}
body.tpl-agent .sc3-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important;justify-content:stretch !important;}
body.tpl-agent .sc3-card{min-width:0 !important;max-width:100% !important;overflow:hidden !important;}
body.tpl-agent .sc3-total{font-size:var(--fs-14)!important;}
body.tpl-agent .sc3-txt{text-align:center !important;}
/* report/table drill: ONE horizontal evenly-distributed row; group-by included and aligned */
body.tpl-agent #fw-catalog .catdrill{display:flex !important;flex-wrap:wrap !important;gap:8px !important;align-items:flex-end !important;justify-content:space-between !important;}
body.tpl-agent #fw-catalog .catdrill .catlevel{flex:1 1 150px !important;min-width:130px !important;margin:0 !important;align-items:center !important;}
body.tpl-agent #fw-catalog .catdrill .catlbl{flex:0 0 auto !important;padding:0 !important;}
body.tpl-agent #fw-catalog .catdrill .s6fa525ee,
body.tpl-agent #fw-catalog .catdrill .ac{flex:1 1 auto !important;min-width:120px !important;max-width:none !important;width:auto !important;}
body.tpl-agent #fw-catalog .catdrill .ac-q,
body.tpl-agent #fw-catalog .catdrill input,
body.tpl-agent #fw-catalog .catdrill select,
body.tpl-agent #fw-catalog .catdrill .ac-menu{width:100% !important;min-width:120px !important;max-width:none !important;}
body.tpl-agent #fw-catalog .catdrill .catgroup{flex:1 1 150px !important;}
/* report table: show all rows (no inner scroll hiding rows) */
body.tpl-agent #fw-catalog .s90f31ccc{max-height:none !important;overflow:visible !important;}

/* ===== O37 retouch 19 - scorecards: UNIFORM cube sizes + uniform 2px gaps everywhere (no extra space, no overlap) ===== */
body.tpl-agent .sc3-card{justify-content:flex-start !important;gap:2px !important;padding:2px !important;overflow:hidden !important;}
body.tpl-agent .sc3-top{height:44px !important;min-height:44px !important;max-height:44px !important;align-items:flex-end !important;overflow:hidden !important;}
body.tpl-agent .sc3-bottom{gap:2px !important;height:auto !important;}
body.tpl-agent .sc3-half{height:38px !important;min-height:38px !important;max-height:38px !important;overflow:hidden !important;}
body.tpl-agent .sc3-total{font-size:var(--fs-14)!important;line-height:1 !important;white-space:nowrap !important;overflow:hidden !important;}
body.tpl-agent .sc3-right{max-width:58% !important;overflow:hidden !important;}
body.tpl-agent .sc3-ent{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
body.tpl-agent .sc3-hrow{min-height:0 !important;}

/* ===== O37 retouch 20 - dashboard buttons visible (kill the dark box) + drill labels OUTSIDE inputs, evenly distributed ===== */
body.tpl-agent .btn{background:#ffffff !important;color:#1c4587 !important;border:1px solid #e03131 !important;border-radius:6px !important;height:30px !important;padding:0 10px !important;}
body.tpl-agent .btn:hover{background:#fff2f2 !important;}
body.tpl-agent .btn.primary{background:#c92a2a !important;color:#ffffff !important;border-color:#c92a2a !important;}
/* drill controls: labels above (outside) the input, evenly distributed in the row */
body.tpl-agent #fw-catalog .catdrill{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;gap:6px !important;align-items:end !important;}
body.tpl-agent #fw-catalog .catdrill .catlevel{display:flex !important;flex-direction:column !important;gap:2px !important;min-width:0 !important;margin:0 !important;align-items:stretch !important;}
body.tpl-agent #fw-catalog .catdrill .catlbl{flex:0 0 auto !important;padding:0 !important;color:#1c4587 !important;}
body.tpl-agent #fw-catalog .catdrill .s6fa525ee,
body.tpl-agent #fw-catalog .catdrill .ac{flex:0 0 auto !important;min-width:0 !important;max-width:none !important;width:100% !important;}
body.tpl-agent #fw-catalog .catdrill .ac-q,
body.tpl-agent #fw-catalog .catdrill input,
body.tpl-agent #fw-catalog .catdrill select{width:100% !important;min-width:0 !important;max-width:none !important;}

/* ===== O38 - ASSORTMENT PARITY: drill filters = 3 equal columns x 2 clean rows (.field pattern) =====
   Owner: reuse the dashboard .field pattern (label on top, control below) instead of the
   bespoke .catlevel; exactly 3 columns -> 6 cells = 2 rows. Layout only; ids/values/JS unchanged. */
body.tpl-agent #fw-catalog .catdrill{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;   /* exactly 3 cols -> 6 fields = 2 rows */
  gap:10px 14px !important;                                    /* even row/column rhythm */
  align-items:start !important;
  margin:0 0 12px 0 !important;
}
/* each cell = the shared .field pattern: label on top, control below, fills the cell */
body.tpl-agent #fw-catalog .catdrill .field{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:4px !important;
  min-width:0 !important;
  margin:0 !important;
  align-items:start !important;
}
body.tpl-agent #fw-catalog .catdrill .field>span{
  display:block !important;
  font-size:var(--fs-12)!important;
  line-height:1.2 !important;
  color:#265cb3 !important;                                    /* navy label (accepted theme) */
  margin:0 !important;
  padding:0 !important;
}
/* every control fills its cell (kills the old min/max width overrides) */
body.tpl-agent #fw-catalog .catdrill .field .s6fa525ee,
body.tpl-agent #fw-catalog .catdrill .field .ac,
body.tpl-agent #fw-catalog .catdrill .field .ac-q,
body.tpl-agent #fw-catalog .catdrill .field input,
body.tpl-agent #fw-catalog .catdrill .field select,
body.tpl-agent #fw-catalog .catdrill .field .ac-menu,
body.tpl-agent #fw-catalog .catdrill .field .ac-chips,
body.tpl-agent #fw-catalog .catdrill .field .ui-select-wrap{
  width:100% !important;min-width:0 !important;max-width:100% !important;
}
/* search cell = input + 'clear drills' button on ONE row, button flushed right */
body.tpl-agent #fw-catalog .catdrill .field.search .srow{
  display:flex !important;gap:8px !important;align-items:center !important;min-width:0 !important;
}
body.tpl-agent #fw-catalog .catdrill .field.search .srow input{flex:1 1 0 !important;width:auto !important;min-width:0 !important;}
body.tpl-agent #fw-catalog .catdrill .field.search .srow .btn{flex:0 0 auto !important;width:auto !important;margin-left:auto !important;}
/* group by = native <select> enum, styled as the same control cube as the rest of the filter fields */
/* responsive: single column on narrow cards */
@media (max-width:760px){ body.tpl-agent #fw-catalog .catdrill{grid-template-columns:minmax(0,1fr) !important;} }
/* report table: same 14px column rhythm + 8px side padding so it lines up under the filter columns */
body.tpl-agent #fw-catalog .s90f31ccc{padding:0 !important;}
body.tpl-agent #fw-catalog .s90f31ccc .tbl th,
body.tpl-agent #fw-catalog .s90f31ccc .tbl td{padding-left:8px !important;padding-right:8px !important;}
body.tpl-agent #fw-catalog .s90f31ccc .tbl th:first-child,
body.tpl-agent #fw-catalog .s90f31ccc .tbl td:first-child{padding-left:8px !important;}

/* ===== O41 - Assortment Parity: halve the filter field height + fit all 6 in ONE row =====
   Scope #fw-catalog only. Keeps the .field pattern (label on top, control below), the overlay/
   chip behaviour and the accepted theme; layout/size only (ids/JS/values unchanged). */
/* 1. controls: ~half height, tighter type */
body.tpl-agent #fw-catalog .catdrill .field input,
body.tpl-agent #fw-catalog .catdrill .field select,
body.tpl-agent #fw-catalog .catdrill .field .ac-q{
  min-height:22px !important;height:22px !important;padding:1px 8px !important;
  font-size:var(--fs-12)!important;line-height:20px !important; }
/* label: smaller + tighter */
body.tpl-agent #fw-catalog .catdrill .field>span{font-size:var(--fs-10)!important;line-height:1.1 !important;margin:0 0 2px 0 !important;}
/* cell gap + control shell height */
body.tpl-agent #fw-catalog .catdrill .field{gap:2px !important;}
body.tpl-agent #fw-catalog .catdrill .ac{height:22px !important;}
body.tpl-agent #fw-catalog .catdrill .field.search .srow .btn{
  min-height:22px !important;height:22px !important;padding:1px 10px !important;font-size:var(--fs-12)!important;}
/* 2. ONE single row of 6 when width allows; wrap only if it must */
body.tpl-agent #fw-catalog .catdrill{
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  gap:6px 10px !important;align-items:start !important; }
@media (max-width:1100px){ body.tpl-agent #fw-catalog .catdrill{grid-template-columns:repeat(3,minmax(0,1fr)) !important;} }
@media (max-width:760px){ body.tpl-agent #fw-catalog .catdrill{grid-template-columns:minmax(0,1fr) !important;} }
/* Requester Links card: 2 blue cube boxes, WHITE font, fit-to-size, URL visible */
body.tpl-agent #fw-links .link{display:block !important;width:fit-content !important;max-width:100% !important;background:#123f7a !important;border:1px solid #0d315f !important;color:#ffffff !important;border-radius:8px !important;padding:8px 12px !important;margin:0 0 8px 0 !important}
body.tpl-agent #fw-links .link:hover{background:#0d315f !important}
body.tpl-agent #fw-links .link .chip{background:transparent !important;color:#ffffff !important;font-weight:400;padding:0 !important;border:0 !important}
body.tpl-agent #fw-links .link .link-url{display:block !important;color:#cfe0ff !important;font-size:var(--fs-12)!important;margin-top:2px !important;word-break:break-all !important}
/* dock useful links: requester QR blocks (small, collapsed) + auto-expand scroll */
body.tpl-agent #docklinks{max-height:46vh;overflow-y:auto !important}
body.tpl-agent .dl-sub{font-size:var(--fs-10);color:var(--text-muted);margin:6px 0 2px;text-transform:uppercase;letter-spacing:.05em}
body.tpl-agent .dl-qr{margin:0 0 4px;width:fit-content;max-width:100%}
body.tpl-agent .dl-qr-h{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;border:1px solid #123f7a;background:#123f7a;color:#fff;border-radius:6px;padding:6px 8px;font-size:var(--fs-12);cursor:pointer;text-align:left}
body.tpl-agent .dl-qr-h .arrow{color:#fff}
body.tpl-agent .dl-qr-b{padding:6px;background:#fff;border:1px solid #123f7a;border-top:0;border-radius:0 0 6px 6px;width:fit-content;max-width:100%}
body.tpl-agent .dl-qr-b.hidden{display:none !important}
body.tpl-agent .qr-mini{width:96px;height:96px;margin:0 0 4px;background:#fff}
body.tpl-agent .qr-mini svg{display:block;width:96px;height:96px}
body.tpl-agent .dl-qr-b .durl-val{color:#265cb3;word-break:break-all}
/* O18 enhancer (ui.js) marks the native select .ui-select-native; it MUST be hidden app-wide (applies to requester + all templates) */
.ui-select-wrap{position:relative}
select.ui-select-native{position:absolute !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important;margin:0 !important;padding:0 !important;border:0 !important;clip:rect(0 0 0 0) !important;overflow:hidden !important}

/* ===== O42 - dock useful-links: FOLD the long URLs so they stop inflating the dock width =====
   The dock is width:max-content, so the 400-500px portal URLs under "useful links" forced it
   to ~536px. Cap + wrap the URL text to the tile width -> the dock shrinks back to ~200px on
   its own. Dock only; nothing else touched. */
body.tpl-agent .dl-body .durl{max-width:100% !important;}
body.tpl-agent .dl-body .durl-label,
body.tpl-agent .dl-body .durl-val,
body.tpl-agent #docklinks .durl-val{
  max-width:158px !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  word-break:break-all !important;
}
body.tpl-agent .dl-body .durl-label{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}

/* ===== O43 - dock requester links: ONE snug cube (1pt red) holding QR + name-link, tight fit ===== */
body.tpl-agent .dl-qr{
  display:flex !important;flex-direction:column !important;align-items:center !important;gap:2px !important;
  width:fit-content !important;max-width:100% !important;
  margin:0 0 6px 0 !important;padding:3px !important;
  border:1px solid #e03131 !important;border-radius:6px !important;background:#ffffff !important;
}
body.tpl-agent .dl-qr .qr-mini{margin:0 !important;}
body.tpl-agent .dl-qr .qr-mini svg{display:block !important;}
body.tpl-agent .dl-qr-name{
  display:block !important;max-width:96px !important;
  font-size:var(--fs-12)!important;line-height:1.2 !important;
  color:#1155cc !important;font-style:italic !important;text-decoration:none !important;
  text-align:center !important;white-space:normal !important;overflow-wrap:anywhere !important;
}
body.tpl-agent .dl-qr-name:hover{text-decoration:underline !important;}

/* ===== O44 - "useful links" label blue; requester QR cubes wider + centered; name one clean row ===== */
body.tpl-agent .dl-toggle{color:#1155cc !important;}
body.tpl-agent .dl-toggle .arrow{color:#1155cc !important;}
body.tpl-agent .dl-qr{
  width:120px !important;max-width:100% !important;
  margin:6px auto !important;            /* perfectly centered: equal left/right space */
}
body.tpl-agent .dl-qr .qr-mini,
body.tpl-agent .dl-qr .qr-mini svg{width:112px !important;height:112px !important;}
body.tpl-agent .dl-qr-name{
  width:100% !important;max-width:112px !important;
  white-space:nowrap !important;font-size:var(--fs-12)!important;
}

/* ===== O45 - requester QR cubes = PERFECT SQUARES (equal size + spacing); dock hide/open tab unclipped & on top ===== */
body.tpl-agent .dl-qr{
  width:128px !important;height:128px !important;
  margin:6px auto !important;                 /* equal left/right; equal spacing between cubes */
  padding:3px !important;gap:2px !important;
  box-sizing:border-box !important;
}
body.tpl-agent .dl-qr .qr-mini,
body.tpl-agent .dl-qr .qr-mini svg{width:104px !important;height:104px !important;margin:0 !important;}
body.tpl-agent .dl-qr-name{
  width:100% !important;max-width:104px !important;
  font-size:var(--fs-12)!important;line-height:1.1 !important;
  text-align:center !important;white-space:nowrap !important;
}
/* bring the dock hide/open sign to the front (it was clipped by #dock overflow) */
body.tpl-agent #dock{overflow:visible !important;}
body.tpl-agent .docktab{z-index:40 !important;}

/* useful links section: subtle background differentiation (#ffe2de) - background only */
body.tpl-agent #docklinks{background:#ffe2de !important;}

/* useful links UX: title in a light-blue line cube; shopper/picker/know links as blue-line cubes filled #f4cccc */
body.tpl-agent #docklinks .dl-toggle{
  width:fit-content !important;border:1px solid #9ecbff !important;border-radius:6px !important;
  padding:3px 8px !important;margin:2px 0 6px 0 !important;background:transparent !important;
}
body.tpl-agent #docklinks .durl{
  display:flex !important;flex-direction:column !important;align-items:flex-start !important;
  width:fit-content !important;max-width:100% !important;
  border:1px solid #265cb3 !important;border-radius:6px !important;
  background:#f4cccc !important;padding:3px 8px !important;margin:4px 0 !important;
}
body.tpl-agent #docklinks .durl:hover{border-color:#1155cc !important;background:#eaf1ff !important;}

/* ===== app-wide: list texts (overlay menus / chips / options) = ONE LINE, overflow - never wrap, never clip ===== */
.ac-menu{left:0 !important;right:auto !important;width:max-content !important;min-width:100% !important;max-width:96vw !important;overflow:auto !important;}
.ac-item,.ac-all,.ac-empty{white-space:nowrap !important;}
.ac-chip{white-space:nowrap !important;max-width:none !important;}
select option{white-space:nowrap !important;}
/* drill filter lists: same one-line overflow behavior (overrides the earlier width:100% in the drill) */
body.tpl-agent #fw-catalog .catdrill .field .ac-menu{
  left:0 !important;right:auto !important;width:max-content !important;
  min-width:100% !important;max-width:96vw !important;overflow:auto !important;
}

/* ===== Assortment Parity scorecards: 5 columns -> 3 rows; shorter; number/% -2pt ===== */
body.tpl-agent #fw-catalog .sc3-grid{grid-template-columns:repeat(5,minmax(0,1fr)) !important;}
body.tpl-agent #fw-catalog .sc3-card{padding:2px !important;gap:2px !important;}
body.tpl-agent #fw-catalog .sc3-top{height:36px !important;min-height:36px !important;max-height:36px !important;}
body.tpl-agent #fw-catalog .sc3-half{height:36px !important;min-height:36px !important;max-height:36px !important;padding:2px 6px !important;}
body.tpl-agent #fw-catalog .sc3-total{font-size:var(--fs-14)!important;}   /* was 20pt */
body.tpl-agent #fw-catalog .sc3-num{font-size:var(--fs-14)!important;}     /* was 12pt */
body.tpl-agent #fw-catalog .sc3-pct{font-size:var(--fs-12)!important;}      /* was ~9.75pt */

/* scorecards: center the partial last row (4 cards) so it sits equal-left/right under the 5-card rows */
body.tpl-agent #fw-catalog .sc3-grid{
  display:flex !important;flex-wrap:wrap !important;justify-content:center !important;gap:12px !important;
}
body.tpl-agent #fw-catalog .sc3-card{
  flex:0 0 calc((100% - 48px)/5) !important;width:calc((100% - 48px)/5) !important;
  max-width:calc((100% - 48px)/5) !important;min-width:0 !important;margin:0 !important;
}

/* scorecards data placement (no card resize): total = bottom-left; active/inactive label = top-center;
   number = bottom-left, % = bottom-right; number and % SAME size */
body.tpl-agent #fw-catalog .sc3-top{align-items:flex-end !important;justify-content:space-between !important;}
body.tpl-agent #fw-catalog .sc3-total{align-self:flex-end !important;text-align:left !important;line-height:1 !important;}
body.tpl-agent #fw-catalog .sc3-half{display:flex !important;flex-direction:column !important;justify-content:space-between !important;align-items:stretch !important;}
body.tpl-agent #fw-catalog .sc3-txt{align-self:center !important;text-align:center !important;line-height:1.05 !important;}
body.tpl-agent #fw-catalog .sc3-hrow{display:flex !important;justify-content:space-between !important;align-items:flex-end !important;width:100% !important;}
body.tpl-agent #fw-catalog .sc3-num{font-size:var(--fs-14)!important;line-height:1 !important;}
body.tpl-agent #fw-catalog .sc3-pct{font-size:var(--fs-14)!important;line-height:1 !important;}

/* scorecards: total 14pt; active/inactive labels -1pt; active=top-left, inactive=top-right; card length shortened */
body.tpl-agent #fw-catalog .sc3-total{font-size:var(--fs-14)!important;}       /* was 18pt */
body.tpl-agent #fw-catalog .sc3-txt{font-size:var(--fs-12)!important;}       /* was 13px (~9.75pt) -> -1pt */
body.tpl-agent #fw-catalog .sc3-act .sc3-txt{align-self:flex-start !important;text-align:left !important;}
body.tpl-agent #fw-catalog .sc3-ina .sc3-txt{align-self:flex-end !important;text-align:right !important;}
body.tpl-agent #fw-catalog .sc3-card{
  flex:0 0 232px !important;width:232px !important;max-width:232px !important;   /* shortest that fits content (was 249) */
}

/* chart: hover tooltip overlay + column hit area */
body.tpl-agent .chart{position:relative;}
body.tpl-agent .chart-col{cursor:pointer;}
body.tpl-agent .chart-tip{position:absolute;display:none;z-index:60;max-width:240px;padding:6px 9px;font-size:var(--fs-12);line-height:1.4;
  color:#265cb3;background:#ffffff;border:1px solid #e03131;border-radius:6px;
  box-shadow:0 2px 10px rgba(43,4,6,.22);pointer-events:none;white-space:nowrap;}
body.tpl-agent .chart-tip b{color:#c92a2a;}
body.tpl-agent .chart-tip .ct-sub{color:#684c4d;font-style:italic;}
body.tpl-agent .chart-tip .ct-pct{color:#176b45;}

/* chart labels: white halo so values stay readable over bars/lines */
body.tpl-agent .chart .chart__label,
body.tpl-agent .chart .chart__axis{paint-order:stroke;stroke:#ffffff;stroke-width:3px;stroke-linejoin:round;}

/* Assortment parity: report table + chart side by side (equal split, clear separation) */
body.tpl-agent #fw-catalog .parity-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start;}
body.tpl-agent #fw-catalog .parity-table,
body.tpl-agent #fw-catalog .parity-chart{min-width:0;}
@media (max-width:1200px){body.tpl-agent #fw-catalog .parity-split{grid-template-columns:minmax(0,1fr);}}

/* Assortment parity report table: compact to fit its half — 12pt wrapped headers, 10pt rows, data-sized columns, 2px left margin */
body.tpl-agent #fw-catalog .parity-table .s90f31ccc{padding:0 0 0 2px !important;margin:0 !important;overflow:auto !important;}
body.tpl-agent #fw-catalog .parity-table .tbl{width:auto !important;max-width:100% !important;table-layout:auto !important;font-size:var(--fs-14)!important;}
body.tpl-agent #fw-catalog .parity-table .tbl th{
  height:auto !important;padding:2px 6px !important;font-size:var(--fs-14)!important;line-height:1.1 !important;
  white-space:normal !important;vertical-align:bottom !important;
}
body.tpl-agent #fw-catalog .parity-table .tbl td{
  height:auto !important;padding:1px 6px !important;font-size:var(--fs-14)!important;line-height:1.25 !important;white-space:nowrap !important;
}
body.tpl-agent #fw-catalog .parity-table .tbl td:first-child,
body.tpl-agent #fw-catalog .parity-table .tbl th:first-child{white-space:nowrap !important;text-align:left !important;padding-left:6px !important;}

/* Assortment View: report headers 10pt single row (no wrap); chart + table share the report-table border */
body.tpl-agent #fw-catalog .parity-table .tbl th{font-size:var(--fs-14)!important;white-space:nowrap !important;line-height:1.1 !important;}
body.tpl-agent #fw-catalog .parity-table .s90f31ccc,
body.tpl-agent #fw-catalog .parity-chart .chart{
  border:1px solid #1559c7 !important;border-radius:6px !important;background:#ffffff !important;
}
body.tpl-agent #fw-catalog .parity-chart .chart{padding:6px !important;}

/* comparative assortment: same .field controls format + 2-up comparison scorecards */
body.tpl-agent #fw-catalog .cmpdrill{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
body.tpl-agent #fw-catalog .cmp2{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;gap:12px !important;margin-top:10px !important;}
body.tpl-agent #fw-catalog .cmp-card{background:#f3f3f3 !important;border:1px solid #e03131 !important;border-radius:10px !important;padding:10px 12px !important;color:#265cb3 !important;}
body.tpl-agent #fw-catalog .cmp-card.base{border-color:#1559c7 !important;}
body.tpl-agent #fw-catalog .cmp-head{font-size:var(--fs-14)!important;margin-bottom:6px !important;color:#1c4587 !important;}
body.tpl-agent #fw-catalog .cmp-row{display:flex !important;justify-content:space-between !important;gap:8px !important;border-top:1px solid #ffc9c9 !important;padding:3px 0 !important;font-size:var(--fs-14)!important;}
body.tpl-agent #fw-catalog .cmp-row b{color:#265cb3 !important;}
body.tpl-agent #fw-catalog .cmp-row i{color:#176b45 !important;font-style:normal !important;}
body.tpl-agent #fw-catalog .cmp-delta{margin-top:6px !important;font-size:var(--fs-12)!important;color:#684c4d !important;font-style:italic !important;}

/* Compared View: compact controls (half length, single row, aligned) + red compare button + floating dropdowns */
body.tpl-agent #fw-catalog .cmpdrill{
  grid-template-columns:repeat(3,220px) !important;justify-content:start !important;gap:6px 12px !important;margin:0 0 4px 0 !important;
}
body.tpl-agent #fw-catalog .cmpdrill .field .ac-q,
body.tpl-agent #fw-catalog .cmpdrill .field select,
body.tpl-agent #fw-catalog .cmpdrill .field input{width:100% !important;}
body.tpl-agent #fw-catalog .cmpdrill .field .btn{margin-top:0 !important;}
/* dropdown menu must float in front of everything */
body.tpl-agent .ac-menu{z-index:600 !important;}
body.tpl-agent #fw-catalog .card.panel, body.tpl-agent #fw-catalog .cmpdrill, body.tpl-agent #fw-catalog .cmpdrill .field{overflow:visible !important;}

/* ===== O47 requester: compact single-line top row + chips + titles/switches + translucent placeholders ===== */
body.tpl-requester .top{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;}
body.tpl-requester .top>*{box-sizing:border-box !important;height:26px !important;min-height:26px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;white-space:nowrap !important;font-size:var(--fs-12)!important;font-weight:400;line-height:1 !important;margin:0 !important;padding:0 10px !important;}
body.tpl-requester .top .mark{border:1px solid #e03131 !important;border-radius:6px !important;font-size:var(--fs-12)!important;font-weight:400;}
body.tpl-requester .top .mark b{font-weight:400;}
body.tpl-requester .top .tnonaaa{background:#f4cccc !important;color:#7a6f6f !important;font-weight:400;border:1px solid #e03131 !important;border-radius:6px !important;}
body.tpl-requester .top .tview{height:26px !important;min-height:26px !important;display:inline-block !important;padding:0 4px 0 8px !important;border-radius:6px !important;text-align:left !important;}
body.tpl-requester .top .tback,body.tpl-requester .top .tdash{font-size:var(--fs-14)!important;padding:0 4px !important;min-width:26px !important;}
/* choose-request title + job-type switches */
body.tpl-requester .req-heading{font-size:var(--fs-14)!important;color:#265cb3 !important;font-weight:400;white-space:nowrap !important;}
body.tpl-requester .req-heading.sec-sub{font-size:var(--fs-14)!important;margin:6px 0 2px !important;}
body.tpl-requester .mode-toggle{gap:6px !important;flex-wrap:nowrap !important;}
body.tpl-requester .mode-opt{white-space:nowrap !important;padding:6px 10px !important;}
body.tpl-requester .mode-label{white-space:nowrap !important;font-size:var(--fs-14)!important;font-weight:400;}
body.tpl-requester .mode-opt.mcreate .mode-label{color:#265cb3 !important;}
body.tpl-requester .mode-opt.mupdate .mode-label{color:#e03131 !important;}
body.tpl-requester .mode-opt.mbulk .mode-label{color:#8a0f0f !important;}
/* translucent thin placeholders (light requester) + dashboard navy */
body.tpl-requester input::placeholder,body.tpl-requester textarea::placeholder{color:rgba(101,8,8,.10) !important;font-weight:400;opacity:1 !important;}
body.tpl-agent input::placeholder,body.tpl-agent textarea::placeholder{color:rgba(38,92,179,.13) !important;font-weight:400;opacity:1 !important;}
/* two-up rows (role+KNOW, date of join+base hours): controls fill their half */
body.tpl-requester .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
body.tpl-requester .row2 .field>input,body.tpl-requester .row2 .field>select{width:100% !important;max-width:100% !important;}
/* per-picker sponsor / company transfer rows */
body.tpl-requester .spx{display:flex;flex-direction:column;gap:6px;}
body.tpl-requester .spxrow{display:grid;grid-template-columns:minmax(120px,190px) 1fr 1fr 110px;gap:6px;align-items:center;}
body.tpl-requester .spxwho{font-size:var(--fs-12);color:#265cb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.tpl-requester .spxrow input,body.tpl-requester .spxrow select{font-size:var(--fs-10)!important;height:auto !important;min-height:0 !important;padding:4px 6px !important;}
body.tpl-requester .spxrow input[readonly]{background:rgba(101,8,8,.06) !important;border-style:dashed !important;opacity:.7;cursor:default;}

/* ===== requester UX fine-tune (UI only): submit sized to label, no empty box, record-style fields ===== */
body.tpl-requester #submit{width:auto !important;max-width:100% !important;padding:6px 16px !important;margin-top:12px !important;font-size:var(--fs-14)!important;border-radius:8px !important;}
/* record fields: content-sized, uniform, capped at half width (never full-bleed essay boxes) */
body.tpl-requester #page2 .field>input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),
body.tpl-requester #page2 .field>.ac>input.ac-q,
body.tpl-requester #page2 .field>select,
body.tpl-requester #page2 .field>textarea{width:auto !important;min-width:110px !important;max-width:50% !important;field-sizing:content !important;}

/* ===== O48 requester: picker "current system truth" info overlay (Option A) ===== */
body.tpl-requester .ac{position:relative;}
body.tpl-requester .truth-i{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e03131;background:#FFF5F5;color:#650808;font-style:italic;font-weight:400;font-size:var(--fs-12);line-height:1;padding:0;border-radius:50%;cursor:pointer;z-index:6;}
body.tpl-requester #f_picker_sel_wrap .ac-q,body.tpl-requester #blk_picker_wrap .ac-q{padding-right:30px !important;}
body.tpl-requester .truthov{position:fixed;inset:0;z-index:120;display:none;place-items:center;background:rgba(101,8,8,.20);padding:16px;}
body.tpl-requester .truthov.open{display:grid;}
body.tpl-requester .truthbox{width:min(520px,100%);max-height:88vh;overflow:auto;background:#FFF5F5;border:1px solid #e03131;border-radius:12px;box-shadow:0 12px 40px rgba(101,8,8,.25);}
body.tpl-requester .truth-h{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #e03131;color:#650808;font-size:var(--fs-12);font-weight:400;letter-spacing:.3px;}
body.tpl-requester .truth-x{cursor:pointer;font-size:var(--fs-14);line-height:1;color:#650808;}
body.tpl-requester .truth-b{padding:10px 12px;}
body.tpl-requester .truth-card{margin-bottom:10px;}
body.tpl-requester .truth-card:last-child{margin-bottom:0;}
body.tpl-requester .truth-empty,body.tpl-requester .truth-load{color:#8a5a5a;font-size:var(--fs-12);padding:8px 0;}
body.tpl-requester .truth-t{width:100%;border-collapse:collapse;}
body.tpl-requester .truth-t th,body.tpl-requester .truth-t td{text-align:left;padding:5px 8px;border-bottom:1px solid rgba(101,8,8,.14);font-size:var(--fs-12);vertical-align:top;}
body.tpl-requester .truth-t th{color:#650808;font-weight:400;white-space:nowrap;width:42%;}
body.tpl-requester .truth-t td{color:#3a1f1f;}
body.tpl-requester .truth-src{color:#8a5a5a;font-size:var(--fs-10);}
body.tpl-requester .truth-asof{margin-top:6px;color:#8a5a5a;font-size:var(--fs-10);text-align:right;}

/* ===== O3 - KPI filter bar: one clean row, floating menus, quiet sync dot ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel{flex-wrap:nowrap !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel>.f{flex:1 1 0 !important;min-width:0 !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel>.kpi-reset-f{flex:0 0 auto !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel .ac-menu .ac-item{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel .kpi-reset-f .btn{height:30px !important;min-height:30px !important;padding:0 10px !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot-row{height:10px;display:flex;justify-content:flex-end;padding:2px 4px 0;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot{display:none;align-items:flex-end;gap:3px;height:13px;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot.on{display:inline-flex;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot i{display:block;border-radius:50%;background:#265cb3;opacity:.25;animation:kpiwave 1.15s infinite ease-in-out;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot i:nth-child(1){width:3px;height:3px;animation-delay:0s;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot i:nth-child(2){width:5px;height:5px;animation-delay:.12s;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot i:nth-child(3){width:7px;height:7px;animation-delay:.24s;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot i:nth-child(4){width:9px;height:9px;animation-delay:.36s;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot i:nth-child(5){width:11px;height:11px;animation-delay:.48s;}
@keyframes kpiwave{0%,100%{transform:translateY(1px) scale(.55);opacity:.2}50%{transform:translateY(-4px) scale(1);opacity:1}}


/* ===== O5 KPI cards: uniform #d3e3fd, light-red 1pt border, dark-red title,
   dark-blue values, slanted orange top-left accent + orange shadow ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card{
  position:relative;overflow:hidden;
  background:#d3e3fd !important;
  border:1px solid #f4b6b6 !important;
  border-radius:8px !important;
  padding:12px !important;min-height:96px;
  color:#0d315f !important;
  font-family:var(--font);
}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card::before{
  content:"";position:absolute;top:0;left:0;width:60%;height:5px;
  background:#ff6b00;transform:skewX(-30deg);transform-origin:left top;
  box-shadow:0 3px 8px rgba(255,107,0,.55);
}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card-title{
  font-family:var(--font);font-size:var(--fs-12)!important;font-weight:400;
  letter-spacing:.4px;color:#a3160b !important;margin-bottom:6px;
}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card .s24f8855c{color:#0d315f !important;opacity:.72 !important;font-size:var(--fs-xs) !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card .s1c2b2651{color:#0d315f !important;font-size:var(--fs-sm) !important;font-weight:400;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card .sa18fe668{border-bottom:1px solid rgba(13,49,95,.15) !important;white-space:nowrap !important;align-items:center !important;}
/* scorecard metric titles stay on ONE line — never wrap; long names ellipsize
   and reveal their full text on hover (title attr). */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card .sa18fe668 .s24f8855c{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;min-width:0 !important;flex:1 1 auto !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-card .sa18fe668 .s1c2b2651{flex:0 0 auto !important;white-space:nowrap !important;}

/* ===== KPI filter fields: selected values live INSIDE the box as a single-line
   CSV. No persistent chips outside the input; nothing floats except the dropdown
   (while choosing) and a full-value tooltip on hover. ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel .ac-chips{display:none !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel .ac-q{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel .ac{position:relative;min-width:0 !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .bar.filter-panel .ac[data-full]:not([data-full=""]):hover::after{
  content:attr(data-full);
  position:absolute;left:0;top:calc(100% + 5px);z-index:120;
  max-width:none;white-space:nowrap;overflow:visible;
  background:#0d315f;color:#fff;border:1px solid #ffa8a8;border-radius:6px;
  padding:4px 8px;font-size:var(--fs-12);font-weight:400;font-family:var(--font);
  box-shadow:0 6px 16px rgba(0,0,0,.42);pointer-events:none;
}

/* ===== KPI: small green Refresh button on top of the scorecards (left) ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-toolbar{display:flex;align-items:center;gap:8px;margin:2px 0 8px 2px;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-refresh{background:#2d9865 !important;border:1px solid #2d9865 !important;color:#fff !important;
  height:30px !important;min-height:30px !important;padding:0 12px !important;font-weight:400;
  display:inline-flex;align-items:center;gap:6px;border-radius:8px !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-refresh:hover{background:#22814f !important;border-color:#22814f !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-dot{margin-left:auto;}

/* ===== KPI value colours: green=success, red=fail/cancel, orange=warning/delay,
   light-blue=in-progress/indicative-not-yet-success, black=neutral/total ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-red .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-red .s1c2b2651{color:#d93025 !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-green .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-green .s1c2b2651{color:#1e8e3e !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-orange .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-orange .s1c2b2651{color:#e8710a !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-blue .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-blue .s1c2b2651{color:#3d8bde !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-black .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-black .s1c2b2651{color:#111 !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-red .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-green .s24f8855c,
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-orange .s24f8855c, body.tpl-agent :is(#fw-kpi,#fw-monitor) .kv-blue .s24f8855c{opacity:.82 !important;}

/* ===== KPI per-metric info "i" (hover tooltip explains what the metric means) ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-i{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:5px;
  border:1px solid rgba(13,49,95,.55);border-radius:50%;color:#0d315f;font-family:var(--font);font-size:var(--fs-8);font-weight:400;font-style:italic;line-height:1;cursor:pointer;opacity:.6;vertical-align:middle;user-select:none;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-i:hover{opacity:1;background:rgba(13,49,95,.85);color:#d3e3fd;}

/* ===== KPI sections (fold) + Performance Index Calculator + info overlay ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-sec{border:1px solid #e03131;border-radius:10px;margin:0 0 10px 0;background:#ffffff;overflow:visible;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-sec-h{width:100%;text-align:left;border:0;background:#f4cccc;color:#0d315f;font-weight:400;font-size:var(--fs-14);padding:8px 10px;border-radius:9px;cursor:pointer;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-sec-h:hover{background:#ffe3e3;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-sec-b{padding:10px;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-split{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-card{border:1px solid #f4b6b6;border-radius:8px;padding:10px;background:#fff;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-chart{position:relative;border:1px solid #f4b6b6;border-radius:8px;padding:6px;background:#fff;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-chart .pic-i{position:absolute;top:8px;right:10px;z-index:2;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-controls{display:grid;gap:8px;margin-bottom:8px;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-controls label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:var(--fs-12);color:#0d315f;}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .pic-controls input{width:92px;padding:4px 6px;border:1px solid #e03131;border-radius:6px;background:#f4cccc;color:#0d315f;font-size:var(--fs-12);}
body.tpl-agent :is(#fw-kpi,#fw-monitor) .kpi-i{cursor:pointer !important;}
/* info card: temporary back-info ribbon — translucent, italic 8px, no bold, dim text,
   auto-placed (flipped above when no room below). Not a first-level active card. */
body.tpl-agent #kpi_tip{position:fixed;z-index:9999;display:none;max-width:280px;background:rgba(13,49,95,.80);color:rgba(255,255,255,.72);border:1px solid rgba(255,168,168,.45);border-radius:6px;padding:6px 8px;font-family:var(--font);font-size:var(--fs-8);font-weight:400;font-style:italic;line-height:1.55;letter-spacing:.2px;white-space:pre-line;box-shadow:0 10px 24px rgba(0,0,0,.30);backdrop-filter:blur(3px);pointer-events:none;}

/* ===== Live Monitor — Operational Monitoring cards (flat, content-height,
   one card per entity, symbolic red heat, no nested cards) ===== */
body.tpl-agent #fw-monitor .mon-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0 0 12px;align-items:start;}
body.tpl-agent #fw-monitor .mon-tile{background:#fff;border:1px solid #e6ecf5;border-radius:10px;padding:10px 12px;box-shadow:0 1px 2px rgba(13,49,95,.06);}
body.tpl-agent #fw-monitor .mon-tile .lbl{font-size:var(--fs-10);color:#6b7a90;display:flex;align-items:center;gap:5px;white-space:nowrap;}
body.tpl-agent #fw-monitor .mon-tile .lbl::before{content:"";width:7px;height:7px;border-radius:2px;background:#c3d0e2;flex:0 0 auto;}
body.tpl-agent #fw-monitor .mon-tile .val{font-size:var(--fs-14);font-weight:400;color:#0d315f;line-height:1.12;margin-top:4px;}
body.tpl-agent #fw-monitor .mon-tile .sub{font-size:var(--fs-10);color:#93a1b5;margin-top:2px;}
body.tpl-agent #fw-monitor .mon-tile.hot{background:linear-gradient(135deg,#d92b52,#ff4d72);border-color:#d92b52;}
body.tpl-agent #fw-monitor .mon-tile.hot .lbl,body.tpl-agent #fw-monitor .mon-tile.hot .val,
body.tpl-agent #fw-monitor .mon-tile.hot .sub{color:#fff;}
body.tpl-agent #fw-monitor .mon-tile.hot .lbl::before{background:rgba(255,255,255,.7);}
body.tpl-agent #fw-monitor .mon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;align-items:start;}
body.tpl-agent #fw-monitor .mon-card{background:#fff;border:1px solid #e6ecf5;border-radius:12px;padding:12px;
  box-shadow:0 1px 3px rgba(13,49,95,.08);height:auto;align-self:start;}
body.tpl-agent #fw-monitor .mon-card.clickable{cursor:pointer;}
body.tpl-agent #fw-monitor .mon-card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
body.tpl-agent #fw-monitor .mon-card-t{font-size:var(--fs-14);font-weight:400;color:#0d315f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.tpl-agent #fw-monitor .mon-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
body.tpl-agent #fw-monitor .mon-dot.red{background:#e0355b;box-shadow:0 0 0 3px rgba(224,53,91,.16);}
body.tpl-agent #fw-monitor .mon-dot.amber{background:#e8a33d;}
body.tpl-agent #fw-monitor .mon-dot.green{background:#1e8e3e;}
body.tpl-agent #fw-monitor .mon-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
body.tpl-agent #fw-monitor .mon-stat .lbl{font-size:var(--fs-10);color:#6b7a90;display:flex;align-items:center;gap:4px;white-space:nowrap;}
body.tpl-agent #fw-monitor .mon-stat .lbl::before{content:"";width:6px;height:6px;border-radius:50%;background:#c3d0e2;flex:0 0 auto;}
body.tpl-agent #fw-monitor .mon-stat .val{font-size:var(--fs-14);font-weight:400;color:#0d315f;line-height:1.15;}
body.tpl-agent #fw-monitor .mon-stat .val.red{color:#e0355b;}
body.tpl-agent #fw-monitor .mon-stat .val.warm{color:#e8a33d;}
body.tpl-agent #fw-monitor .mon-sub{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px;}
body.tpl-agent #fw-monitor .mon-sub .box{background:#f4f7fb;border-radius:8px;padding:8px 10px;}
body.tpl-agent #fw-monitor .mon-sub .lbl{font-size:var(--fs-10);color:#6b7a90;white-space:nowrap;}
body.tpl-agent #fw-monitor .mon-sub .val{font-size:var(--fs-14);font-weight:400;color:#0d315f;}
body.tpl-agent #fw-monitor .mon-sub .val.red{color:#e0355b;}
body.tpl-agent #fw-monitor .mon-sub .val.green{color:#1e8e3e;}

/* chain monitor cards carry a unique rotating fill (like the dock tiles) */
body.tpl-agent #fw-monitor .mon-grid>.mon-card:nth-child(5n+1){background:#e7f0fd;}
body.tpl-agent #fw-monitor .mon-grid>.mon-card:nth-child(5n+2){background:#e4f4ea;}
body.tpl-agent #fw-monitor .mon-grid>.mon-card:nth-child(5n+3){background:#fdeedd;}
body.tpl-agent #fw-monitor .mon-grid>.mon-card:nth-child(5n+4){background:#ece7fb;}
body.tpl-agent #fw-monitor .mon-grid>.mon-card:nth-child(5n+5){background:#fbe6ee;}
body.tpl-agent #fw-monitor .mon-card.clickable:hover{box-shadow:0 4px 12px rgba(13,49,95,.18);}
body.tpl-agent #fw-monitor .mon-vendors{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:10px;}
body.tpl-agent #fw-monitor .mon-vendors .mon-card{background:#fff;border-color:#dbe4f0;padding:10px;}
body.tpl-agent #fw-monitor .mon-vendors .mon-stat .val{font-size:var(--fs-14);}
body.tpl-agent #fw-monitor .mon-vendors .mon-sub .val{font-size:var(--fs-14);}

/* ===== Live Monitor — AAA card (Orders | Head count), rate strip, chain tabs ===== */
body.tpl-agent #fw-monitor .mon-aaa{max-width:1080px;margin:0 auto 12px;}
body.tpl-agent #fw-monitor .mon-big{padding:14px 16px;}
body.tpl-agent #fw-monitor .mon-cols{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;}
body.tpl-agent #fw-monitor .mon-col-h{font-size:var(--fs-12);font-weight:400;letter-spacing:.6px;text-transform:uppercase;color:#6b7a90;margin-bottom:6px;}
body.tpl-agent #fw-monitor .mon-stats.cols4{grid-template-columns:repeat(4,1fr);gap:8px 10px;}
body.tpl-agent #fw-monitor .mon-stats.cols2{grid-template-columns:repeat(2,1fr);gap:8px 10px;}
body.tpl-agent #fw-monitor .mon-big .mon-stat .val{font-size:var(--fs-14);}
body.tpl-agent #fw-monitor .mon-stat .val.total{color:#0d315f;}
body.tpl-agent #fw-monitor .mon-stat .val.blue{color:#2563eb;}
body.tpl-agent #fw-monitor .mon-stat .val.assign{color:#1559c7;}
body.tpl-agent #fw-monitor .mon-stat .val.warm{color:#e8710a;}
body.tpl-agent #fw-monitor .mon-stat .val.green{color:#1e8e3e;}
body.tpl-agent #fw-monitor .mon-stat .val.red{color:#e0355b;}
body.tpl-agent #fw-monitor .mon-rates{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:12px;}
body.tpl-agent #fw-monitor .mon-rate{background:#f4f7fb;border:1px solid #e6ecf5;border-radius:9px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
body.tpl-agent #fw-monitor .mon-rate span{font-size:var(--fs-10);color:#6b7a90;white-space:nowrap;}
body.tpl-agent #fw-monitor .mon-rate b{font-size:var(--fs-14);color:#0d315f;}
body.tpl-agent #fw-monitor .mon-rate b.red{color:#e0355b;}
body.tpl-agent #fw-monitor .mon-rate b.green{color:#1e8e3e;}
body.tpl-agent #fw-monitor .mon-sched{margin-top:10px;font-size:var(--fs-12);color:#6b7a90;}
body.tpl-agent #fw-monitor .mon-verdict{font-weight:400;}
body.tpl-agent #fw-monitor .mon-tabbar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;}
body.tpl-agent #fw-monitor .mon-tab{border:1px solid #dbe4f0;background:#fff;border-radius:999px;padding:6px 14px;font-size:var(--fs-12);font-weight:400;color:#0d315f;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
body.tpl-agent #fw-monitor .mon-tab:hover{border-color:#ff6b00;}
body.tpl-agent #fw-monitor .mon-tab.on{background:#0d315f;border-color:#0d315f;color:#fff;}
body.tpl-agent #fw-monitor .mon-tab .mon-tabbad{font-style:normal;background:#e0355b;color:#fff;border-radius:999px;padding:0 6px;font-size:var(--fs-10);}
body.tpl-agent #fw-monitor .mon-tab.on .mon-tabbad{background:#ff6b00;}
body.tpl-agent #fw-monitor .mon-panel{max-width:1080px;margin:0 auto;}

/* ===== Picker Performance scorecards ===== */
body.tpl-agent #fw-pickerperf .pp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:2px 0 10px;}
body.tpl-agent #fw-pickerperf .pp-card{background:#fff;border:1px solid #e6ecf5;border-radius:9px;padding:8px 10px;box-shadow:0 1px 2px rgba(13,49,95,.06);}
body.tpl-agent #fw-pickerperf .pp-card .l{font-size:var(--fs-10);color:#6b7a90;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.tpl-agent #fw-pickerperf .pp-card .v{font-size:var(--fs-14);font-weight:400;color:#0d315f;margin-top:2px;}
body.tpl-agent #fw-pickerperf .pp-card .v.red{color:#e0355b;}
body.tpl-agent #fw-pickerperf .pp-card .v.green{color:#1e8e3e;}
body.tpl-agent #fw-pickerperf .pp-card .v.warm{color:#e8710a;}
body.tpl-agent #fw-pickerperf .pp-card .v.blue{color:#2563eb;}

/* editable cost-table grid inputs */
body.tpl-agent #fw-ordercost .ocfi,body.tpl-agent #fw-ordercost .occi{width:100%;border:1px solid #dbe4f0;border-radius:6px;padding:3px 5px;font-size:var(--fs-12);box-sizing:border-box;}

/* ===== Filter row: ONE straight row, label-on-top, controls mid-centered, CSV in the box ===== */
body.tpl-agent .bar.filter-panel{display:flex !important;flex-wrap:nowrap !important;align-items:flex-end !important;justify-content:center !important;gap:10px !important;padding:8px 10px !important;}
body.tpl-agent .bar.filter-panel .f{display:flex !important;flex-direction:column !important;align-items:stretch !important;justify-content:flex-end !important;gap:3px !important;min-width:0 !important;flex:1 1 0 !important;}
body.tpl-agent .bar.filter-panel .f>label{display:block !important;line-height:1.1 !important;margin:0 !important;}
body.tpl-agent .bar.filter-panel .f.kpi-reset-f{flex:0 0 auto !important;min-width:auto !important;}
body.tpl-agent .bar.filter-panel .ac,body.tpl-agent .bar.filter-panel .ac-q{width:100% !important;}
body.tpl-agent .bar.filter-panel .ac-chips{display:none !important;}

/* ===== RULE #1 compliance: filter controls FIT their content — never page-wide.
   Scoped to the dashboard filter panels (the app-wide flex:1 1 0 + width:100%
   stretched every field to fill the row). Controls now size to their value with
   a 40% cap (Google-style AutoFilter law), wrapping to at most two thin rows. ===== */
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog) .bar.filter-panel{flex-wrap:wrap !important;justify-content:flex-start !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog) .bar.filter-panel .f{flex:0 1 auto !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog) .bar.filter-panel .ac{width:auto !important;max-width:40% !important;min-width:110px !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog) .bar.filter-panel input,
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog) .bar.filter-panel select{width:auto !important;max-width:40% !important;min-width:110px !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog) .bar.filter-panel .ac-q{width:100% !important;}

/* ===== Attendance · Orders vs Cost — separated fold titles.
   Each folded title is its own dock-style title box, and the fill steps one
   lighter gray shade up per tile (1st darkest -> last lightest). ===== */
body.tpl-agent #fw-ordercost .kpi-sec{margin:0 0 12px 0;border:0;border-radius:0;background:transparent;overflow:visible;}
body.tpl-agent #fw-ordercost .kpi-sec-h{
  display:inline-flex;align-items:center;gap:8px;width:auto;max-width:100%;
  font-family:var(--font);font-size:var(--fs-12);font-weight:400;letter-spacing:.4px;
  color:#111;text-align:left;cursor:pointer;
  padding:10px 12px;border:1px solid #e03131;border-radius:9px;
}
body.tpl-agent #fw-ordercost .kpi-sec-h:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent #fw-ordercost .kpi-toolbar + .kpi-sec .kpi-sec-h{background:linear-gradient(180deg,#d2d2d2,#c2c2c2);}
body.tpl-agent #fw-ordercost .kpi-toolbar + .kpi-sec + .kpi-sec .kpi-sec-h{background:linear-gradient(180deg,#e0e0e0,#d0d0d0);}
body.tpl-agent #fw-ordercost .kpi-toolbar + .kpi-sec + .kpi-sec + .kpi-sec .kpi-sec-h{background:linear-gradient(180deg,#eeeeee,#dedede);}
body.tpl-agent #fw-ordercost .kpi-sec-b{padding:10px;margin-top:6px;border:1px solid #e03131;border-radius:9px;background:#ffffff;}

/* meta rows + per-column search (Attendance · Orders vs Cost) - terse, small, straight row */
body.tpl-agent #fw-ordercost #oc_out{position:relative;}
body.tpl-agent #fw-ordercost .oc-ribbon{position:absolute;top:0;right:2px;z-index:8;width:22px;height:18px;line-height:16px;text-align:center;border:1px solid #e03131;border-radius:6px;background:#fff;color:#0d315f;font-size:var(--fs-12);cursor:pointer;padding:0;}
body.tpl-agent #fw-ordercost .oc-ribbon:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent #fw-ordercost.oc-ribbon-hide .oc-tabs,
body.tpl-agent #fw-ordercost.oc-ribbon-hide .oc-meta,
body.tpl-agent #fw-ordercost.oc-ribbon-hide .kpi-toolbar,
body.tpl-agent #fw-ordercost.oc-ribbon-hide .oc-toolrow{display:none !important;}
body.tpl-agent #fw-ordercost .oc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:var(--fs-12);line-height:1.4;color:#6b7a90;margin:0 0 8px;}
body.tpl-agent #fw-ordercost .oc-meta .mi{white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-meta .mi b{color:#0d315f;margin-right:5px;font-weight:400;}

/* ===== KNOW Attendance Report (raw): thin column-filter ▾ row above the labels, then
   the labels, then the data. Columns keep a locked minimum width; the table auto-shrinks
   to the dragged width and only overflows (horizontal scrollbar) past that minimum. ===== */
body.tpl-agent #fw-ordercost #oc_raw_table{resize:horizontal;overflow:auto;min-width:320px;max-width:100%;}
body.tpl-agent #fw-ordercost #oc_raw_table table{width:100%;}
body.tpl-agent #fw-ordercost #oc_raw_table thead th{min-width:78px;}
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th{vertical-align:bottom;}
body.tpl-agent #fw-ordercost #oc_raw_table tbody td{min-width:78px;}
body.tpl-agent #fw-ordercost #oc_raw_table .oc-hc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25;max-width:170px;}

/* rows-per-page pager (10/20/50/100/200/All, default 10 — mirrors the KNOW UI) */
body.tpl-agent #fw-ordercost .oc-pager{display:flex;align-items:center;gap:6px;margin:6px 0 0;padding:4px 2px;font-size:var(--fs-12);color:#6b7a90;border-top:1px solid #eef1f6;}
body.tpl-agent #fw-ordercost .oc-pager label{font-weight:400;color:#6b7a90;margin:0;}
body.tpl-agent #fw-ordercost .oc-pager .sp{flex:1;}
body.tpl-agent #fw-ordercost .oc-pager #oc_raw_range{color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-pager select{border:1px solid #dbe4f0;border-radius:4px;padding:2px 4px;font-size:var(--fs-12);background:#fff;color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-pager .btn{padding:1px 9px;font-size:var(--fs-14);line-height:1.5;}
body.tpl-agent #fw-ordercost .oc-pager .btn:disabled{opacity:.35;cursor:default;}

/* Config table: two collapsible sections (Cost: Salary|CPO, Shifts: Mapping|Abbr) */
body.tpl-agent #fw-ordercost .oc-cfg-sec{margin:0 0 10px;}
body.tpl-agent #fw-ordercost .oc-cfg-h{display:inline-flex;align-items:center;gap:6px;border:1px solid #e03131;border-radius:8px;background:#fff;color:#0d315f;font-family:var(--font);font-size:var(--fs-12);padding:5px 12px;cursor:pointer;}
body.tpl-agent #fw-ordercost .oc-cfg-h:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent #fw-ordercost .oc-cfg-b{margin-top:8px;}
/* Config tables: titles in ONE straight, evenly-distributed line (one per column). */
body.tpl-agent #fw-ordercost .oc-cfg-2{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;align-items:start;}
body.tpl-agent #fw-ordercost .oc-cfg-t{font-size:var(--fs-12);font-weight:400;color:#0d315f;margin:0 0 5px;padding-bottom:3px;border-bottom:1px solid #eef1f6;text-align:center;letter-spacing:.02em;text-transform:none;}
body.tpl-agent #fw-ordercost .oc-cfg-h{display:block;width:100%;text-align:left;font-weight:400;font-size:var(--fs-12);}

/* floating options menu for the raw-report column filters (fixed -> escapes the table's
   overflow clipping; click shows the full list and lets you overwrite the query directly) */
.ocraw-menu{position:fixed;z-index:9999;display:none;background:#fff;border:1px solid #e03131;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.18);max-height:260px;overflow:auto;padding:2px;min-width:120px;}
body.tpl-agent .ocraw-menu .ocraw-mi{padding:4px 8px;font-size:var(--fs-12);color:#0d315f;cursor:pointer;white-space:nowrap;border-radius:5px;}
body.tpl-agent .ocraw-menu .ocraw-mi:hover,body.tpl-agent .ocraw-menu .ocraw-mi.hi{background:#ffe3e3;}
body.tpl-agent .ocraw-menu .ocraw-mi.on{font-weight:400;background:#fff1f1;}
body.tpl-agent .ocraw-menu .ocraw-empty{padding:4px 8px;font-size:var(--fs-12);color:#94a3b8;}

/* ===== border pass: single-pt red on the page + every internal tile; hover/active -> bright gold ===== */
/* the page (each dashboard card) */
body.tpl-agent .floatwin{border:1px solid #e03131 !important;}
body.tpl-agent .floatwin:hover{border-color:#ffd700 !important;box-shadow:0 0 0 1px #ffd700, 0 16px 38px rgba(43,4,6,.28) !important;}
body.tpl-agent .floatwin.open{border:1px solid #e03131 !important;}
body.tpl-agent .floatwin.open:hover{border-color:#ffd700 !important;box-shadow:0 0 0 1px #ffd700, 0 16px 38px rgba(43,4,6,.28) !important;}

/* ===== dashboard section rhythm: 12px between filter -> toolbar -> sections -> sections;
   folded section cards shrink to their header (no min-height, no retained body). ===== */
body.tpl-agent .kpi-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 12px 2px !important;}
body.tpl-agent .kpi-sec{margin:0 0 12px 0 !important;min-height:0 !important;height:auto !important;}
body.tpl-agent .kpi-sec:last-child{margin-bottom:0 !important;}
body.tpl-agent .kpi-sec-b{padding:12px !important;}
body.tpl-agent #fw-ordercost .fw-body{padding:12px !important;}

/* ===== Attendance · Orders vs Cost — KNOW Hours table: per-column filters,
   editable hour cells, and mapped status chips ===== */
body.tpl-agent #fw-ordercost .ocf{width:100%;box-sizing:border-box;border:1px solid #dbe4f0;border-radius:4px;padding:2px 4px;font-size:var(--fs-10);background:#fff;}
body.tpl-agent #fw-ordercost .ocf:hover{border-color:#e03131;}
body.tpl-agent #fw-ordercost .ocf:focus{border-color:#e03131;outline:none;}
body.tpl-agent #fw-ordercost .ocfr th{padding:2px 3px;background:#f7f7f7;}
body.tpl-agent #fw-ordercost .oc-edit{display:inline-block;min-width:18px;padding:1px 3px;border-bottom:1px dotted #b45309;cursor:text;}
body.tpl-agent #fw-ordercost .oc-edit:focus{outline:1px solid #e03131;background:#fffbe6;border-radius:3px;}
body.tpl-agent #fw-ordercost .oc-st{display:inline-block;padding:1px 6px;border-radius:6px;font-size:var(--fs-10);font-weight:400;white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-2nd{margin-top:2px;padding-top:2px;border-top:1px dashed #cbd5e1;font-size:var(--fs-10);color:#475569;}
body.tpl-agent #fw-ordercost .oc-2nd .oc-2ndlab{display:inline-block;margin-right:3px;font-size:var(--fs-8);color:#94a3b8;text-transform:uppercase;}
/* field rows: Hours = white/blue · Orders(+OT/UTR) = light-gray/black · Source/Recon = gray/red
   (!important: the app forces td{color:#265cb3 !important}; chips keep their own inline !important) */
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow.oc-row-h > td{background:#ffffff !important;color:#1d4ed8 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow.oc-row-h > td.ocg-kind{color:#1d4ed8 !important;font-weight:400;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow.oc-row-ord > td{background:#f1f5f9 !important;color:#0d1117 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow.oc-row-ord > td.ocg-kind{color:#0d1117 !important;font-weight:400;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow.oc-row-src > td{background:#e2e8f0 !important;color:#c0392b !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow.oc-row-src > td.ocg-kind{color:#c0392b !important;font-weight:400;}
/* calculator TOTALS on the right (columns): neutral light fill, independent of the field row */
body.tpl-agent #fw-ordercost .oc-sheet .oc-frow > td.ocg-met2{background:#eef2f8 !important;color:#0d315f !important;font-weight:400;}
body.tpl-agent #fw-ordercost .oc-sheet thead th.ocg-met2{background:#dde7f5 !important;color:#0d315f !important;}
body.tpl-agent #fw-ordercost .oc-mismatch{display:inline-block;margin-left:4px;padding:0 4px;border-radius:4px;background:#e03131;color:#fff !important;font-size:var(--fs-10);font-weight:400;white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-na{color:#94a3b8;background:#f1f5f9;}

/* Attendance raw-report action column + missing table */
body.tpl-agent #fw-ordercost .oc-raw-opt{border:1px solid #dbe4f0;border-radius:4px;padding:1px 2px;font-size:var(--fs-10);background:#fff;}
body.tpl-agent #fw-ordercost .oc-raw-opt:focus{border-color:#e03131;outline:none;}
body.tpl-agent #fw-ordercost .oc-miss summary{font-weight:400;}

/* ===== Attendance · Orders vs Cost — compact folded tiles, export overlay, live run log ===== */
body.tpl-agent #fw-ordercost .kpi-sec-h{display:inline-flex !important;width:fit-content !important;max-width:100% !important;padding:6px 14px !important;}
body.tpl-agent #fw-ordercost .oc-exp{position:relative;display:inline-block;}
body.tpl-agent #fw-ordercost .oc-exp-menu{display:none;position:absolute;right:0;top:110%;z-index:60;background:#fff;border:1px solid #e03131;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.18);min-width:130px;padding:4px;}
body.tpl-agent #fw-ordercost .oc-exp-menu div{padding:6px 10px;font-size:var(--fs-12);cursor:pointer;border-radius:5px;color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-exp-menu div:hover{background:#ffe3e3;}
body.tpl-agent .oc-runlog{display:none;position:fixed;right:18px;top:74px;z-index:9999;width:560px;max-width:64vw;background:rgba(16,32,54,.5);backdrop-filter:blur(3px);border:1px solid rgba(255,215,0,.55);border-radius:10px;box-shadow:0 0 0 1px rgba(255,215,0,.15),0 12px 34px rgba(0,0,0,.55);padding:8px;font-size:var(--fs-12);color:#39FF14;user-select:text;-webkit-user-select:text;}
body.tpl-agent .oc-runlog-h{color:#FFD700;margin-bottom:6px;font-size:var(--fs-12);font-weight:400;text-shadow:0 0 8px rgba(255,215,0,.45);}
body.tpl-agent .oc-runlog-h button{margin-left:6px;padding:0 8px;}
body.tpl-agent .oc-runlog table{width:max-content;min-width:100%;border-collapse:collapse;}
body.tpl-agent .oc-runlog th{color:#FFD700;font-weight:400;text-align:left;border-bottom:1px solid rgba(255,215,0,.4);padding:3px 8px;white-space:nowrap;position:sticky;top:0;background:rgba(16,32,54,.94);}
body.tpl-agent .oc-runlog td{padding:3px 8px;color:#39FF14;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap;user-select:text;}
body.tpl-agent .oc-runlog tbody tr:nth-child(even) td{color:#5b8cff;}
body.tpl-agent #fw-ordercost .oc-toolrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0;}
body.tpl-agent #fw-ordercost .oc-toolrow .sp{flex:1;}
/* raw-report actions: the write/export trio rides the meta line (right side), and the
   filter-scoped row (bulk / apply / clear) sits under it. One control height (26px). */
body.tpl-agent #fw-ordercost .oc-raw-acts{margin-left:auto;display:inline-flex;align-items:center;gap:6px;}
body.tpl-agent #fw-ordercost .oc-raw-tools{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin:0 0 6px;}
body.tpl-agent #fw-ordercost .oc-raw-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
body.tpl-agent #fw-ordercost .oc-raw-row>.btn,
body.tpl-agent #fw-ordercost .oc-raw-row .oc-exp>.btn,
body.tpl-agent #fw-ordercost .oc-raw-acts>.btn,
body.tpl-agent #fw-ordercost .oc-raw-acts .oc-exp>.btn{height:26px;min-height:26px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;line-height:1.1;font-size:var(--fs-12);}
body.tpl-agent #fw-ordercost .oc-raw-row .btn.oc-know,
body.tpl-agent #fw-ordercost .oc-raw-acts .btn.oc-know,
body.tpl-agent #fw-ordercost .oc-raw-acts .btn.oc-import,
body.tpl-agent #fw-ordercost .oc-raw-acts .btn.oc-export{color:#fff !important;}
body.tpl-agent #fw-ordercost .oc-raw-acts .btn.oc-import{background:#ff7a00 !important;border-color:#ff7a00 !important;}
body.tpl-agent #fw-ordercost .oc-raw-acts .btn.oc-export{background:#1f9d4d !important;border-color:#1f9d4d !important;}
body.tpl-agent #fw-ordercost .oc-raw-row #oc_bulk_action{width:auto !important;min-width:0 !important;max-width:none !important;height:26px;padding:0 8px;font-size:var(--fs-12);background:#cfe8ff !important;border:1px solid #7fb6e6 !important;color:#0d315f !important;}
body.tpl-agent #fw-ordercost .oc-raw-tools .oc-exp,
body.tpl-agent #fw-ordercost .oc-raw-acts .oc-exp{display:inline-flex;align-items:center;position:relative;}
/* the raw grid's column filter is the SAME thin ▾ row ABOVE the labels (rule 22:
   group -> filter -> headers -> data), forest green at the sort caret's weight */
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th{padding:0;background:#fff;border:0;height:15px;}
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow .ocs-colf{width:100%;height:15px;line-height:13px;font-size:var(--fs-9);border:0;border-radius:0;background:transparent;color:#2e7d32;cursor:pointer;padding:0;}
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow .ocs-colf:hover{background:#eaf6ee;}
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow .ocs-colf.on{background:#2e7d32;color:#fff;}
/* FROZEN: both header rows stick, and the identity columns (SN · Identifier · Name)
   stay put while the rest scrolls — the same attribute the report grid has. */
body.tpl-agent #fw-ordercost #oc_raw_table .oc-colh{position:absolute;top:0;right:-3px;width:11px;height:100%;cursor:col-resize;z-index:12;touch-action:none;}
body.tpl-agent #fw-ordercost #oc_raw_table .oc-colh:hover{background:linear-gradient(90deg,transparent 5px,#e03131 5px,#e03131 7px,transparent 7px);}
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th{position:sticky;top:0;z-index:7;}
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th{position:sticky;top:15px;z-index:6;background:#fff;}
body.tpl-agent #fw-ordercost #oc_raw_table tbody td:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table tbody td:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table tbody td:nth-child(3),
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th:nth-child(3),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(3){position:sticky;z-index:5;background:#fff;border-right:1px solid #eef1f6;}
body.tpl-agent #fw-ordercost #oc_raw_table tbody td:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(1){left:0;width:34px;min-width:34px;max-width:34px;}
body.tpl-agent #fw-ordercost #oc_raw_table tbody td:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(2){left:34px;width:96px;min-width:96px;max-width:96px;}
body.tpl-agent #fw-ordercost #oc_raw_table tbody td:nth-child(3),
body.tpl-agent #fw-ordercost #oc_raw_table tr.ocs-frow th:nth-child(3),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(3){left:130px;width:170px;min-width:170px;max-width:170px;box-shadow:2px 0 0 -1px #eef1f6;}
body.tpl-agent #fw-ordercost #oc_raw_table thead tr.ocs-frow th:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr.ocs-frow th:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr.ocs-frow th:nth-child(3),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(1),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(2),
body.tpl-agent #fw-ordercost #oc_raw_table thead tr:nth-child(2) th:nth-child(3){z-index:8;}
/* even 6px rhythm above the first row, between rows and below the second row */
body.tpl-agent #fw-ordercost #oc_raw_box .oc-meta{margin:0 0 6px;}

/* toasts: single straight row (never wrap) with drag/resize */
body.tpl-agent .toast{white-space:nowrap;max-width:none;width:auto;max-width:calc(100vw - 32px);overflow:auto;resize:both;}
/* floating run-log dialogue: draggable + resizable */
body.tpl-agent .oc-runlog{display:flex;flex-direction:column;height:420px;max-height:82vh;min-height:180px;resize:both;overflow:hidden;}
body.tpl-agent .oc-runlog>.oc-runlog-h{flex:0 0 auto;}
body.tpl-agent .oc-runlog .oc-runlog-body{flex:1 1 auto;min-height:0;overflow:auto;}

/* ===== Timesheet: Google-Sheets-style grid (borders, header fills, alignment) ===== */
/* ===== Timesheet grid: outer block border, boxed header + footer, borderless body,
   borderless/plain gap column + gap row, no-wrap identity, drag-resizable column/row ===== */
body.tpl-agent #fw-ordercost .oc-sheet{border-collapse:collapse;background:#fff;}
body.tpl-agent #fw-ordercost .oc-sheet thead th{border:1px solid #000;background:#fff;color:#000 !important;font-weight:400;text-align:center;padding:3px 7px;position:relative;vertical-align:middle;}
body.tpl-agent #fw-ordercost .oc-sheet tbody td{border:0;border-bottom:1px solid #e0a96d;background:#fff;color:#111;padding:3px 7px;white-space:nowrap;vertical-align:middle;}
body.tpl-agent #fw-ordercost .oc-sheet tfoot td{border:1px solid #000;background:#f7dede;font-weight:400;color:#111;padding:4px 7px;}
body.tpl-agent #fw-ordercost .oc-sheet td.sn,body.tpl-agent #fw-ordercost .oc-sheet th.sn{width:36px;text-align:center;position:relative;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-gap{border:0 !important;background:#ececec !important;width:9px;padding:0 !important;}
body.tpl-agent #fw-ordercost .oc-sheet tr.oc-rowgap td{border:0 !important;background:#ececec !important;height:10px;padding:0 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-ed-l{border-left:2px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-ed-r{border-right:2px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-ed-t{border-top:2px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-ed-b{border-bottom:2px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-nowrap{white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-sheet .ocf{border:0 !important;background:transparent !important;box-shadow:none !important;width:100%;box-sizing:border-box;font-size:var(--fs-12);text-align:center;padding:0;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-blank{border:0 !important;background:#fff !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-zero{opacity:.5;text-decoration:line-through;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-colf{position:absolute;top:0;right:0;width:15px;height:14px;line-height:13px;font-size:var(--fs-10);border:0;border-radius:0 0 0 6px;background:#e9eef7;color:#0d315f;cursor:pointer;padding:0;z-index:7;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-colf:hover{background:#e03131;color:#fff;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-colf.on{background:#0d315f;color:#fff;}
/* Orders-cost column filter menu — SAME compact model as the shared .ocs-colmenu (Rule #5):
   column-aligned popup, sticky search, All/select-shown/none, left-aligned one-per-row list,
   small checkbox (the app-wide input rule would otherwise stretch it). */
.ocf-menu{position:fixed;z-index:10000;display:none;background:#fff;border:1px solid #e03131;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.18);padding:4px;min-width:220px;max-width:320px;max-height:70vh;overflow:auto;}
.ocf-menu .ocf-search{width:100%!important;height:24px!important;box-sizing:border-box;border:1px solid #dbe4f0;border-radius:6px;padding:2px 6px!important;font-size:var(--fs-12);margin:0 0 4px!important;position:sticky;top:0;z-index:2;background:#fff;}
.ocf-menu .ocf-act{display:flex;gap:10px;padding:2px 6px 5px;font-size:var(--fs-10);color:#0d315f;border-bottom:1px solid #eef1f6;margin:0 0 4px;position:sticky;top:24px;z-index:2;background:#fff;}
.ocf-menu .ocf-act b,.ocf-menu .ocf-act span{cursor:pointer;}
.ocf-menu .ocf-act span{color:#c92a2a;}
.ocf-menu .ocf-list{display:block;overflow:auto;max-height:calc(70vh - 58px);}
/* date columns: a real range picker, same popup skin */
.ocf-menu .ocf-title{color:#0d315f;font-size:var(--fs-12);font-weight:400;}
.ocf-menu .ocf-dates{display:flex;align-items:center;gap:6px;padding:2px 2px 4px;}
.ocf-menu .ocf-dates input[type=date]{font-family:inherit;font-size:var(--fs-12);color:#0d315f;background:#fff;border:1px solid #dbe4f0;border-radius:6px;padding:2px 6px;}
.ocf-menu .ocf-dates input[type=date]:focus{border-color:#e03131;outline:none;}
.ocf-menu .ocf-top{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 4px;}
.ocf-menu .ocf-mi{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:6px;margin:0!important;padding:3px 8px!important;font-size:var(--fs-12)!important;font-weight:400;line-height:1.35!important;height:auto!important;min-height:0!important;white-space:nowrap;border-radius:5px;width:100%;box-sizing:border-box;overflow:hidden;text-align:left;color:#0d315f;cursor:pointer;}
.ocf-menu .ocf-mi:hover{background:#ffe3e3;}
.ocf-menu .ocf-mi input[type=checkbox]{width:13px!important;height:13px!important;min-width:0!important;flex:0 0 auto;margin:0!important;padding:0!important;accent-color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-addcol{width:24px;text-align:center;color:#888;cursor:pointer;font-weight:400;border:0 !important;padding:3px;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-addrow td{color:#888;cursor:pointer;font-weight:400;text-align:center;border:0 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-colh{position:absolute;top:0;right:-3px;width:11px;height:100%;cursor:col-resize;z-index:30;touch-action:none;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-colh:hover{background:linear-gradient(90deg,transparent 5px,#e03131 5px,#e03131 7px,transparent 7px);}
body.tpl-agent #fw-ordercost .oc-sheet .oc-rowh{position:absolute;left:0;bottom:-3px;width:100%;height:9px;cursor:row-resize;z-index:30;touch-action:none;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-rowh:hover{background:linear-gradient(180deg,transparent 3px,#e03131 3px,#e03131 5px,transparent 5px);}

/* ===== Timesheet main grid only (scoped .oc-ts): no-wrap columns auto-fit the content,
   light-blue filter chips, double vertical / single horizontal range borders, borderless gaps. ===== */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts{width:auto;min-width:100%;}
/* once the user resizes a column we switch to fixed layout so col widths are authoritative */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts.oc-colfixed{table-layout:fixed;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts thead th{white-space:nowrap;border:0;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts tfoot td{border:0;white-space:nowrap;}
/* identity block: outer border only, no inner lines */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-l{border-left:1px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-r{border-right:1px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-t{border-top:1px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-b{border-bottom:1px solid #000 !important;}
/* metrics / orders+CPO group headers: double vertical at each boundary, single top+bottom */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-grp{border-top:1px solid #000 !important;border-bottom:1px solid #000 !important;border-left:3px double #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-grp-r{border-right:3px double #000 !important;}
/* date-range row 1 (day numbers): double vertical, single top+bottom */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-dr1{border-top:1px solid #000 !important;border-bottom:1px solid #000 !important;border-left:3px double #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-dr1-r{border-right:3px double #000 !important;}
/* date-range row 2 (weekdays): single-pt boxed */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-dr2{border:1px solid #000 !important;}
/* footer ranges keep the same vertical/horizontal rules */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-fs{border-top:1px solid #000 !important;border-bottom:1px solid #000 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts tfoot td.oc-total{background:#d6e9ff !important;}
/* gap columns: vertical single only, no horizontal */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-gap{border:0 !important;border-left:1px solid #000 !important;border-right:1px solid #000 !important;background:#ececec !important;width:9px;padding:0 !important;}
/* filter row: light-blue highlight chips */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .ocf{border:1px solid #9cc4f0 !important;background:#e8f2ff !important;border-radius:10px;box-shadow:none !important;width:100%;min-width:0;box-sizing:border-box;font-size:var(--fs-12);text-align:center;padding:2px 6px;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .ocf:focus{border-color:#e03131 !important;outline:none;}

/* ===== field/column controls: group hide-show, freeze, editable; foldable sub-tables ===== */
body.tpl-agent #fw-ordercost .oc-cols{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;}
body.tpl-agent #fw-ordercost .oc-chk{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-10);color:#0d315f;cursor:pointer;user-select:none;}
body.tpl-agent #fw-ordercost .oc-chk input{margin:0;}
body.tpl-agent #fw-ordercost .oc-sub-h{display:inline-flex;align-items:center;gap:6px;width:auto;max-width:100%;text-align:left;margin:10px 0 4px;padding:5px 12px;border:1px solid #e03131;border-radius:8px;background:#fff;color:#0d315f;font-size:var(--fs-12);cursor:pointer;}
body.tpl-agent #fw-ordercost .oc-sub-h:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
/* hide/show each block (and its adjacent vertical blank column) */
body.tpl-agent #oc_out.oc-hide-id .ocg-id, body.tpl-agent #oc_out.oc-hide-id .ocg-gap-a,
body.tpl-agent #oc_out.oc-hide-date .ocg-date, body.tpl-agent #oc_out.oc-hide-date .ocg-gap-a, body.tpl-agent #oc_out.oc-hide-date .ocg-gap-b,
body.tpl-agent #oc_out.oc-hide-met .ocg-met, body.tpl-agent #oc_out.oc-hide-met .ocg-gap-b, body.tpl-agent #oc_out.oc-hide-met .ocg-gap-c,
body.tpl-agent #oc_out.oc-hide-ord .ocg-ord, body.tpl-agent #oc_out.oc-hide-ord .ocg-gap-c{display:none !important;}
/* freeze: header rows stay put on vertical scroll; identity cells stick on horizontal scroll (left set in JS) */
body.tpl-agent #oc_out .oc-sheet.oc-ts.oc-frozen thead th{position:sticky;top:0;z-index:4;background:#fff;}
body.tpl-agent #oc_out .oc-sheet.oc-ts.oc-frozen .ocg-id{background:#fff;}
body.tpl-agent #oc_out .oc-sheet.oc-ts.oc-frozen tfoot td.ocg-id{background:#f7dede;}
body.tpl-agent #oc_out .oc-sheet.oc-ts.oc-frozen tfoot td.oc-total{background:#d6e9ff !important;}
/* grouped timesheet export menu (format / report / group by) */
body.tpl-agent #fw-ordercost .oc-exp-menu .oc-exp-f{display:flex;align-items:center;gap:6px;padding:4px 8px;color:#0d315f;font-size:var(--fs-12);}
body.tpl-agent #fw-ordercost .oc-exp-menu .oc-exp-f span{flex:0 0 56px;color:#6b7a90;}
body.tpl-agent #fw-ordercost .oc-exp-menu .oc-exp-f select{flex:1;min-width:0;border:1px solid #dbe4f0;border-radius:4px;padding:1px 4px;font-size:var(--fs-12);background:#fff;color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-exp-menu .oc-exp-go{padding:4px 8px;text-align:right;}
body.tpl-agent #fw-ordercost #oc_ts_exp_menu{width:280px;min-width:280px;}
body.tpl-agent #fw-ordercost #oc_ts_exp_menu .oc-exp-f select{min-width:170px;}
/* one selector, one active panel at a time (Report / Config / raw / Missing) */
body.tpl-agent #fw-ordercost .oc-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px 2px;}
body.tpl-agent #fw-ordercost .oc-tab{border:1px solid #e03131;border-radius:8px;background:#fff;color:#0d315f;font-size:var(--fs-12);padding:6px 14px;cursor:pointer;}
body.tpl-agent #fw-ordercost .oc-tab:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent #fw-ordercost .oc-tab.active{background:#0d315f;border-color:#0d315f;color:#fff;font-weight:400;}
body.tpl-agent #fw-ordercost .oc-panel{margin:0;}
/* meta bar: metrics left, controls right-aligned in one straight line */
body.tpl-agent #fw-ordercost .oc-meta .oc-right{margin-left:auto;display:inline-flex;align-items:center;gap:16px;flex-wrap:wrap;}
body.tpl-agent #fw-ordercost .oc-cols{display:inline-flex;align-items:center;gap:10px;flex-wrap:nowrap;white-space:nowrap;}
/* action toolbar: right-aligned, even buttons, 2px space above */
body.tpl-agent #fw-ordercost .kpi-toolbar.oc-toolbar-right{justify-content:flex-end;margin:2px 0 12px 2px !important;}
body.tpl-agent #fw-ordercost .kpi-toolbar .oc-act{min-width:108px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:400;}
/* 'Reports' group holding the nested sub-tabs */
body.tpl-agent #fw-ordercost .oc-tabs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px 2px;}
body.tpl-agent #fw-ordercost .oc-tab-parent{background:#0d315f;border-color:#0d315f;color:#fff;font-weight:400;cursor:default;}
body.tpl-agent #fw-ordercost .oc-tab-parent:hover{border-color:#0d315f;box-shadow:none;}
body.tpl-agent #fw-ordercost .oc-subtabs{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;padding-left:10px;border-left:2px solid #dbe4f0;}
/* ONE control row: reports · source · table | Export · Load · Sync · Pull (fit-to-content) */
body.tpl-agent #fw-ordercost .oc-ctlrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-start;margin:2px 0 8px!important;}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-tag{font-size:var(--fs-10);text-transform:uppercase;letter-spacing:.03em;color:#0d315f;opacity:.72;}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-rep-sel{width:auto!important;min-width:0!important;max-width:200px;height:26px;font-size:var(--fs-12);font-weight:400;padding:0 4px;border:1px solid #e03131;border-radius:6px;background:#fff;color:#0d315f;cursor:pointer;}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-rep-sel:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-sp{flex:1 1 auto;}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-exp{cursor:pointer;border:1px solid #e03131;border-radius:6px;padding:0 10px;height:26px;display:inline-flex;align-items:center;font-size:var(--fs-12);color:#0d315f;background:#fff;}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-exp:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent #fw-ordercost .oc-ctlrow .btn{height:26px;min-height:26px;font-size:var(--fs-12);padding:0 10px;}
/* table-level tools (inside a report panel): report type + Export/Snap */
body.tpl-agent #fw-ordercost .oc-tbltools{display:flex;align-items:center;gap:6px;margin:0 0 6px!important;}
body.tpl-agent #fw-ordercost .oc-tbltools .oc-sp{flex:1 1 auto;}
body.tpl-agent #fw-ordercost .oc-tbltools .oc-tag{font-size:var(--fs-10);text-transform:uppercase;color:#0d315f;opacity:.72;}
body.tpl-agent #fw-ordercost .oc-tbltools .oc-rep-sel{width:auto!important;min-width:0!important;max-width:220px;height:26px;font-size:var(--fs-12);font-weight:400;padding:0 4px;border:1px solid #e03131;border-radius:6px;background:#fff;color:#0d315f;cursor:pointer;}
body.tpl-agent #fw-ordercost .oc-tbltools .oc-exp{cursor:pointer;border:1px solid #e03131;border-radius:6px;padding:0 10px;height:26px;display:inline-flex;align-items:center;font-size:var(--fs-12);color:#0d315f;background:#fff;}
body.tpl-agent #fw-ordercost .oc-tbltools .oc-exp:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
body.tpl-agent .oc-exp-menu{position:fixed;z-index:12000;background:#fff;border:1px solid #e03131;border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.2);padding:4px;display:flex;flex-direction:column;min-width:150px;}
body.tpl-agent .oc-exp-menu button{text-align:left;border:0;background:#fff;color:#0d315f;font-size:var(--fs-12);padding:5px 8px;border-radius:5px;cursor:pointer;}
body.tpl-agent .oc-exp-menu button:hover{background:#ffe3e3;}
body.tpl-agent .oc-exp-menu select{font-size:var(--fs-12);height:22px;margin:2px 0;border:1px solid #dbe4f0;border-radius:5px;}
body.tpl-agent #fw-ordercost .oc-rep-sel:hover{border-color:#ffd700;box-shadow:inset 0 0 0 1px #ffd700;}
/* CSV paste / import controls in the config tables */
body.tpl-agent #fw-ordercost .oc-imp{margin-top:8px;display:flex;flex-direction:column;gap:6px;}
body.tpl-agent #fw-ordercost .oc-paste{width:100%;min-height:52px;font-family:var(--font);font-size:var(--fs-12);border:1px solid #cbd5e1;border-radius:6px;padding:6px;resize:vertical;}
body.tpl-agent #fw-ordercost .oc-imp-btns{display:flex;gap:8px;flex-wrap:wrap;}
body.tpl-agent #fw-ordercost .oc-file{position:relative;overflow:hidden;display:inline-flex;align-items:center;}
body.tpl-agent #fw-ordercost .oc-file input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;}
/* Studio: use the card's full space, wrap the source bar, drop the engine's intro note */
body.tpl-agent #fw-ordercost #oc_studio_out .oc-meta{white-space:normal !important;flex-wrap:wrap;margin-bottom:6px;}
/* One scroll: the CARD scrolls the report (so drag-expanding shows more rows);
   the inner grid region keeps only the horizontal scroll. Sticky header follows the card. */
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-scroll{max-height:none;min-height:0;overflow-x:auto;overflow-y:visible;}
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-note{display:none;}
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-blk h4{margin-top:2px;}
/* Report table: the toolbar is always available (freeze/hide/show by selection,
   field/unit groups, sort, filter, export) — it is compact in view mode. */
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-bar{display:flex;}
/* Compact config rows: source + field/unit group bars */
body.tpl-agent #fw-ordercost .oc-src-cfg,body.tpl-agent #fw-ordercost .oc-pivctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:var(--fs-12);margin:3px 0;}
body.tpl-agent #fw-ordercost .oc-src-cfg select,body.tpl-agent #fw-ordercost .oc-src-cfg .btn{height:22px;font-size:var(--fs-10);width:auto;}
/* Config = TAB BUTTONS in ONE thin horizontal row (never a page-wide stacked bridge). */
body.tpl-agent #fw-ordercost .oc-cfg-tabs{display:flex;flex-wrap:nowrap;gap:4px;align-items:center;margin:0 0 6px;padding-bottom:4px;border-bottom:1px solid #eef1f6;overflow-x:auto;}
body.tpl-agent #fw-ordercost .oc-cfg-tab{height:22px;min-height:22px;padding:0 12px;border:1px solid #cbd5e1;border-radius:6px;background:#fbfcfe;color:#0d315f;font-size:var(--fs-12);line-height:1;cursor:pointer;white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-cfg-tab:hover{border-color:#e03131;}
body.tpl-agent #fw-ordercost .oc-cfg-tab.active{background:#0d315f;color:#fff;border-color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-cfg-panes{margin:0;padding:0;}
body.tpl-agent #fw-ordercost .oc-cfg-foot{display:flex;align-items:center;gap:8px;margin:10px 0 2px;padding-top:8px;border-top:1px solid #eef1f6;}
body.tpl-agent #fw-ordercost .oc-cfg-foot .btn{height:24px;font-size:var(--fs-12);width:auto;}
/* Studio: first-layer date filters fold away; the toggle brings them back */
body.tpl-agent #fw-ordercost.oc-topctl-off #oc_topctl{display:none !important;}
body.tpl-agent #fw-ordercost .oc-topctl-toggle{width:26px!important;min-width:26px;height:26px;padding:0!important;}
body.tpl-agent #fw-ordercost .oc-sheetlink{display:none;color:#0d315f;font-weight:400;font-size:var(--fs-12);text-decoration:underline;margin-left:4px;}
body.tpl-agent #fw-ordercost .oc-studio-bar .oc-tosheet{background:#0d315f;color:#fff;border-color:#0d315f;}
/* Pivot report: title band, per-column filter row (outside cells), dd row, ddd row */
body.tpl-agent #fw-ordercost .oc-piv .oc-frow{background:#eef2f8;padding:2px 4px;font-weight:400;}
body.tpl-agent #fw-ordercost .oc-piv .oc-frow .ocf{width:auto!important;min-width:86px;height:22px;font-size:var(--fs-10);}
body.tpl-agent #fw-ordercost .oc-piv .oc-wd{background:#f8faff;}
body.tpl-agent #fw-ordercost .oc-piv tr.oc-piv-top td{border-top:2px solid #000;}
body.tpl-agent #fw-ordercost .oc-piv td.oc-diff{box-shadow:inset 0 0 0 2px #e03131;font-weight:400;}
body.tpl-agent #fw-ordercost .oc-piv-lb{display:inline-block;font-size:var(--fs-10);color:#0d315f;background:#eef2f8;border:1px solid #dbe4f0;border-radius:3px;padding:0 3px;margin-right:4px;}
body.tpl-agent #fw-ordercost .oc-piv .oc-pivf{background:#eef2f8;border:1px solid #dbe4f0;border-radius:5px;font-size:var(--fs-10);padding:1px 6px;cursor:pointer;color:#0d315f;height:22px;width:auto!important;min-width:0;}
body.tpl-agent #fw-ordercost .oc-piv .oc-pivf:hover{border-color:#e03131;}
body.tpl-agent #oc_pivf_menu{max-height:60vh;}
/* Schedule Sheet border law: boxed HEADER cells only; data rows get thin row rules (no grid boxes);
   blank/gap header columns keep the outer edge only. */
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-table thead th{border:1px solid #000;}
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-table thead th.ocs-gap{border:0;border-left:1px solid #000;border-right:1px solid #000;}
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-table tbody td{border:0;border-bottom:1px solid #e0a96d;}
body.tpl-agent #fw-ordercost #oc_studio_host .ocs-table tbody td.ocs-gap{border:0;}
/* ---- RULE #1 spacing: controls fit their content, minimal font/height; chrome is 2 thin rows ---- */
body.tpl-agent #fw-ordercost .oc-studio-top{justify-content:flex-end;gap:6px;margin:0 0 4px!important;}
body.tpl-agent #fw-ordercost .oc-studio-tools{gap:4px;margin:0 0 6px!important;}
body.tpl-agent #fw-ordercost .oc-studio-top .oc-tag,body.tpl-agent #fw-ordercost .oc-studio-tools .oc-tag{font-size:var(--fs-10);}
body.tpl-agent #fw-ordercost .oc-studio-top .btn,body.tpl-agent #fw-ordercost .oc-studio-tools .btn,
body.tpl-agent #fw-ordercost .oc-studio-top select,body.tpl-agent #fw-ordercost .oc-studio-tools select{width:auto!important;height:22px;min-height:22px;padding:0 7px;font-size:var(--fs-10);border-radius:6px;}
body.tpl-agent #fw-ordercost .oc-studio-top select,body.tpl-agent #fw-ordercost .oc-studio-tools select{max-width:170px;padding:0 3px;}
body.tpl-agent #fw-ordercost #oc_studio_note{font-size:var(--fs-10);}
body.tpl-agent #fw-ordercost .oc-src-btn b{color:#0d315f;}
/* source picker modal */
body.tpl-agent .oc-src-modal{position:fixed;inset:0;z-index:12000;display:none;align-items:flex-start;justify-content:center;background:rgba(10,14,22,.35);}
body.tpl-agent .oc-src-modal.open{display:flex;}
body.tpl-agent .oc-src-panel{margin-top:12vh;background:#fff;border:1px solid #e03131;border-radius:12px;box-shadow:0 18px 44px rgba(0,0,0,.25);min-width:320px;max-width:min(560px,92vw);padding:12px;font-family:inherit;}
body.tpl-agent .oc-src-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#0d315f;font-size:var(--fs-14);}
body.tpl-agent .oc-src-kinds{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
body.tpl-agent .oc-src-panel .btn{width:auto!important;height:24px;min-height:24px;padding:0 10px;font-size:var(--fs-12);}
body.tpl-agent .oc-src-panel input{height:24px;min-height:24px;font-size:var(--fs-12);padding:0 8px;width:100%;box-sizing:border-box;}
body.tpl-agent .oc-src-panel .oc-src-row{display:flex;gap:6px;}
body.tpl-agent .oc-src-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;max-height:40vh;overflow:auto;}
body.tpl-agent .oc-src-tab{font-size:var(--fs-12);white-space:nowrap;}
/* reduced footer/pager */
body.tpl-agent #fw-ordercost .oc-pager{font-size:var(--fs-10);margin:3px 0 0;align-items:center;}
body.tpl-agent #fw-ordercost .oc-pager select{width:auto!important;height:18px;min-height:18px;font-size:var(--fs-10);padding:0 2px;border-radius:5px;text-align:center;}
/* ZERO everywhere (dashboard-wide): faded orange text, struck through. */
body.tpl-agent #fw-ordercost .oc-zero,body.tpl-agent #fw-ordercost .ocs-zero{color:#c98a2b !important;opacity:.55;text-decoration:line-through;}
/* Raw-Know-Hours grid: thin, column-aligned filter row above the header labels (one ▾ per column). */
body.tpl-agent #fw-ordercost #oc_out .oc-sheet thead .oc-filtrow th.ocf-cell{height:16px;padding:0!important;background:#eef2f8;text-align:center;}
body.tpl-agent #fw-ordercost #oc_out .oc-sheet thead .oc-filtrow .oc-colf{width:100%;height:14px;font-size:var(--fs-10);line-height:1;border:0;border-radius:0;background:transparent;color:#0d315f;cursor:pointer;padding:0;}
body.tpl-agent #fw-ordercost #oc_out .oc-sheet thead .oc-filtrow .oc-colf:hover{background:#f1d6d6;}
body.tpl-agent #fw-ordercost #oc_out .oc-sheet thead .oc-filtrow .oc-colf.on{background:#0d315f;color:#fff;}
/* Frozen/scroll painting order: the header must stay ABOVE the scrolling body. */
body.tpl-agent #fw-ordercost #oc_out .oc-sheet thead{position:relative;z-index:6;}
body.tpl-agent #fw-ordercost #oc_out .oc-sheet tbody{position:relative;z-index:1;}
body.tpl-agent #fw-ordercost #oc_out .oc-sheet tfoot{position:relative;z-index:7;}
body.tpl-agent #fw-ordercost .oc-pager button{height:18px;min-width:20px;font-size:var(--fs-10);line-height:1;}
/* column grouping band: one clickable label per blank-separated section (hide/show) */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-band{border:1px solid #000;border-bottom:0;background:#eef2f8;color:#0d315f;font-weight:400;font-size:var(--fs-10);cursor:pointer;text-align:center;padding:2px 6px;white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-band:hover{background:#ffe3e3;}

/* ===== Snap totals modal: two equal cards (By Company / By Store), field checkboxes, PNG snap ===== */
.oc-snap-modal{position:fixed;inset:0;z-index:9998;display:none;align-items:center;justify-content:center;background:rgba(6,9,17,.5);}
.oc-snap-modal.open{display:flex;}
.oc-snap-panel{background:#fdf6f4;border:1px solid #e03131;border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.45);width:min(96vw,1500px);max-height:92vh;overflow:auto;padding:12px;}
.oc-snap-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px;font-size:var(--fs-12);color:#0d315f;}
.oc-snap-fields{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;}
.oc-snap-fields label{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);color:#0d315f;cursor:pointer;}
.oc-snap-x{margin-left:auto;width:26px;height:26px;border:1px solid #e03131;border-radius:6px;background:#fff;color:#e03131;cursor:pointer;font-size:var(--fs-14);}
.oc-snap-cards{display:flex;gap:14px;align-items:stretch;}
.oc-snap-foot{display:flex;align-items:center;gap:10px;margin-top:10px;}
.oc-snap-go{margin-left:auto;background:#1f9d4d;color:#fff;border:1px solid #1f9d4d;border-radius:8px;padding:7px 22px;font-size:var(--fs-14);cursor:pointer;}
.snap-card{flex:1 1 0;min-width:0;background:#fff;border:2px solid #2b6cb0;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;}
.snap-card h5{margin:0;padding:6px 10px;background:#dbe7fb;border-bottom:1px solid #2b6cb0;color:#0d315f;font-size:var(--fs-12);text-align:center;}
.snap-table{width:100%;border-collapse:collapse;font-size:var(--fs-12);}
.snap-table th{background:#dbe7fb;color:#0d315f;border:1px solid #9ec5fe;padding:4px 8px;text-align:center;white-space:nowrap;font-weight:400;}
.snap-table td{padding:3px 8px;border-bottom:1px solid #e0a96d;text-align:center;white-space:nowrap;}
.snap-table td.c{text-align:left;}
.snap-table tr.snap-unit td{border-bottom:1px solid #e0a96d;color:#7a1f1f;font-size:var(--fs-10);text-align:right;}
.snap-table tfoot td{background:#dbe7fb;border:1px solid #9ec5fe;border-top:2px solid #9ec5fe;}

/* ===== Missing records: dynamic master (filters + bulk select) ===== */
body.tpl-agent #fw-ordercost .oc-miss-f{height:26px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0d315f;font-size:var(--fs-12);padding:0 6px;}
body.tpl-agent #fw-ordercost input.oc-miss-f{min-width:140px;}
body.tpl-agent #fw-ordercost select.oc-miss-f{max-width:230px;}

/* ===== compact Reports toolbars (Hours / Bride): uniform small controls;
   selections render as a clipped CSV inside the box (no billboard chips) ===== */
body.tpl-agent .oc-tag{font-size:var(--fs-10);text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:400;margin:0 2px 0 0;white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-meta{gap:3px 12px;margin:0 0 6px;}
body.tpl-agent #fw-ordercost .oc-meta .mi b{font-weight:400;color:#0d315f;}
body.tpl-agent #fw-ordercost .oc-rule{display:inline-block;width:1px;height:18px;background:#e2e8f0;margin:0 2px;flex:0 0 auto;}
body.tpl-agent #fw-ordercost .oc-meta .ac{width:170px;flex:0 0 auto;}
body.tpl-agent #fw-ordercost .oc-meta .ac .ac-q{width:100%;height:24px;min-height:24px;padding:0 8px;font-size:var(--fs-12);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}
body.tpl-agent #fw-ordercost .oc-meta .btn{height:24px;min-height:24px;padding:0 9px;font-size:var(--fs-12);line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:6px;white-space:nowrap;}
body.tpl-agent #fw-ordercost .oc-meta select.ocf{width:auto;max-width:180px;height:24px;min-height:24px;padding:0 4px;font-size:var(--fs-12);}
body.tpl-agent #fw-ordercost .oc-meta input[type=checkbox]{width:13px;height:13px;min-height:0;padding:0;margin:0;flex:0 0 auto;vertical-align:middle;box-shadow:none;}
body.tpl-agent #fw-ordercost .oc-chk{white-space:nowrap;}
body.tpl-agent .ac-chips:empty{display:none;}

/* ===== Hours <-> OT separation + OT freeze (shared freeze control) ===== */
body.tpl-agent #fw-ordercost .oc-cat-sep{height:0;margin:22px 0 12px;border-top:2px solid #e03131;}
body.tpl-agent #oc_out .oc-sheet.oc-frozen thead th{position:sticky;top:0;z-index:4;background:#fff;}

/* ===== Frozen Hours/OT: persistent header line + red veil on hover/scroll ===== */
body.tpl-agent #oc_out .oc-sheet.oc-frozen thead th{box-shadow:0 2px 0 #000;}
body.tpl-agent #oc_out .oc-sheet.oc-frozen.oc-frozen-veil thead th{box-shadow:0 2px 0 #000,0 5px 10px -3px rgba(224,49,49,.85) !important;}

/* ===== overlay multi-select: persistent sticky action row (check all / uncheck all / apply) ===== */
.ac-menu .ac-acts{display:flex;align-items:center;gap:12px;padding:5px 9px;border-bottom:1px solid #ffc9c9;position:sticky;top:0;background:#ffe3e3;z-index:2;}
.ac-menu .ac-act{font-size:var(--fs-10);color:#0d315f;cursor:pointer;white-space:nowrap;}
.ac-menu .ac-act:hover{text-decoration:underline;}
.ac-menu .ac-act-apply{margin-left:auto;color:#1f9d4d;font-weight:400;}

/* --- table borders: simple thin grid; BOLD only at the 4 segment boundaries
   (Identity | Dates | Totals | Orders). Removes the heavy black/double lines. --- */
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts th,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts td,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-l,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-r,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-t,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-id-b,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-grp,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-grp-r,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-dr1,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-dr1-r,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-dr2,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-fs,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-band{border:1px solid #e6ebf2 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-band{border-bottom:0 !important;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .ocg-gap-a,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .ocg-gap-b,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .ocg-gap-c,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-seg-a,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-seg-b,
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-seg-c{border:0 !important;border-left:3px solid #0d315f !important;background:#fff !important;width:5px;padding:0 !important;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-rc{width:14px !important;height:14px !important;min-width:0 !important;flex:0 0 auto;margin:0 4px 0 0 !important;padding:0 !important;vertical-align:middle;accent-color:#e0952f;}
body.tpl-agent #fw-ordercost .oc-sheet .oc-rc-red{width:14px !important;height:14px !important;min-width:0 !important;flex:0 0 auto;margin:0 3px 0 0 !important;padding:0 !important;vertical-align:middle;accent-color:#c0392b;}
body.tpl-agent #fw-ordercost .oc-sheet.oc-ts .oc-seg-l{border-left:3px solid #0d315f !important;}
/* KNOW execution card — 3 same-style boxes; main form = 2-col (left/right) like the filter; #F9F1E5 fill */
body.tpl-agent #fw-knowrun .fw-body .field{display:flex !important;flex-direction:column !important;align-items:flex-start !important;gap:5px !important;margin:0 0 10px !important}
body.tpl-agent #fw-knowrun .fw-body .field > span{display:block !important;font-size:var(--fs-12)!important;color:#8a5a4a !important;margin:0 !important;font-weight:400}
body.tpl-agent #fw-knowrun .fw-body .field > input,
body.tpl-agent #fw-knowrun .fw-body .field > select,
body.tpl-agent #fw-knowrun .fw-body .field > textarea,
body.tpl-agent #fw-knowrun .fw-body .ac .ac-q{background:#F9F1E5 !important;border:1px solid #e2d3ba !important;border-radius:8px !important;color:#3a2f28 !important;width:100% !important;min-width:0 !important;max-width:100% !important;box-sizing:border-box !important}
body.tpl-agent #fw-knowrun .fw-body .field > textarea{min-height:54px !important}
body.tpl-agent #fw-knowrun .fw-body .ac{width:100% !important;max-width:100% !important}
body.tpl-agent #fw-knowrun .fw-body .field > input:hover,
body.tpl-agent #fw-knowrun .fw-body .field > select:hover,
body.tpl-agent #fw-knowrun .fw-body .field > textarea:hover{background:#F9F1E5 !important;border-color:#e03131 !important}
body.tpl-agent #fw-knowrun .oc-phone{display:flex !important;align-items:stretch !important;width:100% !important;min-width:0 !important;border:1px solid #e2d3ba !important;border-radius:8px !important;background:#F9F1E5 !important;overflow:hidden !important}
body.tpl-agent #fw-knowrun .oc-phone select{border:0 !important;background:transparent !important;width:auto !important;min-width:0 !important;border-radius:0 !important;box-shadow:none !important;color:#3a2f28 !important}
body.tpl-agent #fw-knowrun .oc-phone input{border:0 !important;background:transparent !important;flex:1 1 auto !important;min-width:0 !important;width:auto !important;border-radius:0 !important;box-shadow:none !important;color:#3a2f28 !important}
body.tpl-agent #fw-knowrun .oc-phone input:hover,
body.tpl-agent #fw-knowrun .oc-phone input:focus,
body.tpl-agent #fw-knowrun .oc-phone select:hover{background:transparent !important;border:0 !important;box-shadow:none !important}
body.tpl-agent #fw-knowrun .oc-phone .oc-phone-div{width:1px !important;align-self:stretch !important;background:#e2d3ba !important;flex:0 0 1px !important}
body.tpl-agent #fw-knowrun .kfhead{font-size:var(--fs-14)!important}
body.tpl-agent #fw-knowrun .kftitle{cursor:default !important}
body.tpl-agent #fw-knowrun .fw-body input::placeholder,
body.tpl-agent #fw-knowrun .fw-body textarea::placeholder,
body.tpl-agent #fw-knowrun .fw-body .ac .ac-q::placeholder{color:#3a2f28 !important;opacity:.5 !important}
body.tpl-agent #fw-knowrun #pkrun,
body.tpl-agent #fw-knowrun #pkbrun{display:table !important;width:auto !important;min-width:0 !important;margin:10px auto 4px !important;padding:8px 22px !important;text-align:center !important}
/* NFV (non-AAA) requester — identity, action buttons, grouped config, floating location */
body.tpl-requester-nfv #page1 .who2{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:620px;margin:14px auto 6px}
body.tpl-requester-nfv #page1 .idf{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-12);color:var(--text);text-align:left}
body.tpl-requester-nfv #page1 .idf > span{font-weight:400}
body.tpl-requester-nfv #page1 input{background:#F9F1E5 !important;border:1px solid #e2d3ba !important;border-radius:8px;padding:9px 10px;width:100%}
body.tpl-requester-nfv button.primary{background:#58111A !important;border-color:#58111A !important;color:#fff !important;font-weight:400;display:table !important;width:auto !important;min-width:0 !important;margin:10px auto 4px !important;padding:9px 24px !important;transition:background .15s,box-shadow .15s,transform .05s}
body.tpl-requester-nfv button.primary:hover{background:#3f0b12 !important;border-color:#3f0b12 !important;box-shadow:0 4px 14px rgba(0,0,0,.28);transform:translateY(-1px)}
/* form controls: never page-wide (<=40%, auto); row labels +2px; placeholders 50% */
body.tpl-requester-nfv .sec-b > input:not([type=file]),
body.tpl-requester-nfv .sec-b > select:not(.ui-select-native),
body.tpl-requester-nfv .sec-b > .ui-select-wrap,
body.tpl-requester-nfv .sec-b > .ac{max-width:40% !important}
body.tpl-requester-nfv .sec-b > label,body.tpl-requester-nfv .subsec-h{font-size:var(--fs-14)!important}
body.tpl-requester-nfv ::placeholder{opacity:.5 !important}
/* red = chocolate cosmos everywhere in the non-AAA surface */
body.tpl-requester-nfv .mark,body.tpl-requester-nfv .tdiv{background:#58111A !important;border-color:#58111A !important;color:#fff !important}
body.tpl-requester-nfv .toggle.on{background:#58111A !important}
body.tpl-requester-nfv .pill.DONE,body.tpl-requester-nfv .pill.NEW{background:#58111A !important}
body.tpl-requester-nfv .cfggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
body.tpl-requester-nfv .cfggroup{border:1px solid #e2d3ba;border-radius:8px;padding:8px 10px;background:#fffdf8}
body.tpl-requester-nfv .cfgh{font-size:var(--fs-14);font-weight:400;margin:0 0 6px;padding-bottom:4px;border-bottom:1px solid #e2d3ba}
body.tpl-requester-nfv .cfg span{font-size:var(--fs-12)}
body.tpl-requester-nfv .cfggroup.cg0 .cfgh,body.tpl-requester-nfv .cfggroup.cg0 .cfg span{color:#1d4ed8}
body.tpl-requester-nfv .cfggroup.cg1 .cfgh,body.tpl-requester-nfv .cfggroup.cg1 .cfg span{color:#111827}
body.tpl-requester-nfv .cfggroup.cg2 .cfgh,body.tpl-requester-nfv .cfggroup.cg2 .cfg span{color:#c0392b}
body.tpl-requester-nfv .cfggroup.cg3 .cfgh,body.tpl-requester-nfv .cfggroup.cg3 .cfg span{color:#d97706}
body.tpl-requester-nfv .cfggroup.cg4 .cfgh,body.tpl-requester-nfv .cfggroup.cg4 .cfg span{color:#15803d}
body.tpl-requester-nfv .cfg{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:var(--fs-12);padding:3px 0}
body.tpl-requester-nfv .cfg input{width:72px;background:#F9F1E5 !important;border:1px solid #e2d3ba !important;border-radius:6px;padding:3px 6px}
body.tpl-requester-nfv #c_loc_fold .georesults{z-index:6}
body.tpl-requester-nfv #c_loc_fold.searching #c_map{height:420px}
body.tpl-requester-nfv #c_loc_fold.searching .subsec-b{position:relative;z-index:5}
body.tpl-requester-nfv #c_coords{letter-spacing:.3px}
/* requester colour scheme (both channels): page title wine-red · segment #00008B · field #1a1f71 · input #65000B */
body.tpl-requester .req-heading,body.tpl-requester-nfv .req-heading{color:#011F5B !important}
body.tpl-requester .sec-h,body.tpl-requester-nfv .sec-h,
body.tpl-requester .subsec-h,body.tpl-requester-nfv .subsec-h,
body.tpl-requester .g-head,body.tpl-requester-nfv .sec-h .arr,body.tpl-requester .sec-h .arr{color:#00008B !important}
body.tpl-requester .field span,body.tpl-requester .sec-b label,body.tpl-requester .page label,
body.tpl-requester-nfv .page label,body.tpl-requester-nfv .sec-b > label{color:#1a1f71 !important}
body.tpl-requester input,body.tpl-requester select,body.tpl-requester textarea,
body.tpl-requester-nfv input,body.tpl-requester-nfv select,body.tpl-requester-nfv textarea{color:#65000B !important}
/* mobile-first auto-fit: single column, full-width controls, no horizontal scroll */
@media (max-width:640px){
  body.tpl-requester-nfv #page1 .who2{grid-template-columns:1fr;max-width:100%}
  body.tpl-requester-nfv .cfggrid{grid-template-columns:1fr}
  body.tpl-requester-nfv #c_loc_fold.searching #c_map{height:52vh}
  body.tpl-requester-nfv .maincard,body.tpl-requester-nfv .page,body.tpl-requester-nfv .sec-b{padding-left:10px;padding-right:10px}
  body.tpl-requester-nfv .sec-b > input:not([type=file]),body.tpl-requester-nfv .sec-b > select:not(.ui-select-native),body.tpl-requester-nfv .sec-b > .ui-select-wrap,body.tpl-requester-nfv .sec-b > .ac,body.tpl-requester-nfv input,body.tpl-requester-nfv .ui-select-wrap,body.tpl-requester-nfv select:not(.ui-select-native),body.tpl-requester-nfv textarea,body.tpl-requester-nfv .ac .ac-q{width:100% !important;max-width:100% !important}
  body.tpl-requester-nfv #c_map,body.tpl-requester-nfv #u_map{width:100% !important}
}
body.tpl-requester-nfv[data-device="mobile"] #page1 .who2{grid-template-columns:1fr;max-width:100%}
body.tpl-requester-nfv,body.tpl-requester-nfv .maincard{max-width:100%;overflow-x:hidden}

/* ===== TEST: .btn-grad action button (owner paste) ===== */
.btn-grad{
  margin:8px;
  padding:12px 12px;
  text-align:center;
  text-transform:lowercase;
  transition:0.5s;
  background-image:linear-gradient(to right, #870000 0%, #190A05 51%, #870000 100%);
  background-size:150% auto;
  color:white;
  box-shadow:0 0 20px #eee;
  border-radius:10px;
  display:block;
  outline:none;
  border:none;
}
.btn-grad:hover{
  background-position:center;
  color:#fff;
  text-decoration:none;
}

/* ===== non-AAA backdrop (owner): blood → rose pink → smoke → rusted gold/silver → back to blood (SMOOTH) ===== */
body.tpl-requester-nfv{position:relative;background:#7a0d17 !important;min-height:100vh;}
body.tpl-requester-nfv::before{
  content:'';position:fixed;inset:-70px;z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 42% at 16% 30%, rgba(210,50,60,.40), rgba(210,50,60,0) 60%),
    radial-gradient(42% 46% at 46% 44%, rgba(238,160,185,.48), rgba(238,160,185,0) 62%),
    radial-gradient(32% 36% at 58% 72%, rgba(200,150,78,.44), rgba(200,150,78,0) 60%),
    radial-gradient(30% 34% at 72% 28%, rgba(110,98,104,.40), rgba(110,98,104,0) 58%),
    radial-gradient(32% 36% at 30% 80%, rgba(192,200,210,.36), rgba(192,200,210,0) 58%),
    linear-gradient(112deg,#6d0a12 0%,#a81f2e 13%,#d9738a 34%,#e6b7b0 47%,#c9a15a 58%,#cf8a94 70%,#9a1a28 83%,#6d0a12 100%);
  filter:blur(50px);
}

/* ===== nfv/aaa requester selector — same smooth gradient, rose kept as the in-between space ===== */
body.tpl-agent #reqdivsel{
  background-image:
    radial-gradient(120% 320% at 22% 10%, rgba(234,150,176,.55), rgba(234,150,176,0) 62%),
    radial-gradient(120% 320% at 80% 60%, rgba(200,150,78,.45), rgba(200,150,78,0) 62%),
    linear-gradient(115deg,#7a0d17 0%,#b02535 20%,#e07a8c 42%,#c2a99c 56%,#b98a56 70%,#e08a9a 86%,#7a0d17 100%) !important;
  background-size:cover !important;background-color:#7a0d17 !important;
  color:#fff !important;border:0 !important;border-radius:10px !important;
}
body.tpl-agent #reqdivsel option{background:#e16b6b !important;color:#3a0b0b !important;}

/* requester top-nav: equal height + text size + hover active (both channels) */
body.tpl-requester .top .secondary, body.tpl-requester-nfv .top .secondary,
body.tpl-requester .top .mark, body.tpl-requester-nfv .top .mark,
body.tpl-requester .top select, body.tpl-requester-nfv .top select{
  display:inline-flex !important;align-items:center !important;gap:5px !important;
  height:26px !important;line-height:1 !important;box-sizing:border-box !important;
  padding:0 10px !important;font-size:var(--fs-10)!important;border-radius:9px !important;text-decoration:none !important;
}
body.tpl-requester .top .mark b, body.tpl-requester-nfv .top .mark b{font-size:var(--fs-10)!important}
body.tpl-requester .top, body.tpl-requester-nfv .top{gap:12px !important}
body.tpl-requester .top .secondary:hover, body.tpl-requester-nfv .top .secondary:hover{
  background:#58111A !important;color:#fff !important;border-color:#58111A !important}
/* empty requests placeholder box: drop it, blend into the background */
body.tpl-requester .status:has(.empty), body.tpl-requester-nfv .status:has(.empty),
body.tpl-requester .list:has(.empty), body.tpl-requester-nfv .list:has(.empty){display:none !important}

/* ===== extend the full requester treatment to the AAA channel (.tpl-requester) ===== */
body.tpl-requester{position:relative;background:#7a0d17 !important;min-height:100vh;}
body.tpl-requester::before{content:'';position:fixed;inset:-70px;z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 42% at 16% 30%, rgba(210,50,60,.40), rgba(210,50,60,0) 60%),
    radial-gradient(42% 46% at 46% 44%, rgba(238,160,185,.48), rgba(238,160,185,0) 62%),
    radial-gradient(32% 36% at 58% 72%, rgba(200,150,78,.44), rgba(200,150,78,0) 60%),
    radial-gradient(30% 34% at 72% 28%, rgba(110,98,104,.40), rgba(110,98,104,0) 58%),
    radial-gradient(32% 36% at 30% 80%, rgba(192,200,210,.36), rgba(192,200,210,0) 58%),
    linear-gradient(112deg,#6d0a12 0%,#a81f2e 13%,#d9738a 34%,#e6b7b0 47%,#c9a15a 58%,#cf8a94 70%,#9a1a28 83%,#6d0a12 100%) !important;
  filter:blur(50px);}
body.tpl-requester #page1 .who2{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:620px;margin:14px auto 6px}
body.tpl-requester #page1 .idf{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-12);color:var(--text);text-align:left}
body.tpl-requester #page1 .idf > span{font-weight:400}
body.tpl-requester #page1 input{background:#F9F1E5 !important;border:1px solid #e2d3ba !important;border-radius:8px;padding:9px 10px;width:100%}
body.tpl-requester button.primary{background:#58111A !important;border-color:#58111A !important;color:#fff !important;font-weight:400;display:table !important;width:auto !important;min-width:0 !important;margin:10px auto 4px !important;padding:9px 24px !important;transition:background .15s,box-shadow .15s,transform .05s}
body.tpl-requester button.primary:hover{background:#3f0b12 !important;border-color:#3f0b12 !important;box-shadow:0 4px 14px rgba(0,0,0,.28);transform:translateY(-1px)}
body.tpl-requester .sec-b > input:not([type=file]),
body.tpl-requester .sec-b > select:not(.ui-select-native),
body.tpl-requester .sec-b > .ui-select-wrap,
body.tpl-requester .sec-b > .ac{max-width:40% !important}
body.tpl-requester .sec-b > label,body.tpl-requester .subsec-h{font-size:var(--fs-13)!important}
body.tpl-requester ::placeholder{opacity:.5 !important}
body.tpl-requester .mark,body.tpl-requester .tdiv{background:#58111A !important;border-color:#58111A !important;color:#fff !important}
body.tpl-requester .toggle.on{background:#58111A !important}
@media (max-width:640px){
  body.tpl-requester #page1 .who2{grid-template-columns:1fr;max-width:100%}
  body.tpl-requester .sec-b > input:not([type=file]),body.tpl-requester .sec-b > select:not(.ui-select-native),body.tpl-requester .sec-b > .ui-select-wrap,body.tpl-requester .sec-b > .ac{width:100% !important;max-width:100% !important}
}

/* ===== NEW TABLE SHELL (owner reference): navy/gold groups · blue labels · orange rules · hover · navy separators ===== */
#fw-ordercost .oc-sheet.oc-ts th.oc-band,
#fw-timesheet .oc-sheet.oc-ts th.oc-band{background:#08364b !important;color:#ffcb45 !important;font-weight:400;border-bottom:2px solid #ffcb45 !important}
#fw-ordercost .oc-sheet.oc-ts thead th.ocf-cell,
#fw-timesheet .oc-sheet.oc-ts thead th.ocf-cell{background:#ffffff !important;border-bottom:1px solid #f0c99f !important}
#fw-ordercost .oc-sheet .oc-colf,#fw-timesheet .oc-sheet .oc-colf{color:#1b8d58 !important;background:transparent !important;border:0 !important}
#fw-ordercost .oc-sheet.oc-ts thead th.oc-id-t,
#fw-ordercost .oc-sheet.oc-ts thead th.oc-dr1,
#fw-timesheet .oc-sheet.oc-ts thead th.oc-id-t,
#fw-timesheet .oc-sheet.oc-ts thead th.oc-dr1{background:#d8e4f4 !important;color:#0751b8 !important;font-weight:400;border-bottom:2px solid #e9a969 !important}
#fw-ordercost .oc-sheet.oc-ts thead th.oc-dr2,
#fw-timesheet .oc-sheet.oc-ts thead th.oc-dr2{background:#f7f8fa !important;color:#8b5d25 !important}
#fw-ordercost .oc-sheet.oc-ts tbody td,
#fw-timesheet .oc-sheet.oc-ts tbody td{border-bottom:1px solid #f0c99f !important}
#fw-ordercost .oc-sheet.oc-ts tbody tr:hover td,
#fw-timesheet .oc-sheet.oc-ts tbody tr:hover td{background:#edf5ff !important}
#fw-ordercost .oc-sheet.oc-ts .oc-id-l,#fw-timesheet .oc-sheet.oc-ts .oc-id-l{border-left:12px solid #062b3c !important}
#fw-ordercost .oc-sheet.oc-ts .oc-id-r,#fw-timesheet .oc-sheet.oc-ts .oc-id-r{border-right:12px solid #062b3c !important}

/* shell v2: force EVERY group band navy/gold (all th in the first header row) */
#fw-ordercost .oc-sheet.oc-ts thead tr:first-child th,
#fw-timesheet .oc-sheet.oc-ts thead tr:first-child th{background:#08364b !important;color:#ffcb45 !important;font-weight:400;border-bottom:2px solid #ffcb45 !important}
/* OCStyler (.ocs-*) — same shell for the Attendance•Cost•Orders card + Studio tables */
#fw-timesheet .ocs-bandrow td,#fw-timesheet .ocs-bandrow th,#fw-timesheet .ocs-band{background:#08364b !important;color:#ffcb45 !important;font-weight:400;border-bottom:2px solid #ffcb45 !important}
#fw-timesheet .ocs-hrow td,#fw-timesheet .ocs-hrow th{background:#d8e4f4 !important;color:#0751b8 !important;font-weight:400;border-bottom:2px solid #e9a969 !important}
#fw-timesheet .ocs-filtrow td,#fw-timesheet .ocs-filtrow th,#fw-timesheet .ocs-fcell{background:#ffffff !important;border-bottom:1px solid #f0c99f !important}
#fw-timesheet .ocs-colf{color:#1b8d58 !important}
#fw-timesheet .ocs-cell{border-bottom:1px solid #f0c99f !important}
#fw-timesheet .ocs-table tbody tr:hover td{background:#edf5ff !important}
#fw-timesheet .ocs-gap{background:#062b3c !important}

/* ===== REFERENCE TABLE SHELL (owner-supplied) — ported verbatim, scoped under .oc-ref ===== */
.oc-ref{background:#f3f6fa;font-family:var(--font);font-size:var(--fs-12);padding:0}
.oc-ref *{box-sizing:border-box}
.oc-ref .report{width:100%;background:#fff;border:2px solid #e53935;overflow:hidden}
.oc-ref .table-scroll{width:100%;overflow-x:auto;overflow-y:auto;max-height:78vh}
.oc-ref table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%}
.oc-ref th,.oc-ref td{min-width:78px;padding:7px 8px;text-align:center;white-space:nowrap;border-right:1px solid #e1e7ed}
.oc-ref thead{position:sticky;top:0;z-index:5}
.oc-ref .group-row th{height:35px;background:#08364b;color:#ffcb45;border-bottom:2px solid #ffcb45;font-weight:400;font-size:var(--fs-13)}
.oc-ref .group-title{display:flex;justify-content:center;align-items:center;gap:8px}
.oc-ref .group-toggle{border:1px solid #8ca9ba;border-radius:3px;background:#dbe5ee;color:#163b54;cursor:pointer;padding:1px 5px;font-size:var(--fs-10)}
.oc-ref .filter-row th{position:relative;height:30px;background:#fff;border-bottom:1px solid #f6c99f}
.oc-ref .filter-btn{background:transparent;border:0;color:#1b8d58;font-size:var(--fs-13);cursor:pointer;padding:3px 9px}
.oc-ref .filter-btn.active{color:#e53935;background:#fff0ee;border-radius:3px}
.oc-ref .number-row th{height:27px;background:#f7f8fa;color:#8b5d25;font-weight:400;border-bottom:1px solid #f6c99f}
.oc-ref .category-row th{height:28px;background:#f7f8fa;color:#08364b;font-weight:400;border-bottom:1px solid #f6c99f}
.oc-ref .column-row th{height:34px;background:#d8e4f4;color:#0751b8;font-size:var(--fs-12);font-weight:400;border-bottom:2px solid #e9a969}
.oc-ref tbody td{height:32px;background:#fff;border-bottom:1px solid #f6c99f;color:#333}
.oc-ref tbody tr:hover td{background:#edf5ff}
.oc-ref .group-start{border-left:12px solid #062b3c !important}
.oc-ref .group-end{border-right:12px solid #062b3c !important}
.oc-ref .negative{color:#e53935}
.oc-ref .positive{color:#0751b8}
.oc-ref .collapsed-cell{background:#e8eef4 !important;color:#08364b !important;min-width:100px}

/* force the reference shell over the app theme (!important) */
body.tpl-agent .oc-ref,body.tpl-agent .oc-ref .table-scroll{background:#f3f6fa !important}
body.tpl-agent .oc-ref table.oc-sheet{border:2px solid #e53935 !important}
body.tpl-agent .oc-ref .group-row th{background:#08364b !important;color:#ffcb45 !important;font-weight:400;border-bottom:2px solid #ffcb45 !important}
body.tpl-agent .oc-ref .filter-row th{background:#ffffff !important;border-bottom:1px solid #f6c99f !important}
body.tpl-agent .oc-ref .filter-row .filter-btn{background:transparent !important;border:0 !important;color:#1b8d58 !important}
body.tpl-agent .oc-ref .number-row th{background:#f7f8fa !important;color:#8b5d25 !important;font-weight:400;border-bottom:1px solid #f6c99f !important}
body.tpl-agent .oc-ref .category-row th{background:#f7f8fa !important;color:#08364b !important;font-weight:400;border-bottom:1px solid #f6c99f !important}
body.tpl-agent .oc-ref .column-row th{background:#d8e4f4 !important;color:#0751b8 !important;font-weight:400;border-bottom:2px solid #e9a969 !important}
body.tpl-agent .oc-ref tbody td{background:#ffffff !important;border-bottom:1px solid #f6c99f !important;color:#333333 !important}
body.tpl-agent .oc-ref tbody tr:hover td{background:#edf5ff !important}
body.tpl-agent .oc-ref .group-start{border-left:12px solid #062b3c !important}
body.tpl-agent .oc-ref .group-end{border-right:12px solid #062b3c !important}
body.tpl-agent #oc_out.oc-ref table.oc-sheet thead .column-row th{color:#0751b8 !important}
body.tpl-agent #oc_out.oc-ref table.oc-sheet thead .number-row th{color:#8b5d25 !important}
body.tpl-agent #oc_out.oc-ref table.oc-sheet thead .category-row th{color:#08364b !important}
body.tpl-agent #oc_out.oc-ref table.oc-sheet thead .group-row th{color:#ffcb45 !important}

/* FINAL: reference shell with the #fw-ordercost id so it beats the app's id-scoped rules */
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet thead th{border:0 !important;background:#fff !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet thead .group-row th{background:#08364b !important;color:#ffcb45 !important;font-weight:400;border-bottom:2px solid #ffcb45 !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet thead .filter-row th{background:#ffffff !important;border-bottom:1px solid #f6c99f !important;border-left:1px solid #e1e7ed !important;border-right:1px solid #e1e7ed !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet thead .number-row th{background:#f7f8fa !important;color:#8b5d25 !important;font-weight:400;border-bottom:1px solid #f6c99f !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet thead .category-row th{background:#f7f8fa !important;color:#08364b !important;font-weight:400;border-bottom:1px solid #f6c99f !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet thead .column-row th{background:#d8e4f4 !important;color:#0751b8 !important;font-weight:400;border-bottom:2px solid #e9a969 !important;border-left:1px solid #e1e7ed !important;border-right:1px solid #e1e7ed !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet tbody td{background:#ffffff !important;border-bottom:1px solid #f6c99f !important;color:#333333 !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet.oc-frozen thead .group-row th{background:#08364b !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet.oc-frozen thead .column-row th{background:#d8e4f4 !important}
body.tpl-agent #fw-ordercost .oc-ref.oc-sheet.oc-frozen thead .number-row th,body.tpl-agent #fw-ordercost .oc-ref.oc-sheet.oc-frozen thead .category-row th{background:#f7f8fa !important}

/* AB merge: reference shell forced onto the OCStyler table (ocs-table oc-ref) */
body.tpl-agent .oc-ref.ocs-table thead tr.group-row th{background:#08364b !important;color:#ffcb45 !important;font-weight:400;border-bottom:2px solid #ffcb45 !important;border:0 !important}
body.tpl-agent .oc-ref.ocs-table thead tr.filter-row th{background:#ffffff !important;border-bottom:1px solid #f6c99f !important}
body.tpl-agent .oc-ref.ocs-table thead tr.filter-row .ocs-colf{color:#1b8d58 !important}
body.tpl-agent .oc-ref.ocs-table thead tr.number-row th{background:#f7f8fa !important;color:#8b5d25 !important;font-weight:400;border-bottom:1px solid #f6c99f !important}
body.tpl-agent .oc-ref.ocs-table thead tr.column-row th{background:#d8e4f4 !important;color:#0751b8 !important;font-weight:400;border-bottom:2px solid #e9a969 !important;border:0 !important}
body.tpl-agent .oc-ref.ocs-table tbody td{border:0 !important;border-bottom:1px solid #f6c99f !important;border-right:1px solid #e1e7ed !important;background:#ffffff !important;color:#333 !important}
body.tpl-agent .oc-ref.ocs-table tbody tr:hover td{background:#edf5ff !important}
body.tpl-agent .oc-ref.ocs-table .group-title{display:flex;justify-content:center;align-items:center;gap:8px}

/* Reference shell wrapper: .report frame + .table-scroll are real elements inside .oc-ref.
   Makes the owner-supplied frame/scroll apply to BOTH dashboards while keeping every tool
   (meta bar, ribbon, export, pager, OCStyler toolbar) that sits outside the frame. */
body.tpl-agent .oc-ref .report{background:#ffffff !important;border:2px solid #e53935 !important;overflow:hidden}
body.tpl-agent .oc-ref .report > .table-scroll,body.tpl-agent .oc-ref .report .ocs-scroll.table-scroll{background:#ffffff !important;max-height:78vh !important;overflow-x:auto !important;overflow-y:auto !important}
body.tpl-agent .oc-ref .report .ocs-scroll{border:0 !important;border-radius:0 !important}
/* Reference shell metrics (owner-supplied): cell padding + the 5 header-row heights for the
   ordercost engine (it pins all header th at top:0, so forcing row heights is safe here).
   The OCStyler shell keeps its own row heights so its per-row sticky offsets stay correct. */
body.tpl-agent #fw-ordercost .oc-ref .report table th,body.tpl-agent #fw-ordercost .oc-ref .report table td{padding:7px 8px !important;min-width:78px}
body.tpl-agent #fw-ordercost .oc-ref .report .group-row th{height:35px !important;font-size:var(--fs-13)!important}
body.tpl-agent #fw-ordercost .oc-ref .report .filter-row th{height:30px !important}
body.tpl-agent #fw-ordercost .oc-ref .report .number-row th{height:27px !important}
body.tpl-agent #fw-ordercost .oc-ref .report .category-row th{height:28px !important}
body.tpl-agent #fw-ordercost .oc-ref .report .column-row th{height:34px !important}
body.tpl-agent #fw-ordercost .oc-ref .report tbody td{height:32px !important}
/* FINAL grid law (owner rule): NO vertical grid lines; only horizontal light-orange rules;
   the horizontal line does NOT cross the blank gap column between groups; each group is its
   own block, boxed by a 2pt light-orange outline. */
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts th,
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts td{border-left:0 !important;border-right:0 !important}
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts th{border-top:0 !important}
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts tbody td{border-top:0 !important;border-bottom:1px solid #f6c99f !important}
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .oc-gap{border:0 !important;background:#0c343d !important;width:12px;min-width:12px;padding:0 !important}
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .group-start,
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .oc-id-l{border-left:2px solid #f0c99f !important}
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .group-end,
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .oc-id-r{border-right:2px solid #f0c99f !important}
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .oc-ed-b{border-bottom:2px solid #f0c99f !important}
/* every group band: solid #0c343d top strip (the last group was missing it) */
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts .group-row th{border-top:3px solid #0c343d !important}
/* report alignment law: headers centered; identity TEXT left; day-hours centered; totals right */
body.tpl-agent #fw-ordercost .oc-ref .report .oc-sheet.oc-ts td.ocg-id.oc-nowrap{text-align:left !important}

/* ===== ADAPTIVE TYPOGRAPHY (project Rule #6) =====================================
   Typography is a per-page graduated scale — never a fixed size per element. A card
   declares the content classes it uses; fsLadder() selects the rungs (14px top -> 8px
   bottom; 2px steps when few classes, 1px when many) and sets the named --fs-* vars on
   the window. Elements bind by content class only. */
body.tpl-agent{
  --fs-title:14px;--fs-card:13px;--fs-sub:12px;--fs-label:11px;--fs-heading:10px;--fs-body:10px;--fs-micro:8px;
}
/* KPI Dashboard: title · card · sub · label · body · micro */
body.tpl-agent #fw-kpi .fw-title{font-size:var(--fs-title) !important;}
body.tpl-agent #fw-kpi .kpi-sec-h{font-size:var(--fs-card) !important;}
body.tpl-agent #fw-kpi .kpi-card-title{font-size:var(--fs-sub) !important;}
body.tpl-agent #fw-kpi :is(.kpi-card,.pic-card) .s24f8855c{font-size:var(--fs-label) !important;}
body.tpl-agent #fw-kpi :is(.kpi-card,.pic-card) .s1c2b2651{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-kpi .kpi-i{font-size:var(--fs-micro) !important;}
/* Live Monitor: title · card · heading · label · body · micro */
body.tpl-agent #fw-monitor .fw-title{font-size:var(--fs-title) !important;}
body.tpl-agent #fw-monitor .mon-card-t{font-size:var(--fs-card) !important;}
body.tpl-agent #fw-monitor .mon-col-h{font-size:var(--fs-heading) !important;}
body.tpl-agent #fw-monitor :is(.mon-stat,.mon-tile,.mon-sub,.mon-rate) .lbl,body.tpl-agent #fw-monitor .mon-rate span{font-size:var(--fs-label) !important;}
body.tpl-agent #fw-monitor :is(.mon-stat,.mon-tile,.mon-sub,.mon-rate) .val{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-monitor .mon-tile .sub{font-size:var(--fs-micro) !important;}
body.tpl-agent #fw-monitor .mon-tab,body.tpl-agent #fw-monitor .mon-verdict{font-size:var(--fs-label) !important;}
/* Assortment Parity: title · card · sub · label · body · micro */
body.tpl-agent #fw-catalog .fw-title{font-size:var(--fs-title) !important;}
body.tpl-agent #fw-catalog :is(.card-h,.panel__header){font-size:var(--fs-card) !important;}
body.tpl-agent #fw-catalog :is(.sc3-lbl,.sc3-ent){font-size:var(--fs-sub) !important;}
body.tpl-agent #fw-catalog :is(.catlbl,th){font-size:var(--fs-label) !important;}
body.tpl-agent #fw-catalog td{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-catalog .cathint{font-size:var(--fs-micro) !important;}
/* Picker Performance: title · card · sub · label · body · micro */
body.tpl-agent #fw-pickerperf .fw-title{font-size:var(--fs-title) !important;}
body.tpl-agent #fw-pickerperf .pp-card .l{font-size:var(--fs-sub) !important;}
body.tpl-agent #fw-pickerperf .pp-card .v{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-pickerperf :is(th,.note){font-size:var(--fs-label) !important;}
body.tpl-agent #fw-pickerperf td{font-size:var(--fs-body) !important;}
/* Live Report: title · label · body */
body.tpl-agent #fw-report .fw-title{font-size:var(--fs-title) !important;}
body.tpl-agent #fw-report :is(.field span,th){font-size:var(--fs-label) !important;}
body.tpl-agent #fw-report td{font-size:var(--fs-body) !important;}
/* Live Flow: title · label · body */
body.tpl-agent #fw-live .fw-title{font-size:var(--fs-title) !important;}
body.tpl-agent #fw-live :is(th,.sb5375524){font-size:var(--fs-label) !important;}
body.tpl-agent #fw-live :is(td,.s5e430fc8){font-size:var(--fs-body) !important;}
/* remaining rungs still literal in the KPIs View cards */
body.tpl-agent #fw-kpi .pic-controls label{font-size:var(--fs-label) !important;}
body.tpl-agent #fw-kpi .pic-controls input{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-monitor .mon-rate b{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-monitor .mon-sched{font-size:var(--fs-label) !important;}
body.tpl-agent #fw-monitor .mon-tab .mon-tabbad{font-size:var(--fs-micro) !important;}
body.tpl-agent #fw-catalog .catdrill .field>span{font-size:var(--fs-label) !important;}
body.tpl-agent #fw-catalog :is(.sc3-total,.sc3-num){font-size:var(--fs-body) !important;}
body.tpl-agent #fw-catalog :is(.sc3-pct,.sc3-txt){font-size:var(--fs-label) !important;}
body.tpl-agent #fw-catalog .parity-table .tbl{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-catalog .parity-table .tbl th{font-size:var(--fs-label) !important;}
body.tpl-agent #fw-catalog .cmp-head{font-size:var(--fs-sub) !important;}
body.tpl-agent #fw-catalog .cmp-row{font-size:var(--fs-body) !important;}
body.tpl-agent #fw-catalog .cmp-delta{font-size:var(--fs-label) !important;}
/* controls (buttons · text boxes · form inputs · search/filter fields · filter list rows)
   of the KPIs View cards: ladder-sized and content-sized, never page-wide. Sizing only. */
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog,#fw-report,#fw-live) .btn{width:auto !important;font-size:var(--fs-label) !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog,#fw-report,#fw-live) :is(input,select,textarea){width:auto !important;max-width:40% !important;min-width:96px !important;font-size:var(--fs-body) !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog,#fw-report,#fw-live) .ac{width:auto !important;max-width:40% !important;min-width:110px !important;}
body.tpl-agent :is(#fw-kpi,#fw-monitor,#fw-pickerperf,#fw-catalog,#fw-report,#fw-live) .ac-menu .ac-item{font-size:var(--fs-label) !important;}

/* ===== Dock child tiles: monochrome fill resets per family (parent group titles unchanged) =====
   Shade = the tile's position WITHIN its own group, so every family starts at shade 1
   and increments by its member count (no repeat inside a family; families may repeat).
   Group titles (.dock-sep) keep their current style. */
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(1){background:#ffffff !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(2){background:#e6e6e6 !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(3){background:#d9d9d9 !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(4){background:#cccccc !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(5){background:#b3b3b3 !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(6){background:#999999 !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(7){background:#7f7f7f !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(8){background:#666666 !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(n+9){background:#666666 !important;}
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(6),
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(7),
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(8),
body.tpl-agent #dockbody .dock-body .dock-item:nth-child(n+9){color:#ffffff !important;}

/* Global Directory: one control row (title above box), #d3e2fd boxes, foldable groups */
body.tpl-agent #fw-directory .diridbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px 10px;margin:0 0 6px}
body.tpl-agent #fw-directory .idfield{display:inline-flex;flex-direction:column;gap:1px;align-items:flex-start}
body.tpl-agent #fw-directory .idfield>span{font-size:var(--fs-9);letter-spacing:.3px;color:var(--text-muted);text-transform:lowercase}
body.tpl-agent #fw-directory .dirid-h{display:flex;align-items:center;gap:6px;font-size:var(--fs-11);font-weight:400;cursor:pointer;padding:2px 0;user-select:none;margin:2px 0 0}
body.tpl-agent #fw-directory .dirid-h .arrow{font-size:var(--fs-9);color:var(--accent)}
body.tpl-agent #fw-directory .dirid-body{display:none}
body.tpl-agent #fw-directory .dirid.open .dirid-body{display:block}
body.tpl-agent #fw-directory .dirid-wrap{max-height:150px;overflow:auto;margin:0 0 3px}
body.tpl-agent #fw-directory .diridtab{border-collapse:separate;border-spacing:4px 0;width:auto}
body.tpl-agent #fw-directory .diridtab th,body.tpl-agent #fw-directory .diridtab td{padding:0;min-width:0 !important;width:auto;height:18px;font-size:var(--fs-10);line-height:1;white-space:nowrap;text-align:left;vertical-align:middle}
body.tpl-agent #fw-directory .diridtab thead th{background:var(--surface-3) !important;color:var(--accent) !important;font-weight:400;padding:1px 5px;border-radius:3px}
body.tpl-agent #fw-directory #dir_list,body.tpl-agent #fw-directory .idfil,
body.tpl-agent #fw-directory .diridtab input,body.tpl-agent #fw-directory .diridtab select{
  field-sizing:content;width:auto;min-width:26px;max-width:340px;height:22px;min-height:22px;padding:0 5px;
  font-size:var(--fs-11);line-height:1;margin:0;box-sizing:border-box;background:#d3e2fd !important;color:var(--text);
  border:1px solid var(--border);border-radius:3px}
body.tpl-agent #fw-directory .diridtab input,body.tpl-agent #fw-directory .diridtab select{height:17px;min-height:17px;font-size:var(--fs-10);padding:0 3px}
body.tpl-agent #fw-directory .diridtab .dirid-f{height:15px;min-height:15px;font-size:var(--fs-9);padding:0 2px;background:#d3e2fd !important}
body.tpl-agent #fw-directory .diridtab .dirid-x{width:17px;height:17px;min-width:17px;padding:0;border:0;border-radius:3px;background:#e53935;color:#fff;font-size:var(--fs-10);line-height:17px;text-align:center;cursor:pointer;flex:0 0 auto}
body.tpl-agent #fw-directory .dirid-add{margin:0 0 8px}

/* ===== OCStyler grid CSS — folded from oc_styler.js (one stylesheet) ===== */

  .ocs{font-family:var(--font);font-size:var(--fs-12);font-weight:400;line-height:1.4;color:#0d315f;}
  /* Ribbon capped at 3 rows (scroll if longer); toggle to show/hide. */
  /* Ribbon: in normal flow (no overlap with the table), grouped, and DRAG-RESIZABLE
     (bottom-right grip) with a sensible min; starts ~2-3 rows, drag taller to see all. */
  .ocs-bar{position:relative;z-index:9;display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;margin:0 0 8px;padding:5px 8px 6px;border:1px solid #e03131;border-radius:8px;background:#fff;resize:vertical;overflow:auto;min-height:32px;max-height:60vh;}
  .ocs-bar .grp{display:inline-flex;align-items:center;gap:4px;padding:0 12px;border-right:1px solid #e5e7eb;margin-right:2px;}
  .ocs-bar .grp:last-child{border-right:0;}
  /* Report tables already carry the Export list — hide the duplicate ribbon export tabs. */
  body.tpl-agent #fw-ordercost #oc_studio_host .ocs-bar [data-exp]{display:none !important;}
  .ocs-bar-tools{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;width:100%;}
  .ocs.tools-off .ocs-bar-tools{display:none;}
  .ocs-tools-toggle{font-weight:400;}
  /* Per-column filters live in a TOP row (never inside the cells); shared popup list. */
  /* Thin, column-aligned filter row just above the header labels (Sheets-style). */
  .ocs-table thead tr.ocs-filtrow th.ocs-fcell{height:17px;box-sizing:border-box;padding:0 !important;background:#eef2f8;text-align:center;}
  .ocs-table thead tr.ocs-filtrow th.ocs-fcell.on{background:#dbe7fb;}
  .ocs-table .ocs-fcell .ocs-colf{width:100%;height:15px;line-height:13px;font-size:var(--fs-9);border:0;border-radius:0;background:transparent;color:#0d315f;cursor:pointer;padding:0;position:static;}
  .ocs-table .ocs-fcell .ocs-colf:hover{background:#f1d6d6;color:#0d315f;}
  .ocs-table .ocs-fcell .ocs-colf.on{background:#0d315f;color:#fff;}
  .ocs-bar .lab{font-size:var(--fs-10);color:#6b7a90;margin:0 2px;}
  /* ONE uniform control size: 22px tall, 10px text, width fits the content. */
  body.tpl-agent .ocs-bar button,body.tpl-agent .ocs-bar select,body.tpl-agent .ocs-bar input[type=number],body.tpl-agent .ocs-bar input[type=text]{height:22px;min-height:22px;line-height:1;width:auto;max-width:170px;border:1px solid #cbd5e1;background:#fff;border-radius:5px;cursor:pointer;color:#0d315f;font-size:var(--fs-10);padding:0 6px;}
  body.tpl-agent .ocs-bar .ocs-sortk{width:auto !important;max-width:150px;}
  /* the row-search box is a MINIMAL field, not a bulky hippo */
  body.tpl-agent .ocs-bar .ocs-filter{width:150px !important;height:22px !important;font-size:var(--fs-10)!important;flex:0 0 auto;padding:0 6px !important;}
  body.tpl-agent .ocs-bar input[type=color]{width:24px;height:22px;padding:0;}
  .ocs-bar button{min-width:24px;}
  .ocs-bar button:hover,.ocs-bar select:hover{border-color:#e03131;}
  .ocs-bar button.on{background:#0d315f;color:#fff;border-color:#0d315f;}
  .ocs-bar input[type=color]{width:28px;height:27px;padding:0;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;}
  .ocs-bar select[data-cmd="ff"],.ocs-bar input[data-cmd="fs"]{width:150px;}
  .ocs-range{width:120px;}
  .ocs-cf{display:none;gap:6px;align-items:center;flex-wrap:wrap;padding:6px;margin:-4px 0 8px;border:1px dashed #cbd5e1;border-radius:8px;background:#fbfcfe;}
  .ocs-cf.open{display:flex;}
  .ocs-blk{margin:0 0 16px;}
  .ocs-blk h4{margin:0 0 6px;font-size:var(--fs-13);color:#0d315f;}
  .ocs-scroll{overflow:auto;max-height:520px;border:1px solid #e2e8f0;border-radius:8px;}
  .ocs-table{border-collapse:collapse;width:max-content;min-width:100%;background:#fff;table-layout:fixed;}
  .ocs-table th,.ocs-table td{border:1px solid #000;padding:3px 7px;white-space:nowrap;vertical-align:middle;overflow:hidden;position:relative;}
  .ocs-table thead th{position:sticky;top:0;z-index:4;background:#fff;color:#000;font-weight:400;text-align:center;box-shadow:inset 0 -1px 0 #000;}
  .ocs-table thead tr.ocs-subrow th{height:18px;box-sizing:border-box;background:#fff;color:#475569;font-weight:400;font-size:var(--fs-9);text-align:center;}
  .ocs-table thead tr.ocs-bandrow th{z-index:6;height:20px;box-sizing:border-box;background:#eef2f8;color:#0d315f;font-weight:400;font-size:var(--fs-10);text-align:center;}
  .ocs-table th.ocs-gap,.ocs-table td.ocs-gap{width:8px;min-width:8px;padding:0;background:#fff;border-top:0;border-bottom:0;}
  .ocs-table tbody td{border:1px solid #000;background:#fff;}
  .ocs-table tbody td.ocs-id{background:#fbfcfe;}
  .ocs-table tfoot td.ocs-total{border:1px solid #000;background:#eef2f8;color:#0d315f;font-weight:400;text-align:right;white-space:nowrap;}
  .ocs-table tfoot td.ocs-total:first-child{text-align:left;}
  .ocs-view .ocs-table{table-layout:auto;}
  .ocs-view .ocs-table thead th{padding-right:18px;}
  .ocs-table td.ocs-sel,.ocs-table th.ocs-sel{outline:2px solid #e03131;outline-offset:-2px;}
  .ocs-hidden{display:none !important;}
  .ocs-table td.ocs-edata{outline:1px dashed #9ec5fe;outline-offset:-1px;cursor:text;}
  .ocs-table td.ocs-dirty{background:#fff3bf !important;}

  .ocs-table td.ocs-num{text-align:right;font-variant-numeric:tabular-nums;}
  .ocs-colh{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;z-index:6;touch-action:none;}
  .ocs-colh:hover{background:linear-gradient(90deg,transparent 4px,#e03131 4px,#e03131 6px,transparent 6px);}
  .ocs-rowh{position:absolute;left:0;bottom:-3px;width:100%;height:8px;cursor:row-resize;z-index:5;touch-action:none;}
  .ocs-rowh:hover{background:linear-gradient(180deg,transparent 3px,#e03131 3px,#e03131 5px,transparent 5px);}
  .ocs-tools-toggle{height:22px;}
  .ocs-pager{display:flex;align-items:center;gap:6px;margin:4px 0 0;font-size:var(--fs-10);line-height:1;color:#6b7a90;}
  .ocs-pager .lab{font-size:var(--fs-9);text-transform:lowercase;color:#94a3b8;}
  body.tpl-agent .ocs-pager select{height:18px;min-height:18px;width:auto;padding:0 2px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;font-size:var(--fs-10);line-height:1;color:#0d315f;text-align:center;}
  .ocs-pager button{height:18px;min-width:22px;padding:0 4px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;cursor:pointer;color:#0d315f;font-size:var(--fs-11);line-height:1;}
  .ocs-pager button:disabled{opacity:.4;cursor:default;}
  .ocs-pager .sp{flex:1;}
  .ocs-note{font-size:var(--fs-10);color:#6b7a90;margin:6px 0 0;}

/* ===== Reconcile: full-cell inline editing (reconcile view only) ===== */
#oc_out td.oc-rc-edit{outline:1px dashed #9ec5fe;outline-offset:-1px;cursor:text;background:#fffdf5;}
#oc_out td.oc-rc-edit:focus{outline:2px solid #1c4587;outline-offset:-2px;background:#fff;}
#oc_out td.oc-rc-edit.oc-rdirty{background:#fff3bf !important;}

/* ===== global typography lock: Arvo · decremental ladder 14→8 · no bold ===== */
html,body,* ,*::before,*::after{font-family:var(--font)!important;font-weight:400!important}

/* ===== Thermal loader — 3 concentric layers, pulsing (uniform, app-wide) =====
   inner 15px green opaque (on TOP) · middle 20px orange 70% + 2pt border/shadow
   outer 30px red 50% + 2pt border/shadow · pulse scale in/out · timings 1:2:3
   Placed at the RIGHT of the ACTIVE card's header, only while it loads. */
.thermal-core{position:relative;width:30px;height:30px}
.thermal-core i{position:absolute;top:50%;left:50%;border-radius:50%;transform:translate(-50%,-50%) scale(.6);will-change:transform}
.thermal-core .t1{width:15px;height:15px;background:#2ecc71;z-index:3;animation:thermal-pulse .9s cubic-bezier(.45,0,.55,1) infinite}
.thermal-core .t2{width:20px;height:20px;background:rgba(255,152,0,.7);border:2pt solid #ff9800;box-shadow:0 0 2pt rgba(255,152,0,.85);z-index:2;animation:thermal-pulse 1.8s cubic-bezier(.45,0,.55,1) infinite}
.thermal-core .t3{width:30px;height:30px;background:rgba(229,72,77,.5);border:2pt solid rgba(229,72,77,.5);box-shadow:0 0 2pt rgba(229,72,77,.6);z-index:1;animation:thermal-pulse 2.7s cubic-bezier(.45,0,.55,1) infinite}
@keyframes thermal-pulse{0%{transform:translate(-50%,-50%) scale(.6)}50%{transform:translate(-50%,-50%) scale(1.15)}100%{transform:translate(-50%,-50%) scale(.6)}}
@media (prefers-reduced-motion:reduce){.thermal-core i{animation-duration:3.6s}}
/* slot: real status item, RIGHT-aligned inside the card header */
.thermal-slot{display:none;align-items:center;justify-content:center;flex:0 0 auto;margin-left:auto;margin-right:2px}
.thermal-slot.on{display:flex}
/* last-resort only when no card exists at all (login / standalone pages) */
#thermal{position:fixed;left:50%;top:12px;transform:translateX(-50%);z-index:9000;pointer-events:none;opacity:0;transition:opacity .16s ease}
#thermal.on{opacity:1}

/* ===== Attendance · Orders vs Cost — Report bar fixes ===== */
/* 1+2 · uniform control size, even spacing, shorter strip on one straight line */
body.tpl-agent #fw-ordercost .oc-meta{gap:4px 12px;line-height:1.15;margin:0 0 4px;min-height:24px;align-items:center}
body.tpl-agent #fw-ordercost .oc-meta .mi{line-height:1.15;display:inline-flex;align-items:center;gap:4px}
body.tpl-agent #fw-ordercost .oc-meta .btn{height:24px !important;min-height:24px !important;padding:0 9px !important}
body.tpl-agent #fw-ordercost .oc-meta select.ocf{height:24px !important;min-height:24px !important}
body.tpl-agent #fw-ordercost .oc-exp{height:24px !important}
body.tpl-agent #fw-ordercost .oc-exp-tri{height:24px !important}
body.tpl-agent #fw-ordercost .oc-meta .oc-rule{height:16px;margin:0 1px}
body.tpl-agent #fw-ordercost .oc-meta .oc-chk{line-height:1.15}
/* 4 · Export = just a down triangle, no box */
body.tpl-agent #fw-ordercost .oc-exp{border:0 !important;background:transparent !important;padding:0 !important;height:24px}
body.tpl-agent #fw-ordercost .oc-exp-tri{border:0 !important;background:transparent !important;color:#0d315f;font-size:var(--fs-14);line-height:1;cursor:pointer;padding:0 4px}
body.tpl-agent #fw-ordercost .oc-exp-tri:hover{color:#e03131}
/* 6 · Report strip fill CYAN */
body.tpl-agent #fw-ordercost .oc-strip{display:flex;align-items:center;gap:8px;width:100%;background:#a5f3fc;border-radius:6px;padding:2px 8px;margin:6px 0 4px;box-sizing:border-box}
body.tpl-agent #fw-ordercost .oc-strip .oc-sub-h{background:transparent !important;border:0 !important;margin:0 !important;padding:2px 6px;height:20px !important;min-height:20px !important}
body.tpl-agent #fw-ordercost .oc-strip .oc-cols{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}
body.tpl-agent #fw-ordercost .oc-strip .oc-chk{color:#0d315f;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
body.tpl-agent #fw-ordercost .oc-frz{display:inline-flex;align-items:center;gap:6px;color:#0d315f;font-size:var(--fs-12);white-space:nowrap}
body.tpl-agent #fw-ordercost .oc-frzbtn{height:20px !important;min-height:20px !important;padding:0 6px !important;font-size:var(--fs-10) !important}
body.tpl-agent #fw-ordercost .oc-sheet .oc-cellsel{outline:2px solid #1d4ed8 !important;outline-offset:-2px}
/* 5 · orange border line on the left edge of the report header/frozen band */
body.tpl-agent #fw-ordercost .oc-ref .report{border-left:3px solid #e9a969 !important}

/* ===== Attendance·Orders vs Cost — toolbar pass 2 (borderless, hover accent only) ===== */
body.tpl-agent #fw-ordercost .oc-strip{flex-wrap:wrap;gap:4px 10px;row-gap:3px}
/* toolbar buttons: NO rigid box — accent on hover only */
body.tpl-agent #fw-ordercost .oc-tbtn,
body.tpl-agent #fw-ordercost .oc-frzbtn{border:0 !important;background:transparent !important;box-shadow:none !important;border-radius:5px !important;color:#0d315f;height:20px;min-height:20px;padding:0 6px !important;font-size:var(--fs-11) !important;cursor:pointer;line-height:1;display:inline-flex;align-items:center;gap:3px}
body.tpl-agent #fw-ordercost .oc-tbtn:hover,body.tpl-agent #fw-ordercost .oc-frzbtn:hover{color:#e03131 !important;background:#ffe3e3 !important}
body.tpl-agent #fw-ordercost .oc-tbtn.primary{color:#1f9d4d !important}
body.tpl-agent #fw-ordercost .oc-tbtn.primary:hover{color:#166534 !important}
/* Report toggle: no box */
body.tpl-agent #fw-ordercost .oc-sub-h{border:0 !important;background:transparent !important;box-shadow:none !important;color:#0d315f}
body.tpl-agent #fw-ordercost .oc-sub-h:hover{color:#e03131 !important}
/* summary chips */
body.tpl-agent #fw-ordercost .oc-sum{color:#0d315f;white-space:nowrap;font-size:var(--fs-11)}
body.tpl-agent #fw-ordercost .oc-sum b{color:#08364b}
/* selects inside the strip/ctlrow: no box, hover accent */
body.tpl-agent #fw-ordercost .oc-strip select.ocf,body.tpl-agent #fw-ordercost .oc-frz select.ocf{border:0 !important;background:transparent !important;box-shadow:none !important;color:#0d315f;height:20px;min-height:20px;padding:0 4px;font-size:var(--fs-11)}
body.tpl-agent #fw-ordercost .oc-strip select.ocf:hover,body.tpl-agent #fw-ordercost .oc-frz select.ocf:hover{color:#e03131}
/* report / config selectors + page-filter toggle: remove the rigid fixed boxes */
body.tpl-agent #fw-ordercost .oc-rep-sel{border:0 !important;background:transparent !important;box-shadow:none !important;color:#0d315f;height:22px;min-height:22px;padding:0 6px;font-weight:400}
body.tpl-agent #fw-ordercost .oc-rep-sel:hover{color:#e03131 !important}
body.tpl-agent #fw-ordercost .oc-topctl-toggle{border:0 !important;background:transparent !important;box-shadow:none !important;color:#0d315f}
body.tpl-agent #fw-ordercost .oc-ctlrow{border:0 !important;background:transparent !important;box-shadow:none !important}
body.tpl-agent #fw-ordercost .oc-ctlrow .oc-tag{color:#8b5d25}
/* export dropdown button: no box */
body.tpl-agent #fw-ordercost .oc-exp{border:0 !important;background:transparent !important;padding:0 !important}
body.tpl-agent #fw-ordercost .oc-exp-btn{border:0 !important;background:transparent !important;box-shadow:none !important;color:#0d315f}
body.tpl-agent #fw-ordercost .oc-exp-btn:hover{color:#e03131 !important}

/* ===== Attendance·Orders vs Cost — toolbar pass 3 ===== */
body.tpl-agent #fw-ordercost .oc-ctlrow{margin-bottom:2px}
body.tpl-agent #fw-ordercost .oc-strip{margin:2px 0 4px}
body.tpl-agent #fw-ordercost .oc-strip .oc-cols{margin-right:4px}
body.tpl-agent #fw-ordercost .oc-sheet th.oc-sorted{color:#e03131 !important}
/* frozen header ribbon locked with the columns */
body.tpl-agent #fw-ordercost .oc-sheet.oc-frozen thead th{position:sticky;z-index:9}

/* ===== Attendance·Orders vs Cost — toolbar pass 4 ===== */
/* export pinned to the RIGHT EDGE of the card */
body.tpl-agent #fw-ordercost .oc-strip .oc-exp{margin-left:auto}
/* frozen header stays above the scrolling header (which passes behind) */
body.tpl-agent #fw-ordercost .oc-sheet.oc-frozen thead>tr>th.ocg-id,body.tpl-agent #fw-ordercost .oc-sheet.oc-frozen thead>tr>th.ocg-date{background-clip:padding-box}

/* ===== APP-WIDE FILTER RIBBON — dusk-black #2D2926 + crimson #ed6f63 =====
   3 layers: white cube w/ border (back) · red cube no-border (mid) · black boxes (front).
   Field titles = black on red; input boxes = black with red text. Hover = 1pt light blue/green border.
   Title:input text sizes follow the pair rule (title 12 -> input 10; title 11 -> input 9). */
body.tpl-agent .bar.filter-panel{
  background:#ed6f63 !important;
  border:0 !important;
  box-shadow:0 0 0 3px #ffffff, 0 0 0 4px #2D2926 !important;
  border-radius:12px !important;
}
body.tpl-agent .bar.filter-panel .f>label,
body.tpl-agent .bar.filter-panel>label,
body.tpl-agent .bar.filter-panel label{
  color:#2D2926 !important;
  font-size:var(--fs-12) !important;
}
body.tpl-agent .bar.filter-panel input,
body.tpl-agent .bar.filter-panel select,
body.tpl-agent .bar.filter-panel textarea,
body.tpl-agent .bar.filter-panel .ac-q{
  background:#2D2926 !important;
  color:#ed6f63 !important;
  border:1px solid #2D2926 !important;
  border-radius:8px !important;
  font-size:var(--fs-10) !important;
}
body.tpl-agent .bar.filter-panel input::placeholder,
body.tpl-agent .bar.filter-panel textarea::placeholder,
body.tpl-agent .bar.filter-panel .ac-q::placeholder{color:rgba(237,111,99,.72) !important}
body.tpl-agent .bar.filter-panel select option{background:#2D2926;color:#ed6f63}
body.tpl-agent .bar.filter-panel input:hover,
body.tpl-agent .bar.filter-panel select:hover,
body.tpl-agent .bar.filter-panel textarea:hover,
body.tpl-agent .bar.filter-panel .ac-q:hover,
body.tpl-agent .bar.filter-panel .ac:hover .ac-q{
  border-color:#6ee7b7 !important;
  box-shadow:0 0 0 1px #6ee7b7 !important;
}
body.tpl-agent .bar.filter-panel .ac{border:0 !important;background:transparent !important}
/* the reset button keeps the same black-box / red-text language */
body.tpl-agent .bar.filter-panel .kpi-reset-f .btn{
  background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;
}
body.tpl-agent .bar.filter-panel .kpi-reset-f .btn:hover{border-color:#6ee7b7 !important;box-shadow:0 0 0 1px #6ee7b7 !important}

/* ===== Orders vs Cost table — date-row strip filled with the header blue (gaps left empty) ===== */
body.tpl-agent #fw-ordercost .oc-sheet .number-row th{background:#d8e4f4 !important;color:#0751b8 !important}
body.tpl-agent #fw-ordercost .oc-sheet .number-row th.oc-gap{background:transparent !important}
body.tpl-agent #fw-ordercost .oc-sheet .column-row th.oc-gap{background:transparent !important}

/* ==== filter fields size to their CONTENT (clipped ones grow, don't inflate all); panel fills width ==== */
body.tpl-agent .bar.filter-panel{width:100% !important;justify-content:flex-start !important;flex-wrap:wrap !important}
body.tpl-agent .bar.filter-panel .f{flex:0 1 auto !important;min-width:0 !important;width:auto !important}
body.tpl-agent .bar.filter-panel input,
body.tpl-agent .bar.filter-panel select,
body.tpl-agent .bar.filter-panel textarea,
body.tpl-agent .bar.filter-panel .ac-q{field-sizing:content !important;width:auto !important;min-width:96px !important;max-width:340px !important}
body.tpl-agent .bar.filter-panel .ac{width:auto !important;max-width:none !important;min-width:0 !important}
body.tpl-agent .bar.filter-panel .filter-right{margin-left:auto !important}

/* ====== APP-WIDE SECTION THEME — white → red #ed6f63 → black #2D2926 ======
   page/card stay ROSE. Section = white container (back) → red ribbon header (mid, black title)
   → BLACK discrete boxes (front, red text). Data tones (green/red/warm/blue) STAY. */
body.tpl-agent :is(.kpi-sec,.card.panel,.kfpanel,.mon-card,.kpi-card,.oc-panel){background:#ffffff !important;border:1px solid #2D2926 !important;border-radius:10px !important}
/* L2 · red ribbon headers */
body.tpl-agent :is(.kpi-sec-h,.card-h,.kfhead,.sec-h,.subsec-h,.mon-card-h,.kpi-card-title,.oc-sub-h){background:#ed6f63 !important;color:#2D2926 !important;border-color:#2D2926 !important}
body.tpl-agent :is(.mon-card-t,.kpi-card-title,.kpi-sec-h,.card-h,.kfhead,.sec-h,.subsec-h){color:#2D2926 !important}
/* L3 · BLACK discrete boxes (not the layout containers) */
body.tpl-agent :is(.mon-tile,.mon-rate,.mon-col-h,.mon-tab,.mon-sub .box){
  background:#2D2926 !important;border-color:#2D2926 !important;color:#ed6f63}
body.tpl-agent :is(.mon-tile,.mon-rate,.mon-col-h,.mon-tab,.mon-sub .box) :is(.lbl,span,b,.val){color:#ed6f63}
/* keep data-indicator colours readable on the black boxes */
body.tpl-agent :is(.mon-tile,.mon-rate,.mon-sub .box) .green{color:#1e8e3e !important}
body.tpl-agent :is(.mon-tile,.mon-rate,.mon-sub .box) .red{color:#e0355b !important}
body.tpl-agent :is(.mon-tile,.mon-rate,.mon-sub .box) .warm{color:#e8710a !important}
body.tpl-agent :is(.mon-tile,.mon-rate,.mon-sub .box) .blue{color:#2563eb !important}
body.tpl-agent :is(.mon-rate,.mon-sub .box) b.green{color:#1e8e3e !important}
body.tpl-agent :is(.mon-rate,.mon-sub .box) b.red{color:#e0355b !important}
/* ===== Live Monitor fixes: content-sized rate boxes + tab pair ===== */
body.tpl-agent #fw-monitor .mon-rates{display:flex !important;flex-wrap:wrap !important;gap:8px !important}
body.tpl-agent #fw-monitor .mon-rate{flex:0 0 auto !important;min-width:0 !important;width:auto !important}
body.tpl-agent #fw-monitor .mon-tab{background:#2D2926 !important;border-color:#2D2926 !important;color:#ed6f63 !important}
body.tpl-agent #fw-monitor .mon-tab:hover{border-color:#6ee7b7 !important;box-shadow:0 0 0 1px #6ee7b7 !important}
body.tpl-agent #fw-monitor .mon-tab.on{background:#2D2926 !important;color:#ffffff !important}
body.tpl-agent #fw-monitor .mon-tab .mon-tabbad{background:#ed6f63 !important;color:#2D2926 !important}
body.tpl-agent #fw-monitor .mon-tab.on .mon-tabbad{background:#ffffff !important;color:#2D2926 !important}

/* ===== Live Report card (fw-report) — partial roll-out of the new css ===== */
body.tpl-agent #fw-report .rep-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
body.tpl-agent #fw-report .rep-actions .btn{height:24px !important;min-height:24px !important;padding:0 8px !important;font-size:var(--fs-10) !important}
body.tpl-agent #fw-report .rep-status{color:#2D2926 !important;font-size:var(--fs-10);margin-left:6px}
/* pagination: compact left group (not spread across the page) */
body.tpl-agent #fw-report .rep-pager{display:flex;align-items:center;gap:8px;justify-content:flex-start;flex-wrap:wrap;padding:8px 2px}
body.tpl-agent #fw-report .rep-pager .btn{height:24px !important;min-height:24px !important;padding:0 10px !important}
body.tpl-agent #fw-report .rep-pager .rep-pg,body.tpl-agent #fw-report .rep-pager .rep-lbl{color:#0d315f;font-size:var(--fs-11)}
body.tpl-agent #fw-report .rep-pager select{height:24px;min-height:24px}

/* ===== Live Report table — theme + tighten filter→table spacing ===== */
body.tpl-agent #fw-report .bar.filter-panel{margin-bottom:0 !important;border-radius:10px 10px 0 0 !important}
body.tpl-agent #fw-report .oc-panel{margin:0 !important;padding:0 !important;border:1px solid #2D2926 !important;border-top:0 !important;border-radius:0 0 10px 10px !important;background:#ffffff !important;overflow:hidden}
body.tpl-agent #fw-report #reptable{overflow:auto;max-height:inherit}
body.tpl-agent #fw-report #reptable .s7690f355{font-size:var(--fs-11)}
/* header = red ribbon, black text */
body.tpl-agent #fw-report #reptable thead tr,body.tpl-agent #fw-report #reptable thead th{background:#ed6f63 !important;color:#2D2926 !important;border-color:#2D2926 !important}
body.tpl-agent #fw-report #reptable thead th{font-size:var(--fs-11) !important;font-weight:400 !important}
/* data rows */
body.tpl-agent #fw-report #reptable tbody td{background:#ffffff !important;color:#2D2926 !important;border-bottom:1px solid #f0dcd9 !important}
body.tpl-agent #fw-report #reptable tbody tr:nth-child(even) td{background:#fbf4f3 !important}
body.tpl-agent #fw-report #reptable tbody tr:hover td{background:#ffe3e3 !important}
body.tpl-agent #fw-report #reptable .s31811e0d{background:#2D2926 !important;color:#ed6f63 !important}
body.tpl-agent #fw-report .rep-pager{margin-top:0 !important;padding-top:6px !important}

/* ===== Directory card (fw-directory) — Identity Index, new css ===== */
body.tpl-agent #fw-directory .diridbar{background:#ed6f63 !important;border:0 !important;box-shadow:0 0 0 3px #ffffff,0 0 0 4px #2D2926 !important;border-radius:12px !important;padding:6px 10px !important;gap:6px 12px !important;align-items:center !important}
body.tpl-agent #fw-directory .idfield>span{color:#2D2926 !important;font-size:var(--fs-10) !important}
body.tpl-agent #fw-directory .idfield select,body.tpl-agent #fw-directory .idfield input{background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;border-radius:8px !important;font-size:var(--fs-10) !important;height:24px !important}
body.tpl-agent #fw-directory .idfield select:hover,body.tpl-agent #fw-directory .idfield input:hover{border-color:#6ee7b7 !important;box-shadow:0 0 0 1px #6ee7b7 !important}
body.tpl-agent #fw-directory .dirid{background:#ffffff !important;border:1px solid #2D2926 !important;border-radius:10px !important;margin-bottom:8px !important;overflow:hidden}
body.tpl-agent #fw-directory .dirid-h{background:#ed6f63 !important;color:#2D2926 !important;padding:4px 8px !important;font-size:var(--fs-11) !important}
body.tpl-agent #fw-directory .dirid-h .arrow{color:#2D2926 !important}
body.tpl-agent #fw-directory .diridtab th{background:#ed6f63 !important;color:#2D2926 !important}
body.tpl-agent #fw-directory .diridtab td{background:#ffffff !important;color:#2D2926 !important}
body.tpl-agent #fw-directory .diridtab tbody tr:nth-child(even) td{background:#fbf4f3 !important}
body.tpl-agent #fw-directory .idv,body.tpl-agent #fw-directory .idp,body.tpl-agent #fw-directory .idc{background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;border-radius:6px !important}
body.tpl-agent #fw-directory .dirid-f{background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;border-radius:6px !important}
body.tpl-agent #fw-directory .dirid-x{color:#e0355b !important}

/* Directory — override the pre-existing #d3e2fd box rules (must out-specify .diridtab input) */
body.tpl-agent #fw-directory .diridtab thead th{background:#ed6f63 !important;color:#2D2926 !important}
body.tpl-agent #fw-directory .diridtab input.idv,body.tpl-agent #fw-directory .diridtab input.idp,body.tpl-agent #fw-directory .diridtab input.idc{background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;border-radius:6px !important}
body.tpl-agent #fw-directory .diridtab .dirid-f{background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important}
body.tpl-agent #fw-directory .diridtab .dirid-x{background:#e0355b !important;color:#fff !important}

/* ===== Directory: uniform editable CSV-chips grid ===== */
body.tpl-agent #fw-directory .dir-bar{margin-bottom:0 !important;border-radius:12px 12px 0 0 !important}
body.tpl-agent #fw-directory .dwrap{overflow:auto;max-height:62vh;border:1px solid #2D2926;border-top:0;border-radius:0 0 10px 10px;background:#fff}
body.tpl-agent #fw-directory .dtab{border-collapse:separate;border-spacing:5px 3px;width:auto;table-layout:auto}
body.tpl-agent #fw-directory .dhead th{background:#ed6f63 !important;color:#2D2926 !important;padding:4px 9px;border-radius:6px;font-size:var(--fs-11);white-space:nowrap;text-align:left;position:sticky;top:0;z-index:2}
body.tpl-agent #fw-directory .dcell{background:#2D2926 !important;color:#ed6f63 !important;border-radius:6px;padding:3px 9px;font-size:var(--fs-11);white-space:nowrap;min-width:22px;outline:none}
body.tpl-agent #fw-directory .dcell:focus{box-shadow:0 0 0 2px #6ee7b7}
body.tpl-agent #fw-directory .dnum{color:#2D2926;font-size:var(--fs-10);text-align:right;padding:0 6px;white-space:nowrap}
body.tpl-agent #fw-directory .dempty{color:#2D2926;padding:12px}
body.tpl-agent #fw-directory .dchip-x{width:18px;height:18px;line-height:16px;padding:0;border:0;border-radius:5px;background:#e0355b;color:#fff;font-size:var(--fs-9);cursor:pointer}
body.tpl-agent #fw-directory .dmini{height:22px;min-height:22px;padding:0 10px;border:1px solid #2D2926;border-radius:6px;background:#fff;color:#2D2926;font-size:var(--fs-10);cursor:pointer}
body.tpl-agent #fw-directory .dmini:hover{border-color:#6ee7b7;box-shadow:0 0 0 1px #6ee7b7}
body.tpl-agent #fw-directory .dfoot{display:flex;align-items:center;gap:10px;margin-top:6px}
body.tpl-agent #fw-directory .dnote{color:#2D2926;font-size:var(--fs-10);opacity:.85}

/* Directory spacing (separate sections) + per-column filter row (icon only) */
body.tpl-agent #fw-directory .dir-bar{margin-bottom:10px !important;border-radius:12px !important}
body.tpl-agent #fw-directory .dwrap{border:1px solid #2D2926 !important;border-radius:10px !important}
body.tpl-agent #fw-directory .dfoot{margin-top:10px !important}
body.tpl-agent #fw-directory .dfiltcell{padding:0 2px}
body.tpl-agent #fw-directory .dfbtn{background:transparent !important;border:0 !important;box-shadow:none !important;color:#1b8d58 !important;font-size:var(--fs-12);cursor:pointer;padding:0 4px}
body.tpl-agent #fw-directory .dfbtn:hover{color:#e03131 !important}
body.tpl-agent #fw-directory .dfbtn.on{color:#e03131 !important}
body.tpl-agent #fw-directory .dhead th{top:22px}
/* Directory: freeze the per-column filter row (top) AND the header, data scrolls behind */
body.tpl-agent #fw-directory .dfilt th{position:sticky !important;top:0 !important;z-index:6 !important;background:#ffffff !important;padding:1px 4px !important;height:20px}
body.tpl-agent #fw-directory .dhead th{position:sticky !important;top:22px !important;z-index:5 !important}
/* Directory: alternating row colours */
body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dcell{background:#3b3531 !important}
body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dnum,body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dact{background:#f3e6e4}
/* Directory v3: smoke-gray zebra, wider growing aliases, include-check, tiny no-fill delete cross */
body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dcell{background:#3a3a3a !important}
body.tpl-agent #fw-directory .dcell-al{min-width:170px}
body.tpl-agent #fw-directory .dchk{width:22px;text-align:center;color:#2D2926;font-size:var(--fs-9);white-space:nowrap}
body.tpl-agent #fw-directory .dcheck{display:inline-block;width:13px;height:13px;border:1px solid #2D2926;border-radius:3px;background:transparent;cursor:pointer;position:relative;vertical-align:middle}
body.tpl-agent #fw-directory .dcheck.on{background:#1e8e3e;border-color:#1e8e3e}
body.tpl-agent #fw-directory .dcheck.on::after{content:'\2713';color:#fff;font-size:11px;line-height:13px;position:absolute;left:1px;top:-2px}
body.tpl-agent #fw-directory .dchip-x{width:9px;height:9px;line-height:9px;padding:0;border:0;background:transparent !important;color:#e0355b;font-size:var(--fs-9);border-radius:3px;cursor:pointer}
body.tpl-agent #fw-directory .dchip-x:hover{background:rgba(224,53,91,.18) !important;box-shadow:0 0 0 1px rgba(224,53,91,.55)}
/* Directory v4: light-blue alternating fill (crimson font), structure unchanged */
body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dcell{background:#d3e2fd !important;color:#ed6f63 !important}
body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dnum,body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dact,body.tpl-agent #fw-directory .dtab tbody tr:nth-child(even) .dchk{background:#d3e2fd !important}
/* Directory: column drag-resize handles on the header */
body.tpl-agent #fw-directory .dhead th{position:sticky}
body.tpl-agent #fw-directory .dhead th .dcolh{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:3}
body.tpl-agent #fw-directory .dhead th .dcolh:hover{background:rgba(45,41,38,.25)}
body.tpl-agent #fw-directory .dhead th{position:relative}
/* Directory v7: status colours + Excel-style filter menu */
body.tpl-agent #fw-directory .dstat.on{color:#1e8e3e !important}
body.tpl-agent #fw-directory .dstat.off{color:#e0355b !important}
.dirf-menu{min-width:230px;max-height:60vh;display:flex;flex-direction:column;padding:0}
.dirf-head{padding:6px}
.dirf-search{width:100%;box-sizing:border-box;height:24px;border:1px solid #dbe4f0;border-radius:5px;padding:0 6px}
.dirf-all{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#2e7d32;color:#fff;border-radius:5px;margin:0 6px 4px;font-size:var(--fs-11);cursor:pointer}
.dirf-list{overflow:auto;max-height:38vh;padding:0 4px}
.dirf-mi{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:5px;font-size:var(--fs-11);cursor:pointer;white-space:nowrap;color:#0d315f}
.dirf-mi:hover{background:#eef2f8}
.dirf-mi.sel{background:#e6f3ea}
.dirf-act{display:flex;gap:6px;padding:6px;border-top:1px solid #eee}
.dirf-act .btn{flex:1;height:26px;min-height:26px}
/* Directory filter popup — compact (ocf-menu) + green Select All + green checks */
.ocf-menu .ocf-mi input[type=checkbox]{accent-color:#2e7d32 !important}
.ocf-menu .ocf-mi.sel{background:#e8f5ec}
.ocf-menu .dirf-selall{background:#2e7d32;color:#fff}
.ocf-menu .dirf-selall input[type=checkbox]{accent-color:#ffffff !important}
/* free resize both ways: clip cell content instead of blocking shrink */
body.tpl-agent #fw-directory .dtab.dcolfix{table-layout:fixed}
body.tpl-agent #fw-directory .dtab.dcolfix .dcell,body.tpl-agent #fw-directory .dtab.dcolfix .dnum,body.tpl-agent #fw-directory .dtab.dcolfix .dact{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Directory filter popup: apply/clear moved to the TOP row beside the search box */
.ocf-menu .ocf-top{display:flex;align-items:center;gap:6px;position:sticky;top:0;z-index:2;background:#fff;padding:0 0 5px}
.ocf-menu .ocf-top .ocf-search{flex:1 1 auto;margin:0 !important}
.ocf-menu .ocf-go{background:#2e7d32;color:#fff;border-radius:5px;padding:3px 9px;cursor:pointer;font-size:var(--fs-12);white-space:nowrap;font-weight:400}
.ocf-menu .ocf-go:hover{background:#276b2b}
.ocf-menu .ocf-clr{color:#c92a2a;cursor:pointer;padding:2px 6px;font-size:var(--fs-12);white-space:nowrap}
.ocf-menu .ocf-clr:hover{text-decoration:underline}
/* Directory bulk selection + actions */
body.tpl-agent #fw-directory .dsel{width:22px;text-align:center}
body.tpl-agent #fw-directory .dsel input{width:13px;height:13px;accent-color:#1e8e3e;cursor:pointer;vertical-align:middle}
body.tpl-agent #fw-directory .dhead .dsel input{cursor:pointer}
body.tpl-agent #fw-directory .dselrow .dcell{box-shadow:inset 0 0 0 2px #2563eb}
body.tpl-agent #fw-directory .dselrow .dnum,body.tpl-agent #fw-directory .dselrow .dsel{background:#e8effd !important}
body.tpl-agent #fw-directory .dsep{width:1px;align-self:stretch;background:#2D2926;opacity:.22;margin:0 3px}
body.tpl-agent #fw-directory .dmini.danger{border-color:#e0355b !important;color:#e0355b}
body.tpl-agent #fw-directory .dmini.danger:hover{background:#e0355b !important;color:#fff !important;box-shadow:none}
body.tpl-agent #fw-directory .dmini sup{font-size:var(--fs-9);margin-left:3px;font-weight:700}
body.tpl-agent #fw-directory .dfoot{flex-wrap:wrap;row-gap:6px}
body.tpl-agent #fw-directory #dirstatus{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Directory source-diff flags: red = source changed, orange = manually edited */
body.tpl-agent #fw-directory .dcell.dflag-auto{box-shadow:inset 0 0 0 2px #e0355b !important}
body.tpl-agent #fw-directory .dcell.dflag-manual{box-shadow:inset 0 0 0 2px #e8710a !important}
body.tpl-agent #fw-directory .dflagb{cursor:pointer;font-size:var(--fs-9);margin-left:4px;color:#fff;background:#2D2926;border-radius:4px;padding:0 3px;font-style:normal}
body.tpl-agent #fw-directory .dcell.dflag-auto .dflagb{background:#e0355b}
body.tpl-agent #fw-directory .dcell.dflag-manual .dflagb{background:#e8710a}
body.tpl-agent #fw-directory .dfoot .dmini{height:22px}
body.tpl-agent #fw-directory .dcell .dv{outline:none;display:inline-block;min-width:16px;white-space:nowrap}
body.tpl-agent #fw-directory .dcell:focus-within .dv{outline:none}

/* Filter popup: floating search with one-click clear */
.ocf-menu .ocf-searchwrap{position:relative;flex:1 1 auto;display:flex;align-items:center;min-width:0}
.ocf-menu .ocf-searchwrap .ocf-search{padding-right:20px !important}
.ocf-menu .ocf-search-clr{cursor:pointer;position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:var(--fs-12);color:#c92a2a;padding:0 3px;line-height:1;user-select:none}
.ocf-menu .ocf-search-clr:hover{color:#e03131}

/* Filter popup: actually hide non-matching rows (beats the .ocf-mi display:flex!important) */
.ocf-menu .ocf-mi.ocf-off{display:none!important}

/* ===== Report-grid filter: inline header ▾ + clean Google-Sheets-style popup ===== */
.oc-ref .filter-btn{background:transparent !important;border:0 !important;color:#9aa0a6 !important;font-size:9px !important;line-height:1 !important;cursor:pointer;padding:0 0 0 4px !important;opacity:.5;vertical-align:middle}
.oc-ref .oc-hrow th:hover .filter-btn{opacity:1}
.oc-ref .filter-btn:hover{color:#1a73e8 !important}
.oc-ref .filter-btn.active{color:#1a73e8 !important;opacity:1}

.ocf-menu{position:fixed !important;z-index:10000 !important;display:none;width:262px !important;min-width:262px !important;max-width:262px !important;max-height:62vh !important;background:#fff !important;border:1px solid #dadce0 !important;border-radius:8px !important;box-shadow:0 6px 20px rgba(60,64,67,.28) !important;padding:0 !important;overflow:hidden !important}
.ocf-menu .ocf-top{position:sticky;top:0;z-index:3;background:#fff;padding:8px 10px 6px !important;border-bottom:1px solid #dadce0;display:flex;align-items:center;gap:6px;margin:0 !important}
.ocf-menu .ocf-searchwrap{position:relative;flex:1 1 auto;display:flex;align-items:center;min-width:0}
.ocf-menu .ocf-search{width:100% !important;height:28px !important;border:1px solid #dadce0 !important;border-radius:6px !important;padding:0 22px 0 8px !important;font-size:12.5px !important;margin:0 !important;background:#fff !important;color:#202124 !important}
.ocf-menu .ocf-search:focus{border-color:#1a73e8 !important;outline:none !important}
.ocf-menu .ocf-search-clr{position:absolute;right:6px;top:50%;transform:translateY(-50%);color:#c92a2a;cursor:pointer;font-size:12px;line-height:1}
.ocf-menu .ocf-clr{color:#c92a2a;cursor:pointer;font-size:13px;padding:0 2px;align-self:center;flex:0 0 auto}
.ocf-menu .dirf-selall{display:flex !important;align-items:center;gap:8px;background:#fff !important;color:#1a73e8 !important;font-size:12.5px !important;padding:6px 12px !important;border-bottom:1px solid #eceff1;margin:0 !important;font-weight:400 !important}
.ocf-menu .dirf-selall input{accent-color:#1a73e8 !important}
.ocf-menu .ocf-list{max-height:300px !important;overflow:auto !important;padding:4px 0 !important;display:block !important}
.ocf-menu .ocf-mi{display:flex !important;align-items:center !important;justify-content:flex-start !important;gap:8px !important;padding:5px 12px !important;margin:0 !important;font-size:12.5px !important;font-weight:400 !important;line-height:1.35 !important;height:auto !important;min-height:0 !important;white-space:nowrap;border-radius:0 !important;width:100%;box-sizing:border-box;overflow:hidden;text-align:left;color:#202124 !important;cursor:pointer}
.ocf-menu .ocf-list .ocf-mi:hover{background:#f1f3f4 !important}
.ocf-menu .ocf-mi input[type=checkbox]{width:14px !important;height:14px !important;min-width:0 !important;flex:0 0 auto;margin:0 !important;padding:0 !important;accent-color:#1a73e8 !important}

/* OCStyler grids: inline header ▾ (no separate filter strip) */
.oc-ref .ocs-hrow .ocs-colf{background:transparent;border:0;color:#9aa0a6;font-size:9px;line-height:1;padding:0 0 0 4px;cursor:pointer;opacity:.5;vertical-align:middle}
.oc-ref .ocs-hrow th:hover .ocs-colf{opacity:1}
.oc-ref .ocs-hrow .ocs-colf:hover{color:#1a73e8}
.oc-ref .ocs-hrow .ocs-colf.on{color:#1a73e8;opacity:1}


/* ===== Filter ribbon (app-wide): uniform distribution, no orphan controls =====
   Fields share the row evenly and wrap into balanced rows (2, then 3) when they
   don't fit; the action group moves as ONE unit so a lone button never lands on
   its own line. Multi-value (CSV) boxes stay a clipped single line; the full list
   floats on click. */
body.tpl-agent .bar.filter-panel{flex-wrap:wrap !important;align-items:flex-end !important;justify-content:flex-start !important;gap:5px 8px !important;}
body.tpl-agent .bar.filter-panel>.f{flex:0 1 auto !important;min-width:0 !important;}
/* a field is never wider than its content (date boxes included); actions match the
   field text size so the whole ribbon reads as one set */
body.tpl-agent .bar.filter-panel>.f>input,body.tpl-agent .bar.filter-panel>.f>select{width:auto !important;}
body.tpl-agent .bar.filter-panel input[type=date]{width:auto !important;max-width:140px !important;min-width:0 !important;}
body.tpl-agent .bar.filter-panel .btn{font-size:var(--fs-10) !important;padding:0 8px !important;}
body.tpl-agent .bar.filter-panel>.f.kpi-reset-f,
body.tpl-agent .bar.filter-panel>.f.oc-actgrp{flex:0 0 auto !important;}
body.tpl-agent .bar.filter-panel .oc-actgrp .oc-actrow{display:flex !important;align-items:center !important;gap:6px !important;}
body.tpl-agent .bar.filter-panel .ac-q{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.ac-csvpop{position:fixed;z-index:10050;display:none;max-width:min(520px,90vw);max-height:40vh;overflow:auto;background:#2D2926;color:#ed6f63;border:1px solid #ed6f63;border-radius:8px;padding:8px 10px;font:400 11px/1.35 Arvo,sans-serif;white-space:normal;word-break:break-word;box-shadow:0 6px 20px rgba(0,0,0,.28);}


/* ===== Ribbon action types — same family, different tone (self-describing) =====
   INTERNAL (filter / table / view: reset, fold, pagination) -> crimson text on black.
   EXTERNAL (calls the portal / data / export / write: Refresh, Load, Sync, Pull Raw,
   refresh-all, Apply, reconcile, export) -> crimson fill, black text, so the two read
   differently at a glance. */
body.tpl-agent .bar.filter-panel .btn, body.tpl-agent .kpi-toolbar .btn, body.tpl-agent .oc-ctlrow .btn{
  background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;}
body.tpl-agent .bar.filter-panel .btn.kpi-refresh, body.tpl-agent .kpi-toolbar .btn.kpi-refresh,
body.tpl-agent .bar.filter-panel .btn.ext-act, body.tpl-agent .kpi-toolbar .btn.ext-act,
body.tpl-agent .oc-ctlrow .btn.ext-act, body.tpl-agent .oc-toolrow .btn.ext-act,
body.tpl-agent .oc-raw-tools .btn.ext-act{
  background:#ed6f63 !important;color:#2D2926 !important;border-color:#2D2926 !important;}
body.tpl-agent .bar.filter-panel .btn.ext-act:hover, body.tpl-agent .kpi-toolbar .btn.ext-act:hover,
body.tpl-agent .oc-ctlrow .btn.ext-act:hover{filter:brightness(1.07);}

/* Source picker: tick several tabs, list connected sources (multi sheet+tab per slot). */
.oc-src-tabs{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:6px;}
.oc-src-tab{display:inline-flex;align-items:center;gap:4px;font:400 11px/1.2 Arvo,sans-serif;color:#2D2926;}
.oc-src-list{margin-top:6px;display:flex;flex-direction:column;gap:2px;}

/* Run log: solid-enough panel + brighter neon so it reads over any card. */
body.tpl-agent .oc-runlog{background:rgba(6,12,22,.92) !important;border:1px solid #FFD700 !important;box-shadow:0 0 0 1px rgba(255,215,0,.35),0 14px 40px rgba(0,0,0,.7) !important;}
body.tpl-agent .oc-runlog-h{color:#FFE14D !important;text-shadow:0 0 10px rgba(255,225,77,.75) !important;}
body.tpl-agent .oc-runlog th{color:#FFE14D !important;background:rgba(6,12,22,.98) !important;}
body.tpl-agent .oc-runlog td{color:#4DFF6A !important;text-shadow:0 0 6px rgba(77,255,106,.45);}
body.tpl-agent .oc-runlog tbody tr:nth-child(even) td{color:#6FA8FF !important;text-shadow:0 0 6px rgba(111,168,255,.45);}
body.tpl-agent .oc-runlog .oc-runlog-h b{color:#fff !important;}
body.tpl-agent .bar.filter-panel .oc-pull-scope{height:30px !important;min-height:30px !important;background:#2D2926 !important;color:#ed6f63 !important;border:1px solid #2D2926 !important;border-radius:5px !important;font-size:var(--fs-11) !important;padding:0 6px !important;}

/* ===== ONE filter-popup skin, app-wide =====
   The ribbon's searchable list (.ac-menu) and the column filter (.ocf-menu) were two
   different skins — unified here: pink card + blue font, 8px list text, width fitted
   to its content (logical min/max so a 500-value list never goes absurd), height
   fitted to its content (max cap, then the list scrolls). */
:is(.ac-menu,.ocf-menu){
  background:#fdeef3 !important;color:#0d315f !important;
  border:1px solid #e03131 !important;border-radius:8px !important;
  box-shadow:0 10px 26px rgba(0,0,0,.22) !important;
  width:max-content !important;min-width:140px !important;max-width:min(360px,92vw) !important;
  max-height:min(62vh,420px) !important;overflow:auto !important;
  font-size:8px !important;line-height:1.35 !important;padding:4px !important;
}
:is(.ac-menu,.ocf-menu) :is(.ac-item,.ac-all,.ac-empty,.ac-acts,.ac-act,.ocf-mi,.ocf-act,.ocf-act b,.ocf-act span,.ocf-go,.ocf-clr,.dirf-selall){
  font-size:8px !important;white-space:nowrap !important;
}
:is(.ac-menu,.ocf-menu) :is(.ac-item,.ac-mi,.ocf-mi){color:#0d315f !important;padding:3px 8px !important;}
:is(.ac-menu,.ocf-menu) :is(.ac-item,.ocf-mi):hover{background:#ffd9e2 !important;}
:is(.ac-menu,.ocf-menu) :is(.ac-acts,.ocf-top){background:#fdeef3 !important;}
:is(.ac-menu,.ocf-menu) .ocf-search{background:#fff !important;color:#0d315f !important;border:1px solid #e8b9c4 !important;height:22px !important;font-size:8px !important;}
:is(.ac-menu,.ocf-menu) .ocf-list{max-height:none !important;overflow:visible !important;}
:is(.ac-menu,.ocf-menu) .ocf-mi input[type=checkbox]{width:11px !important;height:11px !important;flex:0 0 auto !important;}

/* ===== Filter icon = forest green, same prominence as the sort caret =====
   The column ▾ must never look weaker than the sort indicator (rule 22). */
.oc-ref .ocs-colf{color:#2e7d32 !important;font-size:11px !important;opacity:.95 !important;padding:0 4px !important;line-height:1 !important;vertical-align:middle !important;}
.oc-ref th:hover .ocs-colf{opacity:1 !important;color:#1b5e20 !important;}
.oc-ref .ocs-colf.on{color:#1b5e20 !important;opacity:1 !important;text-shadow:0 0 6px rgba(46,125,50,.55);}
.oc-ref .filter-btn{color:#2e7d32 !important;font-size:11px !important;opacity:.95 !important;padding:0 4px !important;}
.oc-ref .filter-btn.active{color:#1b5e20 !important;opacity:1 !important;}
/* the filter row (group -> filter -> headers -> data): thin, no empty cells */
.oc-ref .ocs-frow th{padding:0 !important;height:18px !important;background:transparent !important;border:0 !important;}
.oc-ref .ocs-frow .ocs-colf{display:inline-block;}

/* the ribbon list's single bulk control, matching the table filter's "(Select All)" */
:is(.ac-menu,.ocf-menu) .ac-selall{display:flex;align-items:center;gap:6px;padding:3px 8px;font-size:8px;color:#0d315f;border-bottom:1px solid #f3c9d4;cursor:pointer;}
:is(.ac-menu,.ocf-menu) .ac-selall input[type=checkbox]{width:11px;height:11px;flex:0 0 auto;}

/* ===== popup parity: rounded search box + REAL ticks (never a bare filled square) ===== */
:is(.ac-menu,.ocf-menu) .ocf-search{border-radius:8px !important;}
:is(.ac-menu,.ocf-menu) :is(.dirf-selall,.ac-selall){
  background:transparent !important;color:#0d315f !important;display:flex !important;align-items:center !important;
  gap:6px !important;padding:3px 8px !important;font-size:8px !important;font-weight:400 !important;
  border-bottom:1px solid #f3c9d4 !important;
}
:is(.ac-menu,.ocf-menu) :is(.dirf-selall,.ac-selall) input[type=checkbox],
:is(.ac-menu,.ocf-menu) .ocf-mi input[type=checkbox]{accent-color:#2e7d32 !important;width:11px !important;height:11px !important;}
/* the ribbon list's tick: a real checkbox square with a check glyph */
.ac-menu .ac-box{position:relative;display:inline-block;width:11px;height:11px;border:1px solid #9aa0a6 !important;background:#fff !important;border-radius:2px;}
.ac-menu .ac-box.on{background:#2e7d32 !important;border-color:#2e7d32 !important;}
.ac-menu .ac-box.on::after{content:'\2713';color:#fff;font-size:9px;line-height:1;position:absolute;left:1.5px;top:0;}

/* ===== Config tables (Orders vs Cost) = the DIRECTORY grid look, exactly =====
   Same classes' values as #fw-directory .dtab/.dhead/.dcell: crimson header (#ed6f63,
   black text), black cells (#2D2926) with crimson text, alternate rows on #d3e2fd,
   mint focus ring, tiny no-fill delete cross. CSS only - no value is touched. */
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355{border-collapse:separate !important;border-spacing:5px 3px !important;width:auto !important;table-layout:auto !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 thead th{background:#ed6f63 !important;color:#2D2926 !important;padding:4px 9px !important;border-radius:6px !important;font-size:var(--fs-11) !important;white-space:nowrap !important;text-align:left !important;position:sticky !important;top:0 !important;z-index:2 !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td{background:#2D2926 !important;border:0 !important;border-radius:6px !important;padding:0 !important;white-space:nowrap !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody tr:nth-child(even) td{background:#d3e2fd !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td input,
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td select,
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td textarea{
  background:transparent !important;color:#ed6f63 !important;border:0 !important;border-radius:6px !important;
  padding:3px 9px !important;font-size:var(--fs-11) !important;width:auto !important;min-width:64px !important;height:auto !important;min-height:0 !important;box-sizing:border-box !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td input:focus,
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td select:focus{box-shadow:0 0 0 2px #6ee7b7 !important;outline:none !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td button{background:transparent !important;border:0 !important;color:#ed6f63 !important;padding:0 5px !important;font-size:var(--fs-10) !important;line-height:1 !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td button:hover{color:#ffffff !important;}

/* Config rows: content-height only, and ONE neat action row at the foot (paste · import ·
   +row · clear) with the Cancel/Save pair — no scattered buttons, no spare breathing room. */
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td{height:auto !important;line-height:1.15 !important;padding:0 !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 thead th{position:static !important;}   /* no sticky inside the config: it floated over the rows */
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td input,
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td select,
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 tbody td textarea{padding:1px 8px !important;line-height:1.15 !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b .oc-imp{display:flex !important;flex-direction:column !important;gap:4px !important;margin-top:6px !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b .oc-paste{font-size:var(--fs-10) !important;min-height:34px !important;width:100% !important;box-sizing:border-box !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b .oc-imp-btns{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:6px !important;justify-content:flex-start !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b .btn,body.tpl-agent #fw-ordercost .oc-cfg-foot .btn{height:22px !important;min-height:22px !important;padding:0 9px !important;font-size:var(--fs-10) !important;line-height:1 !important;}
body.tpl-agent #fw-ordercost .oc-cfg-foot{display:flex !important;align-items:center !important;gap:6px !important;margin-top:8px !important;}
body.tpl-agent #fw-ordercost .oc-cfg-b .oc-file{display:inline-flex !important;align-items:center !important;height:22px !important;padding:0 9px !important;}

/* Config column drag handles — same look as the Directory's */
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 thead th .oc-colh{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:3;}
body.tpl-agent #fw-ordercost .oc-cfg-b table.s7690f355 thead th .oc-colh:hover{background:rgba(45,41,38,.25);}
/* Raw Attendance table: never wrap, never capped + one aligned action row */
body.tpl-agent #fw-ordercost #oc_raw_table table{width:max-content !important;min-width:100% !important;}
body.tpl-agent #fw-ordercost #oc_raw_table th,body.tpl-agent #fw-ordercost #oc_raw_table td{white-space:nowrap !important;max-width:none !important;}
body.tpl-agent #fw-ordercost .oc-toolrow{display:flex !important;align-items:center !important;gap:6px !important;flex-wrap:wrap !important;}
body.tpl-agent #fw-ordercost .oc-toolrow .oc-miss-f{height:22px !important;min-height:22px !important;font-size:var(--fs-10) !important;padding:0 6px !important;width:auto !important;}

/* live log stream: readable lines, wrapped, scrolls inside its own body */
body.tpl-agent .oc-runlog-pre{margin:0;font:400 11px/1.45 'IBM Plex Mono',Menlo,Consolas,monospace;color:#4DFF6A;white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text;}

/* Reconcile step 1: per-day mismatch (red) and manual entry (blue) boxes in the hours grid */
body.tpl-agent #oc_out td.oc-rc-mm{outline:2px solid #e03131 !important;outline-offset:-2px;}
body.tpl-agent #oc_out td.oc-rc-man{outline:2px solid #1a73e8 !important;outline-offset:-2px;}

/* Reconcile flags: AUTO (red) · manual-needed (orange) · manual edit (blue) · ignored (translucent) */
body.tpl-agent #oc_out td.oc-rc-manreq{outline:2px solid #f59f00 !important;outline-offset:-2px;}
body.tpl-agent #oc_out td.oc-rc-ign{opacity:.5;}

/* ===== Agent attendance card: self-contained sheet-style grid ===== */
#fw-agentcost, #fw-agentcost *{font-family:var(--font)!important;}
#fw-agentcost .ac-tb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;border:1px solid #d9dee7;background:#fff;border-radius:6px;padding:3px 5px;margin:4px 0}
#fw-agentcost .ac-grp{display:inline-flex;align-items:center;gap:2px;padding-right:5px;border-right:1px solid #e5e7eb}
#fw-agentcost .ac-grp:last-child{border-right:0}
#fw-agentcost .ac-tb button{width:22px;height:22px;min-width:22px;padding:0;border:1px solid #d1d5db;background:#fff;color:#2D2926;border-radius:4px;font:400 10px/1 var(--font);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
#fw-agentcost .ac-tb button:hover{background:#f3f4f6}
#fw-agentcost .ac-tb button.on{background:#e8f0fe;border-color:#2563eb;color:#2563eb}
#fw-agentcost .ac-tb select{height:22px;min-height:22px;width:auto;padding:0 2px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#2D2926;font:400 10px var(--font)}
#fw-agentcost .ac-tb input[type=color]{width:22px;height:22px;padding:0;border:1px solid #d1d5db;border-radius:4px;background:#fff}
#fw-agentcost .ac-sp{flex:1 1 auto}
#fw-agentcost .ac-tb .ac-expbtn{width:auto;min-width:34px;padding:0 4px;font-size:9px}
#fw-agentcost .ac-wrap{overflow:auto;max-height:calc(100vh - 330px);border:1px solid #d9dee7;border-radius:6px;background:#fff}
#fw-agentcost .ac-grid-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font:400 10px/1.25 var(--font);color:#2D2926;table-layout:fixed}
#fw-agentcost .ac-grid-table th,#fw-agentcost .ac-grid-table td{border-right:1px solid #e6e9ee;border-bottom:1px solid #eef1f4;padding:2px 5px;height:23px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff}
#fw-agentcost .ac-grid-table thead th{position:sticky;top:0;z-index:5;background:#f3f4f6;font-weight:700;text-align:left;color:#2D2926}
#fw-agentcost .ac-grid-table thead th small{display:block;font-size:8px;font-weight:400;color:#6b7280;line-height:1}
#fw-agentcost .ac-grid-table th.ac-sorted{background:#e0f2fe;font-weight:700}
#fw-agentcost .ac-grid-table th.ac-sorted::after{content:' ↑';font-weight:700}
#fw-agentcost .ac-grid-table th.ac-sorted.desc::after{content:' ↓';font-weight:700}
#fw-agentcost .ac-grid-table td.ac-num{text-align:right;font-variant-numeric:tabular-nums}
#fw-agentcost .ac-grid-table td.ac-sel{box-shadow:inset 0 0 0 2px #2563eb}
#fw-agentcost .ac-grid-table th .ac-cf{margin-left:3px;border:0;background:transparent;color:#2e7d32;font-size:10px;cursor:pointer;padding:0;width:12px}
#fw-agentcost .ac-grid-table th .ac-cf.on{color:#1d4ed8;font-weight:700}
#fw-agentcost .ac-freeze-cols .ac-id{position:sticky;z-index:4;background:#fff}
#fw-agentcost .ac-freeze-cols thead .ac-id{z-index:6;background:#f3f4f6}
#fw-agentcost .ac-freeze-cols .ac-c0{left:0;width:38px;min-width:38px;max-width:38px}
#fw-agentcost .ac-freeze-cols .ac-c1{left:38px;width:90px;min-width:90px;max-width:90px}
#fw-agentcost .ac-freeze-cols .ac-c2{left:128px;width:150px;min-width:150px;max-width:150px}
#fw-agentcost .ac-freeze-cols .ac-c3{left:278px;width:80px;min-width:80px;max-width:80px}
#fw-agentcost .ac-freeze-cols .ac-c4{left:358px;width:150px;min-width:150px;max-width:150px}
#fw-agentcost .ac-pager{display:flex;align-items:center;gap:4px;padding:4px 1px;font:400 10px var(--font);color:#4b5563;min-height:26px}
#fw-agentcost .ac-pager select{height:22px;min-height:22px;width:auto;padding:0 2px;border:1px solid #d1d5db;border-radius:4px;background:#fff;font:400 10px var(--font)}
#fw-agentcost .ac-pager button{width:22px;height:22px;min-width:22px;padding:0;border:1px solid #d1d5db;background:#fff;border-radius:4px;font:400 10px var(--font);cursor:pointer}
#fw-agentcost .ac-pager button:disabled{opacity:.4;cursor:default}
#fw-agentcost .ac-pager .ac-pg{min-width:44px;text-align:center}
#fw-agentcost input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;filter:grayscale(1);cursor:pointer}
#fw-agentcost input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:.85;filter:grayscale(1)}

#ac_fpop{position:fixed;z-index:10060;width:210px;max-height:300px;background:#fff;border:1px solid #d9dee7;border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.18);font:400 10px/1.3 var(--font);color:#2D2926;display:flex;flex-direction:column}
#ac_fpop .ac-fh{display:flex;align-items:center;gap:3px;padding:5px 6px;border-bottom:1px solid #e5e7eb;background:#f3f4f6}
#ac_fpop .ac-fh b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ac_fpop .ac-fh button{width:22px;height:20px;padding:0;border:1px solid #d1d5db;background:#fff;border-radius:4px;font:400 9px var(--font);cursor:pointer}
#ac_fpop .ac-fl{overflow:auto;max-height:230px;padding:3px 6px}
#ac_fpop .ac-fl label{display:flex;align-items:center;gap:5px;padding:2px 0;cursor:pointer;white-space:nowrap}
#ac_fpop .ac-fl input{width:12px;height:12px;margin:0}
#ac_fpop .ac-fa{padding:4px 6px;border-top:1px solid #e5e7eb}
#ac_fpop .ac-fa button{width:100%;height:22px;border:1px solid #2563eb;background:#2563eb;color:#fff;border-radius:4px;font:400 10px var(--font);cursor:pointer}
#ac_fpop .ac-sp{flex:1}
#fw-agentcost .ac-grid-table thead th{font-weight:700!important}
#fw-agentcost .ac-grid-table thead th.ac-sorted{font-weight:700!important}
#fw-agentcost .ac-grid-table tbody tr:nth-child(even) td{background:#f5f8fc!important}
/* style copied from the existing #oc_out report table; no data/source copied */
#fw-agentcost .ac-grid-table thead th{border:1px solid #000!important;background:#fff!important;color:#000!important;text-align:center!important;padding:3px 7px!important}
#fw-agentcost .ac-grid-table tbody td{border:0!important;border-bottom:1px solid #e0a96d!important;background:#fff!important;color:#111!important;padding:3px 7px!important}
#fw-agentcost .ac-grid-table tbody tr:nth-child(even) td{background:#fff!important}
#fw-agentcost .ac-grid-table tbody tr:nth-child(odd) td{background:#fff!important}
#fw-agentcost .ac-grid-table td.ac-zero{opacity:.5;text-decoration:line-through}
#fw-agentcost .ac-grid-table td.ac-na{color:#111!important}
#fw-agentcost .ac-grid-table td.ac-num{text-align:right;font-variant-numeric:tabular-nums}
#fw-agentcost .ac-grid-table th .ac-cf{background:#e9eef7!important;color:#0d315f!important;border:0!important;border-radius:0 0 0 6px;height:14px;width:15px;font-size:8px}
#fw-agentcost .ac-grid-table th .ac-cf.on{background:#0d315f!important;color:#fff!important}
#fw-agentcost .ac-grid-table th.ac-sorted{background:#fff!important;color:#000!important;font-weight:700!important}
#fw-agentcost .ac-grid-table thead th small{font-size:8px!important;font-weight:400!important;color:#555!important}
#fw-agentcost .ac-grid-table td.ac-ab{background:#e03131!important;color:#fff!important}
#fw-agentcost .ac-grid-table td.ac-off{background:#fff3bf!important;color:#1d4ed8!important}
#fw-agentcost .ac-grid-table td.ac-co{background:#ffd8a8!important;color:#1d4ed8!important}

/* ribbon autocomplete: list search inside the popup, compact left-aligned boxes */
.ac-menu .ac-searchwrap{position:sticky;top:0;z-index:3;padding:4px 6px;background:#fff;border-bottom:1px solid #f0c7d2}
.ac-menu .ac-search-q{width:100%;height:22px;min-height:22px;padding:2px 7px;border:1px solid #e3b6c2;border-radius:7px;background:#fff;color:#0d315f;font:400 10px var(--font);outline:none}
.ac-menu .ac-search-q:focus{border-color:#2e7d32;box-shadow:0 0 0 2px rgba(46,125,50,.12)}
.ac-menu .ac-item{display:flex;align-items:center;justify-content:flex-start;gap:6px;text-align:left;padding-left:8px}
.ac-menu .ac-box{flex:0 0 9px !important;width:9px !important;height:9px !important;margin:0 2px 0 0 !important;border-radius:2px}
.ac-menu .ac-box.on::after{font-size:8px !important;left:1px !important;top:-1px !important;line-height:1 !important}
.ac-menu .ac-selall{justify-content:flex-start;text-align:left}

/* KPI: calendar icon must stay visible as a gray glyph */
body.tpl-agent input[type=date]::-webkit-calendar-picker-indicator{opacity:.65;filter:grayscale(1) invert(55%);cursor:pointer}
body.tpl-agent input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:.9;filter:grayscale(1) invert(45%)}
/* KPI score-card titles: white on the red header */
body.tpl-agent #fw-kpi .kpi-card-title{color:#fff !important}
body.tpl-agent #fw-kpi .kpi-sec-h{color:#fff !important}
/* KPI Live Flow: cascade groups, AAA/non-AAA -> chain -> vendor -> picker */
#kpi_liveflow{padding:2px 0}
#kpi_liveflow .lf-legend{margin:0 0 8px;padding:6px 9px;border:1px solid #f0c7d2;border-radius:7px;background:#fff7f8;color:#7a2a28;font-size:10px;line-height:1.45}
#kpi_liveflow details{border-radius:7px;background:#fff}
#kpi_liveflow details.lf-sec{margin:7px 0;border:1px solid #e9b7bf;overflow:hidden}
#kpi_liveflow details.lf-sec>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;background:#c23a33 !important;color:#fff !important;font-weight:600;cursor:pointer}
#kpi_liveflow details.lf-sec>summary .lf-title{color:#fff !important}
#kpi_liveflow details.lf-chain{margin:5px 6px;border:1px solid #f0d4d8;background:#fff}
#kpi_liveflow details.lf-chain>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;background:#fdecec !important;color:#7a2a28 !important;cursor:pointer}
#kpi_liveflow details.lf-vendor{margin:4px 6px 5px 14px;border:1px solid #f6e2e4;background:#fff}
#kpi_liveflow details.lf-vendor>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;background:#fff6f6 !important;color:#0d315f !important;cursor:pointer}
#kpi_liveflow summary{list-style:revert}
#kpi_liveflow .lf-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#kpi_liveflow .lf-counts{display:flex;align-items:center;gap:10px;flex:0 0 auto;font-size:9px;color:inherit;font-weight:400}
#kpi_liveflow .lf-n{display:inline-flex;align-items:baseline;gap:3px}
#kpi_liveflow .lf-n b{font-weight:700;font-size:11px}
#kpi_liveflow .lf-n i{font-style:normal;opacity:.8}
#kpi_liveflow .lf-body{padding:2px 4px 4px}
#kpi_liveflow .lf-vendors{padding:1px 2px 3px}
#kpi_liveflow .lf-pick{padding:2px 6px 5px}
#kpi_liveflow .lf-phead,#kpi_liveflow .lf-prow{display:grid;grid-template-columns:minmax(0,1fr) 56px 66px 66px;align-items:center;gap:6px;padding:3px 5px}
#kpi_liveflow .lf-phead{font-size:9px;font-weight:700;color:#7a2a28;border-bottom:1px solid #f0d4d8;position:sticky;top:0;background:#fff}
#kpi_liveflow .lf-phead span:not(:first-child),#kpi_liveflow .lf-prow span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
#kpi_liveflow .lf-prow{font-size:10px;color:#0d315f;border-bottom:1px solid #f7e7e9}
#kpi_liveflow .lf-prow:hover{background:#fff7f8}
#kpi_liveflow .lf-empty{padding:5px 8px;font-size:10px;color:#8a6b6b}
#fw-agentcost input[type=date]::-webkit-calendar-picker-indicator{opacity:.65;filter:grayscale(1) invert(55%)}
/* Admin · users/access add row */
.users-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 6px;padding:7px 8px;border:1px solid #e5c1c8;border-radius:7px;background:#fff8f8}
.users-add input{flex:1 1 220px;min-width:180px;height:26px;padding:2px 8px;border:1px solid #e3b6c2;border-radius:6px;font:400 11px var(--font);color:#0d315f;background:#fff}
.users-add select{height:26px;padding:0 6px;border:1px solid #e3b6c2;border-radius:6px;font:400 11px var(--font);color:#0d315f;background:#fff}
.users-add .btn{height:26px;min-height:26px;padding:0 9px;font-size:11px}
.users-hint{margin:0 0 8px;color:#7a4a4a;font-size:10px;line-height:1.4}
/* Picker Performance / ribbon: force compact select-all tick too */
.ac-menu .ac-selall{display:flex!important;align-items:center;gap:5px;font-size:9px!important;padding:2px 8px!important}
.ac-menu .ac-selall input[type=checkbox]{width:9px!important;height:9px!important;min-width:9px!important;margin:0!important;accent-color:#2e7d32}
.ac-menu .ac-item > .ac-box{width:9px!important;height:9px!important;min-width:9px!important;flex:0 0 9px!important}
/* Global ID search: first slot of every filter ribbon, separate from the filter family */
.bar.filter-panel .uid-ribbon-lead{display:flex;align-items:flex-end;align-self:stretch;flex:0 0 auto;padding:0 8px 0 0;margin:0 2px 0 0;border-right:1px solid #e2b4bd}
.bar.filter-panel .uid-ribbon-lead .uid-search-btn{position:static!important;right:auto!important;bottom:auto!important;height:30px!important;min-height:30px!important;padding:0 9px!important;border-radius:7px!important;box-shadow:none!important;font:600 10px/1 var(--font)!important;letter-spacing:.02em}
.uid-search-btn.uid-search-fallback{left:14px!important;right:auto!important;top:14px!important;bottom:auto!important}
/* Picker Performance: proper data table, grouping, sorting and tone */
#pp_out .pp-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;padding:7px 8px;margin:0 0 8px;border:1px solid #d3dfec;border-radius:8px;background:#f8fbff}
#pp_out .pp-ctl{display:flex;flex-direction:column;gap:2px;min-width:0}
#pp_out .pp-ctl label{font-size:9px;color:#31557d;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
#pp_out .pp-ctl input,#pp_out .pp-ctl select{height:27px;min-height:27px;border:1px solid #b9cbe0;border-radius:6px;background:#fff;color:#0d315f;font:400 11px var(--font);padding:2px 7px}
#pp_out .pp-ctl-search input{width:250px;max-width:44vw}
#pp_out .pp-ctl-btns .pp-btnrow{display:flex;gap:4px}
#pp_out .pp-ctl-btns .btn{height:27px;min-height:27px;padding:0 8px;font-size:10px}
#pp_out .pp-legend{display:flex;gap:4px;align-items:center;margin-left:auto;padding:0 4px 3px}
#pp_out .pp-legend span{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:4px;font:700 9px var(--font)}
#pp_out .pp-actions{position:relative;display:flex;align-items:center;gap:7px;margin-left:4px;padding-bottom:0}
#pp_out .pp-count{font:400 10px var(--font);color:#53708f;white-space:nowrap}
#pp_out .pp-actions>.btn{height:27px;min-height:27px;padding:0 8px;font-size:10px}
#pp_out .pp-export{display:none;position:absolute;right:0;top:31px;z-index:40;background:#fff;border:1px solid #b9cbe0;border-radius:7px;box-shadow:0 8px 22px rgba(13,49,95,.18);padding:4px;min-width:165px}
#pp_out .pp-export .btn{display:block;width:100%;text-align:left;margin:0 0 3px;height:25px;min-height:25px;font-size:10px}
#pp_table.pp-tablewrap{max-height:560px;overflow:auto;margin-top:9px;border:1px solid #aebfd3;border-radius:8px;background:#fff;box-shadow:0 1px 0 rgba(13,49,95,.06)}
#pp_table table.pp-tbl{width:100%;min-width:1750px;border-collapse:separate;border-spacing:0;table-layout:auto;font:400 10px/1.25 var(--font);background:#fff}
#pp_table thead th.pp-th{position:sticky;top:0;z-index:5;background:#173b67;color:#fff;border-right:1px solid rgba(255,255,255,.14);border-bottom:2px solid #0d315f;padding:7px 7px;text-align:left;white-space:nowrap;cursor:pointer;user-select:none;font-weight:700;letter-spacing:.01em}
#pp_table thead th.pp-th-num{text-align:right}
#pp_table thead th.pp-th:hover{background:#24598f}
#pp_table thead th.pp-sorted{background:#0d315f;box-shadow:inset 0 -3px 0 #ffb703}
#pp_table thead th.pp-imp{color:#ffe6a3}
#pp_table th.pp-th-sn{width:38px;text-align:center;color:#cfe0f3}
#pp_table tbody td.pp-cell{padding:5px 7px;border-bottom:1px solid #dbe5f0;border-right:1px solid #e9eff6;background:#fff;white-space:nowrap;color:#183b5f;vertical-align:middle}
#pp_table tbody tr.pp-childrow:nth-child(even) td.pp-cell{background:#f4f8fd}
#pp_table tbody tr.pp-childrow:hover td.pp-cell{background:#e8f2ff}
#pp_table tbody td.pp-num{text-align:right;font-variant-numeric:tabular-nums}
#pp_table tbody td.pp-text{text-align:left}
#pp_table tbody td.pp-id{font-weight:700;color:#0d315f}
#pp_table tbody td.pp-name{font-weight:600;color:#0d315f;max-width:220px;overflow:hidden;text-overflow:ellipsis}
#pp_table tbody td.pp-dim{color:#5a6d82}
#pp_table tbody td.pp-imp{font-weight:700}
#pp_table tbody td.pp-zero{color:#9aa8b8}
#pp_table tbody td.pp-good{background:#e6f6ec!important;color:#11613a!important;font-weight:700}
#pp_table tbody td.pp-avg{background:#fff3cd!important;color:#7a5200!important;font-weight:700}
#pp_table tbody td.pp-bad{background:#fde7e7!important;color:#a51d1d!important;font-weight:700}
#pp_table tbody tr.pp-grp td{background:#e8f0fa!important;border-top:2px solid #8da9c7;border-bottom:1px solid #b9cbe0;padding:7px 8px;color:#12395f;cursor:pointer;white-space:normal}
#pp_table tbody tr.pp-grp:hover td{background:#dceaf9!important}
#pp_table tbody tr.pp-grp.is-open td{background:#d8e7f7!important}
#pp_table .pp-garr{display:inline-block;width:14px;color:#173b67;font-weight:700}
#pp_table .pp-gname{font-size:11px;font-weight:800;color:#0d315f;margin-right:7px}
#pp_table .pp-gcount{font-size:9px;color:#486783;margin-right:10px}
#pp_table .pp-gmetrics{display:inline-flex;flex-wrap:wrap;gap:4px;vertical-align:middle}
#pp_table .pp-gchip{display:inline-flex;align-items:center;gap:3px;padding:1px 5px;border-radius:4px;background:#fff;border:1px solid #c9d9ea;font-size:9px;color:#31557d}
#pp_table .pp-gchip b{font-size:10px;color:#0d315f}
#pp_table .pp-gchip.pp-good{background:#e6f6ec;border-color:#9bceb1;color:#11613a}
#pp_table .pp-gchip.pp-avg{background:#fff3cd;border-color:#e6c86a;color:#7a5200}
#pp_table .pp-gchip.pp-bad{background:#fde7e7;border-color:#e5a1a1;color:#a51d1d}
#pp_table .pp-ghint{float:right;font-size:9px;color:#6b849c;font-weight:400;padding-top:2px}
#pp_table .pp-empty{padding:16px!important;text-align:center!important;color:#71859a!important}
@media (max-width:900px){#pp_out .pp-ctl-search input{width:100%;max-width:none}#pp_out .pp-ctl-search{flex:1 1 100%}#pp_out .pp-legend{margin-left:0}}
#pp_out .pp-note{margin:2px 0 0;padding:5px 8px;border:1px solid #d7e3f0;border-radius:6px;background:#f5f9ff;color:#486582;font:400 9px/1.4 var(--font)}
#pp_out .pp-note b{color:#0d315f}
