:root{
  --navy:#173a60;--navy2:#294d72;--blue:#2e7db0;--orange:#ef7d00;--green:#15915f;--red:#df3d48;--amber:#e8a11a;
  --bg:#f4f7fb;--panel:#fff;--line:#dbe3ed;--text:#19324d;--muted:#6e8197;--soft:#eef4f9;--shadow:0 14px 36px rgba(15,23,42,.08)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Segoe UI,Tahoma,Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select{font:inherit}.hidden{display:none!important}button{cursor:pointer}
body[data-dark="true"]{--bg:#0f172a;--panel:#111827;--line:#263449;--text:#e5edf8;--muted:#9aabc0;--soft:#172033;--shadow:0 14px 36px rgba(0,0,0,.24)}
.splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 68%,rgba(50,219,143,.20),transparent 31%),linear-gradient(135deg,#06172d,#050927 54%,#0a1c2d);color:#fff;transition:opacity .65s ease,visibility .65s ease}.splash.hide{opacity:0;visibility:hidden}.splash-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(80,154,192,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(80,154,192,.075) 1px,transparent 1px);background-size:54px 54px;animation:gridMove 18s linear infinite}.splash-copy{position:absolute;top:9%;width:min(96vw,1500px);text-align:center;z-index:5}.splash-copy>span{display:block;letter-spacing:.36em;font-size:18px;font-weight:850;animation:copySlideRight 3.4s ease-in-out infinite}.splash-copy h1{font-size:clamp(42px,5.2vw,78px);margin:8px 0 5px;letter-spacing:.01em;white-space:nowrap;animation:copySlideLeft 3.4s ease-in-out infinite}.splash-copy h1 b{color:#43e4b0}.splash-copy p{margin:0;font-size:21px;color:#d7e2ef;animation:copySlideRight 3.4s ease-in-out infinite}.splash-copy p strong{color:#43e4b0}.splash-core{position:relative;width:350px;height:350px;display:grid;place-items:center;z-index:4}.logo-disc{position:relative;z-index:4;width:190px;height:190px;border-radius:50%;display:grid;place-items:center;background:#fff;border:11px solid rgba(255,255,255,.94);box-shadow:0 0 55px rgba(67,228,176,.33);animation:logoFloat 3.1s ease-in-out infinite}.logo-disc:after{content:"";position:absolute;inset:-25px;border-radius:50%;border:1px solid rgba(67,228,176,.24);animation:pulseRing 2.6s ease-out infinite}.logo-disc img{width:125px;animation:logoMicroMove 4s ease-in-out infinite}.orbit{position:absolute;border:1px solid rgba(67,228,176,.55);border-radius:50%;animation:spin 8s linear infinite}.orbit:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#43e4b0;box-shadow:0 0 18px #43e4b0}.orbit-a{inset:20px}.orbit-a:after{top:0;left:50%}.orbit-b{inset:0;border-style:dashed;animation-duration:13s;animation-direction:reverse}.orbit-b:after{bottom:10%;right:11%}.orbit-c{inset:55px;animation-duration:6s}.orbit-c:after{left:-5px;top:50%}.splash-trust{position:absolute;bottom:8%;display:flex;gap:70px;z-index:6}.splash-trust div{display:grid;text-align:center}.splash-trust b{font-size:16px}.splash-trust span{font-size:12px;color:#9fb2c8;margin-top:4px}.splash-marquee{position:absolute;left:0;right:0;overflow:hidden;z-index:3;opacity:.28;font-size:13px;font-weight:900;letter-spacing:.18em;white-space:nowrap}.splash-marquee span{display:inline-block;min-width:200%;padding-left:100%}.splash-marquee-top{top:28%}.splash-marquee-top span{animation:marqueeLeft 18s linear infinite}.splash-marquee-bottom{bottom:23%}.splash-marquee-bottom span{animation:marqueeRight 20s linear infinite}.splash-wave{position:absolute;left:-8%;right:-8%;bottom:-25%;height:38%;border-radius:50% 50% 0 0/38% 38% 0 0;background:linear-gradient(180deg,#3ee287,#23cf78);box-shadow:0 -25px 80px rgba(53,226,139,.20);animation:waveBreath 4.5s ease-in-out infinite;z-index:2}.splash-wave:before,.splash-wave:after{content:"";position:absolute;inset:11% 8% auto;height:75%;border:1px solid rgba(255,255,255,.15);border-radius:50% 50% 0 0}.splash-wave:after{inset:22% 15% auto}.is-loading{overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes gridMove{to{background-position:54px 54px}}@keyframes logoFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.035)}}@keyframes logoMicroMove{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}@keyframes pulseRing{0%{transform:scale(.88);opacity:.8}100%{transform:scale(1.25);opacity:0}}@keyframes copySlideLeft{0%,100%{transform:translateX(18px)}50%{transform:translateX(-18px)}}@keyframes copySlideRight{0%,100%{transform:translateX(-14px)}50%{transform:translateX(14px)}}@keyframes marqueeLeft{to{transform:translateX(-55%)}}@keyframes marqueeRight{from{transform:translateX(-55%)}to{transform:translateX(0)}}@keyframes waveBreath{0%,100%{transform:translateY(0) scaleX(1)}50%{transform:translateY(-10px) scaleX(1.035)}}
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 0,#e9f4fb,transparent 28rem),var(--bg)}.login-card{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:var(--shadow)}.login-card>img{width:135px}.login-heading span{display:block;color:var(--orange);font-weight:900;letter-spacing:.16em;font-size:11px;margin-top:24px}.login-heading h1{font-size:38px;margin:7px 0 4px}.login-heading p{color:var(--muted);margin:0 0 22px}.login-card label{display:grid;gap:7px;font-size:12px;font-weight:900;text-transform:uppercase;color:var(--muted);margin:12px 0}.login-card input,.login-card select{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:13px;padding:13px;width:100%;font:inherit}.login-card select{cursor:pointer}.field-help{font-size:11px;line-height:1.45;text-transform:none;font-weight:650;color:var(--muted)}.registration-note{margin:14px 0 4px;padding:12px 13px;border:1px solid #c9dff1;border-radius:13px;background:#f3f9fe;color:#536b82;font-size:12px;line-height:1.5}.registration-note b{color:var(--navy)}.login-actions{display:flex;gap:10px;margin-top:18px}.login-actions button{flex:1;padding:13px;border:0;border-radius:13px;background:var(--navy);color:#fff;font-weight:900}.login-actions .secondary{background:var(--panel);color:var(--navy);border:1px solid var(--line)}.message{color:var(--red);font-size:13px}
.utility-bar{height:48px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff}.utility-bar>div{display:flex;align-items:center;gap:18px}.utility-bar strong{letter-spacing:.1em}.utility-bar span{font-size:13px;color:#dbe8f5}.main-header{min-height:100px;padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--line);display:grid;grid-template-columns:310px minmax(420px,1fr) auto;align-items:center;gap:22px}.brand-home{border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;color:var(--text)}.brand-home img{width:92px}.brand-home b,.brand-home span{display:block}.brand-home b{font-size:17px}.brand-home span{font-size:12px;color:var(--muted);margin-top:4px}.global-search{display:grid;grid-template-columns:160px 1fr auto;align-items:center;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.global-search select,.global-search input{border:0;background:transparent;color:var(--text);padding:15px}.global-search select{border-right:1px solid var(--line)}.global-search kbd{margin-right:10px;border:1px solid var(--line);background:var(--soft);padding:5px 8px;border-radius:8px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:9px}.circle{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--text);position:relative}.circle i{position:absolute;right:-2px;top:-4px;background:var(--orange);color:#fff;border-radius:999px;padding:2px 6px;font-style:normal;font-size:10px}.user-chip{display:grid;margin:0 6px}.user-chip span{font-size:11px;color:var(--muted);margin-top:2px}.top-nav{height:68px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:stretch;padding:0 24px;gap:2px;overflow:auto}.nav-wrap{position:relative}.nav-btn{height:100%;padding:0 20px;border:0;background:transparent;color:var(--text);font-weight:750;white-space:nowrap;border-bottom:3px solid transparent}.nav-btn.active{color:#c56a00;background:#fff8ef;border-bottom-color:var(--orange)}.nav-menu{position:absolute;left:0;top:68px;width:290px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--orange);box-shadow:var(--shadow);z-index:200;padding:8px 0}.nav-menu button{width:100%;padding:12px 18px;border:0;background:transparent;color:var(--text);text-align:left}.nav-menu button:hover{background:var(--soft)}
.content{padding:24px;display:grid;gap:18px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.section-head span{display:block;color:var(--orange);font-size:11px;letter-spacing:.16em;font-weight:950}.section-head h1{margin:6px 0 4px;font-size:32px}.section-head p{margin:0;color:var(--muted)}.section-head button,.primary{border:0;border-radius:12px;background:var(--navy);color:#fff;padding:12px 16px;font-weight:900}.secondary-btn{background:var(--panel)!important;color:var(--navy)!important;border:1px solid var(--line)!important}.status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:0 8px 22px rgba(15,23,42,.04);position:relative;overflow:hidden}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue)}.metric.green:before{background:var(--green)}.metric.orange:before{background:var(--orange)}.metric.red:before{background:var(--red)}.metric span{color:var(--muted);font-size:12px;font-weight:800}.metric b{display:block;font-size:30px;margin:8px 0 5px}.metric small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 10px 25px rgba(15,23,42,.04)}.panel h3{margin:0 0 16px}.line-board{display:grid;gap:11px}.line-row{display:grid;grid-template-columns:150px 1fr 90px 85px;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(90deg,var(--panel),var(--soft))}.line-name b,.line-name span{display:block}.line-name span{font-size:11px;color:var(--muted);margin-top:4px}.bar{height:9px;border-radius:99px;background:#e8edf3;overflow:hidden}.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--green))}.tag{display:inline-flex;justify-content:center;border-radius:99px;padding:6px 9px;font-size:11px;font-weight:900;background:#e8f7ef;color:#126b48}.tag.stop{background:#ffe8eb;color:#b32132}.tag.change{background:#fff2d5;color:#9a6500}.priority-list{display:grid;gap:10px}.priority{display:flex;align-items:center;justify-content:space-between;padding:13px;border-bottom:1px solid var(--line)}.priority:last-child{border-bottom:0}.priority b,.priority span{display:block}.priority span{font-size:12px;color:var(--muted);margin-top:3px}.priority em{font-style:normal;font-weight:900}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.data-table{width:100%;border-collapse:collapse;background:var(--panel)}.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.data-table th{background:var(--soft);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.machine-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px}.machine-card h3{margin:0}.machine-card p{color:var(--muted);font-size:13px}.machine-card .mini{display:flex;justify-content:space-between;margin-top:12px}.machine-card .mini b{font-size:22px}.chart{height:250px;display:flex;align-items:flex-end;gap:14px;padding-top:20px}.chart span{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;color:var(--muted);font-size:11px}.chart i{width:100%;max-width:38px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--blue),var(--navy))}.chart b{font-size:11px;color:var(--text)}.empty{padding:40px;text-align:center;color:var(--muted)}footer{padding:20px 24px;color:var(--muted);border-top:1px solid var(--line);background:var(--panel)}
.modal-backdrop{position:fixed;inset:0;z-index:2147483600!important;background:rgba(15,23,42,.5);display:grid;place-items:center;padding:18px 20px;overflow:hidden}.modal{width:min(760px,100%);max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;background:var(--panel);border-radius:22px;padding:22px;scrollbar-gutter:stable}body.modal-open{overflow:hidden!important}.modal h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:900}.form-grid input,.form-grid select{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text)}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.toast{position:fixed;right:20px;bottom:20px;background:#0f172a;color:#fff;padding:12px 16px;border-radius:12px;z-index:600}
@media(max-width:1250px){.main-header{grid-template-columns:240px 1fr}.header-actions{grid-column:1/-1;justify-content:flex-end}.status-strip{grid-template-columns:repeat(2,1fr)}.card-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.utility-right{display:none!important}.main-header{grid-template-columns:1fr}.global-search{grid-template-columns:110px 1fr}.header-actions{justify-content:flex-start;overflow:auto}.dashboard-grid{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,1fr)}.line-row{grid-template-columns:1fr}.splash-copy h1{font-size:48px}.splash-trust{gap:18px}.status-strip{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.utility-bar{padding:0 14px}.utility-bar span{display:none}.main-header{padding:14px}.brand-home img{width:72px}.global-search{grid-template-columns:1fr}.global-search select,.global-search kbd{display:none}.content{padding:14px}.status-strip,.card-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.splash-core{width:260px;height:260px}.logo-disc{width:145px;height:145px}.logo-disc img{width:98px}.splash-copy{top:8%}.splash-copy h1{font-size:40px}.splash-copy p{font-size:15px}.splash-trust{bottom:4%;flex-direction:column;gap:8px}.section-head{align-items:flex-start;flex-direction:column}}
.empty-state{padding:34px;text-align:center;color:#718197;border:1px dashed #cfdbe8;border-radius:16px;background:#f8fbfe}

/* V1.2 Sterile & Non-Sterile production structure */
.main-header{grid-template-columns:285px auto minmax(360px,1fr) auto!important}
.unit-switcher{display:flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--soft);white-space:nowrap}
.unit-switcher button{border:0;background:transparent;color:var(--muted);padding:9px 11px;border-radius:10px;font-weight:850;cursor:pointer}
.unit-switcher button.active{background:var(--panel);color:var(--navy);box-shadow:0 4px 12px rgba(15,23,42,.07)}
.unit-switcher span{display:none}

.unit-switcher.department-locked{background:#eef6ff;border-color:#b9d7f3}
.unit-switcher.department-locked span{display:inline-flex;align-items:center;padding:8px 10px;border-left:1px solid var(--line);color:var(--navy);font-size:12px;font-weight:850}
.unit-switcher button[hidden]{display:none!important}
.head-actions{display:flex;align-items:center;gap:10px}.current-unit{display:inline-flex!important;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--navy)!important;letter-spacing:0!important;font-size:12px!important}
.area-comparison{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.area-card{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:22px;padding:20px;background:var(--panel);color:var(--text);box-shadow:0 10px 25px rgba(15,23,42,.045);cursor:pointer;position:relative;overflow:hidden}
.area-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#1677b8}.area-card.nonsterile:before{background:#16a36a}
.area-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,23,42,.08)}
.area-card-head{display:flex;justify-content:space-between;align-items:center}.area-card-head>span:last-child{font-size:12px;color:var(--muted)}
.area-card h2{margin:16px 0 12px;font-size:23px}.area-card p{margin:12px 0 0;color:var(--muted);font-size:13px}
.area-card-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.area-card-kpis div{padding:10px;border-radius:13px;background:var(--soft)}.area-card-kpis span,.area-card-kpis b{display:block}.area-card-kpis span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase}.area-card-kpis b{font-size:21px;margin-top:4px}
.unit-badge{display:inline-flex!important;align-items:center;justify-content:center;padding:5px 8px;border-radius:999px;font-size:10px!important;font-weight:950;letter-spacing:.05em!important;white-space:nowrap}
.unit-badge.sterile{background:#e9f3ff;color:#0f5e9e}.unit-badge.nonsterile{background:#e8f8ef;color:#14704b}
.line-tags{display:flex;align-items:center;justify-content:flex-end;gap:6px}.line-row{grid-template-columns:175px 1fr 70px 190px!important}.pareto-row{grid-template-columns:175px 1fr 70px 20px!important}
.panel-title small{color:var(--orange);font-size:10px;font-weight:900;letter-spacing:.12em}.panel-title h3{margin:4px 0 16px}
.machine-card{position:relative}.machine-card.sterile{border-top:4px solid #1677b8}.machine-card.nonsterile{border-top:4px solid #16a36a}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
.data-table .unit-badge{font-size:9px!important}
@media(max-width:1450px){.main-header{grid-template-columns:245px auto 1fr}.header-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:1100px){.main-header{grid-template-columns:1fr}.unit-switcher{justify-self:start}.area-comparison{grid-template-columns:1fr}.line-row{grid-template-columns:1fr!important}.line-tags{justify-content:flex-start}}
@media(max-width:650px){.unit-switcher{width:100%;overflow:auto}.unit-switcher button{flex:1}.area-card-kpis{grid-template-columns:1fr 1fr}.head-actions{width:100%;justify-content:space-between}}

/* V1.3 — Fix clipped top navigation dropdowns */
.top-nav{
  position:relative;
  overflow:visible!important;
  z-index:300;
}
.nav-wrap{
  position:relative;
  flex:0 0 auto;
}
.nav-menu{
  top:100%!important;
  left:0!important;
  width:290px!important;
  max-height:min(420px,calc(100vh - 190px));
  overflow-y:auto!important;
  overflow-x:hidden!important;
  z-index:9999!important;
  border-radius:0 0 12px 12px;
  background:var(--panel)!important;
}
.nav-menu button{
  display:block;
  width:100%;
  min-height:44px;
  white-space:normal;
}
@media(max-width:900px){
  .top-nav{
    overflow-x:auto!important;
    overflow-y:visible!important;
    scrollbar-width:thin;
  }
  .nav-menu{
    position:fixed!important;
    top:216px!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-height:calc(100vh - 230px)!important;
    border-radius:12px!important;
  }
}


/* V1.4 — Dropdown portal outside the scrollable navigation bar */
.top-nav{
  position:relative!important;
  z-index:120!important;
  height:68px!important;
  min-height:68px!important;
  display:flex!important;
  align-items:stretch!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}
.top-nav::-webkit-scrollbar{display:none!important}
.nav-wrap{position:relative!important;flex:0 0 auto!important;height:68px!important}
.nav-btn{
  height:68px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  padding:0 20px!important;
  background:transparent!important;
  color:var(--text)!important;
  border:0!important;
  border-bottom:3px solid transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.nav-btn:hover{background:var(--soft)!important}
.nav-btn.active{color:#c56a00!important;background:#fff8ef!important;border-bottom-color:var(--orange)!important}
.nav-chevron{font-size:13px;line-height:1;transform:translateY(-1px)}
.top-nav .nav-menu{display:none!important}
.nav-menu-portal{
  position:fixed!important;
  z-index:2147483000!important;
  display:block;
  padding:8px 0!important;
  background:var(--panel)!important;
  border:1px solid var(--line)!important;
  border-top:4px solid var(--orange)!important;
  border-radius:0 0 12px 12px!important;
  box-shadow:0 18px 42px rgba(15,23,42,.16)!important;
  max-height:calc(100vh - 110px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.nav-menu-portal.hidden{display:none!important}
.nav-portal-item{
  width:100%!important;
  min-height:46px!important;
  display:flex!important;
  align-items:center!important;
  padding:11px 18px!important;
  border:0!important;
  border-radius:0!important;
  background:var(--panel)!important;
  color:var(--text)!important;
  font-weight:600!important;
  text-align:left!important;
  box-shadow:none!important;
  white-space:normal!important;
}
.nav-portal-item:hover{background:var(--soft)!important}
.nav-portal-item.active{background:#fff8ef!important;color:#b85f00!important;box-shadow:inset 3px 0 0 var(--orange)!important}
@media(max-width:760px){
  .top-nav{padding:0 10px!important}
  .nav-btn{padding:0 14px!important}
  .nav-menu-portal{border-radius:12px!important;max-height:calc(100vh - 92px)!important}
}

.modal-subtitle{margin:-8px 0 16px;color:var(--muted);font-size:13px}.form-grid small{font-size:11px;font-weight:700;color:var(--muted);line-height:1.35}.form-grid select:disabled{opacity:.65;cursor:not-allowed}.form-grid input[readonly]{background:color-mix(in srgb,var(--panel) 70%,#e8eef6);cursor:not-allowed}.machine-summary{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid #cfe0f2;border-left:4px solid #1f7aa8;border-radius:14px;background:#f3f8fd;color:#173a60}.machine-summary b{font-size:14px}.machine-summary span{font-size:12px;color:#637994}body[data-dark="true"] .machine-summary{background:#14263a;border-color:#38516b;color:#f8fafc}body[data-dark="true"] .machine-summary span{color:#b8c7d9}


/* V1.7 machine number lookup and master-data auto-fill */
.inline-master-btn{align-self:flex-start;margin-top:8px;border:1px solid #9fc2df;background:#fff;color:#173a60;padding:8px 12px;border-radius:10px;font-weight:900;cursor:pointer}.inline-master-btn:hover{background:#eaf4fc}.master-section{margin-top:18px}.master-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 12px}.master-section-title span{display:block;color:#ef7d00;font-size:11px;font-weight:900;letter-spacing:.14em}.master-section-title h2{margin:4px 0 0;color:var(--text)}.master-section-title p{margin:0;color:var(--muted);font-size:13px}.machine-master-table{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:auto}.machine-master-empty{margin:0}.machine-master-empty button{margin-top:8px}.form-grid input[list]{letter-spacing:.035em;font-weight:800}.form-grid input[type="hidden"]{display:none}.form-grid input[readonly]{font-weight:800}.machine-summary .inline-master-btn{font-size:12px}body[data-dark="true"] .inline-master-btn{background:#172a3e;color:#f8fafc;border-color:#46637f}body[data-dark="true"] .inline-master-btn:hover{background:#203a54}
@media(max-width:760px){.master-section-title{align-items:flex-start;flex-direction:column}.machine-master-table{max-width:100%}}


/* V1.8 preparation workflow and live OEE calculation */
.entry-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 18px}.entry-steps span{padding:9px 10px;border-radius:10px;background:var(--soft);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:900;text-align:center}.entry-steps span.active{background:#e8f4fd;border-color:#9fc9e7;color:#0f5f8b}.form-section-title{margin:18px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line);color:var(--navy);font-weight:950;font-size:14px}.form-grid textarea{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);resize:vertical;font:inherit}.oee-live-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.oee-live-preview>div{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.oee-live-preview span{display:block;color:var(--muted);font-size:11px;font-weight:900}.oee-live-preview b{display:block;margin-top:5px;font-size:24px;color:var(--navy)}.oee-live-preview .oee-total{background:#fff3df;border-color:#f4c57e}.table-action{border:1px solid #b8cee2;background:#fff;color:#173a60;border-radius:9px;padding:7px 11px;font-weight:900;cursor:pointer}.table-action:hover{background:#eef6fc}.data-table small{color:var(--muted)}body[data-dark="true"] .form-section-title{color:#f8fafc}body[data-dark="true"] .table-action{background:#172a3e;color:#fff;border-color:#46637f}body[data-dark="true"] .oee-live-preview .oee-total{background:#493718;border-color:#8a6827}
@media(max-width:620px){.entry-steps,.oee-live-preview{grid-template-columns:1fr 1fr}}


/* V1.9 compact daily entry */
.entry-steps.compact{margin-bottom:14px}.compact-entry-grid{align-items:start}.master-summaries{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}.master-summary{display:flex;align-items:center;gap:12px;min-height:68px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}.master-summary .summary-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#fff;color:var(--navy);font-size:18px;box-shadow:0 5px 14px rgba(23,58,96,.08)}.master-summary b{display:block;color:var(--navy);font-size:13px}.master-summary span{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:750;line-height:1.4}.machine-card{border-left:4px solid #2785ba}.product-card{border-left:4px solid #ef7d00}.time-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.time-summary>div{padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.time-summary span{display:block;color:var(--muted);font-size:11px;font-weight:850}.time-summary b{display:block;margin-top:4px;color:var(--navy);font-size:18px}.entry-notes{border:1px solid var(--line);border-radius:13px;background:var(--soft);overflow:hidden}.entry-notes summary{padding:12px 14px;cursor:pointer;color:var(--navy);font-size:12px;font-weight:900}.entry-notes label{padding:0 12px 12px}.compact-output-grid{align-items:start}body[data-dark="true"] .master-summary .summary-icon{background:#20364c;color:#fff}body[data-dark="true"] .master-summary b,body[data-dark="true"] .time-summary b,body[data-dark="true"] .entry-notes summary{color:#f8fafc}
@media(max-width:620px){.master-summaries,.time-summary{grid-template-columns:1fr}.entry-steps.compact span{font-size:10px;padding:8px 5px}}


/* V2.0 — Equipment Performance identity and machine OEE gauge dashboard */
.machine-performance-section{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:0 12px 28px rgba(15,23,42,.045)}
.machine-performance-section.sterile{border-top:5px solid #2386bf}.machine-performance-section.nonsterile{border-top:5px solid #1ca66d}
.machine-performance-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.machine-performance-heading>div:first-child{display:grid;gap:5px}.machine-performance-heading h2{margin:0;font-size:23px}.machine-performance-heading p{margin:0;color:var(--muted);font-size:13px}.machine-count{display:flex;align-items:baseline;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.machine-count b{font-size:22px;color:var(--navy)}.machine-count span{font-size:11px;color:var(--muted);font-weight:800}
.performance-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.performance-machine-card{min-width:0;padding:15px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,var(--panel),var(--soft));box-shadow:0 7px 18px rgba(15,23,42,.045);transition:transform .18s ease,box-shadow .18s ease}.performance-machine-card:hover{transform:translateY(-3px);box-shadow:0 13px 25px rgba(15,23,42,.09)}.performance-machine-card.sterile{border-left:4px solid #2386bf}.performance-machine-card.nonsterile{border-left:4px solid #1ca66d}.performance-machine-card.placeholder:not(:hover){opacity:.82}
.performance-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.performance-card-head>div{min-width:0}.performance-card-head h3{margin:8px 0 4px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.performance-card-head p{margin:0;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.performance-status{flex:0 0 auto;padding:5px 7px;border-radius:999px;font-size:9px;font-weight:950}.performance-status.excellent{background:#dff7ea;color:#087443}.performance-status.good{background:#e6f2ff;color:#11659b}.performance-status.attention{background:#fff1d2;color:#9b6200}.performance-status.critical{background:#ffe5e8;color:#ad2533}
.oee-donut{--oee:0;--gauge:#df3d48;width:112px;height:112px;margin:14px auto 12px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gauge) calc(var(--oee)*1%),#dfe7ef 0);position:relative;box-shadow:inset 0 0 0 1px rgba(15,23,42,.04)}.oee-donut:before{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--panel);box-shadow:0 4px 12px rgba(15,23,42,.08)}.oee-donut>div{position:relative;z-index:2;text-align:center}.oee-donut strong{display:block;font-size:23px;color:var(--navy)}.oee-donut span{font-size:10px;font-weight:900;color:var(--muted);letter-spacing:.08em}.oee-donut.excellent{--gauge:#15915f}.oee-donut.good{--gauge:#2e7db0}.oee-donut.attention{--gauge:#e8a11a}.oee-donut.critical{--gauge:#df3d48}
.apq-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.apq-row div{padding:7px 5px;border-radius:10px;background:var(--panel);border:1px solid var(--line);text-align:center}.apq-row span,.apq-row b{display:block}.apq-row span{font-size:9px;color:var(--muted);font-weight:950}.apq-row b{margin-top:2px;font-size:12px;color:var(--navy)}.equipment-summary{margin-bottom:0}
body[data-dark="true"] .oee-donut:before{background:var(--panel)}body[data-dark="true"] .oee-donut{background:conic-gradient(var(--gauge) calc(var(--oee)*1%),#263449 0)}body[data-dark="true"] .machine-count b,body[data-dark="true"] .oee-donut strong,body[data-dark="true"] .apq-row b{color:#f4f8fc}
@media(max-width:1500px){.performance-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.performance-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.performance-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.machine-performance-heading{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.performance-card-grid{grid-template-columns:1fr}.splash-copy h1{white-space:normal;font-size:35px}.splash-marquee{display:none}}

/* V2.3 — machine-to-preparation assignment */
.machine-product-field{display:grid;gap:7px}.field-label{color:var(--muted);font-size:12px;font-weight:900}.machine-product-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:280px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.machine-product-option{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel);cursor:pointer}.machine-product-option input{width:18px;height:18px;margin:2px 0 0;padding:0;flex:0 0 18px}.machine-product-option span{display:block;min-width:0}.machine-product-option b{display:block;color:var(--text);font-size:12px;line-height:1.3}.machine-product-option small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:700}.machine-product-option:has(input:checked){border-color:#ef9b3d;background:#fff7eb;box-shadow:0 0 0 1px rgba(239,125,0,.15)}.machine-product-empty{grid-column:1/-1;padding:14px;text-align:center;color:var(--muted);font-size:12px;font-weight:800}body[data-dark="true"] .machine-product-option:has(input:checked){background:#4a3519;border-color:#b87a2f}@media(max-width:620px){.machine-product-picker{grid-template-columns:1fr;max-height:320px}}

/* V2.5 — machine + preparation speed setup */
.machine-speed-field{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.machine-speed-field input{background:var(--panel)!important;font-size:15px;font-weight:850;color:var(--navy)!important}
.machine-speed-field small{line-height:1.45}
.machine-speed-field.speed-missing{border-color:#dc7b18;background:#fff8ed;box-shadow:0 0 0 2px rgba(220,123,24,.08)}
.machine-speed-field.speed-missing small{color:#9a4b00}
.machine-speed-field.speed-locked{border-color:#8ab7a2;background:#f1faf5}
.machine-speed-field.speed-locked input[readonly]{cursor:not-allowed;opacity:.85;background:#e9f3ed!important}
.machine-product-copy{display:block;min-width:0;flex:1}
.mapping-speed-wrap{display:grid!important;grid-template-columns:1fr;gap:4px;margin-top:8px;color:var(--muted);font-size:10px;font-weight:850}
.mapping-speed-wrap input{width:100%;padding:8px 9px!important;border-radius:9px!important;font-size:12px!important;font-weight:800}
body[data-dark="true"] .machine-speed-field.speed-missing{background:#4d3418;border-color:#d08a37}
body[data-dark="true"] .machine-speed-field.speed-missing small{color:#ffd49b}
body[data-dark="true"] .machine-speed-field.speed-locked{background:#19382d;border-color:#4c8c73}
body[data-dark="true"] .machine-speed-field.speed-locked input[readonly]{background:#25483b!important;color:#fff!important}

/* V2.6 — machine details, production history and controlled editing */
.performance-machine-card.clickable{cursor:pointer;outline:none}
.performance-machine-card.clickable:focus-visible{box-shadow:0 0 0 3px rgba(46,125,176,.28),0 13px 25px rgba(15,23,42,.09)}
.card-history-link{margin-top:10px;padding-top:9px;border-top:1px solid var(--line);font-size:11px;font-weight:900;color:var(--blue);text-align:right}
.machine-detail-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}
.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:15px}
.panel-title small{display:block;color:var(--orange);font-size:10px;font-weight:950;letter-spacing:.13em;margin-bottom:4px}
.panel-title h3{margin:0}
.machine-profile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.machine-profile-list>div,.latest-record-grid>div{padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}
.machine-profile-list span,.latest-record-grid span{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.machine-profile-list b,.latest-record-grid b{display:block;margin-top:5px;color:var(--text);font-size:13px}
.machine-profile-list b small{display:block;margin-top:3px;color:var(--muted);font-weight:600}
.latest-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.history-title{align-items:center}
.history-filters{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr)) minmax(190px,1.3fr) auto;gap:10px;align-items:end;margin-bottom:14px}
.history-filters label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.history-filters input,.history-filters select{min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text)}
.history-filters button{height:39px;white-space:nowrap;border-radius:10px;padding:8px 12px;font-weight:900}
.machine-history-table{max-width:100%}
.machine-history-table .data-table{min-width:1450px}
.history-actions{display:flex;gap:6px;white-space:nowrap}
.table-action.subtle{background:var(--soft);color:var(--muted)}
.history-warning{margin:0 0 14px;padding:11px 13px;border:1px solid #efbf7b;border-radius:12px;background:#fff7e9;color:#875000;font-size:12px;font-weight:800}
.edit-reason-field{padding:13px;border:1px solid #efbf7b;border-radius:14px;background:#fff8ec}
.edit-reason-field textarea{background:var(--panel)}
.modal-wide{width:min(1050px,100%)}
.audit-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}
.audit-modal-head span{color:var(--orange);font-size:10px;font-weight:950;letter-spacing:.14em}
.audit-modal-head h2{margin:4px 0}
.audit-modal-head p{margin:0;color:var(--muted);font-size:13px}
.audit-timeline{display:grid;gap:12px}
.audit-event{padding:15px;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:15px;background:var(--soft)}
.audit-event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.audit-event-head b,.audit-event-head span{display:block}
.audit-event-head span{margin-top:3px;color:var(--muted);font-size:11px}
.audit-event-head em{max-width:55%;font-style:normal;padding:7px 10px;border-radius:10px;background:var(--panel);color:var(--text);font-size:12px;font-weight:800}
.audit-changes{display:grid;gap:7px}
.audit-change{display:grid;grid-template-columns:150px minmax(0,1fr) 24px minmax(0,1fr);gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--panel);font-size:12px}
.audit-change b{color:var(--muted)}
.audit-change span{color:var(--red);text-decoration:line-through}
.audit-change i{text-align:center;color:var(--muted);font-style:normal}
.audit-change strong{color:var(--green)}
body[data-dark="true"] .history-warning,body[data-dark="true"] .edit-reason-field{background:#493718;color:#ffd79b;border-color:#8a6827}
body[data-dark="true"] .table-action.subtle{background:#263449;color:#d7e3f1}
@media(max-width:1100px){.machine-detail-grid{grid-template-columns:1fr}.history-filters{grid-template-columns:repeat(3,1fr)}.history-batch-filter{grid-column:span 2}}
@media(max-width:720px){.machine-profile-list,.latest-record-grid{grid-template-columns:1fr}.history-filters{grid-template-columns:1fr 1fr}.history-batch-filter{grid-column:1/-1}.history-title,.audit-modal-head,.audit-event-head{align-items:flex-start;flex-direction:column}.audit-event-head em{max-width:100%}.audit-change{grid-template-columns:1fr}.audit-change i{transform:rotate(90deg)}.head-actions{flex-wrap:wrap}}
@media(max-width:480px){.history-filters{grid-template-columns:1fr}.history-batch-filter{grid-column:auto}}
.machine-history-panel,.machine-detail-grid>*{min-width:0;max-width:100%}
.machine-history-table{width:100%;min-width:0;overflow-x:auto}

/* V2.6 responsive header safeguard — overrides the legacy fixed grid */
@media(max-width:1100px){
  .main-header{grid-template-columns:1fr!important;max-width:100%;overflow:hidden}
  .main-header>*{min-width:0;max-width:100%}
  .global-search{width:100%;min-width:0}
  .header-actions{max-width:100%;flex-wrap:wrap}
}
@media(max-width:620px){
  .main-header{padding:14px!important}
  .unit-switcher{min-width:0;width:100%;overflow-x:auto}
  .header-actions{justify-content:flex-start}
  .profile-chip{min-width:0;max-width:100%}
}
.access-chips{display:flex;flex-wrap:wrap;gap:5px}.access-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e7f6ef;color:#087455;font-size:11px;font-weight:800}.access-chip.muted{background:#eef2f6;color:#708096}.readonly-pill{padding:8px 12px;border-radius:999px;background:#eef2f6;color:#62728a;font-weight:800}.check-row{display:flex!important;align-items:center;gap:10px;padding:12px;border:1px solid #dce5ef;border-radius:12px;background:#f8fafc}.check-row input{width:18px;height:18px}.data-table td small{display:block;color:#7a8799;margin-top:4px}

/* V2.7 — Users, Access Levels and Audit Trail */
.access-denied{min-height:260px;display:grid;place-items:center;text-align:center;padding:42px}.access-denied h3{margin:8px 0}.access-denied p{max-width:620px;color:var(--muted)}.access-lock{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:#fff3df;font-size:30px;border:1px solid #ffd49c}
.audit-ready{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:900}.audit-ready.ok{background:#e5f8ef;color:#087455}.audit-ready.warn{background:#fff0df;color:#a65c00}
.user-cell{display:flex;align-items:center;gap:11px}.user-cell>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e7f1fb;color:#173a60;font-weight:950}.user-cell b,.user-cell small{display:block}.role-badge,.access-status,.audit-action{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}.role-badge.red{background:#ffe5e8;color:#b42335}.role-badge.orange{background:#fff0df;color:#a65c00}.role-badge.green{background:#e5f8ef;color:#087455}.role-badge.blue{background:#e5f0ff;color:#1557a0}.role-badge.gray{background:#edf1f5;color:#667487}.access-status.active{background:#e5f8ef;color:#087455}.access-status.inactive{background:#ffe5e8;color:#b42335}
.access-level-grid{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:14px;margin-bottom:18px;overflow:auto;padding-bottom:4px}.access-level-card{min-width:220px;background:var(--panel);border:1px solid var(--line);border-top:4px solid #8794a5;border-radius:18px;padding:18px;box-shadow:var(--shadow)}.access-level-card.red{border-top-color:#d93646}.access-level-card.orange{border-top-color:#f08a00}.access-level-card.green{border-top-color:#16a673}.access-level-card.blue{border-top-color:#2f78c4}.access-level-card.gray{border-top-color:#7f8a9a}.access-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.access-card-head small{font-size:10px;color:var(--muted);letter-spacing:.12em;font-weight:950}.access-card-head h3{margin:5px 0 0}.access-card-head>b{font-size:24px;color:var(--muted)}.access-level-card>p{color:var(--muted);font-size:13px;min-height:58px}.access-level-card ul{padding-left:18px;margin:12px 0 0;display:grid;gap:8px;font-size:12px}.access-level-card li::marker{color:#16a673}
.scope-guide{display:flex;justify-content:space-between;align-items:center;gap:22px}.scope-guide small{font-weight:950;letter-spacing:.12em;color:var(--orange)}.scope-guide h3{margin:5px 0}.scope-options{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;flex:1}.scope-options>div{padding:14px;border-radius:13px;background:var(--soft);border:1px solid var(--line)}.scope-options b,.scope-options span{display:block}.scope-options span{font-size:11px;color:var(--muted);margin-top:3px}
.access-modal{max-width:760px}.access-summary-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border-radius:14px;background:var(--soft);border:1px solid var(--line);margin-bottom:16px}.access-summary-current>span:not(.role-badge):not(.access-status){font-weight:850}.selected-role-info{padding:14px;border-radius:14px;background:#f3f7fb;border:1px solid var(--line)}.selected-role-info b,.selected-role-info p,.selected-role-info small{display:block}.selected-role-info p{margin:5px 0;color:var(--muted)}
.audit-filters{display:grid;grid-template-columns:150px 220px 220px minmax(260px,1fr) auto;gap:10px;align-items:end;margin-bottom:16px}.audit-filters label{display:grid;gap:6px;font-size:11px;font-weight:900;color:var(--muted)}.audit-filters input,.audit-filters select{min-height:42px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);padding:9px 11px}.audit-action.insert{background:#e5f8ef;color:#087455}.audit-action.update{background:#fff0df;color:#a65c00}.audit-action.delete{background:#ffe5e8;color:#b42335}.system-audit-modal{max-width:1120px}.audit-record-meta{display:grid;grid-template-columns:1fr 2fr 1fr;gap:10px;margin-bottom:15px}.audit-record-meta>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.audit-record-meta span,.audit-record-meta b{display:block}.audit-record-meta span{font-size:10px;color:var(--muted);font-weight:900}.audit-record-meta b{margin-top:4px}.audit-json-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.audit-json-grid section{min-width:0}.audit-json-grid h3{margin:0 0 8px}.audit-json-grid pre{max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#0d2238;color:#dcecff;border-radius:14px;padding:16px;font-size:11px;line-height:1.55}
@media(max-width:1100px){.audit-filters{grid-template-columns:1fr 1fr 1fr}.audit-search{grid-column:1/-1}.scope-guide{align-items:stretch;flex-direction:column}.scope-options{width:100%}}
@media(max-width:720px){.audit-filters{grid-template-columns:1fr}.audit-search{grid-column:auto}.audit-record-meta,.audit-json-grid,.scope-options{grid-template-columns:1fr}.users-table{min-width:900px}.access-level-grid{grid-template-columns:1fr;overflow:visible}.access-level-card{min-width:0}}


/* V2.8 — Backup Center */
.backup-strip{margin-bottom:16px}.backup-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.backup-action-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.backup-action-card h3,.backup-action-card p{margin:0}.backup-action-card p{color:var(--muted);line-height:1.55;min-height:66px}.backup-action-card code{display:block;width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--soft);font-size:11px}.backup-icon{width:44px;height:44px;border-radius:13px;background:#e4eff8;color:var(--navy);display:grid;place-items:center;font-weight:950}.backup-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e9eef3;color:#596b7d;font-size:9px;font-weight:950}.backup-status.success,.backup-status.passed{background:#daf6eb;color:#087755}.backup-status.failed{background:#ffe3e6;color:#a82030}.backup-status.partial,.backup-status.completed_with_warnings{background:#fff0d8;color:#a75f00}.backup-action-card .primary-action,.backup-action-card .backup-link{margin-top:auto}.backup-link{text-decoration:none;display:inline-flex}.setup-warning{margin-bottom:15px;padding:13px 15px;border:1px solid #efc179;border-left:5px solid var(--orange);border-radius:13px;background:#fff7e9}.setup-warning b,.setup-warning span{display:block}.setup-warning span{margin-top:4px;color:var(--muted)}body[data-dark="true"] .backup-icon{background:#20364c;color:#fff}body[data-dark="true"] .setup-warning{background:#4a3519}
@media(max-width:1050px){.backup-action-grid{grid-template-columns:1fr 1fr}.backup-action-grid .backup-action-card:last-child{grid-column:1/-1}}@media(max-width:700px){.backup-action-grid{grid-template-columns:1fr}.backup-action-grid .backup-action-card:last-child{grid-column:auto}}


/* V2.8.6 — Full record view and 7-day editing policy */
.view-action{background:#e8f4fd!important;color:#0f5f8b!important;border-color:#9fc9e7!important}
.edit-window-expired{display:inline-flex;align-items:center;padding:7px 10px;border-radius:9px;background:#eef2f6;color:#78869a;font-size:11px;font-weight:900;border:1px solid var(--line)}
.edit-policy-note{margin:0 0 14px;padding:11px 13px;border:1px solid #bad5ea;border-radius:12px;background:#eef7fd;color:#174e73;font-size:12px}
.edit-policy-note b{font-weight:950}
.entry-detail-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:16px}
.entry-detail-grid>*{min-width:0}
.entry-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.entry-detail-list>div,.entry-audit-summary>div{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}
.entry-detail-list span,.entry-audit-summary span,.entry-output-grid span,.entry-notes-view>span{display:block;color:var(--muted);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.entry-detail-list b,.entry-audit-summary b{display:block;margin-top:5px;color:var(--text);font-size:13px}
.edit-access-panel{border-left:5px solid #8695a8}
.edit-access-panel.editable{border-left-color:#16a673}
.edit-access-panel.locked{border-left-color:#df3d48}
.edit-access-panel>p{margin:-3px 0 14px;color:var(--muted);font-weight:800}
.edit-access-rule{display:grid;grid-template-columns:minmax(150px,.8fr) 1.4fr;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:12px}
.edit-access-rule span{color:var(--muted)}
.entry-output-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.entry-output-grid>div{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--soft);text-align:center}
.entry-output-grid b{display:block;margin-top:7px;font-size:25px;color:var(--navy)}
.entry-notes-view{margin-top:13px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}
.entry-notes-view p{margin:7px 0 0;white-space:pre-wrap;color:var(--text)}
.entry-audit-summary{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px}
body[data-dark="true"] .edit-policy-note{background:#17324a;color:#d8ecfb;border-color:#416987}
body[data-dark="true"] .view-action{background:#173b59!important;color:#dff2ff!important;border-color:#416987!important}
body[data-dark="true"] .entry-output-grid b{color:#f4f8fc}
@media(max-width:900px){.entry-detail-grid{grid-template-columns:1fr}.entry-audit-summary{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.entry-detail-list,.entry-output-grid,.entry-audit-summary{grid-template-columns:1fr}.edit-access-rule{grid-template-columns:1fr}.history-actions{flex-wrap:wrap}}

/* GYPTO OEE V3.8.1 — Sheet2 exact order / no classification */
.oee-a-modal{max-width:1180px}
.oee-a-core-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.oee-a-loss-group{margin:14px 0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--panel)}
.oee-a-loss-title{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:var(--soft);border-bottom:1px solid var(--line)}
.oee-a-loss-title b{color:var(--navy)}
.oee-a-loss-title span{font-size:12px;font-weight:900;color:var(--muted)}
.oee-a-loss-group.planned{border-left:4px solid var(--blue)}
.oee-a-loss-group.changeover{border-left:4px solid var(--orange)}
.oee-a-loss-group.unplanned{border-left:4px solid var(--red)}
.oee-a-loss-group.sheet2{border-left:4px solid var(--blue)}
.oee-a-reason-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
.oee-a-reason{display:grid;grid-template-columns:1fr 100px;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.oee-a-reason span b,.oee-a-reason span small{display:block}
.oee-a-reason span b{font-size:12px;color:var(--text);line-height:1.55}
.oee-a-reason span b[dir="rtl"]{text-align:right}
.oee-a-reason span small{font-size:11px;color:var(--muted);margin-top:3px;direction:rtl;text-align:left}
.oee-a-reason input{width:100%;min-width:0;text-align:center;font-weight:900}
.oee-a-live-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:16px}
.oee-a-live-summary>div{padding:11px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}
.oee-a-live-summary span,.oee-a-live-summary b{display:block}
.oee-a-live-summary span{font-size:10px;color:var(--muted);font-weight:900;text-transform:uppercase}
.oee-a-live-summary b{font-size:18px;margin-top:6px;color:var(--navy)}
.oee-a-live-summary .oee-total{background:#fff4db;border-color:#efbd58}
.oee-a-edit-reason{display:block;margin-top:14px}
.analysis-filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:10px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:18px}
.analysis-filter-bar label{font-size:11px;font-weight:900;color:var(--muted)}
.analysis-filter-bar input,.analysis-filter-bar select{display:block;width:100%;margin-top:6px}
.oee-a-shift-chart{height:245px;display:flex;align-items:flex-end;gap:8px;padding:12px 4px 0;overflow-x:auto}
.oee-a-shift-chart span{min-width:38px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;color:var(--muted);font-size:10px}
.oee-a-shift-chart i{display:block;width:28px;min-height:3px;border-radius:8px 8px 2px 2px;background:var(--blue)}
.oee-a-shift-chart i.green{background:var(--green)}
.oee-a-shift-chart i.orange{background:var(--orange)}
.oee-a-shift-chart i.red{background:var(--red)}
.oee-a-shift-chart b{font-size:10px;color:var(--text)}
.oee-a-pareto{display:grid;gap:11px}
.oee-a-pareto>div{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(120px,2fr) 80px;align-items:center;gap:10px}
.oee-a-pareto span b,.oee-a-pareto span small{display:block}
.oee-a-pareto span b{font-size:12px}
.oee-a-pareto span small{font-size:10px;color:var(--muted);direction:rtl;text-align:left}
.oee-a-pareto i{height:10px;border-radius:99px;background:#e7edf4;overflow:hidden}
.oee-a-pareto em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--orange),var(--red))}
.oee-a-pareto strong{text-align:right;font-size:12px}
.oee-a-matrix th:first-child,.oee-a-matrix td:first-child{min-width:240px;position:sticky;left:0;background:var(--panel);z-index:1}
.oee-a-matrix thead th:first-child{background:var(--soft);z-index:2}
.edit-locked{font-size:11px;color:var(--muted);font-weight:800}
@media(max-width:1000px){.oee-a-core-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.oee-a-live-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.analysis-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-filter-bar button{width:100%}}
@media(max-width:680px){.oee-a-core-grid,.oee-a-reason-grid,.analysis-filter-bar{grid-template-columns:1fr}.oee-a-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.oee-a-reason{grid-template-columns:1fr 82px}.oee-a-pareto>div{grid-template-columns:1fr}.oee-a-pareto strong{text-align:left}.oee-a-modal{max-width:100%}}

/* V3.3 — Department administrator self-access lock */
.admin-self-lock{display:flex;align-items:center;gap:16px;border:1px solid #f4c66a;background:linear-gradient(135deg,#fffaf0 0%,#fff 62%);box-shadow:0 12px 30px rgba(138,88,0,.08);margin-bottom:16px}
.admin-self-lock-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#fff0c8;font-size:25px;flex:0 0 auto}
.admin-self-lock small{display:block;color:#9a6400;font-weight:900;letter-spacing:.08em;margin-bottom:3px}
.admin-self-lock h3{margin:0 0 5px;color:#102b49}
.admin-self-lock p{margin:0;color:#596f88;line-height:1.55}
.locked-admin-badge{margin-left:auto;border:1px solid #e6aa36;background:#fff4d8;color:#875300;font-weight:900;font-size:11px;letter-spacing:.08em;padding:8px 11px;border-radius:999px;white-space:nowrap}
@media(max-width:760px){.admin-self-lock{align-items:flex-start;flex-wrap:wrap}.locked-admin-badge{margin-left:68px}}
[data-theme="dark"] .admin-self-lock{background:linear-gradient(135deg,#2a2417 0%,#172338 68%);border-color:#7b622c}
[data-theme="dark"] .admin-self-lock-icon{background:#3a301d}
[data-theme="dark"] .admin-self-lock h3{color:#f6f9ff}
[data-theme="dark"] .admin-self-lock p{color:#b9c7d8}


/* V3.4 — secure department registration; demo access removed */
[data-theme="dark"] .registration-note{background:#12243a;border-color:#2b4b6d;color:#b9c7d8}
[data-theme="dark"] .registration-note b{color:#f6f9ff}

/* V3.8.5 — machine category layout with all 20 planned slots */
.machine-category-stack{display:grid;gap:18px}
.machine-category-block{padding:16px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,var(--soft),var(--panel))}
.machine-category-block.category-packaging{border-top:4px solid #ef7d00}
.machine-category-block.category-blistering{border-top:4px solid #7c5ce7}
.machine-category-block.category-other{border-top:4px solid #64748b}
.machine-category-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.machine-category-heading>div:first-child{display:grid;gap:4px}
.machine-category-heading h3{margin:0;color:var(--navy);font-size:18px}
.machine-category-heading p{margin:0;color:var(--muted);font-size:12px}
.machine-category-label{width:max-content;padding:5px 10px;border-radius:999px;background:#fff0df;color:#a85400;font-size:10px;font-weight:950;letter-spacing:.03em;text-transform:uppercase}
.category-blistering .machine-category-label{background:#eee9ff;color:#5b3ec0}
.category-other .machine-category-label{background:#e9eef4;color:#475569}
.machine-category-count{display:flex;align-items:baseline;gap:6px;flex:0 0 auto;padding:8px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.machine-category-count b{font-size:20px;color:var(--navy)}
.machine-category-count span{font-size:10px;color:var(--muted);font-weight:850}
.performance-card-grid.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.category-packaging .performance-machine-card.nonsterile{border-left-color:#ef7d00}
.category-blistering .performance-machine-card.nonsterile{border-left-color:#7c5ce7}
.category-other .performance-machine-card.nonsterile{border-left-color:#64748b}
body[data-dark="true"] .machine-category-heading h3,body[data-dark="true"] .machine-category-count b{color:#f4f8fc}
body[data-dark="true"] .machine-category-label{background:#503316;color:#ffd4a5}
body[data-dark="true"] .category-blistering .machine-category-label{background:#31265f;color:#d9d0ff}
body[data-dark="true"] .category-other .machine-category-label{background:#263449;color:#d7e0ea}
@media(max-width:1150px){.performance-card-grid.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.machine-category-heading{flex-direction:column}.performance-card-grid.category-grid{grid-template-columns:1fr}}

/* GYPTO OEE V3.8.6 — unified production + Sheet2 shift entry */
.unified-entry-modal{width:min(1180px,100%);max-width:1180px;padding-bottom:0}
.unified-entry-modal .unified-core-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.unified-entry-modal .unified-time-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.unified-entry-modal .unified-time-summary>div:nth-child(2){background:#fff4db;border-color:#efbd58}
.unified-entry-modal .oee-a-loss-group{margin-bottom:18px}
.unified-entry-modal .oee-a-loss-title{position:sticky;top:-22px;z-index:2;box-shadow:0 5px 15px rgba(23,58,96,.06)}
.unified-entry-modal .modal-actions{position:sticky;bottom:0;z-index:5;margin:20px -22px 0;padding:14px 22px;background:color-mix(in srgb,var(--panel) 94%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
body[data-dark="true"] .unified-entry-modal .unified-time-summary>div:nth-child(2){background:#493718;border-color:#8a6827}
@media(max-width:900px){.unified-entry-modal .unified-core-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.unified-entry-modal{width:100%;border-radius:16px}.unified-entry-modal .unified-core-grid,.unified-entry-modal .unified-time-summary{grid-template-columns:1fr}.unified-entry-modal .modal-actions{margin-left:-22px;margin-right:-22px}}


/* GYPTO OEE V3.8.7 — keep long entry dialogs above the full header and open at the first field */
.unified-entry-modal{max-height:calc(100dvh - 36px)!important;scroll-padding-top:22px}
@supports not (height:100dvh){.modal,.unified-entry-modal{max-height:calc(100vh - 36px)!important}}
@media(max-width:680px){.modal-backdrop{padding:8px}.modal,.unified-entry-modal{max-height:calc(100dvh - 16px)!important}}

/* GYPTO OEE V3.8.8 — native dialog top-layer fix.
   The unified entry screen is placed in the browser top layer, so no header,
   navigation bar or stacking context can cover its title or first fields. */
dialog.modal-backdrop{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:none!important;
  margin:0!important;
  padding:12px 18px!important;
  border:0!important;
  background:transparent!important;
  overflow:hidden!important;
  align-items:flex-start!important;
  justify-items:center!important;
  z-index:2147483647!important;
}
dialog.modal-backdrop:not([open]){display:none!important}
dialog.modal-backdrop[open]{display:grid!important}
dialog.modal-backdrop::backdrop{
  background:rgba(15,23,42,.58)!important;
  backdrop-filter:blur(5px);
}
dialog.modal-backdrop>.modal{
  position:relative!important;
  margin:0!important;
  max-height:calc(100dvh - 24px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scroll-padding-top:22px!important;
}
dialog.modal-backdrop>.unified-entry-modal{
  height:calc(100dvh - 24px)!important;
  max-height:calc(100dvh - 24px)!important;
}
body.modal-open .app{pointer-events:none!important;user-select:none!important}
@supports not (height:100dvh){
  dialog.modal-backdrop{height:100vh!important}
  dialog.modal-backdrop>.modal{max-height:calc(100vh - 24px)!important}
  dialog.modal-backdrop>.unified-entry-modal{height:calc(100vh - 24px)!important;max-height:calc(100vh - 24px)!important}
}
@media(max-width:680px){
  dialog.modal-backdrop{padding:6px!important}
  dialog.modal-backdrop>.modal,
  dialog.modal-backdrop>.unified-entry-modal{height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}
}


/* V3.7 Enterprise OEE Analytics */
.enterprise-command-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;margin-top:-2px}
.enterprise-range-buttons{display:flex;align-items:center;gap:7px;padding:5px;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:var(--shadow)}
.enterprise-range-buttons button{min-width:48px;height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:900}
.enterprise-range-buttons button:hover,.enterprise-range-buttons button.active{background:#e7f4ff;color:#076fc8}
.enterprise-filters{margin:0!important;padding:10px!important;border-radius:16px!important;grid-template-columns:repeat(4,minmax(130px,1fr)) auto!important}
.enterprise-metrics{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:14px}
.enterprise-metric{position:relative;min-height:148px;padding:18px 20px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:20px;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel) 94%,#eaf4fc));box-shadow:var(--shadow);overflow:hidden}
.enterprise-metric::after{content:"";position:absolute;right:-20px;top:-28px;width:94px;height:94px;border-radius:50%;background:color-mix(in srgb,var(--blue) 9%,transparent)}
.enterprise-metric.orange{border-left-color:var(--orange)}.enterprise-metric.orange::after{background:color-mix(in srgb,var(--orange) 10%,transparent)}
.enterprise-metric.green{border-left-color:var(--green)}.enterprise-metric.green::after{background:color-mix(in srgb,var(--green) 10%,transparent)}
.enterprise-metric.purple{border-left-color:var(--purple)}.enterprise-metric.purple::after{background:color-mix(in srgb,var(--purple) 10%,transparent)}
.enterprise-metric.red{border-left-color:var(--red)}.enterprise-metric.red::after{background:color-mix(in srgb,var(--red) 10%,transparent)}
.enterprise-metric.slate{border-left-color:#54708b}.enterprise-metric.slate::after{background:rgba(84,112,139,.09)}
.enterprise-metric-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.enterprise-metric-head span{color:var(--muted);font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.enterprise-metric-head i{width:8px;height:8px;border-radius:50%;background:currentColor}
.enterprise-metric>b{position:relative;z-index:1;display:block;margin:12px 0 13px;color:var(--text);font-size:30px;line-height:1;font-weight:950}
.enterprise-metric-foot{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.enterprise-metric-foot small{max-width:62%;color:var(--muted);font-size:10px;font-weight:750;line-height:1.35}
.enterprise-delta{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:950;white-space:nowrap}.enterprise-delta.good{background:#e4f8ef;color:#078359}.enterprise-delta.bad{background:#ffe7ea;color:#b52c3d}.enterprise-delta.neutral{background:#edf3f8;color:#60758a}
.enterprise-dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.enterprise-dashboard-grid>.span-4{grid-column:span 4}.enterprise-dashboard-grid>.span-6{grid-column:span 6}.enterprise-dashboard-grid>.span-8{grid-column:span 8}.enterprise-dashboard-grid>.span-12{grid-column:1/-1}
.enterprise-panel{min-width:0;overflow:hidden}.enterprise-panel .panel-title{align-items:center}.enterprise-panel-badge{display:inline-flex;align-items:center;min-height:28px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--muted);font-size:10px;font-weight:900;white-space:nowrap}
.enterprise-chart{min-height:280px}.enterprise-chart svg{display:block;width:100%;height:auto;max-height:360px;overflow:visible}.enterprise-chart-legend{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;margin:-3px 0 6px;color:var(--muted);font-size:10px;font-weight:850}.enterprise-chart-legend span{display:inline-flex;align-items:center;gap:6px}.enterprise-chart-legend i{width:10px;height:10px;border-radius:3px}.enterprise-chart-legend .target i{height:0;border-top:2px dashed #8799aa;border-radius:0;background:transparent}.enterprise-grid-line{stroke:color-mix(in srgb,var(--line) 75%,transparent);stroke-width:1}.enterprise-axis-label{fill:var(--muted);font-size:11px;font-weight:700}.enterprise-target-line{stroke:#8799aa;stroke-width:1.5;stroke-dasharray:7 6}
.enterprise-empty{min-height:260px;display:grid;place-content:center;text-align:center;padding:30px;border:1px dashed var(--line);border-radius:16px;background:var(--soft)}.enterprise-empty b{font-size:15px}.enterprise-empty span{max-width:420px;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}
.enterprise-insights{display:grid;gap:10px}.enterprise-insights article{position:relative;padding:13px 14px 13px 17px;border:1px solid var(--line);border-radius:14px;background:var(--soft);overflow:hidden}.enterprise-insights article::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--blue)}.enterprise-insights article:nth-child(2)::before{background:var(--red)}.enterprise-insights article:nth-child(3)::before{background:var(--green)}.enterprise-insights article:nth-child(4)::before{background:var(--purple)}.enterprise-insights span,.enterprise-insights b,.enterprise-insights small{display:block}.enterprise-insights span{color:var(--muted);font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.enterprise-insights b{margin:5px 0 3px;font-size:13px}.enterprise-insights small{color:var(--muted);font-size:10px;line-height:1.4}
.enterprise-pareto{display:grid;gap:9px}.enterprise-pareto-head,.enterprise-pareto-row{display:grid;grid-template-columns:minmax(170px,1.25fr) minmax(170px,2fr) 76px;gap:11px;align-items:center}.enterprise-pareto-head{padding:0 4px 7px;color:var(--muted);font-size:9px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.enterprise-pareto-row{padding:8px 4px;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.enterprise-pareto-label b,.enterprise-pareto-label small{display:block}.enterprise-pareto-label b{font-size:11px}.enterprise-pareto-label small{margin-top:2px;color:var(--muted);font-size:9px;direction:rtl;text-align:left}.enterprise-pareto-bar{position:relative;height:28px;border-radius:9px;background:var(--soft);overflow:hidden}.enterprise-pareto-bar i{position:absolute;inset:0 auto 0 0;border-radius:9px;background:linear-gradient(90deg,var(--orange),var(--red));opacity:.82}.enterprise-pareto-bar b{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 9px;font-size:10px}.enterprise-pareto-row>strong{text-align:right;font-size:11px;color:var(--text)}
.enterprise-shifts{display:grid;gap:10px}.enterprise-shifts article{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.enterprise-shift-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.enterprise-shift-head>span{display:flex;align-items:center;gap:8px}.enterprise-shift-head i{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#dceeff;color:#076fc8;font-style:normal;font-size:10px;font-weight:950}.enterprise-shift-head b{font-size:12px}.enterprise-shift-head strong{font-size:12px}.enterprise-progress{height:8px;margin:10px 0;border-radius:99px;background:#e6edf4;overflow:hidden}.enterprise-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#0aaa70,#087bd7)}.enterprise-shift-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;color:var(--muted);font-size:9px}.enterprise-shift-kpis span{display:block;padding:6px;border-radius:8px;background:var(--panel)}.enterprise-shift-kpis b{display:block;margin-top:2px;color:var(--text);font-size:10px}
.enterprise-ranking{display:grid;grid-template-columns:1fr 1fr;gap:18px}.enterprise-ranking section{min-width:0}.enterprise-ranking h4{margin:0 0 10px;color:var(--muted);font-size:11px;letter-spacing:.09em;text-transform:uppercase}.enterprise-rank-row{width:100%;display:grid;grid-template-columns:28px minmax(150px,1.2fr) minmax(100px,1fr) 56px;align-items:center;gap:10px;padding:10px 8px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left}.enterprise-rank-row:hover{background:var(--soft)}.rank-number{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e7f4ff;color:#076fc8;font-size:10px;font-weight:950}.rank-name b,.rank-name small{display:block}.rank-name b{font-size:11px}.rank-name small{margin-top:2px;color:var(--muted);font-size:9px}.rank-meter{height:8px;border-radius:99px;background:#e6edf4;overflow:hidden}.rank-meter i{display:block;height:100%;border-radius:99px}.rank-meter i.good{background:linear-gradient(90deg,#0aaa70,#31c98f)}.rank-meter i.risk{background:linear-gradient(90deg,#f0a21b,#e13d50)}.enterprise-rank-row>strong{text-align:right;font-size:12px}
.enterprise-heatmap{overflow:auto}.enterprise-heatmap-row{display:grid;grid-template-columns:190px repeat(10,minmax(58px,1fr));gap:5px;min-width:840px;align-items:center;margin-bottom:5px}.enterprise-heatmap-row.header{position:sticky;top:0;z-index:2;padding-bottom:5px;background:var(--panel);color:var(--muted);font-size:9px;font-weight:950}.enterprise-heatmap-row>span{min-width:0;padding:0 6px}.enterprise-heatmap-row>span b,.enterprise-heatmap-row>span small{display:block}.enterprise-heatmap-row>span b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enterprise-heatmap-row>span small{color:var(--muted);font-size:8px}.enterprise-heatmap-row>i{display:grid;place-items:center;height:38px;border-radius:9px;font-style:normal;font-size:9px;font-weight:950}.heat-good{background:#dff7ed!important;color:#087956!important}.heat-watch{background:#fff1d8!important;color:#9a5b00!important}.heat-risk{background:#ffe2e6!important;color:#ad2638!important}.heat-empty{background:#edf2f6!important;color:#8b9baa!important}.enterprise-heatmap-legend{display:flex;justify-content:flex-end;gap:13px;flex-wrap:wrap;margin-top:11px;color:var(--muted);font-size:9px;font-weight:850}.enterprise-heatmap-legend span{display:flex;align-items:center;gap:5px}.enterprise-heatmap-legend i{width:12px;height:12px;border-radius:4px}
.enterprise-table .table-link{display:block;padding:0;border:0;background:transparent;color:#076fc8;font-weight:900;text-align:left}.enterprise-table .table-link:hover{text-decoration:underline}.enterprise-table .table-link+small{display:block;margin-top:3px;color:var(--muted)}
@media(max-width:1350px){.enterprise-metrics{grid-template-columns:repeat(2,minmax(220px,1fr))}.enterprise-dashboard-grid>.span-8,.enterprise-dashboard-grid>.span-4{grid-column:span 6}.enterprise-filters{grid-template-columns:repeat(2,minmax(140px,1fr)) auto!important}}
@media(max-width:980px){.enterprise-command-bar{grid-template-columns:1fr}.enterprise-dashboard-grid>.span-4,.enterprise-dashboard-grid>.span-6,.enterprise-dashboard-grid>.span-8{grid-column:1/-1}.enterprise-ranking{grid-template-columns:1fr}.enterprise-shift-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.enterprise-metrics{grid-template-columns:1fr}.enterprise-filters{grid-template-columns:1fr!important}.enterprise-range-buttons{overflow:auto}.enterprise-pareto-head{display:none}.enterprise-pareto-row{grid-template-columns:1fr}.enterprise-pareto-row>strong{text-align:left}.enterprise-ranking{gap:24px}.enterprise-rank-row{grid-template-columns:28px minmax(130px,1fr) 52px}.enterprise-rank-row .rank-meter{display:none}.enterprise-chart-legend{justify-content:flex-start}.enterprise-shift-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* GYPTO OEE V3.8.9 — daily dashboard and machine period analytics */
.dashboard-head-actions{flex-wrap:wrap;justify-content:flex-end}
.dashboard-date-control,.machine-analysis-date-nav{display:flex;align-items:center;gap:7px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 5px 16px rgba(15,23,42,.05)}
.dashboard-date-control label,.machine-analysis-date-nav label{display:grid;gap:2px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.dashboard-date-control input,.machine-analysis-date-nav input{min-width:142px;border:0;background:transparent;color:var(--text);font-weight:850;outline:0}
.date-step{display:grid;place-items:center;width:36px;height:36px;padding:0!important;border:1px solid var(--line)!important;border-radius:10px!important;background:var(--soft)!important;color:var(--navy)!important;font-size:22px!important;line-height:1}
.dashboard-date-control .secondary-btn{height:36px;padding:0 11px!important;border-radius:10px!important;font-size:11px}
.daily-machine-meta{margin:10px 0 2px;padding:7px 9px;border-radius:9px;background:var(--soft);color:var(--muted);font-size:9px;font-weight:850;text-align:center}
.daily-machine-meta.has-records{background:#e8f6ef;color:#13714e}
.performance-status.empty{background:#edf2f6;color:#718399}
.oee-donut.empty{--gauge:#9aaaba}
.machine-period-analysis{display:grid;gap:16px;padding:20px;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:22px;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel) 95%,#eaf4fc));box-shadow:var(--shadow)}
.machine-analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.machine-analysis-head>div:first-child>span{display:block;color:var(--blue);font-size:10px;font-weight:950;letter-spacing:.14em}
.machine-analysis-head h2{margin:6px 0 5px;font-size:24px;color:var(--text)}
.machine-analysis-head p{margin:0;color:var(--muted);font-size:12px}
.machine-analysis-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.machine-analysis-actions button{border:0;border-radius:11px;background:var(--navy);color:#fff;padding:11px 14px;font-weight:900}
.machine-analysis-command{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.machine-period-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.machine-period-buttons button{min-width:82px;height:40px;border:1px solid transparent;border-radius:11px;background:var(--panel);color:var(--muted);font-weight:900}
.machine-period-buttons button:hover,.machine-period-buttons button.active{border-color:#9bc9ec;background:#e6f3ff;color:#0a68ad}
.machine-analysis-metrics{grid-template-columns:repeat(3,minmax(190px,1fr))}
.machine-analysis-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}
.machine-analysis-grid>.span-all{grid-column:1/-1}
.machine-period-records{padding:0;overflow:hidden}
.machine-period-records .panel-title{padding:18px 20px 0}
.machine-period-records .table-wrap{margin:14px;border-radius:14px}
body[data-dark="true"] .daily-machine-meta.has-records{background:#173d31;color:#8fdfbd}
body[data-dark="true"] .performance-status.empty{background:#263449;color:#c2cfdb}
body[data-dark="true"] .enterprise-delta.neutral{background:#263449;color:#c2cfdb}
@media(max-width:1100px){.machine-analysis-metrics{grid-template-columns:repeat(2,minmax(190px,1fr))}.machine-analysis-grid{grid-template-columns:1fr}.machine-analysis-grid>.span-all{grid-column:auto}.dashboard-head-actions{justify-content:flex-start}}
@media(max-width:720px){.dashboard-date-control{width:100%;flex-wrap:wrap}.dashboard-date-control label{flex:1}.dashboard-date-control input{width:100%;min-width:0}.machine-analysis-head{flex-direction:column}.machine-analysis-actions{justify-content:flex-start}.machine-analysis-command{align-items:stretch;flex-direction:column}.machine-analysis-date-nav{width:100%}.machine-analysis-date-nav label{flex:1}.machine-analysis-date-nav input{width:100%;min-width:0}.machine-analysis-metrics{grid-template-columns:1fr}.machine-period-buttons{display:grid;grid-template-columns:1fr 1fr}.machine-period-buttons button{min-width:0}.chart{gap:6px}.chart b,.chart small{font-size:9px}}


/* V3.8.10 — Shift analysis from the 20 Sheet2 reasons */
.shift-analysis-panel,.shift-matrix-panel,.shift-analysis-master-panel{padding:18px;overflow:hidden}
.shift-analysis-cards{display:grid;gap:18px}
.shift-analysis-card{border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:18px;background:var(--panel);overflow:hidden;box-shadow:0 10px 28px rgba(20,57,87,.07)}
.shift-analysis-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 93%,#eaf4fc),var(--panel))}
.shift-analysis-card>header span{font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.shift-analysis-card>header h3{margin:5px 0 3px;font-size:17px;color:var(--text)}
.shift-analysis-card>header p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.shift-oee-badge{flex:0 0 auto;display:grid;place-items:center;min-width:92px;min-height:54px;padding:8px 12px;border-radius:14px;font-size:18px;font-weight:1000;background:var(--soft);border:1px solid var(--line)}
.shift-oee-badge.green{color:#087b55;background:#e9f8f1;border-color:#bfe9d8}.shift-oee-badge.orange{color:#ad5a00;background:#fff5e7;border-color:#f5d6a7}.shift-oee-badge.red{color:#c42d42;background:#fff0f2;border-color:#f5c5cd}
.shift-analysis-kpis{display:grid;grid-template-columns:repeat(9,minmax(95px,1fr));gap:8px;padding:14px 20px;border-bottom:1px solid var(--line)}
.shift-analysis-kpis span{padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--soft);text-align:center}.shift-analysis-kpis small,.shift-analysis-kpis b{display:block}.shift-analysis-kpis small{font-size:9px;color:var(--muted);font-weight:850}.shift-analysis-kpis b{margin-top:4px;font-size:13px;color:var(--text)}
.shift-reason-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:17px 20px 10px}.shift-reason-heading span{font-size:9px;font-weight:950;letter-spacing:.09em;color:var(--blue)}.shift-reason-heading h4{margin:3px 0 0;font-size:14px}.shift-reason-heading>b{font-size:12px;color:var(--red)}
.shift-reason-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 20px 20px}
.shift-reason-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 97%,var(--soft))}
.shift-reason-item.has-loss{border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:color-mix(in srgb,var(--panel) 94%,#fff0f2)}.shift-reason-item.zero-loss{opacity:.68}
.shift-reason-label{display:flex;align-items:center;gap:8px;min-width:0}.shift-reason-label span{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:8px;background:var(--blue);color:#fff;font-size:10px;font-weight:1000}.shift-reason-label b{font-size:10px;white-space:normal;line-height:1.35;text-align:right}
.shift-reason-value{display:flex;align-items:baseline;gap:3px;color:var(--text)}.shift-reason-value strong{font-size:15px}.shift-reason-value small{font-size:8px;color:var(--muted)}
.shift-reason-meter{grid-column:1/-1;height:5px;border-radius:99px;background:var(--soft);overflow:hidden}.shift-reason-meter i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--orange),var(--red))}
.shift-reason-share{grid-column:1/-1;display:flex;justify-content:space-between;gap:8px;font-size:8px;color:var(--muted);font-weight:800}
.shift-matrix-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 12px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--soft);font-size:10px}.shift-matrix-note span{color:var(--muted)}
.shift-reason-matrix-wrap{max-height:560px;overflow:auto;border:1px solid var(--line);border-radius:14px}
.shift-reason-matrix{min-width:2300px;border-collapse:separate;border-spacing:0}.shift-reason-matrix th,.shift-reason-matrix td{text-align:center;white-space:nowrap;font-size:9px;padding:8px 7px}.shift-reason-matrix thead th{position:sticky;top:0;z-index:4;background:var(--soft);font-weight:950}.shift-reason-matrix td small{display:block;margin-top:2px;color:var(--muted);font-size:8px}
.shift-reason-matrix .reason-minute{color:var(--muted)}.shift-reason-matrix .reason-minute.has-value{background:#fff1f3;color:var(--red)}.shift-reason-matrix .matrix-total{background:#fff7e8;color:#a85700}
.shift-reason-matrix .matrix-sticky{position:sticky;z-index:3;background:var(--panel);text-align:left}.shift-reason-matrix thead .matrix-sticky{z-index:7;background:var(--soft)}.shift-reason-matrix .matrix-sticky.date{left:0;min-width:92px}.shift-reason-matrix .matrix-sticky.shift{left:92px;min-width:90px}.shift-reason-matrix .matrix-sticky.machine{left:182px;min-width:210px;border-right:2px solid var(--line)}
@media(max-width:1200px){.shift-analysis-kpis{grid-template-columns:repeat(3,minmax(110px,1fr))}}
@media(max-width:760px){.shift-analysis-card>header{display:grid}.shift-oee-badge{justify-self:start}.shift-analysis-kpis{grid-template-columns:repeat(2,minmax(100px,1fr));padding:12px}.shift-reason-grid{grid-template-columns:1fr;padding:0 12px 14px}.shift-reason-heading{padding:14px 12px 9px;align-items:flex-start}.shift-matrix-note{display:grid}.shift-reason-matrix .matrix-sticky.machine{min-width:170px}.shift-reason-matrix .matrix-sticky.date{min-width:84px}.shift-reason-matrix .matrix-sticky.shift{left:84px;min-width:78px}.shift-reason-matrix .matrix-sticky.machine{left:162px}}


/* ===== V3.9.4 Bilingual Sheet2 Loss Reasons ===== */
.oee-a-reason.bilingual{min-height:74px}
.oee-a-reason-labels{display:grid;gap:3px;min-width:0}
.oee-a-reason-labels b{direction:ltr!important;text-align:left!important;font-size:12px!important;font-weight:900!important;line-height:1.35!important;color:var(--text)!important}
.oee-a-reason-labels small{direction:rtl!important;text-align:right!important;font-size:11px!important;line-height:1.45!important;color:var(--muted)!important;margin:0!important}
.enterprise-pareto-label.bilingual{display:grid!important;gap:2px!important}
.enterprise-pareto-label.bilingual b{direction:ltr!important;text-align:left!important}
.enterprise-pareto-label.bilingual small{direction:rtl!important;text-align:left!important;color:var(--muted);font-size:10px;line-height:1.35}
.shift-reason-label.bilingual{align-items:flex-start!important}
.shift-reason-label.bilingual>div{display:grid;gap:2px;min-width:0}
.shift-reason-label.bilingual b{direction:ltr!important;text-align:left!important;line-height:1.3}
.shift-reason-label.bilingual small{direction:rtl!important;text-align:left!important;color:var(--muted);font-size:10px;line-height:1.4}
.loss-label-bilingual{display:grid!important;gap:2px!important;min-width:0}
.loss-label-bilingual b{font-size:inherit!important;direction:ltr!important;text-align:left!important}
.loss-label-bilingual small,.loss-label-bilingual span{direction:rtl!important;text-align:left!important;color:var(--muted)!important;font-style:normal!important}
.loss-label-bilingual em{font-style:normal!important;color:var(--muted)!important}
@media(max-width:680px){
  .oee-a-reason.bilingual{grid-template-columns:minmax(0,1fr) 76px!important;min-height:80px;padding:10px!important}
  .oee-a-reason-labels b{font-size:11px!important}
  .oee-a-reason-labels small{font-size:10.5px!important}
}


/* ===== V3.9.6 Non-Sterile Liquid Line ===== */
.machine-category-block.category-liquid{border-top:4px solid #0ea5a8}
.category-liquid .machine-category-label{background:#e0f7f6;color:#087b7e}
.category-liquid .performance-machine-card.nonsterile{border-left-color:#0ea5a8}
body[data-dark="true"] .category-liquid .machine-category-label{background:#123f43;color:#a8efee}
