@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Inter+Tight:wght@600;700;800&family=JetBrains+Mono:wght@500;700&display=swap";:root{--bg: #02070b;--surface: rgba(7, 18, 24, .86);--surface-strong: rgba(9, 25, 34, .96);--surface-soft: rgba(14, 39, 50, .62);--field: rgba(3, 17, 24, .94);--ink: #f4fbff;--muted: #b7cfdb;--muted-2: #7fa4b3;--brand: #67e8f9;--brand-strong: #06b6d4;--line: rgba(103, 232, 249, .16);--line-strong: rgba(103, 232, 249, .34);--green: #58d68d;--red: #ff6b6b;--amber: #f7c948;--shadow: 0 22px 60px rgba(0, 0, 0, .34);--control-height: 44px;--control-radius: 12px;--field-gap: 8px;--panel-gap: 16px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(135deg,rgba(17,94,117,.24),transparent 34%),linear-gradient(180deg,#051118,#02070b 58%,#051118);background-size:72px 72px,72px 72px,auto,auto;font-family:Inter,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.login-page{min-height:100vh;display:grid;place-items:center;padding:28px}.login-corner-mark{position:fixed;top:22px;left:24px;width:58px;height:58px;display:block}.login-corner-mark img{width:52px;height:auto;display:block;filter:drop-shadow(0 10px 24px rgba(103,232,249,.16))}.login-panel{width:min(420px,100%);border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#08141bf0,#040d12e6);box-shadow:var(--shadow);padding:32px}.login-brand{display:flex;justify-content:center;margin-bottom:28px}.login-brand img{width:min(260px,74vw);height:auto;display:block}.login-panel h1,.page-header h1,.section-heading h2,.factory-header h2{margin:0;font-family:Inter Tight,Inter,sans-serif;letter-spacing:0}.login-panel h1{margin-top:8px;font-size:clamp(30px,6vw,46px)}.login-copy{color:var(--muted);line-height:1.6}.login-panel form,.form-card{display:grid;gap:var(--panel-gap)}.form-card{align-content:start;grid-auto-rows:max-content;height:100%;min-height:260px}.form-card>button{align-self:end;margin-top:auto}.login-panel label,.form-card label{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}.login-error{border:1px solid rgba(255,107,107,.42);border-radius:12px;background:#ff6b6b1a;color:#ffe1e1;padding:12px;font-size:13px;font-weight:800}.compact-notice{box-shadow:none;font-size:12px;font-weight:800;min-height:auto;padding:10px 12px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--field);color:var(--ink);min-height:var(--control-height);padding:0 13px}textarea{min-height:120px;padding:12px 13px;resize:vertical}input[type=checkbox]{accent-color:var(--brand);min-height:auto;width:auto}input:focus,select:focus,textarea:focus{border-color:var(--brand)}.api-hint,.overview-meta,.device-last-seen,.factory-header p,.list-row span,.device-card-meta,.drawer-header span{color:var(--muted)}.api-hint{display:block;margin-top:18px;font-family:JetBrains Mono,monospace;font-size:12px}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.app-shell-collapsed{grid-template-columns:82px 1fr}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#040d12f0;display:flex;flex-direction:column;padding:22px 18px}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-brand img{width:190px;height:auto;display:block}.sidebar-toggle,.sidebar-collapsed-mark{border:0;background:transparent;color:var(--brand);cursor:pointer;display:grid;place-items:center;padding:0}.sidebar-toggle{width:34px;height:34px;border-radius:10px;flex:0 0 34px}.sidebar-toggle:hover{background:#67e8f91a}.sidebar-collapsed{align-items:center;background:#040d12e6;padding:22px 0}.sidebar-collapsed-mark{width:58px;height:58px}.sidebar-collapsed-mark img{width:48px;height:auto;display:block;filter:drop-shadow(0 10px 24px rgba(103,232,249,.18))}.sidebar-collapsed-mark:hover img{transform:scale(1.04)}.sidebar-collapsed-nav{display:grid;gap:10px;margin-top:24px;width:100%;place-items:center}.collapsed-nav-item{width:46px;height:46px;border:1px solid rgba(103,232,249,.12);border-radius:13px;background:#ffffff09;color:#dff6ff;display:grid;place-items:center;cursor:pointer;transition:.16s ease}.collapsed-nav-item:hover,.collapsed-nav-item.active{border-color:var(--brand);background:#67e8f91f;color:#fff}.sidebar-nav{display:grid;gap:8px;margin-top:28px}.nav-item{border:1px solid rgba(103,232,249,.12);border-radius:12px;background:#ffffff09;color:#dff6ff;display:flex;align-items:center;gap:11px;padding:12px 13px;cursor:pointer;transition:.16s ease;text-align:left}.nav-item:hover,.nav-item.active{border-color:var(--brand);background:#67e8f91a;color:#fff}.sidebar-footer{margin-top:auto;display:grid;gap:10px}.nav-logout{justify-content:center}.content-shell{padding:26px 28px 32px;min-width:0}.page-intro{min-height:104px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(90deg,rgba(103,232,249,.08) 0,transparent 32%),linear-gradient(135deg,#0a2a36eb,#040d12db);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:18px;overflow:hidden;padding:18px 20px;position:relative}.page-intro:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.8),transparent 68%);mask-image:linear-gradient(90deg,rgba(0,0,0,.8),transparent 68%);pointer-events:none}.page-intro-glow{position:absolute;inset:auto 0 0;height:2px;background:linear-gradient(90deg,transparent,var(--brand),transparent);opacity:.76}.page-intro-main{display:flex;align-items:center;gap:14px;min-width:0;position:relative;z-index:1}.page-intro-icon{width:46px;height:46px;border:1px solid rgba(103,232,249,.36);border-radius:15px;background:linear-gradient(135deg,#67e8f933,#031118ad);color:var(--brand);display:grid;place-items:center;flex:0 0 auto;box-shadow:inset 0 0 18px #67e8f914}.page-intro-copy{min-width:0;max-width:920px}.page-intro-eyebrow{color:var(--brand);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.page-intro-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:5px}.page-intro h2{margin:0;color:#fff;font-family:Inter Tight,Inter,sans-serif;font-size:clamp(28px,3.4vw,38px);letter-spacing:0;line-height:1}.page-intro-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}.page-intro-meta span{border:1px solid rgba(103,232,249,.16);border-radius:999px;background:#02070b52;color:#a5f3fc;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:800;padding:6px 9px;white-space:nowrap}.page-intro-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;min-width:max-content;position:relative;z-index:1}.page-header,.fiorobot-shell{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#08141be6,#040d12c7);box-shadow:var(--shadow)}.page-header{min-height:112px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.page-header h1{font-size:clamp(28px,4vw,42px)}.eyebrow{margin:0;color:var(--brand);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.header-badge,.tiny-pill{border:1px solid var(--line-strong);border-radius:999px;color:#a5f3fc;background:#0c24318c;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:12px}.page-stack{display:grid;gap:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.section-heading h2{font-size:28px}.section-heading p{margin:6px 0 0;color:var(--muted)}.button-primary,.button-secondary,.button-danger,.icon-button{border-radius:var(--control-radius);border:1px solid var(--line-strong);background:#67e8f91f;color:#fff;min-height:var(--control-height);display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 16px;cursor:pointer;font-size:14px;font-weight:800;line-height:1}.button-primary{background:linear-gradient(135deg,#0891b2,#22d3ee);color:#021018;border-color:#67e8f9ad;font-weight:800}.button-secondary:hover,.button-secondary.active,.button-primary:hover{border-color:var(--brand);filter:brightness(1.06)}.button-secondary.active{background:#67e8f92e;box-shadow:inset 0 0 0 1px #67e8f929}.button-danger{border-color:#ff6b6b70;background:#ff6b6b1f}.icon-button{width:var(--control-height);padding:0}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px}.panel-metric-grid{grid-template-columns:repeat(5,minmax(120px,1fr))}.metric-card,.form-card,.list-panel,.factory-section,.loading-panel,.empty-state,.notice{border:1px solid var(--line);background:linear-gradient(180deg,#08141bcc,#040d12b8);border-radius:16px;box-shadow:var(--shadow)}.metric-card{min-height:92px;padding:15px;display:grid;align-content:space-between}button.metric-card{color:inherit;cursor:pointer;font:inherit;text-align:left}.metric-clickable{transition:border-color .16s ease,transform .16s ease,background .16s ease}.metric-clickable:hover,.metric-active{border-color:#67e8f97a;background:linear-gradient(180deg,#0d2a35eb,#041219d6)}.metric-clickable:hover{transform:translateY(-1px)}.metric-active{box-shadow:0 18px 42px #06b6d426}.metric-card span{color:var(--muted);font-size:13px}.metric-card strong{font-family:JetBrains Mono,monospace;font-size:clamp(20px,2vw,30px);letter-spacing:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-metric-grid .metric-card strong,.simulation-summary-grid .metric-card strong{font-size:clamp(18px,1.7vw,26px)}.metric-good strong{color:var(--green)}.metric-bad strong{color:var(--red)}.factory-section{padding:18px}.factory-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.factory-identity{display:flex;align-items:center;gap:16px;min-width:0}.client-logo-box{width:148px;height:58px;border:1px solid rgba(103,232,249,.14);border-radius:14px;background:#02070b70;display:flex;align-items:center;justify-content:center;padding:10px 14px;overflow:hidden}.client-logo-box img{max-width:100%;max-height:42px;object-fit:contain}.client-logo-empty{color:var(--brand);font-family:JetBrains Mono,monospace}.factory-header h2{font-size:22px}.factory-header p{margin:4px 0 0;font-size:13px}.factory-status-strip{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.factory-status-strip span{border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:7px 10px;font-size:12px}.factory-toggle{border:1px solid var(--line-strong);border-radius:12px;width:34px;min-width:34px;min-height:34px;background:#67e8f91a;color:#dff6ff;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.factory-toggle:hover{border-color:var(--brand);color:#fff}.device-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px}.device-card{border:1px solid rgba(103,232,249,.13);border-radius:16px;padding:10px 10px 12px;background:#ffffff09;color:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;transition:.16s ease;width:min(100%,345px)}.device-card-pro,.device-card-lite{width:min(100%,345px)}.device-card:hover{border-color:var(--line-strong);background:#67e8f912;transform:translateY(-2px)}.device-visual{min-height:266px;display:grid;place-items:center;overflow:visible;padding:2px 0}.device-stage{position:relative;margin:0 auto;width:100%}.device-stage img{width:100%;height:auto;display:block;object-fit:contain}.device-stage-pro,.device-stage-lite{max-width:285px}.device-screen-info{position:absolute;display:grid;place-items:center;align-content:center;gap:3px;color:#dffbff;text-align:center;line-height:1.05;pointer-events:none;overflow:hidden}.device-screen-info span,.device-screen-info small,.device-screen-info em{max-width:94%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-screen-info span{color:var(--muted);font-size:10px;font-weight:800}.device-screen-info strong{color:var(--brand);font-family:JetBrains Mono,monospace;font-size:clamp(18px,5.6vw,28px);letter-spacing:.08em;text-shadow:0 0 14px rgba(103,232,249,.32)}.device-screen-info small,.device-screen-info em{color:#f4fbff;font-size:10px;font-style:normal}.device-screen-info em{color:var(--muted-2);font-family:JetBrains Mono,monospace;font-size:9px}.device-screen-info-pro{left:25.7%;top:30.8%;width:51.4%;height:43%;border-radius:4px}.device-screen-info-lite{left:19%;top:9%;width:62%;min-height:24%;padding:8px 10px;border:1px solid rgba(103,232,249,.35);border-radius:14px;background:#020d1394;box-shadow:inset 0 0 18px #67e8f91a}.device-screen-info-lite strong{font-size:clamp(17px,6vw,24px)}.device-led{position:absolute;left:50%;top:84%;width:4.3%;aspect-ratio:1;border-radius:999px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.9);background:#7fa4b3;box-shadow:0 0 0 4px #ffffff14,0 0 16px #7fa4b3b3}.device-stage-lite .device-led{left:48.7%;top:85.4%;width:5.7%}.device-led.status-online{background:#58d68d;box-shadow:0 0 0 4px #58d68d24,0 0 18px #58d68dd9,0 0 34px #58d68d8c}.device-led.status-error{background:#ff6b6b;box-shadow:0 0 0 4px #ff6b6b29,0 0 18px #ff6b6bd9,0 0 34px #ff6b6b7a}.device-led.status-config,.device-led.status-ota{background:#f7c948;box-shadow:0 0 0 4px #f7c94826,0 0 18px #f7c948cc,0 0 34px #f7c94870}.device-card-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.device-label,.device-uid{margin:0}.device-label{font-weight:800;color:#fff}.device-uid{margin-top:3px;color:var(--brand);font-family:JetBrains Mono,monospace;font-size:13px}.device-card-meta{display:flex;justify-content:space-between;gap:10px;font-size:13px}.device-last-seen{font-size:12px}.status-chip{border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;white-space:nowrap}.status-online{color:#d9ffe9;background:#58d68d29;border:1px solid rgba(88,214,141,.34)}.status-offline{color:#d6e3ea;background:#7fa4b324;border:1px solid rgba(127,164,179,.24)}.status-error{color:#ffe1e1;background:#ff6b6b26;border:1px solid rgba(255,107,107,.36)}.status-config,.status-ota{color:#fff8d6;background:#f7c94824;border:1px solid rgba(247,201,72,.3)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000094;display:flex;justify-content:flex-end;z-index:20}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a3;display:grid;place-items:center;padding:24px;z-index:22}.device-wizard{width:min(980px,100%);max-height:min(92vh,980px);overflow-y:auto;border:1px solid var(--line);border-radius:20px;background:#061219;box-shadow:var(--shadow);padding:24px}.entity-modal{width:min(560px,100%);max-height:min(92vh,920px);overflow-y:auto;border:1px solid var(--line);border-radius:20px;background:#061219;box-shadow:var(--shadow);padding:24px}.entity-modal-wide{width:min(860px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:var(--panel-gap)}.entity-form{display:grid;gap:var(--panel-gap)}.entity-form label{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}.entity-form .checkbox-line,.checkbox-line{display:flex;align-items:center;gap:10px;color:#dff6ff}.logo-upload-preview,.ota-help-box,.checksum-result{border:1px solid rgba(103,232,249,.14);border-radius:14px;background:#02070b6b}.logo-upload-preview{min-height:96px;display:grid;place-items:center;padding:16px}.logo-upload-preview img{max-width:min(260px,100%);max-height:92px;object-fit:contain}.ota-help-box{display:grid;gap:7px;color:var(--muted);font-size:13px;line-height:1.45;padding:13px}.ota-help-box strong{color:#fff}.checksum-result{color:var(--brand);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:800;padding:12px;overflow-wrap:anywhere}.toast-stack{position:fixed;top:22px;right:22px;z-index:80;width:min(390px,calc(100vw - 28px));display:grid;gap:10px;pointer-events:none}.toast-card{border:1px solid rgba(103,232,249,.22);border-radius:15px;background:linear-gradient(135deg,#061219fa,#040d12f0);box-shadow:0 18px 48px #0000005c;color:#dff6ff;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px 12px;pointer-events:auto}.toast-card>svg{color:var(--brand)}.toast-card span{font-size:13px;font-weight:800;line-height:1.35}.toast-card button{width:30px;height:30px;border:1px solid rgba(103,232,249,.16);border-radius:10px;background:#ffffff0a;color:var(--muted);display:inline-grid;place-items:center;cursor:pointer}.toast-error{border-color:#ff6b6b5c}.toast-error>svg{color:#ff9a9a}.toast-info>svg{color:#a5f3fc}.entity-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:var(--panel-gap)}.modal-header h2{margin:7px 0 0;font-family:Inter Tight,Inter,sans-serif;font-size:clamp(28px,4vw,42px)}.wizard-form,.wizard-section{display:grid;gap:var(--panel-gap)}.wizard-form{margin-top:var(--panel-gap)}.wizard-section{border:1px solid var(--line);border-radius:16px;background:#ffffff09;padding:var(--panel-gap)}.wizard-section h3{margin:0;font-size:18px}.wizard-section label{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}.source-map{border:1px solid rgba(103,232,249,.14);border-radius:16px;background:#02070b47;padding:var(--panel-gap);display:grid;gap:14px}.source-map-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.source-map-header strong,.source-map-header span{display:block}.source-map-header strong{color:#fff;font-size:14px}.source-map-header span{margin-top:4px;color:var(--muted);font-size:12px}.computed-pill{border:1px solid var(--line-strong);border-radius:999px;color:#a5f3fc!important;background:#0c2431b8;padding:7px 10px;font-family:JetBrains Mono,monospace;font-size:12px!important;font-weight:800;white-space:nowrap}.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.source-card{border:1px solid rgba(103,232,249,.12);border-radius:14px;background:#ffffff08;padding:12px;display:grid;gap:12px}.source-options{display:grid;gap:10px}.wizard-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.wizard-result{border:1px solid var(--line-strong);border-radius:16px;background:linear-gradient(180deg,#0a2632e6,#05131adb);padding:16px;display:grid;gap:8px}.wizard-result span,.wizard-result p{color:var(--muted)}.wizard-result p{margin:0}.wizard-result strong{color:var(--brand);font-family:JetBrains Mono,monospace;font-size:32px;letter-spacing:.14em}.device-drawer{width:min(620px,100%);height:100%;overflow-y:auto;background:#061219;border-left:1px solid var(--line);box-shadow:var(--shadow);padding:24px}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.drawer-header>div{min-width:0}.drawer-header .icon-button{align-self:flex-start;flex:0 0 var(--control-height);height:var(--control-height);min-height:var(--control-height);width:var(--control-height)}.drawer-header h2{margin:7px 0 4px;font-family:Inter Tight,Inter,sans-serif;font-size:30px;overflow-wrap:anywhere}.drawer-device-line{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.drawer-device-line>span:first-child{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800}.drawer-device-line .status-chip{padding:6px 9px}.drawer-hero{margin:8px 0 var(--panel-gap);min-height:250px;padding:6px 0 2px;display:grid;place-items:center}.drawer-hero img{width:min(500px,100%);max-height:300px;object-fit:contain;filter:drop-shadow(0 22px 42px rgba(0,0,0,.28))}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-item{border:1px solid var(--line);border-radius:14px;background:#ffffff09;padding:13px}.detail-item-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.detail-item-value{margin-top:7px;font-weight:800;word-break:break-word}.drawer-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:10px;margin-top:var(--panel-gap)}.drawer-confirm-panel{margin-top:var(--panel-gap);border:1px solid rgba(255,107,107,.34);border-radius:16px;background:#ff6b6b14;padding:var(--panel-gap);display:grid;gap:14px}.drawer-confirm-panel strong{display:block;color:#fff;font-size:15px}.drawer-confirm-panel p{margin:6px 0 0;color:var(--muted);line-height:1.5}.drawer-confirm-panel input{width:100%}.drawer-confirm-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.drawer-notice,.drawer-panel{margin-top:var(--panel-gap);border:1px solid var(--line);border-radius:16px;background:#ffffff09;padding:var(--panel-gap)}.drawer-notice{color:#a5f3fc}.drawer-notice-error{border-color:#ff6b6b5c;color:#ffe1e1}.drawer-panel{display:grid;gap:var(--panel-gap)}.drawer-panel h3{margin:0;font-size:18px}.drawer-panel p{margin:0;color:var(--muted);line-height:1.55}.drawer-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.drawer-panel-header svg{color:var(--brand);flex:0 0 auto}.drawer-events-panel{gap:12px}.drawer-event-list{display:grid;gap:10px}.drawer-event-row{border:1px solid rgba(103,232,249,.12);border-radius:14px;background:#02070b57;padding:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drawer-event-row div{min-width:0}.drawer-event-row strong,.drawer-event-row span,.drawer-event-row small{display:block}.drawer-event-row strong{color:#fff}.drawer-event-row span{margin-top:4px;color:var(--muted);font-size:12px}.drawer-event-row small{margin-top:7px;color:#dff6ff;font-size:12px;font-weight:800;overflow-wrap:anywhere}.technical-summary-list{display:grid;gap:12px}.technical-summary-card{min-height:228px;border:1px solid rgba(103,232,249,.12);border-radius:16px;background:#02070b57;padding:14px;display:grid;gap:12px}.technical-summary-topline,.technical-summary-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.technical-summary-topline strong{color:#fff;font-family:JetBrains Mono,monospace;font-size:14px}.technical-summary-topline span,.technical-summary-foot span{color:var(--muted);font-size:12px;font-weight:800}.technical-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.technical-summary-grid .detail-item{min-height:78px;padding:11px}.drawer-panel label{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}.drawer-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.drawer-form-full{grid-column:1 / -1}.drawer-submit{justify-self:start}.integration-target-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-warning-list{display:grid;gap:10px}.integration-warning,.integration-ok{border:1px solid rgba(103,232,249,.16);border-radius:14px;background:#02070b61;color:#dff6ff;display:flex;align-items:flex-start;gap:9px;padding:12px;font-size:13px;line-height:1.4}.integration-warning{border-color:#ffd66647;color:#fff5d6}.integration-warning svg{color:#ffd666;flex:0 0 auto}.integration-ok svg{color:var(--brand);flex:0 0 auto}.integration-contract-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-contract-card{min-height:132px;border:1px solid rgba(103,232,249,.14);border-radius:15px;background:#02070b6b;padding:13px;display:grid;align-content:start;gap:8px}.integration-contract-card span{width:fit-content;border:1px solid rgba(103,232,249,.2);border-radius:999px;color:#a5f3fc;font-size:11px;font-weight:900;padding:4px 8px;text-transform:uppercase}.integration-contract-card strong{color:#fff;font-size:14px;overflow-wrap:anywhere}.integration-contract-card small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.integration-contract-card em{color:var(--brand);font-family:JetBrains Mono,monospace;font-size:12px;font-style:normal;font-weight:800;overflow-wrap:anywhere}.activation-code-box{border:1px solid var(--line-strong);border-radius:14px;background:#02070ba8;color:var(--brand);font-family:JetBrains Mono,monospace;font-size:28px;font-weight:800;letter-spacing:.14em;padding:16px;text-align:center}.form-grid,.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--panel-gap)}.form-grid{align-items:stretch}.form-card,.list-panel{padding:var(--panel-gap)}.form-card h3,.list-panel h3{margin:0 0 14px;font-size:18px}.list-row{border:1px solid rgba(103,232,249,.1);border-radius:13px;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;background:#ffffff08}.list-row div{min-width:0}.list-row strong,.list-row span{display:block}.list-row span{margin-top:4px;font-size:12px;overflow-wrap:anywhere}.records-section{display:grid;gap:14px}.records-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.records-heading h3{margin:6px 0 0;color:#fff;font-size:22px}.customer-card-grid,.factory-card-grid,.integration-card-grid,.contract-card-grid,.firmware-card-grid,.ota-job-grid{display:grid;gap:14px}.customer-card-grid,.integration-card-grid,.firmware-card-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.factory-card-grid,.contract-card-grid,.ota-job-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.finance-metric-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.finance-visibility-row,.finance-context-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.finance-visibility-row{margin-top:-6px}.finance-eye-button{min-height:38px;padding-inline:12px}.finance-context-actions{justify-content:flex-start}.finance-empty-hint{min-height:92px;display:grid;place-items:center;color:var(--muted);font-weight:800;text-align:center}.finance-card-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.finance-card,.finance-list-row{border:1px solid rgba(103,232,249,.13);border-radius:16px;background:linear-gradient(180deg,#091921c7,#040d12b8);box-shadow:0 12px 34px #0000002e}.finance-card{display:grid;gap:15px;min-height:218px;padding:16px}.finance-card-topline,.finance-card-total,.finance-list-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.finance-card-topline div,.finance-list-row div{min-width:0}.finance-card-topline strong,.finance-card-topline span,.finance-list-row strong,.finance-list-row span{display:block}.finance-card-topline span,.finance-list-row span{margin-top:4px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.finance-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.finance-detail-grid span{min-height:72px;border:1px solid rgba(103,232,249,.1);border-radius:12px;background:#02070b52;color:var(--muted);display:grid;align-content:space-between;gap:8px;padding:10px;font-size:11px}.finance-detail-grid strong,.finance-card-total strong,.finance-list-row strong{color:#f4fdff}.finance-card-total{border-top:1px solid rgba(103,232,249,.12);padding-top:13px}.finance-card-total span{color:var(--muted);font-size:12px}.finance-card-total strong{font-family:JetBrains Mono,monospace;font-size:21px}.finance-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--panel-gap)}.finance-list{display:grid;gap:10px}.finance-scroll-list{max-height:560px;overflow:auto;padding-right:4px}.finance-list-row{min-height:76px;padding:13px 14px}.finance-list-values{flex:0 0 190px;text-align:right}.finance-search-field{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800}.finance-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.finance-chart-card{border:1px solid rgba(103,232,249,.13);border-radius:16px;background:linear-gradient(180deg,#091921bd,#040d12a8);display:grid;gap:16px;padding:16px}.finance-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.finance-chart-heading strong,.finance-chart-column strong{color:#f4fdff}.finance-chart-heading span,.finance-chart-column span,.finance-chart-legend{color:var(--muted);font-size:12px}.finance-bar-chart{min-height:230px;border:1px solid rgba(103,232,249,.1);border-radius:14px;background:linear-gradient(rgba(103,232,249,.075) 1px,transparent 1px),#02070b4d;background-size:100% 25%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:14px}.finance-chart-column{min-width:0;display:grid;grid-template-rows:1fr auto auto;gap:7px;text-align:center}.finance-chart-bars{min-height:150px;display:flex;align-items:flex-end;justify-content:center;gap:7px}.finance-bar{width:min(28px,34%);min-height:0;border-radius:9px 9px 3px 3px;display:block}.finance-bar-expense{background:linear-gradient(180deg,#f7c948,#f7c9486b)}.finance-bar-result-good{background:linear-gradient(180deg,#58d68d,#58d68d66)}.finance-bar-result-bad{background:linear-gradient(180deg,#ff6b6b,#ff6b6b6b)}.finance-chart-legend{display:flex;flex-wrap:wrap;gap:14px}.finance-chart-legend span{display:inline-flex;align-items:center;gap:7px}.finance-chart-legend i{width:10px;height:10px;border-radius:999px}.legend-expense{background:#f7c948}.legend-result{background:#58d68d}.form-grid-2,.form-grid-3{display:grid;gap:var(--panel-gap)}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.build-parts-editor{display:grid;gap:10px}.build-part-row{display:grid;grid-template-columns:minmax(180px,1fr) 110px 140px 42px;gap:10px;align-items:center}.build-row-hint{align-self:center;color:var(--muted);font-size:12px;font-weight:800}.inline-checkbox{align-content:end;min-height:56px}.compact-action{min-height:34px;padding:7px 10px}.finance-simulation-card{border:1px solid rgba(103,232,249,.13);border-radius:16px;background:linear-gradient(180deg,#091921c7,#040d12b8);box-shadow:var(--shadow);display:grid;gap:14px;padding:16px}.simulation-form{display:grid;gap:16px}.simulation-form-grid{display:grid;grid-template-columns:1.4fr 1fr .7fr 1fr 1fr;gap:12px;align-items:end}.simulation-form label,.simulation-builder-heading{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800}.simulation-builder-block{border:1px solid rgba(103,232,249,.1);border-radius:14px;background:#02070b38;display:grid;gap:12px;padding:13px}.simulation-builder-heading{gap:2px}.simulation-builder-heading strong{color:var(--text);font-size:14px}.simulation-builder-heading span{color:var(--muted);font-size:12px;font-weight:700}.simulation-option-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.simulation-option-card{min-height:92px;border:1px solid rgba(103,232,249,.12);border-radius:13px;background:#08141bb8;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:flex-start;padding:12px}.simulation-option-card input{margin-top:3px}.simulation-option-card strong,.simulation-option-card small{display:block}.simulation-option-card strong{color:var(--text);font-size:13px}.simulation-option-card small{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35;margin-top:4px}.simulation-extra-parts{display:grid;gap:10px}.simulation-extra-row{display:grid;grid-template-columns:minmax(220px,1fr) 130px 42px;gap:10px;align-items:center}.simulation-submit{justify-self:end}.simulation-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.simulation-lines{display:grid;gap:9px;max-height:360px;overflow:auto}.simulation-line{min-height:70px;border:1px solid rgba(103,232,249,.1);border-radius:13px;background:#02070b57;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px}.simulation-line div{min-width:0}.simulation-line-values{flex:0 0 230px;text-align:right}.simulation-line strong,.simulation-line span{display:block}.simulation-line span{color:var(--muted);font-size:12px;margin-top:4px;overflow-wrap:anywhere}.simulation-line span b{color:var(--cyan);font-weight:900}.customer-card,.factory-card,.integration-card,.contract-card,.firmware-card,.ota-job-card{border:1px solid rgba(103,232,249,.13);border-radius:16px;background:linear-gradient(180deg,#08141bc7,#040d12b8);box-shadow:var(--shadow);min-width:0}.record-clickable{color:inherit;cursor:pointer;text-align:left;transition:.16s ease}.record-clickable:hover{border-color:var(--line-strong);background:#67e8f912;transform:translateY(-2px)}.customer-card{min-height:190px;padding:16px;display:grid;align-content:space-between;gap:16px}.integration-card{min-height:220px;padding:16px;display:grid;align-content:space-between;gap:16px}.firmware-card{min-height:246px;padding:16px;display:grid;align-content:space-between;gap:14px;position:relative;overflow:hidden}.firmware-card:after{content:"";position:absolute;inset:auto 0 0;height:2px;background:linear-gradient(90deg,transparent,rgba(103,232,249,.64),transparent)}.firmware-card-header,.ota-job-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.firmware-version-badge{border:1px solid rgba(103,232,249,.28);border-radius:999px;background:#67e8f91a;color:#dffbff;display:inline-flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800;padding:8px 10px}.firmware-version-badge svg{color:var(--brand)}.firmware-card-body{min-width:0}.firmware-card-body strong{display:block;color:#fff;font-size:16px}.firmware-card-body span{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--muted);display:-webkit-box;font-size:12px;line-height:1.45;margin-top:8px;overflow:hidden;overflow-wrap:anywhere}.firmware-card-footer,.ota-job-footer{display:flex;flex-wrap:wrap;gap:7px}.firmware-card-footer span,.ota-job-footer span{border:1px solid rgba(103,232,249,.1);border-radius:999px;color:var(--muted);background:#02070b4d;font-size:11px;padding:6px 8px;overflow-wrap:anywhere}.firmware-latest{border:1px solid rgba(88,214,141,.28);border-radius:999px;color:#d9ffe9;background:#58d68d1a;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;padding:7px 10px;width:fit-content}.integration-card-header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.customer-card-main{display:grid;gap:14px}.customer-card .client-logo-box{width:100%;height:72px}.customer-card strong,.factory-card strong,.integration-card strong,.contract-card strong{display:block;color:#fff;font-size:16px;overflow-wrap:anywhere}.customer-card span,.factory-card span,.factory-card small,.integration-card span,.contract-card span,.contract-card small{display:block;margin-top:5px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.customer-card-footer,.integration-card-footer{border-top:1px solid rgba(103,232,249,.1);padding-top:13px;display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.customer-card-footer small,.integration-card-footer small{display:block;color:var(--muted);font-size:12px}.customer-card-footer b,.integration-card-footer b{display:block;color:var(--brand);font-family:JetBrains Mono,monospace;font-size:28px;line-height:1}.factory-card{min-height:102px;padding:14px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px}.contract-card{min-height:118px;padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.contract-card>div:first-child{min-width:0}.contract-card-chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end;flex:0 0 auto}.ota-job-card{min-height:156px;padding:15px;display:grid;align-content:space-between;gap:14px}.ota-job-topline strong,.ota-job-topline span{display:block}.ota-job-topline strong{color:#fff;font-family:JetBrains Mono,monospace;font-size:20px}.ota-job-topline div>span{color:var(--muted);font-size:12px;margin-top:5px}.ota-status{border:1px solid rgba(127,164,179,.24);border-radius:999px;color:#d6e3ea;background:#7fa4b31f;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:800;padding:7px 9px;white-space:nowrap}.ota-status-ok{color:#d9ffe9;border-color:#58d68d57;background:#58d68d24}.ota-status-error{color:#ffe1e1;border-color:#ff6b6b5c;background:#ff6b6b24}.ota-status-running{color:#a5f3fc;border-color:#67e8f957;background:#67e8f91f}.ota-progress{height:9px;border:1px solid rgba(103,232,249,.12);border-radius:999px;background:#02070b80;overflow:hidden}.ota-progress span{display:block;height:100%;min-width:4px;border-radius:inherit;background:linear-gradient(90deg,#0891b2,#67e8f9)}.factory-card-icon{width:46px;height:46px;border:1px solid rgba(103,232,249,.24);border-radius:14px;background:#67e8f91a;color:var(--brand);display:grid;place-items:center}.filter-panel{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#08141bcc,#040d12b8);box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(180px,1.3fr) repeat(2,minmax(150px,1fr)) minmax(100px,.55fr) auto;gap:var(--panel-gap);align-items:end;padding:var(--panel-gap)}.filter-panel label{display:grid;gap:var(--field-gap);color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}.event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}.event-card{border:1px solid rgba(103,232,249,.13);border-left:4px solid rgba(103,232,249,.58);border-radius:16px;background:linear-gradient(180deg,#08141bc7,#040d12b8);box-shadow:var(--shadow);padding:15px;display:grid;grid-template-rows:minmax(52px,auto) minmax(22px,auto) minmax(32px,auto) 220px;gap:12px;min-width:0;min-height:380px}.event-card-error{border-left-color:var(--red);background:linear-gradient(180deg,#260c10b3,#040d12b8)}.event-card-ota{border-left-color:var(--amber)}.event-card-data{border-left-color:var(--green)}.event-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:52px}.event-card-header strong,.event-card-header span{display:block}.event-card-header strong{color:#fff;font-size:16px}.event-card-header span{margin-top:4px;color:var(--muted);font-size:12px}.event-chip{border:1px solid var(--line);border-radius:999px;color:#a5f3fc;background:#67e8f91a;padding:7px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:800;white-space:nowrap}.event-chip-ok{color:#d9ffe9;border-color:#58d68d57;background:#58d68d24}.event-chip-error{color:#ffe1e1;border-color:#ff6b6b5c;background:#ff6b6b24}.event-summary{margin:0;color:#dff6ff;display:flex;align-items:center;font-size:14px;font-weight:800;min-height:22px}.event-summary-empty{color:var(--muted-2);font-weight:700}.event-meta-line{display:flex;flex-wrap:wrap;gap:8px;min-height:32px;align-items:flex-start}.event-meta-line span{border:1px solid rgba(103,232,249,.12);border-radius:999px;color:var(--muted);background:#02070b4d;padding:6px 9px;font-size:12px}.event-card pre{height:220px;overflow:auto;margin:0;border:1px solid rgba(103,232,249,.12);border-radius:12px;background:#02070b94;color:#dffbff;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.55;padding:12px;white-space:pre-wrap;word-break:break-word}.tiny-pill.muted{color:var(--muted);border-color:#7fa4b33d}.loading-panel,.empty-state,.empty-inline,.notice{padding:16px;color:var(--muted)}.notice{color:#a5f3fc}.notice.error{color:#ffe1e1;border-color:#ff6b6b5c}@media(max-width:980px){.app-shell,.app-shell-collapsed{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar-collapsed{position:sticky;top:0;z-index:20;height:auto;min-height:72px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:center;gap:14px;padding:10px 14px}.sidebar-collapsed-mark{width:46px;height:46px}.sidebar-collapsed-mark img{width:40px}.sidebar-collapsed-nav{width:auto;display:flex;align-items:center;gap:8px;margin-top:0}.sidebar-nav,.metric-grid,.form-grid,.form-grid-2,.form-grid-3,.data-grid,.detail-grid,.entity-detail-grid,.source-grid,.customer-card-grid,.factory-card-grid,.integration-card-grid,.contract-card-grid,.firmware-card-grid,.ota-job-grid,.finance-card-grid,.finance-two-column,.finance-metric-grid,.finance-summary-grid,.simulation-form-grid,.simulation-option-grid,.simulation-summary-grid,.event-list,.filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-metric-grid,.finance-summary-grid{grid-template-columns:repeat(2,minmax(170px,1fr))}.panel-metric-grid{grid-template-columns:repeat(5,minmax(90px,1fr))}}@media(max-width:680px){.content-shell{padding:18px}.sidebar-collapsed{justify-content:space-between;gap:8px;overflow-x:auto;padding:9px 12px}.sidebar-collapsed-nav{gap:7px}.collapsed-nav-item{width:42px;height:42px;flex:0 0 42px}.toast-stack{top:14px;right:14px;left:14px;width:auto}.page-header,.page-intro,.section-heading,.factory-header{align-items:flex-start;flex-direction:column}.metric-grid,.form-grid,.form-grid-2,.form-grid-3,.data-grid,.detail-grid,.entity-detail-grid,.source-grid,.customer-card-grid,.factory-card-grid,.integration-card-grid,.contract-card-grid,.firmware-card-grid,.ota-job-grid,.finance-card-grid,.finance-two-column,.finance-metric-grid,.finance-summary-grid,.simulation-form-grid,.simulation-option-grid,.simulation-summary-grid,.filter-panel,.event-list,.drawer-form-grid,.drawer-actions,.technical-summary-grid,.integration-target-summary,.integration-contract-list,.sidebar-nav,.simulation-extra-row{grid-template-columns:1fr}.simulation-submit{justify-self:stretch}.panel-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.panel-metric-grid .metric-card{min-height:78px;padding:12px}.panel-metric-grid .metric-card:nth-child(1),.panel-metric-grid .metric-card:nth-child(2){grid-column:span 3}.panel-metric-grid .metric-card:nth-child(n+3){grid-column:span 2}.panel-metric-grid .metric-card span{font-size:12px}.panel-metric-grid .metric-card strong{font-size:24px}.records-heading{align-items:flex-start;flex-direction:column}.factory-card,.contract-card{align-items:flex-start}.factory-card{grid-template-columns:1fr}.contract-card{flex-direction:column}.finance-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-list-row{align-items:flex-start;flex-direction:column}.finance-list-values{flex:none;text-align:left;width:100%}.finance-context-actions,.finance-visibility-row{justify-content:stretch}.finance-context-actions>button,.finance-visibility-row>button{flex:1}.finance-bar-chart{grid-template-columns:repeat(3,minmax(0,1fr))}.simulation-line{align-items:flex-start;flex-direction:column}.simulation-line-values{flex:none;text-align:right;width:100%}.build-part-row{grid-template-columns:1fr}.firmware-card-header,.ota-job-topline{flex-direction:column}.contract-card-chips{justify-content:flex-start}.factory-card-icon{display:none}.event-card{grid-template-rows:minmax(52px,auto) minmax(22px,auto) minmax(32px,auto) 190px;min-height:350px}.event-card pre{height:190px}.factory-identity{align-items:flex-start;flex-direction:column}.section-actions,.page-intro-actions,.wizard-actions{width:100%;justify-content:stretch}.section-actions>*,.page-intro-actions>*,.wizard-actions>*{width:100%}.page-intro{padding:20px}.page-intro-main{gap:13px}.page-intro-icon{width:46px;height:46px;border-radius:13px}.customer-card-main{justify-items:center;text-align:center}.customer-card .client-logo-box,.factory-identity .client-logo-box{width:100%;height:96px;border:0;border-radius:0;background:transparent;padding:0}.customer-card .client-logo-box img,.factory-identity .client-logo-box img{max-height:78px}.factory-identity{align-items:center;flex-direction:column;text-align:center;width:100%}}
