/* ==========================================================================
   FURNEX · Enterprise design layer
   Loaded LAST (end of <body>) so it wins the cascade over the inline styles.
   Remove the one <link> to revert to the previous look.

   Scene: shift incharges on a tablet beside a 1500 °C furnace, and a plant head
   at a desk in the QC office. Light theme for the daytime office; dark theme for
   night shifts in a dim control room. Both are neutral so status colour carries
   meaning: brand red = running / primary action, amber = attention, green = ready.
   ========================================================================== */

/* ---------------------------------------------------------------- tokens */
:root{
  color-scheme:light;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --mono:'JetBrains Mono','Geist Mono','IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;

  /* surfaces: canvas < chrome < card */
  --bg:#f4f5f7; --app-bg:#f4f5f7; --auth-bg:#eef0f3;
  --chrome:#fbfbfc;
  --s1:#ffffff; --s2:#f7f8fa; --s3:#eef0f3; --s4:#e2e5ea;
  --b1:#e6e8ec; --b2:#d9dce2; --b3:#c4c9d1;
  --t1:#101218; --t2:#4a5060; --t3:#6b7180;

  --red:#cc1f1f; --red2:#d42c2c; --red-hover:#b31a1a; --red-dark:#8f1414; --red-darker:#6b0f0f;
  --red-soft:#fdf1f1; --adim:rgba(204,31,31,.08);
  --sap:#2563eb; --sap-hover:#1d4fd7; --sap-soft:#eef3fe; --sap-dim:rgba(37,99,235,.10);
  --green:#0d8a5c; --gdim:rgba(13,138,92,.10);
  --yellow:#b45f06; --ydim:rgba(180,95,6,.10);
  --blue:#2563eb; --bdim:rgba(37,99,235,.10);
  --teal:#0e7490; --tdim:rgba(14,116,144,.10);
  --orange:#c2410c;

  --shadow-xs:0 1px 2px rgba(16,18,24,.04);
  --shadow-sm:0 1px 2px rgba(16,18,24,.06),0 1px 1px rgba(16,18,24,.03);
  --shadow-md:0 4px 12px rgba(16,18,24,.06),0 1px 2px rgba(16,18,24,.04);
  --shadow-lg:0 10px 28px rgba(16,18,24,.10),0 2px 6px rgba(16,18,24,.05);
  --shadow-xl:0 24px 56px rgba(16,18,24,.16),0 4px 12px rgba(16,18,24,.06);
  --shadow-red:0 1px 2px rgba(204,31,31,.25);
  --shadow-focus:0 0 0 3px rgba(37,99,235,.20);
  --ring:0 0 0 3px rgba(37,99,235,.20);

  --r-sm:4px; --r:6px; --r-lg:8px; --r-xl:12px;
  --topbar:52px; --sidebar:232px;
  --ease:cubic-bezier(.2,0,0,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:.12s; --dur-normal:.16s; --dur-slow:.22s;
  --glass:var(--s1); --glass-gradient:var(--s1); --glass-border:var(--b1); --glass-blur:none;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0f1012; --app-bg:#0f1012; --auth-bg:#0b0c0e;
  --chrome:#0b0c0e;
  --s1:#161719; --s2:#1b1c1f; --s3:#232428; --s4:#2c2e33;
  --b1:#232428; --b2:#2d2f34; --b3:#3a3d43;
  --t1:#ececee; --t2:#a3a6ad; --t3:#82868f;

  --red:#e5484d; --red2:#ff6369; --red-hover:#f2555a; --red-dark:#c13a3e; --red-darker:#8f2a2d;
  --red-soft:rgba(229,72,77,.10); --adim:rgba(229,72,77,.13);
  --sap:#5b93ff; --sap-hover:#7aa8ff; --sap-soft:rgba(91,147,255,.10); --sap-dim:rgba(91,147,255,.14);
  --green:#3dd68c; --gdim:rgba(61,214,140,.12);
  --yellow:#f1a10d; --ydim:rgba(241,161,13,.12);
  --blue:#5b93ff; --bdim:rgba(91,147,255,.12);
  --teal:#2ebdd1; --tdim:rgba(46,189,209,.12);
  --orange:#ff8b3e;

  --shadow-xs:none; --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 4px 12px rgba(0,0,0,.35); --shadow-lg:0 12px 32px rgba(0,0,0,.5);
  --shadow-xl:0 24px 64px rgba(0,0,0,.6); --shadow-red:none;
  --shadow-focus:0 0 0 3px rgba(91,147,255,.28); --ring:0 0 0 3px rgba(91,147,255,.28);
  --glass:var(--s1); --glass-gradient:var(--s1); --glass-border:var(--b1);
}

/* ---------------------------------------------------------------- base */
html,body{background:var(--bg)}
body{font-family:var(--sans);color:var(--t1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}
#app::before,body::before,:root[data-theme="dark"] #app::before,:root[data-theme="dark"] body::before{display:none !important;background:none !important}
::selection{background:var(--sap-dim)}
:focus-visible{outline:2px solid var(--sap);outline-offset:2px}
.tabnum,.fmono{font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------- app shell: top bar */
.topbar,:root[data-theme="dark"] .topbar{height:var(--topbar);background:var(--chrome);border-bottom:1px solid var(--b1);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0 16px 0 14px;gap:12px}
.tb-brand-v2{gap:9px}
.tb-brand-name-v2{font-size:14px !important;font-weight:700;letter-spacing:.02em}
.tb-crumb{font-size:13px;color:var(--t3);display:flex;align-items:center;gap:6px;margin-left:18px;padding-left:18px;border-left:1px solid var(--b1);height:20px}
.tb-crumb #tbCrumbPage{color:var(--t1) !important;font-weight:600 !important}
.cc-clock,:root[data-theme="dark"] .cc-clock{font-size:12.5px;font-weight:600;letter-spacing:.02em;padding:4px 10px;background:transparent;border:1px solid var(--b1);border-radius:var(--r);color:var(--t2)}
.tbn-log,:root[data-theme="dark"] .tbn-log{background:var(--red);border:1px solid var(--red);border-radius:var(--r);color:#fff;font-size:13px;font-weight:600;padding:0 14px;height:32px;box-shadow:var(--shadow-red);transition:background var(--dur-fast) var(--ease)}
.tbn-log:hover{background:var(--red-hover);border-color:var(--red-hover);transform:none}
.tbn-icon,:root[data-theme="dark"] .tbn-icon{border-radius:var(--r);border:1px solid transparent;color:var(--t2);padding:7px 8px}
.tbn-icon:hover{background:var(--s3);color:var(--t1)}
.tb-profile .avatar,#topAv{background:var(--s3);border:1px solid var(--b2);color:var(--t1)}
.avatar{background:var(--s3);border:1px solid var(--b2);color:var(--t1)}

/* top nav stays for tablets; desktop uses the sidebar */
.tb-nav,:root[data-theme="dark"] .tb-nav{background:transparent;border:0;border-radius:0;padding:0;gap:2px}
.tbn-item,:root[data-theme="dark"] .tbn-item{border-radius:var(--r);color:var(--t2);font-weight:500;padding:6px 12px;box-shadow:none}
.tbn-item:hover{background:var(--s3);color:var(--t1)}
.tbn-item.active,:root[data-theme="dark"] .tbn-item.active{background:var(--s3);color:var(--t1);box-shadow:none}
.tbn-item::after{display:none !important}
.tbn-mega-panel,:root[data-theme="dark"] .tbn-mega-panel{background:var(--s1);border:1px solid var(--b2);border-radius:10px;box-shadow:var(--shadow-lg);backdrop-filter:none;-webkit-backdrop-filter:none;padding:6px}
.tbn-mega-item{border-radius:var(--r);padding:9px 10px}
.tbn-mega-item:hover{background:var(--s3)}
.tbn-mega-item .ico{filter:grayscale(1);opacity:.75}
.tbn-new{background:var(--sap-soft);color:var(--sap);border-radius:4px;font-size:10px;letter-spacing:0;text-transform:none;padding:1px 6px}
.tb-profile-menu,.tb-notif-panel,:root[data-theme="dark"] .tb-profile-menu,:root[data-theme="dark"] .tb-notif-panel{background:var(--s1);border:1px solid var(--b2);border-radius:10px;box-shadow:var(--shadow-lg);backdrop-filter:none;-webkit-backdrop-filter:none}
.tb-profile-item{border-radius:var(--r)}
.tb-profile-item:hover{background:var(--s3)}

/* ---------------------------------------------------------------- app shell: sidebar (desktop) */
@media (min-width:1101px){
  .sidebar,#appSidebar{display:flex !important;flex-direction:column;width:var(--sidebar);flex:0 0 var(--sidebar);background:var(--chrome) !important;border-right:1px solid var(--b1) !important;overflow-y:auto;transition:width var(--dur-slow) var(--ease),flex-basis var(--dur-slow) var(--ease)}
  .sidebar.collapsed,#appSidebar.collapsed{width:0;flex-basis:0;border-right:0 !important;overflow:hidden}
  .tb-nav{display:none !important}
}
@media (max-width:1100px){ .sidebar,#appSidebar{display:none !important} .sidebar-expand{display:none !important} }
.sidebar-inner{padding:8px 10px;flex:1}
.sidebar-inner>div:first-child{padding:2px 0 4px !important;margin:0 !important}
.sidebar-inner>div:first-child button{opacity:.7 !important;border-radius:var(--r);padding:4px 7px !important}
.sidebar-inner>div:first-child button:hover{background:var(--s3);opacity:1 !important}
.nav-sec{font:500 12px/1 var(--sans);color:var(--t3);text-transform:none;letter-spacing:0;padding:0 10px;margin:18px 0 6px}
.nav-item,:root[data-theme="dark"] .nav-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;margin:1px 0;border-radius:var(--r);border:0 !important;color:var(--t2);font:500 13px var(--sans);background:transparent;transform:none !important;box-shadow:none !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
.nav-item:hover{background:var(--s3);color:var(--t1)}
.nav-item.active,:root[data-theme="dark"] .nav-item.active{background:var(--s3);color:var(--t1);font-weight:600}
.nav-item .ico{width:16px;height:16px;font-size:0;display:inline-grid;place-items:center;flex:none;color:var(--t3)}
.nav-item.active .ico,.nav-item:hover .ico{color:var(--t1)}
.nav-item .ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.nav-item.feat-locked{opacity:.5}
.nav-bottom{display:none !important}
.fx-side-foot{padding:10px;border-top:1px solid var(--b1);display:flex;flex-direction:column;gap:2px}
.fx-side-foot .nav-item{color:var(--t3)}
.sidebar-expand,:root[data-theme="dark"] .sidebar-expand{background:var(--s1);border:1px solid var(--b2);border-left:0;color:var(--t2);backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0 var(--r) var(--r) 0}

/* ---------------------------------------------------------------- page frame */
.main{background:var(--bg)}
.page{transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);transform:translateY(4px)}
.page.active{transform:none}
.pg-hdr{align-items:flex-end;margin-bottom:20px;padding-bottom:0;border:0}
.pg-title,.page .pg-hdr .pg-title{font:600 20px/1.25 var(--sans);letter-spacing:-.015em;color:var(--t1)}
.pg-sub,.page .pg-hdr .pg-sub{font:400 13px/1.4 var(--sans);letter-spacing:0;color:var(--t3);margin-top:3px}

/* ---------------------------------------------------------------- surfaces */
.sc,.fsec,.stat-card,.metric-card,.kpi-tile,.ins-card,.panel,
:root[data-theme="dark"] .sc,:root[data-theme="dark"] .fsec,:root[data-theme="dark"] .stat-card,:root[data-theme="dark"] .metric-card,:root[data-theme="dark"] .kpi-tile,:root[data-theme="dark"] .ins-card{
  background:var(--s1);border:1px solid var(--b1);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);backdrop-filter:none;-webkit-backdrop-filter:none}
.sc-ttl,.fsec-ttl{font:600 13px/1.3 var(--sans);color:var(--t1);text-transform:none;letter-spacing:-.005em;padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--b1)}
.stat-lbl,.metric-label,.stat-label,.ovw-label{font-family:var(--sans) !important;font-size:12px !important;font-weight:500 !important;text-transform:none !important;letter-spacing:0 !important;color:var(--t3) !important}
.stat-val,.metric-value{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.liquid-glass,:root[data-theme="dark"] .liquid-glass{background:var(--s1);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--b1);border-radius:var(--r-xl)}
.liquid-glass::before,.liquid-glass::after{display:none}

/* ---------------------------------------------------------------- buttons */
.btn,:root[data-theme="dark"] .btn{background:var(--red);border:1px solid var(--red);color:#fff;border-radius:var(--r);font:600 13px/1 var(--sans);letter-spacing:0;padding:0 14px;min-height:34px;box-shadow:var(--shadow-red);text-transform:none;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.btn:hover{background:var(--red-hover);border-color:var(--red-hover);transform:none;box-shadow:var(--shadow-red)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-out,:root[data-theme="dark"] .btn-out{background:var(--s1);border:1px solid var(--b2);color:var(--t1);border-radius:var(--r);font:500 13px/1 var(--sans);letter-spacing:0;padding:0 12px;min-height:32px;box-shadow:var(--shadow-xs);text-transform:none;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.btn-out:hover,:root[data-theme="dark"] .btn-out:hover{background:var(--s3);border-color:var(--b3);color:var(--t1);transform:none}
:root[data-theme="dark"] .btn-out{background:var(--s2)}
.btn-sm,.btn.btn-sm,.btn-out.btn-sm{min-height:28px;padding:0 10px;font-size:12px}
.ripple{display:none}

/* ---------------------------------------------------------------- form controls */
.fl,.ob-field label{font:500 12px/1.3 var(--sans) !important;color:var(--t2) !important;text-transform:none !important;letter-spacing:0 !important;margin-bottom:6px}
.fi,textarea.fi,.fsel,select,
input[type="text"],input[type="number"],input[type="date"],input[type="time"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],textarea{
  background-color:var(--s1);border:1px solid var(--b2);border-radius:var(--r);color:var(--t1);font-size:13px;line-height:1.35;padding:7px 10px;box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
:root[data-theme="dark"] :is(.fi,.fsel,select,input[type="text"],input[type="number"],input[type="date"],input[type="time"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],textarea){background-color:var(--bg);border-color:var(--b2)}
.fsel,select{padding-right:30px}
.fi:hover,.fsel:hover,select:hover,input:hover,textarea:hover{border-color:var(--b3)}
.fi:focus,.fsel:focus,select:focus,input:focus,textarea:focus{border-color:var(--sap);box-shadow:var(--ring);outline:none}
.fi::placeholder,input::placeholder,textarea::placeholder{color:var(--t3);opacity:1}
input[type="checkbox"],input[type="radio"]{accent-color:var(--sap)}
.view-toggle,:root[data-theme="dark"] .view-toggle{background:var(--s2);border:1px solid var(--b1);border-radius:var(--r);padding:2px}
.vt-btn{border-radius:5px;font-weight:500}

/* ---------------------------------------------------------------- tables */
table{font-variant-numeric:tabular-nums}
th{font-family:var(--sans)}
table thead th{font-size:12px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--t3)}

/* ---------------------------------------------------------------- overlays */
.ovl,:root[data-theme="dark"] .ovl{background:rgba(9,10,12,.48);backdrop-filter:none;-webkit-backdrop-filter:none}
.mbox,:root[data-theme="dark"] .mbox{background:var(--s1);border:1px solid var(--b2);border-radius:var(--r-xl);box-shadow:var(--shadow-xl)}
.m-title{font:600 16px/1.3 var(--sans);letter-spacing:-.01em}
.m-sub{color:var(--t3)}
.toast,#toast,:root[data-theme="dark"] #toast{background:var(--t1);color:var(--bg);border:0;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);font:500 13px var(--sans);padding:10px 14px}
.empty{color:var(--t3)}
.empty .ico{filter:grayscale(1);opacity:.6}
.help-fab,:root[data-theme="dark"] .help-fab{background:var(--s1);border:1px solid var(--b2);box-shadow:var(--shadow-md);width:44px;height:44px;font-size:18px}
.loading-screen{background:var(--bg)}
.loading-spinner{border-color:var(--s3);border-top-color:var(--t2)}
.skeleton{background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:200% 100%}

/* scrollbars: thin, neutral */
*{scrollbar-width:thin;scrollbar-color:var(--b3) transparent}

@media (prefers-reduced-motion:reduce){
  .page,.nav-item,.btn,.btn-out,.sidebar{transition:none !important}
}

/* ==========================================================================
   Plant overview (Home) — ui/fx-enterprise.js renders #fxDash
   ========================================================================== */
#page-home.page{max-width:none}
.fxd{max-width:1480px;margin:0 auto;color:var(--t1)}
.fxd svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fxd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:2px 0 18px}
.fxd-title{font:600 22px/1.2 var(--sans);letter-spacing:-.018em;margin:0;color:var(--t1)}
.fxd-meta{margin-top:5px;font-size:13px;color:var(--t3);display:flex;flex-wrap:wrap;align-items:center;gap:0 2px}
.fxd-dot{margin:0 7px;color:var(--b3)}
.fxd-actions{display:flex;gap:8px}
.fxd-btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:var(--r);border:1px solid var(--b2);background:var(--s1);color:var(--t1);font:500 13px/1 var(--sans);cursor:pointer;box-shadow:var(--shadow-xs);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);white-space:nowrap}
:root[data-theme="dark"] .fxd-btn{background:var(--s2)}
.fxd-btn:hover{background:var(--s3);border-color:var(--b3)}
.fxd-btn:disabled{opacity:.6;cursor:progress}
.fxd-btn svg{width:15px;height:15px}
.fxd-btn-pri,:root[data-theme="dark"] .fxd-btn-pri{background:var(--red);border-color:var(--red);color:#fff;font-weight:600;box-shadow:var(--shadow-red)}
.fxd-btn-pri:hover{background:var(--red-hover);border-color:var(--red-hover)}
.fxd-btn.sm{height:28px;padding:0 10px;font-size:12px}

/* KPI strip: one surface, hairline dividers (gap trick keeps dividers right when it wraps) */
.fxd-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--b1);border:1px solid var(--b1);border-radius:10px;overflow:hidden;margin-bottom:16px;box-shadow:var(--shadow-xs)}
.fxd-kpi{background:var(--s1);padding:15px 18px 14px;min-width:0}
.fxd-kpi-lbl{font:500 12px/1.3 var(--sans);color:var(--t3)}
.fxd-kpi-val{margin-top:8px;font:600 26px/1.1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--t1);white-space:nowrap}
.fxd-of{font-size:16px;font-weight:500;color:var(--t3);letter-spacing:0}
.fxd-unit{font:500 13px var(--sans);color:var(--t3);margin-left:5px;letter-spacing:0}
.fxd-kpi-sub{margin-top:6px;font-size:12px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fxd-kpi.is-warn .fxd-kpi-val{color:var(--yellow)}
.fxd-delta{font-weight:500}
.fxd-delta.up{color:var(--green)}
.fxd-delta.down{color:var(--red2)}
.fxd-delta.flat{color:var(--t3)}

.fxd-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.fxd-col{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (max-width:1180px){.fxd-grid{grid-template-columns:minmax(0,1fr)}}
.fxd-panel{background:var(--s1);border:1px solid var(--b1);border-radius:10px;box-shadow:var(--shadow-xs);overflow:hidden;min-width:0}
.fxd-ph{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 16px;border-bottom:1px solid var(--b1)}
.fxd-ph h2{margin:0;font:600 14px/1.3 var(--sans);letter-spacing:-.006em;color:var(--t1);display:flex;align-items:center;gap:8px}
.fxd-ph-meta{font-size:12px;color:var(--t3)}
.fxd-count{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--s3);color:var(--t2);font:600 11px/1 var(--mono)}
.fxd-count.crit{background:var(--adim);color:var(--red2)}
.fxd-link{display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--t2);font:500 13px var(--sans);cursor:pointer;padding:4px 6px;margin-right:-6px;border-radius:var(--r)}
.fxd-link:hover{color:var(--t1);background:var(--s3)}
.fxd-link svg{width:14px;height:14px}

/* furnace table */
.fxd-tablewrap{overflow-x:auto}
.fxd-table{width:100%;border-collapse:collapse;font-size:13px}
.fxd-table th{text-align:left;font:500 12px/1 var(--sans);color:var(--t3);padding:10px 12px;background:var(--s2);border-bottom:1px solid var(--b1);white-space:nowrap}
.fxd-table td{padding:10px 12px;border-bottom:1px solid var(--b1);vertical-align:middle;white-space:nowrap}
.fxd-table tbody tr:last-child td{border-bottom:0}
.fxd-table tbody tr{cursor:pointer;transition:background var(--dur-fast) var(--ease)}
.fxd-table tbody tr:hover{background:var(--s2)}
.fxd-table tbody tr:focus-visible{outline:2px solid var(--sap);outline-offset:-2px}
.fxd-table .num{text-align:right}
.fxd-w-life{width:150px}
.fxd-table th:first-child,.fxd-table td:first-child{padding-left:16px}
.fxd-table th:last-child,.fxd-table td:last-child{padding-right:16px}
.fxd-cell-main{color:var(--t1);font-weight:500}
.fxd-cell-sub{color:var(--t3);font-size:12px;margin-top:2px}
.fxd-ref{font:600 13px var(--mono);letter-spacing:-.01em}
.fxd-muted{color:var(--t3)}
.fxd-status{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:11px;font:500 12px/1 var(--sans);background:var(--s3);color:var(--t2)}
.fxd-status i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.fxd-status.run{background:var(--adim);color:var(--red2)}
.fxd-status.run i{animation:fxdPulse 1.6s ease-in-out infinite}
.fxd-status.ok{background:var(--gdim);color:var(--green)}
.fxd-status.warn{background:var(--ydim);color:var(--yellow)}
@keyframes fxdPulse{0%,100%{opacity:1}50%{opacity:.3}}
.fxd-life{display:flex;align-items:center;gap:10px}
.fxd-bar{flex:1 0 48px;max-width:80px;height:6px;border-radius:3px;background:var(--s3);overflow:hidden}
.fxd-bar i{display:block;height:100%;border-radius:3px;background:var(--t3)}
.fxd-life.warn .fxd-bar i{background:var(--yellow)}
.fxd-life.crit .fxd-bar i{background:var(--red2)}
.fxd-life span{font:500 12px var(--mono);font-variant-numeric:tabular-nums;color:var(--t2)}
.fxd-life.warn span{color:var(--yellow)}
.fxd-life.crit span{color:var(--red2)}

/* chart */
.fxd-chart{padding:14px 16px 4px}
.fxd-chart svg{display:block;max-width:100%;height:auto;stroke:none}
.fxd-chart .g{stroke:var(--b1);stroke-width:1}
.fxd-chart text{fill:var(--t3);font:10px var(--mono);stroke:none}
.fxd-chart .b{fill:var(--sap);opacity:.55}
.fxd-chart .b.now{opacity:1}
.fxd-chart .nowline{stroke:var(--b3);stroke-width:1;stroke-dasharray:3 3}
.fxd-chart-skel{padding:16px}
.fxd-chart-skel .fxd-skel{display:block;width:100%;height:130px}
.fxd-legend{display:flex;flex-wrap:wrap;gap:6px 18px;padding:6px 16px 14px;font-size:12px;color:var(--t3)}
.fxd-legend span{display:inline-flex;align-items:center;gap:6px}
.fxd-legend .sw{width:8px;height:8px;border-radius:2px;background:var(--sap);opacity:.55}
.fxd-legend .sw.now{opacity:1}

/* attention list */
.fxd-list{list-style:none;margin:0;padding:0}
.fxd-li{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-top:1px solid var(--b1);transition:opacity var(--dur-normal) var(--ease)}
.fxd-li:first-child{border-top:0}
.fxd-sev{width:16px;height:16px;flex:none;margin-top:1px;color:var(--sap)}
.sev-critical .fxd-sev{color:var(--red2)}
.sev-warning .fxd-sev{color:var(--yellow)}
.fxd-li-body{flex:1;min-width:0}
.fxd-li-t{font-size:13px;font-weight:500;color:var(--t1);line-height:1.4}
.fxd-li-s{font-size:12px;color:var(--t3);margin-top:2px;line-height:1.4}
.fxd-li .fxd-btn{flex:none;margin-top:-3px}
.fxd-x{flex:none;width:26px;height:26px;margin-top:-3px;display:grid;place-items:center;border:0;border-radius:var(--r);background:none;color:var(--t3);cursor:pointer}
.fxd-x:hover{background:var(--s3);color:var(--t1)}
.fxd-x svg{width:14px;height:14px}
.fxd-more{padding:10px 16px;border-top:1px solid var(--b1);font-size:12px;color:var(--t3)}

/* empty / skeleton */
.fxd-empty{display:flex;align-items:center;gap:14px;padding:28px 18px;color:var(--t3)}
.fxd-empty.sm{padding:18px 16px}
.fxd-empty>svg{width:22px;height:22px;flex:none}
.fxd-empty.ok>svg{color:var(--green)}
.fxd-empty>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fxd-empty b{font-size:13px;font-weight:600;color:var(--t1)}
.fxd-empty span{font-size:12px;line-height:1.45}
.fxd-skel{display:inline-block;height:12px;border-radius:4px;background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;vertical-align:middle}
.fxd-kpi-val .fxd-skel{height:22px}

/* shift */
.fxd-shift{padding:14px 16px 16px}
.fxd-shift-k{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px}
.fxd-shift-k b{display:block;font:600 18px/1.1 var(--mono);font-variant-numeric:tabular-nums;color:var(--t1)}
.fxd-shift-k span{display:block;margin-top:4px;font-size:12px;color:var(--t3)}
.fxd-shift-k .warn b{color:var(--yellow)}
.fxd-kvrow{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:12px;color:var(--t3)}
.fxd-kvrow b{color:var(--t1);font-weight:500;text-align:right}
.fxd-flag{display:flex;gap:8px;margin-top:12px;padding:9px 11px;border-radius:var(--r);background:var(--ydim);color:var(--t1);font-size:12px;line-height:1.5}
.fxd-flag svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--yellow)}

@media (max-width:640px){
  .fxd-actions{width:100%}
  .fxd-actions .fxd-btn{flex:1;justify-content:center}
  .fxd-kpis{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){.fxd-status.run i,.fxd-skel{animation:none}}
/* no side-stripe markers on nav (DESIGN.md anti-pattern) */
.nav-item::before,.nav-item::after,.nav-item.active::before,.nav-item.active::after{display:none !important;content:none !important}
.fxd-chart-empty{position:relative}
.fxd-chart-empty .fxd-chart-msg{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;color:var(--t3);pointer-events:none}
/* single source of page padding (the old layout stacked .main + .page padding) */
.main{padding:0 !important}
.page{padding:24px 32px 48px}
@media (max-width:820px){.page{padding:16px 16px 40px}}

/* ---------------------------------------------------------------- remove side-stripe accents
   (DESIGN.md anti-pattern). State stays readable via tinted background + icon/label. */
.fsec-ttl::before{display:none !important}
.log-running-banner,.alert-bar,.notif-item,.quick-bar,.auth-err{border-left-width:1px !important}
.log-running-banner{border-color:color-mix(in srgb,var(--green) 35%,var(--b1)) !important;border-radius:var(--r-lg)}

/* ==========================================================================
   Status vocabulary (ISA-101 style): green = running, blue = ready/available,
   amber = attention, red = critical alarms and the primary action only.
   ========================================================================== */
.fxd-status.run{background:var(--gdim);color:var(--green)}
.fxd-status.ready{background:var(--bdim);color:var(--sap)}
.fxd-status.ok{background:var(--bdim);color:var(--sap)}
.fxd-tablet-only{display:none}
@media (max-width:1100px){.fxd-tablet-only{display:inline-flex}}

/* ---------------------------------------------------------------- buttons: outline for row actions */
.btn-out.btn-danger,:root[data-theme="dark"] .btn-out.btn-danger{background:transparent;color:var(--red2);border-color:color-mix(in srgb,var(--red2) 40%,var(--b2));box-shadow:none}
.btn-out.btn-danger:hover,:root[data-theme="dark"] .btn-out.btn-danger:hover{background:var(--adim);color:var(--red2);border-color:var(--red2)}
.btn-out.btn-green,:root[data-theme="dark"] .btn-out.btn-green{background:transparent;color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,var(--b2))}
.btn-out.btn-green:hover{background:var(--gdim)}

/* ---------------------------------------------------------------- top bar layout */
.topbar{display:flex;align-items:center}
.tbn-log{display:none !important}
.fx-search{display:flex;align-items:center;gap:10px;margin:0 auto;width:min(460px,34vw);height:34px;padding:0 8px 0 11px;border:1px solid var(--b1);border-radius:8px;background:var(--s2);color:var(--t3);font:400 13px var(--sans);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}
:root[data-theme="dark"] .fx-search{background:var(--s1)}
.fx-search:hover{border-color:var(--b3);color:var(--t2)}
.fx-search svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.fx-search-ph{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-kbd{display:inline-flex;align-items:center;height:20px;padding:0 6px;border:1px solid var(--b2);border-radius:4px;background:var(--s1);color:var(--t3);font:500 11px var(--sans);white-space:nowrap}
:root[data-theme="dark"] .fx-kbd{background:var(--s2)}
.tb-right-v2{gap:8px;margin-left:0}
.fx-status{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border:1px solid var(--b1);border-radius:8px;color:var(--t2);font-size:12px;white-space:nowrap}
.fx-status .tb-dot-wrap{display:inline-flex;align-items:center;gap:6px}
.fx-status #connLbl{display:inline !important;font-weight:500;color:var(--t2)}
.fx-status .dot{width:7px;height:7px;border-radius:50%;flex:none}
.fx-status .dot-g{background:var(--green);box-shadow:0 0 0 3px var(--gdim)}
.fx-status .dot-r{background:var(--red2);box-shadow:0 0 0 3px var(--adim)}
.fx-status-sep{width:1px;height:14px;background:var(--b2)}
.fx-status .cc-clock,:root[data-theme="dark"] .fx-status .cc-clock{border:0;padding:0;background:none;font-size:12px;color:var(--t1)}
.fx-bell{position:relative;width:34px;height:34px;padding:0 !important;display:grid;place-items:center}
.fx-bell svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tbn-icon #activityBadge,.fx-bell #activityBadge{display:none;position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--sap);color:#fff;font:600 10px/17px var(--sans);text-align:center;border:2px solid var(--chrome);box-sizing:content-box;animation:none}
.fx-bell #activityBadge.show{display:block}
.fx-bell #activityBadge.crit{background:var(--red)}
.fx-bell.ring svg{animation:fxRing .9s var(--ease-out) 2}
@keyframes fxRing{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}
.tb-profile{display:flex;align-items:center;gap:9px;height:38px;padding:0 8px 0 4px;border-radius:8px;cursor:pointer;position:relative}
.tb-profile:hover{background:var(--s3)}
.tb-profile .avatar,#topAv{width:28px !important;height:28px !important;font-size:11px !important;font-weight:600}
.fx-who{display:flex;flex-direction:column;line-height:1.2;max-width:180px}
.fx-who-n{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-who-r{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-who-chev{width:14px;height:14px;fill:none;stroke:var(--t3);stroke-width:1.8;stroke-linecap:round}
.tb-profile-menu{min-width:220px;padding:6px}
.tb-profile-item{display:flex;align-items:center;height:32px;padding:0 10px;font-size:13px;color:var(--t1)}
.tb-profile-item.fx-signout{color:var(--red2)}
.tb-profile-hdr{padding:8px 10px 10px;border-bottom:1px solid var(--b1);margin-bottom:4px}
#topRoleBadge{text-transform:none !important;letter-spacing:0 !important;font-size:11px !important}
@media (max-width:1100px){
  .fx-search{width:34px;margin:0 0 0 auto;padding:0;justify-content:center}
  .fx-search-ph,.fx-search .fx-kbd{display:none}
  .fx-who,.fx-who-chev,.fx-status-sep,.fx-status #connLbl{display:none !important}
}
@media (max-width:760px){.fx-status{display:none}}
.tbn-mega-item .ico{display:none}

/* ---------------------------------------------------------------- sidebar primary action */
.fx-side-cta{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:34px;margin:2px 0 12px;border:1px solid var(--red);border-radius:var(--r);background:var(--red);color:#fff;font:600 13px var(--sans);cursor:pointer;box-shadow:var(--shadow-red);transition:background var(--dur-fast) var(--ease)}
.fx-side-cta:hover{background:var(--red-hover);border-color:var(--red-hover)}
.fx-side-cta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* ---------------------------------------------------------------- command palette */
.fxp-bg{position:fixed;inset:0;z-index:2000;background:rgba(9,10,12,.45);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.fxp{width:min(620px,92vw);max-height:70vh;display:flex;flex-direction:column;background:var(--s1);border:1px solid var(--b2);border-radius:12px;box-shadow:var(--shadow-xl);overflow:hidden;animation:fxpIn .16s var(--ease-out)}
@keyframes fxpIn{from{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:none}}
.fxp-in{display:flex;align-items:center;gap:10px;padding:0 14px;height:52px;border-bottom:1px solid var(--b1)}
.fxp-in svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--t3);stroke-width:1.8;stroke-linecap:round}
.fxp-in input,.fxp-in input:focus{flex:1;height:100%;border:0 !important;background:transparent !important;box-shadow:none !important;outline:none;padding:0;font:400 15px var(--sans);color:var(--t1)}
.fxp-list{overflow-y:auto;padding:6px}
.fxp-g{padding:10px 10px 4px;font:500 12px var(--sans);color:var(--t3)}
.fxp-item{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border:0;border-radius:var(--r);background:none;color:var(--t1);font:400 13px var(--sans);text-align:left;cursor:pointer}
.fxp-item svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--t3);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fxp-item .t{font-weight:500;white-space:nowrap}
.fxp-item .s{margin-left:auto;color:var(--t3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fxp-item.on,.fxp-item:hover{background:var(--s3)}
.fxp-item.on svg{stroke:var(--t1)}
.fxp-empty{padding:28px 14px;text-align:center;color:var(--t3);font-size:13px}
.fxp-foot{display:flex;gap:16px;padding:8px 14px;border-top:1px solid var(--b1);font-size:12px;color:var(--t3)}
.fxp-foot .fx-kbd{margin-right:4px}

/* ---------------------------------------------------------------- notification inbox */
.tb-notif-panel.fx-inbox,:root[data-theme="dark"] .tb-notif-panel.fx-inbox{width:420px;max-width:calc(100vw - 24px);padding:0;overflow:hidden;right:0;left:auto}
.fx-inbox #notifBody{max-height:none;padding:0}
.fxi-h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px}
.fxi-ttl{font:600 15px var(--sans);color:var(--t1)}
.fxi-link{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--sap);font:500 12px var(--sans);cursor:pointer;padding:4px 6px;border-radius:var(--r)}
.fxi-link:hover{background:var(--sap-soft)}
.fxi-link:disabled{color:var(--t3);cursor:default;background:none}
.fxi-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fxi-tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid var(--b1)}
.fxi-tab{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 8px;border:0;border-bottom:2px solid transparent;background:none;color:var(--t3);font:500 13px var(--sans);cursor:pointer;margin-bottom:-1px}
.fxi-tab:hover{color:var(--t1)}
.fxi-tab.on{color:var(--t1);border-bottom-color:var(--t1)}
.fxi-tab span{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--s3);color:var(--t2);font:600 11px/18px var(--sans);text-align:center}
.fxi-list{max-height:min(520px,62vh);overflow-y:auto}
.fxi-grp{position:sticky;top:0;z-index:1;padding:8px 14px 4px;background:var(--s1);font:500 12px var(--sans);color:var(--t3)}
.fxi-item{position:relative;display:flex;gap:10px;width:100%;padding:10px 30px 10px 14px;border:0;border-top:1px solid var(--b1);background:none;text-align:left;cursor:pointer;color:var(--t2);font-family:var(--sans)}
.fxi-grp+.fxi-item{border-top:0}
.fxi-item:hover{background:var(--s2)}
.fxi-item.unread{background:color-mix(in srgb,var(--sap) 5%,transparent)}
.fxi-item.unread:hover{background:color-mix(in srgb,var(--sap) 9%,transparent)}
.fxi-ic{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--s3);color:var(--t2)}
.fxi-ic svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sev-critical .fxi-ic{background:var(--adim);color:var(--red2)}
.sev-warning .fxi-ic{background:var(--ydim);color:var(--yellow)}
.fxi-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.fxi-t{font-size:13px;line-height:1.4;color:var(--t1)}
.fxi-item.unread .fxi-t{font-weight:600}
.fxi-b{font-size:12px;line-height:1.4;color:var(--t2)}
.fxi-m{font-size:11.5px;color:var(--t3);margin-top:2px}
.fxi-dot{position:absolute;right:14px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--sap)}
.sev-critical .fxi-dot{background:var(--red2)}
.fxi-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:36px 24px;text-align:center;color:var(--t3);font-size:12px}
.fxi-empty svg{width:22px;height:22px;fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px}
.fxi-empty b{font-size:13px;color:var(--t1);font-weight:600}
.fxi-empty .fxd-skel{width:100%}
.fxi-f{padding:8px 10px;border-top:1px solid var(--b1);display:flex;justify-content:center}

.fx-crit-toast{position:fixed;top:64px;right:16px;z-index:2100;display:flex;align-items:flex-start;gap:10px;width:min(380px,calc(100vw - 32px));padding:12px 10px 12px 14px;border:1px solid color-mix(in srgb,var(--red2) 45%,var(--b2));border-radius:10px;background:var(--s1);box-shadow:var(--shadow-lg);animation:fxpIn .2s var(--ease-out)}
.fx-crit-toast.out{opacity:0;transform:translateY(-4px);transition:all .18s var(--ease)}
.fx-crit-toast>svg{width:18px;height:18px;flex:none;margin-top:1px;fill:none;stroke:var(--red2);stroke-width:2;stroke-linecap:round}
.fx-crit-toast div{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.fx-crit-toast b{font:600 12px var(--sans);color:var(--red2)}
.fx-crit-toast span{font-size:13px;color:var(--t1);line-height:1.4}
.fx-crit-toast button{flex:none;height:28px;padding:0 10px;border:1px solid var(--b2);border-radius:var(--r);background:var(--s2);color:var(--t1);font:500 12px var(--sans);cursor:pointer}
.fx-crit-toast button.x{width:28px;padding:0;display:grid;place-items:center;border-color:transparent;background:none}
.fx-crit-toast button.x svg{width:14px;height:14px;fill:none;stroke:var(--t3);stroke-width:2;stroke-linecap:round}

/* ---------------------------------------------------------------- activity log */
#page-audit.page{max-width:none}
.fxa-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.fxa-search{display:flex;align-items:center;gap:8px;flex:1 1 260px;height:34px;padding:0 10px;border:1px solid var(--b2);border-radius:var(--r);background:var(--s1);color:var(--t3)}
.fxa-search:focus-within{border-color:var(--sap);box-shadow:var(--ring)}
.fxa-search svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.fxa-search input,.fxa-search input:focus{flex:1;height:100%;border:0 !important;background:none !important;box-shadow:none !important;padding:0 !important;font-size:13px}
.fxa-sel,.fxa-date{height:34px;font-size:13px}
.fxa-sel{min-width:150px;max-width:220px}
.fxa-to{font-size:12px;color:var(--t3)}
.fxa-table td{vertical-align:top}
.fxa-time{font:500 12.5px var(--mono);font-variant-numeric:tabular-nums}
.fxa-act{display:inline-block;font-weight:500;color:var(--t1)}
.fxa-act.neg{color:var(--red2)}
.fxa-act.sec{color:var(--sap)}
.fxa-code{font-family:var(--mono);font-size:11px}
.fxa-table tbody tr.open{background:var(--s2)}
.fxa-detail td{background:var(--s2);white-space:normal !important;padding:4px 16px 14px !important}
.fxa-detail dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 20px;margin:0}
.fxa-detail dt{font-size:11.5px;color:var(--t3);text-transform:capitalize}
.fxa-detail dd{margin:2px 0 0;font:500 12.5px var(--mono);color:var(--t1);word-break:break-word}
.fxa-pager{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--t3)}
.fxa-pager span{margin-right:6px}
.fxa-pager .fxd-x:disabled{opacity:.35;cursor:default;background:none}
#fxaPanel.is-loading{opacity:.6;transition:opacity .15s}

@media (prefers-reduced-motion:reduce){.fx-bell.ring svg,.fxp,.fx-crit-toast{animation:none}}

/* ==========================================================================
   Sign-in page: header · card (illustration + form) · legal footer.
   Follows the app theme. Illustration is inline SVG (ui markup in furnacelog_web.html).
   ========================================================================== */
.auth-page,.auth-page.show{padding:0 !important;background:var(--bg) !important;overflow-y:auto !important}
.auth-page.show{display:block !important}
.auth-page::before,.auth-page::after,.auth-orb,.auth-left,.auth-split::before,.auth-split::after,.auth-right::before,.fx-login-foot{display:none !important}

/* header */
.fx-lh{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 max(24px,calc((100vw - 1160px)/2));background:var(--s1);border-bottom:1px solid var(--b1)}
.fx-lh-brand{display:flex;align-items:center;gap:10px}
.fx-lh-brand img{width:34px;height:34px;border-radius:8px;object-fit:cover}
.fx-lh-brand div{display:flex;flex-direction:column;line-height:1.15}
.fx-lh-brand b{font:700 16px var(--sans);letter-spacing:.05em;color:var(--t1)}
.fx-lh-brand span{font-size:12px;color:var(--t3)}
.fx-lh-nav{display:flex;align-items:center;gap:22px}
.fx-lh-nav a{font:500 13px var(--sans);color:var(--t2);text-decoration:none;cursor:pointer}
.fx-lh-nav a:hover{color:var(--t1)}
.fx-lh-btn{height:34px;padding:0 14px;border:1px solid var(--b2);border-radius:var(--r);background:var(--s1);color:var(--t1);font:600 13px var(--sans);cursor:pointer}
.fx-lh-btn:hover{background:var(--s3)}

/* card */
.auth-split,:root[data-theme="dark"] .auth-split{display:grid !important;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);width:calc(100% - 48px) !important;max-width:1160px !important;min-height:0 !important;height:auto !important;margin:40px auto !important;background:var(--s1) !important;border:1px solid var(--b1) !important;border-radius:16px !important;box-shadow:var(--shadow-md) !important;transform:none !important;overflow:hidden !important;flex-shrink:0}
.auth-split.reg-mode,:root[data-theme="dark"] .auth-split.reg-mode{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);max-width:1160px !important}
.fx-lill{display:flex;flex-direction:column;justify-content:center;gap:22px;padding:40px 44px;background:linear-gradient(180deg,#f7f9fc 0%,#eef2f7 100%);border-right:1px solid var(--b1)}
:root[data-theme="dark"] .fx-lill{background:linear-gradient(180deg,#141518 0%,#111214 100%)}
.fx-ill{display:block;width:100%;max-width:560px;height:auto;margin:0 auto}
.fx-lill-cap{max-width:460px}
.fx-lill-cap b{display:block;font:600 18px/1.35 var(--sans);letter-spacing:-.01em;color:var(--t1);margin-bottom:6px}
.fx-lill-cap span{font-size:14px;line-height:1.55;color:var(--t2)}
.auth-right,.auth-split.reg-mode .auth-right,:root[data-theme="dark"] .auth-right{display:flex !important;flex-direction:column;justify-content:center;width:auto !important;padding:56px 56px 48px !important;background:transparent !important;border:0 !important;border-radius:0 !important;overflow:visible}
.auth-right>*{width:100%;max-width:400px}
.auth-split.reg-mode .auth-right>*{max-width:560px}
.auth-h,:root[data-theme="dark"] .auth-h{font:600 26px/1.25 var(--sans) !important;letter-spacing:-.02em !important;text-transform:none !important;color:var(--t1) !important;margin-bottom:6px}
.auth-sub,:root[data-theme="dark"] .auth-sub{font-size:14px !important;line-height:1.55 !important;color:var(--t3) !important;margin-bottom:28px !important}
.auth-right .fg{margin-bottom:16px}
.auth-right .fi,:root[data-theme="dark"] .auth-right .fi{height:42px;font-size:14px;background:var(--s1) !important;border:1px solid var(--b2) !important;border-radius:8px !important;color:var(--t1) !important;box-shadow:none !important}
:root[data-theme="dark"] .auth-right .fi{background:var(--bg) !important}
.auth-right .fi:focus{border-color:var(--sap) !important;box-shadow:var(--ring) !important}
.auth-right .fl{color:var(--t1) !important;font-weight:500 !important}
.auth-right .btn,:root[data-theme="dark"] .auth-right .btn{height:42px;width:100%;margin-top:6px;background:var(--red) !important;border:1px solid var(--red) !important;border-radius:8px !important;font:600 14px var(--sans) !important;letter-spacing:0 !important;text-transform:none !important;box-shadow:none !important;color:#fff !important}
.auth-right .btn:hover{background:var(--red-hover) !important;border-color:var(--red-hover) !important}
.auth-right .btn.is-blocked{opacity:.5}
#fLogin>div[style*="text-align:right"]{text-align:left !important;margin:-4px 0 18px !important}
#fLogin>div[style*="text-align:right"] span{color:var(--sap) !important;font-size:13px !important;font-weight:500}
#fLogin{display:flex;flex-direction:column}
#fLogin .auth-h{order:0}#fLogin .auth-sub{order:1}#fLogin .fg{order:2}
#fLogin>div[style*="text-align:right"]{order:3}
.fx-lterms{order:4;display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--b1);border-radius:8px;background:var(--s2);font-size:13px;line-height:1.5;color:var(--t2);cursor:pointer;transition:border-color .2s,box-shadow .2s}
.fx-lterms input{width:16px !important;height:16px !important;margin:2px 0 0;flex:none;accent-color:var(--sap);cursor:pointer}
.fx-lterms a{color:var(--sap);font-weight:500;cursor:pointer}
.fx-lterms.need{border-color:var(--red2);box-shadow:0 0 0 3px var(--adim)}
#loginBtn{order:5}
#fLogin .auth-sw{order:6}
.auth-sw{margin:22px 0 0 !important;padding:18px 0 0 !important;border-top:1px solid var(--b1);background:none;font-size:13px !important;color:var(--t2) !important;text-align:left !important}
.auth-sw span{color:var(--sap) !important;font-weight:500;cursor:pointer}
.auth-err{order:-1;margin-bottom:16px !important;padding:10px 12px !important;border:1px solid color-mix(in srgb,var(--red2) 35%,var(--b2)) !important;border-left-width:1px !important;border-radius:8px !important;background:var(--adim) !important;color:var(--t1) !important;font-size:13px !important}

/* footer */
.fx-lf{background:var(--s1);border-top:1px solid var(--b1)}
.fx-lf-in{max-width:1160px;margin:0 auto;padding:40px 24px 28px}
.fx-lf-top{display:grid;grid-template-columns:1.5fr repeat(4,minmax(0,1fr));gap:28px}
.fx-lf-logo{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.fx-lf-logo img{width:28px;height:28px;border-radius:7px}
.fx-lf-logo b{font:700 15px var(--sans);letter-spacing:.05em;color:var(--t1)}
.fx-lf-brand p{margin:0;max-width:300px;font-size:13px;line-height:1.6;color:var(--t2)}
.fx-lf-col{display:flex;flex-direction:column;gap:9px;font-size:13px;min-width:0}
.fx-lf-col h4{margin:0 0 4px;font:600 13px var(--sans);color:var(--t1)}
.fx-lf-col a{color:var(--t2);text-decoration:none;cursor:pointer;overflow-wrap:anywhere}
.fx-lf-col a:hover{color:var(--t1);text-decoration:underline}
.fx-lf-col span{color:var(--t3);line-height:1.5}
.fx-lf-office span:first-of-type{color:var(--t2)}
.fx-lf-legal{margin:28px 0 0;padding-top:20px;border-top:1px solid var(--b1);font-size:12px;line-height:1.7;color:var(--t3);max-width:none}
.fx-lf-legal a{color:var(--t2)}
.fx-lf-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:14px;font-size:12px;color:var(--t3)}

/* illustration palette */
.il-bg{fill:#e7edf5}.il-bg2{fill:#f1f5fa}.il-floor{fill:#dfe5ee}.il-dot{fill:#a9c2e8}
.il-panel{fill:#fff}.il-panel-h{fill:#f3f5f8}.il-ln{fill:#d9dee6}.il-ln2{fill:#e7eaef}.il-tile{fill:#f5f7fa;stroke:#e3e7ed}.il-ink{fill:#101218}
.il-bar{fill:#2563eb;opacity:.5}.il-bar-now{opacity:1}.il-badge{fill:#fff;stroke:#dde3eb;stroke-width:1.5}.il-frame{fill:#4a5059}
:root[data-theme="dark"] .il-bg{fill:#1a1c20}:root[data-theme="dark"] .il-bg2{fill:#16181b}:root[data-theme="dark"] .il-floor{fill:#1d1f23}:root[data-theme="dark"] .il-dot{fill:#34466a}
:root[data-theme="dark"] .il-panel{fill:#1f2125}:root[data-theme="dark"] .il-panel-h{fill:#26282d}:root[data-theme="dark"] .il-ln{fill:#373a40}:root[data-theme="dark"] .il-ln2{fill:#2e3136}
:root[data-theme="dark"] .il-tile{fill:#26282d;stroke:#33363c}:root[data-theme="dark"] .il-ink{fill:#ececee}:root[data-theme="dark"] .il-bar{fill:#5b93ff}
:root[data-theme="dark"] .il-badge{fill:#1f2125;stroke:#34373d}:root[data-theme="dark"] .il-frame{fill:#5a616c}

/* illustration motion: the bath glows, metal pours, badges drift, chart bars rise once */
.il-float{transform-box:fill-box;animation:ilFloat 6s ease-in-out infinite}
.il-f0{animation-duration:8s}.il-f1{animation-delay:-1.2s}.il-f2{animation-delay:-2.6s}.il-f3{animation-delay:-4s}.il-f4{animation-delay:-.6s;animation-duration:5s}
@keyframes ilFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.il-glow{animation:ilGlow 2.6s ease-in-out infinite}
@keyframes ilGlow{0%,100%{opacity:.55}50%{opacity:.95}}
.il-stream{stroke-dasharray:6 18;animation:ilPour 1.1s linear infinite}
@keyframes ilPour{to{stroke-dashoffset:-24}}
.il-haze{animation:ilHaze 3.2s ease-in-out infinite}
@keyframes ilHaze{0%,100%{opacity:.12;transform:translateY(3px)}50%{opacity:.5;transform:translateY(-3px)}}
.il-bar{transform-box:fill-box;transform-origin:50% 100%;animation:ilBar .9s cubic-bezier(.16,1,.3,1) both}
.il-bar:nth-child(2){animation-delay:.08s}.il-bar:nth-child(3){animation-delay:.16s}.il-bar:nth-child(4){animation-delay:.24s}.il-bar:nth-child(5){animation-delay:.32s}.il-bar:nth-child(6){animation-delay:.4s}
@keyframes ilBar{from{transform:scaleY(.08)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.il-float,.il-glow,.il-stream,.il-haze,.il-bar{animation:none}}

@media (max-width:1024px){
  .auth-split,.auth-split.reg-mode,:root[data-theme="dark"] .auth-split{grid-template-columns:1fr;max-width:560px !important}
  .fx-lill{display:none}
  .auth-right{padding:36px 28px 32px !important}
  .fx-lf-top{grid-template-columns:1fr 1fr}
  .fx-lf-brand{grid-column:1/-1}
}
@media (max-width:560px){
  .fx-lh{height:56px;padding:0 16px}
  .fx-lh-nav a{display:none}
  .auth-split,.auth-split.reg-mode{width:calc(100% - 24px) !important;margin:16px auto !important}
  .auth-right{padding:28px 20px 24px !important}
  .fx-lf-top{grid-template-columns:1fr}
}
.auth-right .agree-lbl{color:var(--t2) !important;font-size:12.5px !important;line-height:1.5}
.auth-right .agree-lbl a{color:var(--t1) !important;text-decoration:underline;text-underline-offset:2px}
.auth-right .auth-back-row{text-align:left !important;margin-top:14px}
.auth-right .auth-back{background:none !important;border:0 !important;padding:0 !important;color:var(--sap) !important;font:500 13px var(--sans) !important;cursor:pointer;text-transform:none !important;letter-spacing:0 !important}
.auth-right .auth-back:hover{text-decoration:underline}
.auth-right .btn:disabled{opacity:.45;cursor:not-allowed}
/* neutral placeholders everywhere (the old warm #b8ae9f rule otherwise wins) */
body input::placeholder,body textarea::placeholder{color:var(--t3) !important;opacity:1}

/* ==========================================================================
   Sign-in: finishing pass
   ========================================================================== */
.auth-page ::selection{background:var(--sap-dim)}
.auth-page a:focus-visible,.auth-page button:focus-visible{outline:2px solid var(--sap);outline-offset:2px;border-radius:4px}
.auth-page.show .auth-split{animation:fxCardIn .42s cubic-bezier(.16,1,.3,1) both}
@keyframes fxCardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* header */
.fx-lh-nav a{position:relative;padding:4px 0;transition:color .15s}
.fx-lh-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s cubic-bezier(.16,1,.3,1)}
.fx-lh-nav a:hover::after{transform:scaleX(1)}
.fx-lh-btn{transition:background .15s,border-color .15s}
.fx-lh-btn:hover{border-color:var(--b3)}

/* form */
.auth-h,:root[data-theme="dark"] .auth-h{font-size:28px !important;letter-spacing:-.025em !important}
.fx-lrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.fx-lrow .fl{margin-bottom:6px}
.fx-lforgot{font:500 13px var(--sans);color:var(--sap);cursor:pointer;text-decoration:none}
.fx-lforgot:hover{text-decoration:underline;text-underline-offset:2px}
.auth-right #lEmail,.auth-right #lPass{padding-left:40px !important;background-repeat:no-repeat !important;background-position:13px 50% !important;background-size:16px 16px !important}
.auth-right #lEmail{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a909b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E") !important}
.auth-right #lPass{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a909b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") !important;padding-right:44px !important}
.auth-right .fi{transition:border-color .15s,box-shadow .15s}
.auth-right .fi:hover{border-color:var(--b3) !important}
.auth-right input:-webkit-autofill,.auth-right input:-webkit-autofill:hover,.auth-right input:-webkit-autofill:focus{-webkit-text-fill-color:var(--t1) !important;caret-color:var(--t1);transition:background-color 600000s 0s,color 600000s 0s}
.fx-lcaps{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:12px;font-weight:500;color:var(--yellow)}
.fx-lcaps[hidden]{display:none}
.fx-lcaps::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

/* consent checkbox */
.fx-lterms{transition:border-color .15s,background .15s,box-shadow .2s}
.fx-lterms:hover{border-color:var(--b3)}
.fx-lterms:has(input:checked){border-color:color-mix(in srgb,var(--sap) 35%,var(--b1));background:var(--sap-soft)}
.fx-lterms input{appearance:none;-webkit-appearance:none;width:18px !important;height:18px !important;margin:1px 0 0 !important;border:1.5px solid var(--b3) !important;border-radius:5px !important;background:var(--s1) !important;display:grid;place-items:center;transition:background .15s,border-color .15s;padding:0 !important;box-shadow:none !important}
.fx-lterms input:checked{background:var(--sap) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center/12px no-repeat !important;border-color:var(--sap) !important}
.fx-lterms input:focus-visible{outline:2px solid var(--sap);outline-offset:2px}

/* primary button */
.auth-right .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .15s,border-color .15s,transform .1s,opacity .15s}
.auth-right .btn:active:not(:disabled){transform:scale(.99)}
.auth-right .btn.is-loading{opacity:.85;cursor:progress}
.auth-right .btn .spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;display:inline-block;margin:0}
.fx-lsecure{order:5;display:flex;align-items:flex-start;gap:8px;margin-top:14px;font-size:12px;line-height:1.5;color:var(--t3)}
.fx-lsecure svg{width:14px;height:14px;flex:none;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#fLogin .auth-sw{order:7}

/* illustration panel */
.fx-lill{gap:24px}
.fx-ltrust{list-style:none;margin:0;padding:20px 0 0;border-top:1px solid var(--b1);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fx-ltrust li{display:flex;flex-direction:column;gap:10px}
.fx-ltrust svg{width:34px;height:34px;padding:8px;border:1px solid var(--b1);border-radius:8px;background:var(--s1);fill:none;stroke:var(--t2);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;box-sizing:border-box}
.fx-ltrust span{font-size:12.5px;line-height:1.5;color:var(--t2)}
.fx-ltrust b{display:block;margin-bottom:2px;font-size:13px;font-weight:600;color:var(--t1)}
@media (max-width:1240px){.fx-ltrust{grid-template-columns:1fr}.fx-ltrust li{flex-direction:row;align-items:flex-start;gap:12px}.fx-ltrust svg{flex:none}}

.il-shadow{fill:rgba(15,18,24,.09)}
.il-cab{fill:#58606b}.il-cab-d{fill:#646c77}.il-gauge{fill:#f5f7fa;stroke:#2a2e34;stroke-width:2}.il-vent{fill:#474d56}
.il-tag-bg{fill:#fff;stroke:#dde3eb;stroke-width:1.2}.il-tag-t{font:600 11.5px var(--mono);fill:#101218}
:root[data-theme="dark"] .il-shadow{fill:rgba(0,0,0,.4)}
:root[data-theme="dark"] .il-cab{fill:#3b4048}:root[data-theme="dark"] .il-cab-d{fill:#454b54}:root[data-theme="dark"] .il-gauge{fill:#26282d;stroke:#5a616c}:root[data-theme="dark"] .il-vent{fill:#2c3036}
:root[data-theme="dark"] .il-tag-bg{fill:#1f2125;stroke:#34373d}:root[data-theme="dark"] .il-tag-t{fill:#ececee}

/* footer */
.fx-lf-col a{transition:color .15s}
.fx-lf-legal{max-width:980px}
@media (prefers-reduced-motion:reduce){.auth-page.show .auth-split{animation:none}.fx-lh-nav a::after{transition:none}}
.auth-right,:root[data-theme="dark"] .auth-right{box-shadow:none !important}

/* ==========================================================================
   Tablet (≤1100px): top navigation is an in-flow row, not absolutely centred
   (it collided with the breadcrumb and search). Touch-friendly targets.
   ========================================================================== */
@media (max-width:1100px){
  .topbar{gap:6px;padding:0 10px}
  .tb-crumb{display:none !important}
  .tb-nav,:root[data-theme="dark"] .tb-nav{position:static !important;transform:none !important;left:auto;top:auto;margin:0 auto;flex:0 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
  .tb-nav::-webkit-scrollbar{display:none}
  .fx-search{margin:0}
  .tbn-mega-panel{left:auto;right:auto;transform:translateY(0)}
}
@media (max-width:820px){
  .tbn-item{padding:6px 9px;font-size:13px}
  .fx-status{display:none}
  .tb-brand-name-v2{display:none}
}
@media (pointer:coarse){
  .tbn-item,.tb-profile-item,.fxd-btn,.btn-out,.btn{min-height:40px}
  .nav-item{height:40px}
  .fxd-table td{padding-top:13px;padding-bottom:13px}
  .fx-bell{width:40px;height:40px}
  .fxi-item{padding-top:13px;padding-bottom:13px}
  .fxp-item{height:46px}
}
/* KPI strip: wrap without leaving an empty cell (last row stretches) */
.fxd-kpis{display:flex !important;flex-wrap:wrap}
.fxd-kpi{flex:1 1 190px}
@media (max-width:640px){.fxd-kpi{flex-basis:140px}}
/* bell badge sits on the bell's top-right corner, never over the glyph (restored) */
.fx-bell #activityBadge,.tbn-icon.fx-bell #activityBadge{top:3px;right:2px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;border:1.5px solid var(--chrome);border-radius:8px;font:600 10px/13px var(--sans);transform:translate(35%,-25%);background:var(--sap);animation:none}
.fx-bell #activityBadge.crit,.tbn-icon.fx-bell #activityBadge.crit{background:var(--red)}
/* Request access: section labels as plain headings (restored) */
.reg-section-lbl,:root[data-theme="dark"] .reg-section-lbl{font:600 13px var(--sans) !important;text-transform:none !important;letter-spacing:0 !important;color:var(--t1) !important;margin:20px 0 12px !important;padding:0 !important;border:0 !important}
.reg-section:first-of-type .reg-section-lbl{margin-top:0 !important}
.reg-section-lbl::before,.reg-section-lbl::after{display:none !important}

/* ==========================================================================
   Sign-in: TMT mesh illustration + single-line footer (2026-10-05)
   ========================================================================== */
.auth-page.show{display:flex !important;flex-direction:column}
.fx-lh{flex:none}
.fx-lh{margin-bottom:24px}
.auth-split,.auth-split.reg-mode,:root[data-theme="dark"] .auth-split,:root[data-theme="dark"] .auth-split.reg-mode{margin:auto auto 20px !important}
.fx-lmini{flex:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 auto auto;padding:4px 16px 32px;font-size:12px;color:var(--t3)}
.fx-lmini a{color:var(--t3);cursor:pointer;text-decoration:none}
.fx-lmini a:hover{color:var(--t1);text-decoration:underline;text-underline-offset:2px}
.fx-lmini span{color:var(--b3)}
.fx-lill{justify-content:center;align-items:center;padding:28px 32px}
.fx-tmt{width:100%;max-width:600px;height:auto}
.tmt-tie{fill:none;stroke:#2a2f36;stroke-width:2.6;stroke-linecap:round}
.tmt-shadow rect{fill:rgba(15,18,24,.20)}
:root[data-theme="dark"] .tmt-shadow rect{fill:rgba(0,0,0,.55)}
:root[data-theme="dark"] .tmt-tie{stroke:#15181c}
.tmt-mesh{animation:tmtIn .9s cubic-bezier(.16,1,.3,1) both}
@keyframes tmtIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.tmt-sheen{animation:tmtSheen 7s cubic-bezier(.45,0,.25,1) 1s infinite}
@keyframes tmtSheen{0%{transform:translate(-120px,-60px)}55%,100%{transform:translate(720px,360px)}}
@media (prefers-reduced-motion:reduce){.tmt-mesh,.tmt-sheen{animation:none}.tmt-sheen{opacity:0}}
/* mesh v2: two stacked sheets, floor shadow, full-width header */
.fx-lh{align-self:stretch}
.tmt-floor{fill:rgba(15,18,24,.16)}
:root[data-theme="dark"] .tmt-floor{fill:rgba(0,0,0,.6)}
.tmt-low{opacity:.82}
:root[data-theme="dark"] .tmt-low{opacity:.7}
.tmt-top{animation:tmtLift 1s cubic-bezier(.16,1,.3,1) both}
@keyframes tmtLift{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
.tmt-mesh{animation:none}
@media (prefers-reduced-motion:reduce){.tmt-top{animation:none}}

/* ==========================================================================
   Sign-in: full-height split (visual left, form panel right)
   ========================================================================== */
.auth-page.show{display:block !important}
.auth-split,.auth-split.reg-mode,:root[data-theme="dark"] .auth-split,:root[data-theme="dark"] .auth-split.reg-mode{grid-template-columns:minmax(0,1fr) minmax(460px,34vw);width:100% !important;max-width:none !important;min-height:100vh !important;min-height:100dvh !important;margin:0 !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;background:var(--s1) !important}
.auth-split.reg-mode,:root[data-theme="dark"] .auth-split.reg-mode{grid-template-columns:minmax(0,1fr) minmax(600px,46vw)}
.auth-page.show .auth-split{animation:none}
.fx-lill{position:relative;border-right:1px solid var(--b1);padding:48px 56px;background:radial-gradient(120% 80% at 50% 38%,#f5f7fa 0%,#e9edf2 62%,#e1e6ed 100%)}
:root[data-theme="dark"] .fx-lill{background:radial-gradient(120% 80% at 50% 38%,#17191d 0%,#111316 62%,#0d0e10 100%)}
.fx-scene{width:100%;max-width:760px;max-height:calc(100vh - 96px);height:auto;animation:fxSceneIn .7s cubic-bezier(.16,1,.3,1) both}
@keyframes fxSceneIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* rebar mat */
.flr-b{fill:#4a525d}.flr-m{fill:#8e98a5}.flr-h{fill:#d3d9e0}
.flr-s1{stop-color:#d6dce3}.flr-s2{stop-color:#9aa4b1}.flr-s3{stop-color:#6b7480}.flr-s4{stop-color:#3c434c}
.flr-rib{fill:none;stroke:#2c323a;stroke-opacity:.4}
.flr-tie{fill:none;stroke:#2a2f36;stroke-linecap:round}
:root[data-theme="dark"] .flr-b{fill:#262a30}:root[data-theme="dark"] .flr-m{fill:#555d68}:root[data-theme="dark"] .flr-h{fill:#8a939e}
:root[data-theme="dark"] .flr-s1{stop-color:#8f98a3}:root[data-theme="dark"] .flr-s2{stop-color:#5f6772}:root[data-theme="dark"] .flr-s3{stop-color:#3f454e}:root[data-theme="dark"] .flr-s4{stop-color:#23272c}
:root[data-theme="dark"] .flr-rib{stroke:#0d0f12;stroke-opacity:.6}:root[data-theme="dark"] .flr-tie{stroke:#0f1114}

/* form panel */
.auth-right,.auth-split.reg-mode .auth-right,:root[data-theme="dark"] .auth-right{justify-content:flex-start !important;align-items:center;padding:28px 48px 24px !important;background:var(--s1) !important;min-height:100vh;min-height:100dvh}
.auth-right>*{width:100%;max-width:380px}
.auth-split.reg-mode .auth-right>*{max-width:560px}
.auth-right>.fx-lh{position:static;height:auto;padding:0;margin:0 0 auto;background:none;border:0;max-width:none}
.auth-right>.fx-lh+.auth-err{margin-top:48px}
.auth-right #fLogin,.auth-right #fReg,.auth-right #fForgot,.auth-right #fThankYou{padding:48px 0}
.auth-right>.fx-lmini{margin:auto 0 0;padding:0;max-width:none;justify-content:flex-start}
.auth-right .auth-h{font-size:28px !important;letter-spacing:-.02em !important}

@media (max-width:1024px){
  .auth-split,.auth-split.reg-mode,:root[data-theme="dark"] .auth-split,:root[data-theme="dark"] .auth-split.reg-mode{grid-template-columns:1fr !important}
  .fx-lill{display:none}
  .auth-right,.auth-split.reg-mode .auth-right{padding:24px 24px 20px !important}
}
@media (max-width:560px){
  .auth-right,.auth-split.reg-mode .auth-right{padding:16px 16px 20px !important}
  .auth-right #fLogin,.auth-right #fReg,.auth-right #fForgot,.auth-right #fThankYou{padding:32px 0}
  .auth-right .auth-h{font-size:24px !important}
}
@media (prefers-reduced-motion:reduce){.fx-scene{animation:none}}
.auth-right>.fx-lh,.auth-right>.fx-lmini{max-width:380px}
.auth-split.reg-mode .auth-right>.fx-lh,.auth-split.reg-mode .auth-right>.fx-lmini{max-width:560px}
.auth-right>.fx-lh{align-self:center}
/* request access: quiet text row, no button */
#fLogin .auth-sw{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px !important;padding-top:20px !important}
#fLogin .auth-sw span{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--t1) !important;text-decoration:none}
#fLogin .auth-sw span::after{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .15s}
#fLogin .auth-sw span:hover{color:var(--red) !important}
#fLogin .auth-sw span:hover::after{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){#fLogin .auth-sw span::after{transition:none}}

/* FURNEX mark on the sign-in header: white tile in dark mode so the dark slabs stay visible */
.fx-lh-brand #authLogo{object-fit:contain}
/* dark mode: furnex_dark.png variant */
.fx-logo-dk{display:none !important}
:root[data-theme="dark"] #authLogo,:root[data-theme="dark"] #topLogo{display:none !important}
:root[data-theme="dark"] .fx-logo-dk{display:block !important}
.fx-lh-brand .fx-logo-dk{object-fit:contain}
/* logo size: mark shown free-standing (no disc) so it reads at full size */
.tb-brand-v2 .topbar-logo-wrap,:root[data-theme="dark"] .tb-brand-v2 .topbar-logo-wrap{width:32px;height:32px;padding:0;background:none !important;border:0 !important;box-shadow:none !important;border-radius:0;overflow:visible}
.tb-brand-v2 .topbar-logo-wrap img{object-fit:contain;border-radius:0}
.tb-brand-v2{gap:10px}
.tb-brand-name-v2{font-size:16px !important}
.fx-lh-brand img{width:44px;height:44px;border-radius:0}
.fx-lh-brand b{font-size:17px}

/* ==========================================================================
   Settings: section nav + form rows (label left, control right)
   ========================================================================== */
#page-settings .pg-hdr{max-width:1080px}
.st-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;max-width:1080px;align-items:start}
.st-nav{position:sticky;top:8px;display:flex;flex-direction:column;gap:1px}
.st-nav-grp{font:600 12px/1 var(--sans);color:var(--t3);padding:16px 10px 8px}
.st-nav-grp:first-child{padding-top:4px}
.st-nav-a{display:block;width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:7px 10px;font:400 13px/1.3 var(--sans);color:var(--t2);cursor:pointer}
.st-nav-a:hover{background:var(--s3);color:var(--t1)}
.st-nav-a[aria-current="true"]{background:var(--s3);color:var(--t1);font-weight:500}
.st-nav [hidden],.st-body [hidden]{display:none !important}

.st-body{display:flex;flex-direction:column;gap:24px;min-width:0;padding-bottom:40vh}
.st-sec{background:var(--s1);border:1px solid var(--b1);border-radius:8px;scroll-margin-top:16px}
#cfgBlock,#plantFeaturesSection,#fieldConfigSection,#alertsSection{scroll-margin-top:16px}
.st-sec-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 16px}
.st-sec-h h2{margin:0;font:600 15px/1.3 var(--sans);letter-spacing:-.01em;color:var(--t1)}
.st-sec-h p{margin:4px 0 0;font:400 13px/1.5 var(--sans);color:var(--t3);max-width:62ch}

.st-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:center;padding:14px 20px;border-top:1px solid var(--b1)}
.st-row-click{cursor:pointer}
.st-row-r{min-width:0}
.st-row-r-end{display:flex;justify-content:flex-end}
.st-lbl{display:block;font:500 13px/1.4 var(--sans);color:var(--t1)}
.st-help{font:400 12px/1.45 var(--sans);color:var(--t3);margin-top:2px}
.st-val{font:400 13px/1.4 var(--sans);color:var(--t1);word-break:break-word}
.st-cap{text-transform:capitalize}
.st-row-r .fi{width:100%;max-width:360px;height:34px;min-height:34px;padding:0 10px;font:400 13px var(--sans)}
.st-err{margin-top:6px;font:400 12px/1.4 var(--sans);color:var(--red2)}

.st-seg{display:inline-flex;gap:2px;padding:2px;background:var(--s2);border:1px solid var(--b2);border-radius:6px}
.st-seg button{height:28px;padding:0 14px;border:0;border-radius:4px;background:transparent;font:500 13px var(--sans);color:var(--t2);cursor:pointer}
.st-seg button:hover{color:var(--t1)}
.st-seg button[aria-pressed="true"]{background:var(--s1);color:var(--t1);box-shadow:0 0 0 1px var(--b2)}

.st-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--b1);background:var(--s2);border-radius:0 0 8px 8px}
.st-foot:not(:last-child){border-radius:0}
.st-status{margin-right:auto;font:400 12px var(--sans);color:var(--t3)}
#page-settings .btn{min-height:32px;padding:0 14px;box-shadow:none;font:600 13px var(--sans)}
#page-settings .btn-out{box-shadow:none}
#page-settings .btn-sm{min-height:30px}

.st-li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--b1)}
.st-li-main{min-width:0}
.st-li-t{display:flex;align-items:center;gap:8px;font:500 13px/1.4 var(--sans);color:var(--t1)}
.st-li-t .dot{width:7px;height:7px;flex:none}
.st-li-s{margin-top:2px;font:400 12px/1.4 var(--sans);color:var(--t3)}
.st-li-dim{font-weight:400;color:var(--t3)}
.st-li-act{display:flex;align-items:center;gap:8px;flex:none}
.st-empty{padding:14px 20px;border-top:1px solid var(--b1);font:400 13px var(--sans);color:var(--t3)}
.st-tag{font:500 11px/1 var(--sans);padding:3px 6px;border:1px solid var(--b2);border-radius:4px;color:var(--t3)}
.st-link{background:none;border:0;padding:4px 2px;font:500 13px var(--sans);color:var(--sap);cursor:pointer}
.st-link:hover{text-decoration:underline;text-underline-offset:2px}
.st-link-danger{color:var(--red2)}

.st-table{width:100%;border-collapse:collapse}
.st-table th{padding:9px 20px;text-align:left;font:500 12px var(--sans);color:var(--t3);background:var(--s2);border-top:1px solid var(--b1);border-bottom:1px solid var(--b1)}
.st-table td{padding:8px 20px;border-bottom:1px solid var(--b1);font:400 13px var(--sans);color:var(--t1)}
.st-table tr:last-child td{border-bottom:0}
.st-table .fi{width:100%;max-width:160px;height:32px;min-height:32px;padding:0 10px;font:400 13px var(--sans)}
.st-td-strong{font-weight:500}
.st-td-act{text-align:right;white-space:nowrap}
.st-td-act>*+*{margin-left:12px}

.st-group{padding:16px 20px 6px;border-top:1px solid var(--b1);font:600 12px var(--sans);color:var(--t2)}
.st-group+.st-row{border-top:0}

.st-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:34px;height:20px;margin:0;border-radius:999px;background:var(--b3);cursor:pointer;transition:background .15s}
.st-switch::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s}
.st-switch:checked{background:var(--sap)}
.st-switch:checked::after{transform:translateX(14px)}
.st-switch:focus-visible{outline:2px solid var(--sap);outline-offset:2px}
#page-settings .tog{width:34px;height:20px;border:0;background:var(--b3);box-shadow:none}
#page-settings .tog.on{background:var(--sap)}
#page-settings .tog:active{transform:none}

#page-settings .seg3{width:252px;padding:2px;background:var(--s2);border:1px solid var(--b2);border-radius:6px;box-shadow:none}
#page-settings .seg3-pill,#page-settings .seg3[data-state] .seg3-pill{top:2px;left:2px;width:calc((100% - 4px) / 3);height:calc(100% - 4px);border-radius:4px;background:var(--s1);box-shadow:0 0 0 1px var(--b2)}
#page-settings .seg3-btn{height:28px;padding:0 6px;font:500 12px var(--sans);text-transform:none;letter-spacing:0;color:var(--t3)}
#page-settings .seg3[data-state="off"] .seg3-btn[data-state="off"],#page-settings .seg3[data-state="optional"] .seg3-btn[data-state="optional"]{color:var(--t1)}
#page-settings .seg3[data-state="mandatory"] .seg3-btn[data-state="mandatory"]{color:var(--red2)}

.st-sub{border-top:1px solid var(--b1)}
.st-sub-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 12px}
.st-sub-h h3{margin:0;font:600 14px var(--sans);color:var(--t1)}
.st-sub .st-list:empty{display:none}
.st-add{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:8px;align-items:end;padding:12px 20px;border-top:1px solid var(--b1)}
.st-add label span,.st-time span{display:block;margin-bottom:4px;font:500 12px var(--sans);color:var(--t2)}
.st-add .fi{height:32px;min-height:32px;padding:0 10px;font:400 13px var(--sans)}
.st-sched{display:flex;flex-wrap:wrap;align-items:end;gap:20px;padding:4px 20px 16px}
.st-time .fi{width:120px;height:32px;min-height:32px;padding:0 8px;font:400 13px var(--sans)}
.st-check{display:flex;align-items:center;gap:8px;height:32px;font:400 13px var(--sans);color:var(--t1);cursor:pointer}
.st-log{padding:0 20px 14px;font:400 12px var(--sans);color:var(--t3)}
.st-log-r{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--b1);color:var(--t2)}
.st-log-r:first-child{border-top:0}

.st-tariff{padding:4px 20px 14px;border-top:1px solid var(--b1)}
.st-tariff-h,.st-tariff .fxd-tariff-row{display:grid;grid-template-columns:130px 130px 130px auto;gap:10px;align-items:center}
.st-tariff-h{padding:10px 0 6px;font:500 12px var(--sans);color:var(--t3)}
.st-tariff .fxd-tariff-row{padding:4px 0}
.st-tariff .fxd-tariff-row .fi{height:32px;min-height:32px;padding:0 8px;font:400 13px var(--sans)}
.st-tariff .fxd-tariff-row .st-link{justify-self:start}
#tariffAddBtn{margin-top:8px}

@media (max-width:900px){
  .st-layout{grid-template-columns:1fr;gap:16px}
  .st-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px;border-bottom:1px solid var(--b1)}
  .st-nav-grp{display:none}
  .st-nav-a{width:auto;white-space:nowrap}
  .st-body{padding-bottom:24px}
}
@media (max-width:640px){
  .st-row{grid-template-columns:1fr;gap:8px}
  .st-row-r-end{justify-content:flex-start}
  .st-add{grid-template-columns:1fr}
  .st-tariff-h,.st-tariff .fxd-tariff-row{grid-template-columns:1fr 1fr 1fr auto}
  .st-sec-h{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){.st-switch,.st-switch::after{transition:none}}
.st-row-r .fxpw-wrap{max-width:360px}
.st-row-r .fxpw-wrap .fi{max-width:none}
#page-settings input[type="checkbox"].st-switch{width:34px !important;height:20px !important;min-width:34px;border:0 !important;border-radius:999px !important;background:var(--b3) !important}
#page-settings input[type="checkbox"].st-switch:checked{background:var(--sap) !important}
#page-settings input[type="checkbox"].st-switch::before{display:none !important}
.st-row-click,#fieldConfigList .st-row{grid-template-columns:minmax(0,1fr) auto}
.st-row-click .st-help{max-width:60ch}

/* ==========================================================================
   Analytics blocks + global de-ornamenting
   ========================================================================== */
.ins-block{border-radius:8px;box-shadow:none;margin-bottom:16px}
.ins-block-hdr{background:var(--s1);padding:16px 20px}
.ins-block-title .ins-block-ico{display:none}
.ins-block-title .ins-block-name{font:600 15px/1.3 var(--sans);letter-spacing:-.01em}
.ins-block-title .ins-block-sub{font:400 13px/1.45 var(--sans);letter-spacing:0;color:var(--t3);margin-top:3px}
.ins-block-body{padding:16px 20px}
/* nested card inside an analytics block reads as a section, not a second card */
.ins-block-body div[style*="border:1px solid var(--b1);border-radius:10px;padding:18px"]{border:0 !important;background:transparent !important;padding:0 !important}
#trendsSection>div>div:first-child{display:none !important}
/* no pulsing / glowing attention effects */
.fcard-idle,.fc-x{animation:none !important}
.btn,:root[data-theme="dark"] .btn{box-shadow:none}
/* Command Center card actions: plain labels, no glyph prefixes */
.cr-act .ico,.cr-idle-ico{display:none !important}
.cr-act button{text-transform:none !important;letter-spacing:0 !important;font:600 13px var(--sans) !important}
.cr-act .danger{max-width:none !important;flex:0 0 auto !important;padding:12px 16px !important}
/* Home: entry to the live plant map (dark, like the map itself) */
.fxd-btn-plant,:root[data-theme="dark"] .fxd-btn-plant{background:#121821;border-color:#121821;color:#e7eaef}
.fxd-btn-plant:hover,:root[data-theme="dark"] .fxd-btn-plant:hover{background:#1c2430;border-color:#1c2430}
:root[data-theme="dark"] .fxd-btn-plant{border-color:var(--b3)}
.fxd-btn-plant svg{stroke:currentColor}

/* ==========================================================================
   Running heats
   ========================================================================== */
/* the separate LIVE strip is replaced by the top-bar indicator */
#liveTicker{display:none !important}

/* top-bar indicator */
.fx-runind{position:relative}
.fx-runind[hidden]{display:none}
.fx-runind-btn{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border:1px solid color-mix(in srgb,var(--green) 40%,var(--b1));border-radius:8px;background:color-mix(in srgb,var(--green) 8%,var(--s1));color:var(--t1);font:500 12.5px var(--sans);white-space:nowrap;cursor:pointer}
.fx-runind-btn:hover{border-color:var(--green)}
.fx-runind-btn svg{width:14px;height:14px;fill:none;stroke:var(--t3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fx-runind-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
.fx-runind-time{color:var(--t2)}
.fx-runind-time b{font:600 12.5px var(--mono);font-variant-numeric:tabular-nums;color:var(--green)}
.fx-runind[data-tone="warn"] .fx-runind-btn{border-color:color-mix(in srgb,var(--yellow) 50%,var(--b1));background:color-mix(in srgb,var(--yellow) 9%,var(--s1))}
.fx-runind[data-tone="warn"] .fx-runind-dot,.fx-runind[data-tone="warn"] .fx-runind-time b{background:var(--yellow);color:var(--yellow)}
.fx-runind[data-tone="warn"] .fx-runind-time b{background:none}
.fx-runind[data-tone="crit"] .fx-runind-btn{border-color:color-mix(in srgb,var(--red2) 50%,var(--b1));background:color-mix(in srgb,var(--red2) 8%,var(--s1))}
.fx-runind[data-tone="crit"] .fx-runind-dot{background:var(--red2)}
.fx-runind[data-tone="crit"] .fx-runind-time b{color:var(--red2)}
.fx-runind-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:300px;padding:4px;border:1px solid var(--b2);border-radius:8px;background:var(--s1);box-shadow:var(--shadow-lg)}
.fx-runind-menu[hidden]{display:none}
.fx-runind-row{display:grid;grid-template-columns:8px auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:6px;background:none;text-align:left;cursor:pointer;font:400 13px var(--sans);color:var(--t2)}
.fx-runind-row:hover{background:var(--s3)}
.fx-runind-row i{width:7px;height:7px;border-radius:50%;background:var(--green)}
.fx-runind-row[data-tone="warn"] i{background:var(--yellow)}
.fx-runind-row[data-tone="crit"] i{background:var(--red2)}
.fx-runind-row[data-tone="sinter"] i{background:var(--orange,#c95a0c)}
.fx-runind-row b{font-weight:600;color:var(--t1)}
.fx-runind-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t3)}
.fx-runind-row em{font:600 13px var(--mono);font-style:normal;font-variant-numeric:tabular-nums;color:var(--t1)}
@media (max-width:1100px){.fx-runind-lbl{display:none}}

/* Command Center running card */
.fcard-running::before,.fcard-running::after,.fcard-sintering::after,.cr-hero.is-run::before{display:none !important;content:none !important}
.cr-run{padding:12px 14px 12px;border-top:1px solid var(--b1)}
.cr-run-lbl{font:500 12px var(--sans);color:var(--t3)}
.cr-run-time{margin-top:2px;font:600 30px/1.1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--green)}
.cr-run[data-tone="warn"] .cr-run-time{color:var(--yellow)}
.cr-run[data-tone="crit"] .cr-run-time{color:var(--red2)}
.cr-pace{height:4px;margin-top:10px;border-radius:2px;background:var(--s3);overflow:hidden}
.cr-pace i{display:block;height:100%;border-radius:2px;background:var(--green);transition:width .6s linear}
.cr-run[data-tone="warn"] .cr-pace i{background:var(--yellow)}
.cr-run[data-tone="crit"] .cr-pace i{background:var(--red2)}
.cr-pace-note{margin-top:6px;font:400 12px var(--sans);color:var(--t3)}
.cr-run[data-tone="crit"] .cr-pace-note{color:var(--red2)}
.cr-run-by{margin-top:4px;font:400 12px var(--sans);color:var(--t3);min-height:16px}
.fcard-running .cr-tel-lbl{text-transform:none;letter-spacing:0;font:500 11.5px var(--sans)}
.fcard-running .cr-tel-val .unit{margin-left:3px}
.cpill-badge.cpill-run{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);font-family:var(--sans);text-transform:none;letter-spacing:0}
.cpill-badge.cpill-run b{font:600 12px var(--mono);font-variant-numeric:tabular-nums}

/* Log Heat: heat banner + other running heats */
.log-running-label{text-transform:none;letter-spacing:0;font:600 12.5px var(--sans)}
.log-running-clock{text-align:right}
.log-running-k{font:400 12px var(--sans);color:var(--t3)}
.log-running-elapsed{font:600 30px/1.15 var(--mono);font-variant-numeric:tabular-nums;color:var(--green);letter-spacing:-.02em}
#runningHeatsBanner .lrb-ttl{margin-bottom:8px;font:600 13px var(--sans);color:var(--t2)}
.lrb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.lrb-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--b1);border-radius:8px;background:var(--s1)}
.lrb-name{font:600 14px var(--sans);color:var(--t1)}
.lrb-name span{margin-left:6px;font-weight:400;color:var(--t3)}
.lrb-sub{margin-top:2px;font:400 12px var(--sans);color:var(--t3)}
.lrb-sub b{font:600 12px var(--mono);color:var(--green);font-variant-numeric:tabular-nums}

/* Log Heat: actions stay on screen while scrolling */
.log-actbar{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;gap:8px;margin-top:14px;padding:12px;border:1px solid var(--b1);border-radius:8px;background:var(--s1);box-shadow:0 -6px 18px rgba(16,18,24,.08)}
:root[data-theme="dark"] .log-actbar{box-shadow:0 -6px 18px rgba(0,0,0,.35)}
.log-actbar .log-close-btn{flex:1 1 auto;width:auto !important;margin:0 !important;padding:0 18px !important;min-height:42px;font:600 14px var(--sans) !important}
.log-actbar .btn-out{min-height:42px;padding:0 16px}
.log-cancel-link{margin-right:auto;padding:8px 4px;border:0;background:none;font:500 13px var(--sans);color:var(--red2);cursor:pointer}
.log-cancel-link:hover{text-decoration:underline;text-underline-offset:2px}
@media (max-width:640px){.log-actbar{flex-wrap:wrap}.log-actbar .log-close-btn{flex-basis:100%;order:-1}}
/* keep the help button clear of the Log Heat action bar */
body:has(#logActiveState[style*="block"]) .help-fab{bottom:96px !important}

/* ---------------------------------------------------------------- sidebar v2 (2026-10-17): icon rail + profile menu */
.sidebar-inner>.fx-sb-head{display:flex;align-items:center;gap:8px;height:36px;padding:0 0 0 10px !important;margin:0 0 8px !important}
.fx-sb-co{flex:1;min-width:0;font:600 13px var(--sans);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-inner>.fx-sb-head .fx-sb-toggle{flex:none;display:grid;place-items:center;width:32px;height:32px;padding:0 !important;border:0;border-radius:var(--r);background:transparent;color:var(--t3);cursor:pointer;opacity:1 !important}
.sidebar-inner>.fx-sb-head .fx-sb-toggle:hover{background:var(--s3);color:var(--t1)}
.fx-sb-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.fx-sb-toggle:focus-visible,.fx-sb-me:focus-visible,.fx-me-i:focus-visible,.fx-me-seg-b:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.nav-item .lbl{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-side-foot{padding:8px 10px 10px}
.fx-sb-me{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 8px;border:0;border-radius:var(--r);background:transparent;color:var(--t1);cursor:pointer;text-align:left;font-family:var(--sans)}
.fx-sb-me:hover,.fx-sb-me[aria-expanded="true"]{background:var(--s3)}
.fx-sb-av{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--t1);color:var(--s1);font:600 11px var(--sans);letter-spacing:.02em}
.fx-sb-av.sq{border-radius:50%;background:var(--t2)}
.fx-sb-me-t{display:flex;flex-direction:column;min-width:0}
.fx-sb-me-t b,.fx-me-org b{font:500 13px/1.25 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-sb-me-t small,.fx-me-org small{font:400 12px/1.3 var(--sans);color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-expand{display:none !important}
@media (min-width:1101px){
  .tb-profile{display:none !important}
  .sidebar.collapsed,#appSidebar.collapsed{width:60px;flex-basis:60px;border-right:1px solid var(--b1) !important;overflow-x:hidden;overflow-y:auto}
  .sidebar.collapsed .sidebar-inner{padding:8px}
  .sidebar.collapsed .fx-sb-head{justify-content:center;padding:0 !important}
  .sidebar.collapsed .fx-sb-co,.sidebar.collapsed .lbl,.sidebar.collapsed .nav-sec{display:none !important}
  .sidebar.collapsed .nav-item{justify-content:center;padding:0;width:44px;height:40px;margin:2px 0}
  .sidebar.collapsed .nav-item .ico,.sidebar.collapsed .nav-item .ico svg{width:18px;height:18px}
  .sidebar.collapsed .fx-side-cta{width:44px;height:40px;padding:0;margin:2px 0 10px}
  .sidebar.collapsed .fx-side-cta svg{width:18px;height:18px}
  .sidebar.collapsed .fx-side-foot{padding:8px}
  .sidebar.collapsed .fx-sb-me{justify-content:center;width:44px;padding:6px 0}
}
.fx-sb-tip{position:fixed;z-index:var(--z-toast,9999);transform:translateY(-50%);padding:5px 9px;border-radius:6px;background:var(--t1);color:var(--s1);font:500 12px var(--sans);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md)}
.fx-sb-tip[hidden],.fx-me-menu[hidden]{display:none}
.fx-me-menu{position:fixed;z-index:var(--z-dropdown,50);width:260px;max-height:calc(100vh - 24px);overflow:auto;padding:6px;border:1px solid var(--b1);border-radius:14px;background:var(--s1);color:var(--t1);box-shadow:var(--shadow-lg);font-family:var(--sans)}
.fx-me-hd{padding:8px 10px 6px}
.fx-me-em{font:400 13px var(--sans);color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:10px}
.fx-me-seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--s2)}
.fx-me-seg-b{display:grid;place-items:center;width:40px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--t3);cursor:pointer}
.fx-me-seg-b:hover{color:var(--t1)}
.fx-me-seg-b[aria-checked="true"]{background:var(--s1);color:var(--t1);box-shadow:var(--shadow-xs)}
.fx-me-seg-b svg,.fx-me-i svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fx-me-sep{height:1px;margin:6px 4px;background:var(--b1)}
.fx-me-org{display:flex;align-items:center;gap:10px;padding:6px 10px}
.fx-me-org>span:last-child{display:flex;flex-direction:column;min-width:0}
.fx-me-i{display:flex;align-items:center;gap:12px;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--t1);font:400 14px var(--sans);text-align:left;cursor:pointer}
.fx-me-i:hover{background:var(--s2)}
.fx-me-i svg{color:var(--t2)}
.fx-me-i.danger,.fx-me-i.danger svg{color:var(--red2)}
@media (prefers-reduced-motion:reduce){.sidebar,#appSidebar{transition:none !important}}

/* ---------------------------------------------------------------- quality (2026-10-17): samples, spec status, grade specs, log sheet */
.fxq-samples{display:flex;flex-direction:column;gap:10px}
.fxq-smp{border:1px solid var(--b1);border-radius:var(--r);padding:8px 10px;background:var(--s1)}
.fxq-smp-h{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.fxq-smp-h b{font:600 12px var(--sans);color:var(--t1);min-width:64px}
.fxq-smp-h .fxq-at{width:120px;height:36px}
.fxq-smp-h .fxq-addn{flex:1;min-width:180px;height:36px}
.fxq-rm{background:transparent;border:0;color:var(--t3);font-size:18px;line-height:1;cursor:pointer;min-width:32px;min-height:32px;border-radius:var(--r)}
.fxq-rm:hover{color:var(--red2);background:var(--s2)}
.fxq-add-smp{align-self:flex-start;min-height:36px;padding:0 12px;border:1px dashed var(--b2);border-radius:var(--r);background:transparent;color:var(--t2);font:500 12px var(--sans);cursor:pointer}
.fxq-add-smp:hover{color:var(--t1);border-color:var(--t3)}
.fxq-st{display:inline-block;margin-top:3px;font:600 10px var(--mono);letter-spacing:.02em}
.fxd-chem-cell[data-fxq-st="OK"]{border-color:color-mix(in oklab,var(--green) 45%,var(--b1))}
.fxd-chem-cell[data-fxq-st="OK"] .fxq-st{color:var(--green)}
.fxd-chem-cell[data-fxq-st="Low"],.fxd-chem-cell[data-fxq-st="High"]{border-color:var(--yellow)}
.fxd-chem-cell[data-fxq-st="Low"] .fxq-st,.fxd-chem-cell[data-fxq-st="High"] .fxq-st{color:var(--yellow)}
.fxq-grade-r{display:flex;align-items:center;gap:12px;justify-content:space-between}
.fxq-chips{display:flex;flex-wrap:wrap;gap:6px}
.fxq-chip{font:400 12px var(--mono);padding:3px 8px;border-radius:999px;background:var(--s2);border:1px solid var(--b1);color:var(--t2)}
.fxq-chip b{color:var(--t1);font-weight:600}
.fxq-editor{padding:14px 20px;border-top:1px solid var(--b1);background:var(--s2)}
.fxq-ed-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fxq-ed-top .fi{max-width:260px}
.fxq-ed-t{border-collapse:collapse;width:100%;max-width:520px}
.fxq-ed-t th{font:500 12px var(--sans);color:var(--t3);text-align:left;padding:4px 6px}
.fxq-ed-t td{padding:3px 6px}
.fxq-ed-t .fi{width:100%;height:36px}
.fxq-ed-foot{display:flex;align-items:center;gap:8px;margin-top:10px;max-width:520px}
#fxLogSheet{position:fixed;inset:0;z-index:var(--z-modal,1010);overflow:auto;background:color-mix(in oklab,var(--bg) 92%,transparent);padding:0 16px 32px}
#fxLogSheet[hidden]{display:none}
.ls-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;max-width:840px;margin:0 auto;padding:12px 0;background:var(--bg)}
.ls-page{max-width:840px;margin:0 auto;background:#fff;color:#111;border:1px solid #c9ccd2;border-radius:6px;padding:28px 30px;font:400 12px/1.4 var(--sans)}
.ls-page small{display:block;font-size:10px;color:#666;font-weight:400}
.ls-h{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}
.ls-co{font:600 12px var(--sans);color:#444}
.ls-h h1{margin:2px 0 0;font:700 18px var(--sans);letter-spacing:.01em}
.ls-heat{font-size:11px;color:#444;text-align:right}.ls-heat b{display:block;font:700 15px var(--mono);color:#111}
.ls-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #bbb;border-left:1px solid #bbb}
.ls-c{border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:5px 7px;min-width:0}
.ls-c span{display:block;font:500 9px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:#666}
.ls-c b{display:block;font:600 12px var(--mono);overflow-wrap:anywhere}
.ls-hl{background:#fff8e6}.ls-hl b{color:#b42318;font-size:14px}
.ls-page section{margin-top:14px}
.ls-page h2{margin:0 0 6px;font:700 11px var(--sans);text-transform:uppercase;letter-spacing:.06em}
.ls-page h2 small{display:inline;margin-left:6px;text-transform:none;letter-spacing:0}
.ls-t{border-collapse:collapse;width:100%;font:400 11px var(--mono)}
.ls-t th,.ls-t td{border:1px solid #bbb;padding:4px 6px;text-align:center}
.ls-t thead th{background:#f1f2f4;font:600 10px var(--sans)}
.ls-t tbody th{text-align:left;font-weight:600}
.ls-t td:first-child{text-align:left}
.ls-fin{font-weight:700}
.ls-st[data-st="OK"]{color:#067647;font-weight:600}
.ls-st[data-st="Low"],.ls-st[data-st="High"]{color:#b54708;font-weight:700}
.ls-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ls-adds{margin-top:6px;font-size:11px;color:#333}
.ls-none{color:#777;margin:0}
.ls-foot{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}
.ls-f{margin-top:12px;font:400 10px var(--mono);color:#777;text-align:right}
.ls-printonly{display:none}
@media (max-width:700px){.ls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ls-two{grid-template-columns:1fr}.ls-page{padding:16px}}
@media print{
  body.fx-print-sheet>*:not(#fxLogSheet){display:none !important}
  body.fx-print-sheet #fxLogSheet{position:static;background:#fff;padding:0;overflow:visible}
  body.fx-print-sheet .ls-noprint{display:none !important}
  body.fx-print-sheet .ls-printonly{display:inline}
  body.fx-print-sheet .ls-page{border:0;max-width:none;padding:0;border-radius:0}
  @page{size:A4;margin:12mm}
}
.ls-t th,.ls-t td,.ls-c span,.ls-c b{text-transform:none}
.ls-c span{text-transform:uppercase}
.ls-page{color-scheme:light}
/* the log sheet is paper: never inherit the app's dark table styling */
.ls-page table,.ls-page tr,.ls-page td,.ls-page th{background:#fff !important;color:#111 !important;border-color:#bbb !important}
.ls-page thead th{background:#f1f2f4 !important}
.ls-page td small,.ls-page th small{color:#666 !important}
.ls-page .ls-st[data-st="OK"]{color:#067647 !important}
.ls-page .ls-st[data-st="Low"],.ls-page .ls-st[data-st="High"]{color:#b54708 !important}
.ls-page .ls-none{color:#777 !important}
.ls-page h1,.ls-page h2,.ls-page .ls-adds,.ls-page .ls-adds b{color:#111 !important}
