@font-face{font-family:Helvetica Neue VN;src:url(/fonts/HelveticaNeue-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue VN;src:url(/fonts/HelveticaNeue-Medium.ttf) format("truetype");font-weight:500 600;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue VN;src:url(/fonts/HelveticaNeue-Bold.ttf) format("truetype");font-weight:700 900;font-style:normal;font-display:swap}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;min-height:100vh;max-width:100%;overflow-x:clip;overscroll-behavior:none;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}img,svg,video,canvas{max-width:100%}.app-shell{height:100vh;height:100dvh}.app-header{padding-top:calc(7px + env(safe-area-inset-top))!important;padding-right:calc(20px + env(safe-area-inset-right))!important}.app-aside{padding-top:calc(14px + env(safe-area-inset-top))!important}@media (max-width: 1400px){.prod-frame-grid{grid-template-columns:1fr!important}}body{font-family:Helvetica Neue VN,Segoe UI,Roboto,system-ui,sans-serif;font-size:14px;background:#ecf1f5;color:#16202b;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color-scheme:light}.flex{display:flex}.flex-col{flex-direction:column}.grid{display:grid}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.ff-mono{font-family:Helvetica Neue VN,Segoe UI,Roboto,system-ui,sans-serif;font-variant-numeric:tabular-nums}.ff-disp{font-family:Helvetica Neue VN,Segoe UI,Roboto,system-ui,sans-serif}@media (max-width: 820px){.kpi-val{font-size:18px!important}}@media (max-width: 400px){.kpi-val{font-size:16px!important}}@media (max-width: 820px){.mb-stack{grid-template-columns:minmax(0,1fr)!important}.mb-stack>*{min-width:0}.app-content{padding:12px!important}.app-header{padding-top:calc(7px + env(safe-area-inset-top))!important;padding-right:calc(12px + env(safe-area-inset-right))!important;padding-bottom:7px!important;padding-left:calc(12px + env(safe-area-inset-left))!important}.app-header .ff-disp{font-size:15px!important}.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.tbl-scroll>.grid{min-width:560px}.grid>*{min-width:0}.master-detail.md-detail-active{overflow-x:hidden}}.chat-bubble:hover .chat-del{display:flex!important}@media (max-width: 820px){.chat-root .master-detail.md-detail-active{padding:0!important;overflow:hidden!important;display:flex;flex-direction:column}.chat-root .master-detail.md-detail-active{inset:auto!important;left:0!important;right:0!important;top:var(--chat-vt, 0px)!important;height:var(--chat-vh, 100dvh)!important}.chat-root .master-detail.md-detail-active>.md-list{display:none!important}.chat-root .master-detail.md-list-active>.md-detail{display:none!important}.chat-root .master-detail.md-detail-active>.md-back{position:static;margin:0;border:none;border-bottom:1px solid #DCE3EA;border-radius:0;padding:calc(9px + env(safe-area-inset-top)) 12px 9px}.chat-root .master-detail.md-detail-active>.md-detail{flex:1;min-height:0;border:none!important;border-radius:0!important;display:flex;flex-direction:column}.chat-fs .quicknav{display:none!important}.chat-fs .app-content.has-bottomnav{padding-bottom:0!important}.chat-root .master-detail.md-detail-active .chat-composer{padding-bottom:calc(9px + env(safe-area-inset-bottom))!important}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.stage-btn{cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.stage-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000024}.stage-btn:active{transform:translateY(0)}.view-fill{flex:1;min-height:0;display:flex;flex-direction:column}@media (max-width: 820px){.view-fill{display:block}}.master-detail{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:14px;align-items:stretch;flex:1;min-height:0}.master-detail>.md-list,.master-detail>.md-detail{overflow-y:auto;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.master-detail>.md-list::-webkit-scrollbar,.master-detail>.md-detail::-webkit-scrollbar{width:0;height:0;display:none}.toolbar-sticky{position:sticky;top:-12px;z-index:6;background:#ecf1f5;padding-top:2px;padding-bottom:6px;margin-bottom:6px;box-shadow:0 -16px #ecf1f5;flex-shrink:0}.master-detail>.md-back{display:none}@media (max-width: 1180px){.master-detail{grid-template-columns:minmax(228px,264px) minmax(0,1fr)}}@media (max-width: 820px){.master-detail{display:block;height:auto}.master-detail>.md-list{position:static;max-height:none;overflow:visible}.master-detail.md-list-active>.md-detail{display:none}.master-detail.md-detail-active{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#ecf1f5;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.has-bottomnav .master-detail.md-detail-active{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.master-detail.md-detail-active>.md-list{display:none}.master-detail.md-detail-active>.md-detail{animation:slideInRight .22s cubic-bezier(.16,1,.3,1)}.master-detail.md-detail-active>.md-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;position:sticky;top:0;z-index:1;background:#fff;border:1px solid #DCE3EA;border-radius:8px;padding:8px 13px;font-size:13px;font-weight:600;color:#16202b;cursor:pointer}}@keyframes slideInRight{0%{opacity:.4;transform:translate(26px)}to{opacity:1;transform:translate(0)}}@media (max-width: 820px){.hide-mobile{display:none!important}}.hide-desktop{display:none!important}@media (max-width: 820px){.hide-desktop{display:block!important}}@media (max-width: 820px){.scroll-tabs{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.scroll-tabs::-webkit-scrollbar{display:none}.scroll-tabs>*{flex-shrink:0}}.ops-table{background:#fff;border:1px solid #DCE3EA;border-radius:12px;overflow:hidden;overflow-x:auto}.ops-row{display:grid;grid-template-columns:74px 118px 88px minmax(180px,1fr) 132px 168px 150px 150px 18px;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid #EEF2F6}.ops-head{background:#f4f7fa;border-top:none;font-size:10.5px;font-weight:700;color:#5c6b7a;text-transform:uppercase;letter-spacing:.3px}.ops-body{cursor:pointer}.ops-body:nth-child(2n){background:#fcfdfe}.ops-body:hover{background:#f2f7ff}.ops-od{box-shadow:inset 3px 0 #d33}.ops-soon{box-shadow:inset 3px 0 #e0991b}.ops-compact .ops-row{grid-template-columns:74px 100px minmax(120px,1fr) 116px 128px 116px 18px;gap:8px}.ops-compact .oc-type,.ops-compact .oc-ent{display:none}@media (max-width: 900px){.ops-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px}.ops-head{display:none}.ops-row .oc-title{flex-basis:100%;white-space:normal!important}.ops-row .oc-go{display:none}}.quicknav{display:flex;align-items:center;justify-content:center;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.quicknav::-webkit-scrollbar{display:none}.quicknav .qn-item{display:flex;flex-direction:column;align-items:center;gap:1px;background:transparent;border:none;border-radius:8px;padding:3px 10px;font-size:11px;font-weight:600;color:#5c6b7a;cursor:pointer;white-space:nowrap;line-height:1.1}.quicknav .qn-item svg{flex-shrink:0;width:18px;height:18px}@media (max-width: 820px){.quicknav{position:fixed;left:0;right:0;bottom:0;z-index:90;flex:none;justify-content:space-around;gap:2px;background:#fff;border-top:1px solid #DCE3EA;box-shadow:0 -2px 14px #00000012;padding:5px calc(6px + env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-left))}.quicknav .qn-item{flex-direction:column;gap:2px;font-size:10px;font-weight:600;padding:4px 6px;flex:1;min-width:0}.quicknav .qn-item span{overflow:hidden;text-overflow:ellipsis;max-width:100%}.app-content.has-bottomnav{padding-bottom:calc(64px + env(safe-area-inset-bottom))!important}.app-content [style*="1fr 1fr"]{grid-template-columns:1fr!important}.app-aside{padding-top:calc(14px + env(safe-area-inset-top))!important;padding-bottom:calc(14px + env(safe-area-inset-bottom))!important}.admin-add-grid,.roles-layout{grid-template-columns:1fr!important}.roles-layout .roles-list{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.roles-layout .roles-list::-webkit-scrollbar{display:none}.roles-layout .role-item{flex:0 0 auto;margin-bottom:0!important;border-color:#dce3ea!important}.admin-users-head{display:none!important}.admin-user-row{display:block!important;padding:10px 0!important}.admin-user-row .au-cell{display:block;margin-top:6px;overflow:visible!important;white-space:normal!important}.admin-user-row .au-cell:first-child{margin-top:0;font-size:15px}.admin-user-row .au-cell[data-mlabel]:before{content:attr(data-mlabel);display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;color:#8a99a7;margin-bottom:2px}.admin-user-row .au-actions{margin-top:10px}.perm-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.perm-scroll>*{min-width:340px}}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{width:0;height:0;display:none}.wheel-col{-ms-overflow-style:none}.wheel-col::-webkit-scrollbar{width:0;height:0;display:none}.thin-scroll{scrollbar-width:thin;scrollbar-color:transparent transparent}.thin-scroll:hover{scrollbar-color:rgba(140,153,167,.5) transparent}.thin-scroll::-webkit-scrollbar{width:6px;height:6px}.thin-scroll::-webkit-scrollbar-track{background:transparent}.thin-scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:99px}.thin-scroll:hover::-webkit-scrollbar-thumb{background:#8c99a759}.thin-scroll::-webkit-scrollbar-thumb:hover{background:#8c99a799}@keyframes navTipIn{0%{opacity:0;transform:translateY(-50%) translate(-8px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.nav-tip{animation:navTipIn .14s cubic-bezier(.16,1,.3,1)}.print-area{font-family:Times New Roman,Times,serif}@media print{body *{visibility:hidden!important}.print-area,.print-area *{visibility:visible!important}.print-area{position:absolute!important;left:0;top:0;width:100%;box-shadow:none!important;zoom:1!important;transform:none!important}.no-print{display:none!important}@page{size:A4;margin:12mm}}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b11178c;z-index:55;border:none;cursor:pointer}
