:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;display:block;background:#f5f7fb;color:#1f2937}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg0:#040913;--bg1:#070f1f;--panel:rgba(10,18,34,.78);--panel2:rgba(8,14,28,.7);--stroke:rgba(255,255,255,.1);--stroke2:rgba(0,255,200,.16);--text:#e5f2ff;--muted:rgba(229,242,255,.72);--accent:#00ffc8;--accent2:#3aa0ff;--ok:#00c26a;--warn:#ffb020;--bad:#ff2b3f;--shadow: 0 18px 55px rgba(0,0,0,.55);--radius:16px}*{box-sizing:border-box}html,body,#root{height:100%}body,html,#root{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 20% 10%,rgba(0,255,200,.14),transparent 45%),radial-gradient(circle at 80% 40%,rgba(58,160,255,.12),transparent 50%),radial-gradient(circle at 55% 90%,rgba(255,43,63,.06),transparent 45%),linear-gradient(180deg,var(--bg0),var(--bg1));overflow:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.45;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 44px),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 44px);mix-blend-mode:screen}body:after{content:"";position:fixed;left:-10%;right:-10%;top:-20%;height:35%;background:linear-gradient(180deg,transparent,rgba(0,255,200,.12),transparent);filter:blur(2px);opacity:.4;animation:scadaSweep 8s linear infinite;pointer-events:none}@keyframes scadaSweep{0%{transform:translateY(-40%)}to{transform:translateY(220%)}}.login-page{position:fixed;inset:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(0,255,200,.16),transparent 45%),radial-gradient(circle at 80% 40%,rgba(58,160,255,.14),transparent 55%),linear-gradient(180deg,#040913,#070f1f)}.login-card{width:100%;max-width:560px;border-radius:20px;padding:28px 28px 18px;background:#0a1222d1;box-shadow:var(--shadow);border:1px solid rgba(0,255,200,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;inset:-2px;background:radial-gradient(circle at 20% 10%,rgba(0,255,200,.2),transparent 35%),radial-gradient(circle at 80% 70%,rgba(58,160,255,.18),transparent 40%);opacity:.55;pointer-events:none}.login-title{position:relative;margin:8px 0 18px;font-size:20px;letter-spacing:1px;font-weight:900;text-transform:uppercase}.login-form{text-align:left;position:relative}.login-label{font-size:12px;color:#e5f2ffbf}.login-input{height:40px;font-size:14px;border-radius:12px}.login-btn{width:100%;margin-top:8px;height:42px;border-radius:12px;font-weight:900;background:linear-gradient(180deg,#00ffc838,#00ffc81a);border:1px solid rgba(0,255,200,.28);color:var(--text)}.login-btn:hover{filter:brightness(1.06)}.login-error{background:#ff2b3f24;color:#ffd7dd;border:1px solid rgba(255,43,63,.35);padding:8px 10px;border-radius:12px;font-size:13px;margin:6px 0 10px;position:relative}.login-footer{margin-top:12px;font-size:11px;color:#e5f2ffa6;text-align:center;position:relative}.login-logo-wrap{display:flex;justify-content:center;margin-top:4px;position:relative}.login-logo{width:120px;height:auto;margin-bottom:6px}.login-logo-fallback{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:6px}.login-logo-arc{width:110px;height:55px;border-top-left-radius:110px;border-top-right-radius:110px;background:linear-gradient(180deg,#00ffc88c,#00ffc840);position:relative;border:1px solid rgba(0,255,200,.25)}.login-logo-arc:after{content:"";position:absolute;left:50%;top:-6px;width:8px;height:8px;margin-left:-4px;background:#e5f2ffa6;border-radius:50%}.login-logo-text{font-weight:900;font-size:18px;color:#e5f2ffc7;letter-spacing:.6px}.app-shell{display:grid;grid-template-columns:280px 1fr;height:100vh}.sidebar{background:linear-gradient(180deg,#0a1222eb,#070e1ceb);color:var(--text);display:flex;flex-direction:column;padding:18px;gap:14px;border-right:1px solid rgba(0,255,200,.12);box-shadow:inset -1px 0 #ffffff0d;position:relative;overflow:hidden}.sidebar:before{content:"";position:absolute;inset:-2px;background:radial-gradient(circle at 20% 10%,rgba(0,255,200,.16),transparent 40%),radial-gradient(circle at 80% 70%,rgba(58,160,255,.14),transparent 45%);opacity:.55;pointer-events:none}.sidebar-header{position:relative;display:flex;flex-direction:column;gap:10px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.brand{font-weight:950;font-size:18px;letter-spacing:.8px;text-transform:uppercase}.user-info{font-size:12px;color:var(--muted)}.user-name{font-weight:900;color:var(--text)}.user-role{opacity:.8}.nav{position:relative;display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-right:2px;overflow:auto}.nav-item{padding:11px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);color:#e5f2ffdb;border-radius:14px;text-align:left;cursor:pointer;transition:.16s ease;font-size:13px;font-weight:750;position:relative}.nav-item:hover{background:#00ffc80f;border-color:#00ffc82e}.nav-item.active{background:linear-gradient(180deg,#00ffc838,#00ffc817);border-color:#00ffc847;color:var(--text);box-shadow:0 10px 24px #00000052,inset 0 0 0 1px #ffffff0f}.nav-item.active:after{content:"";position:absolute;left:10px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:999px;background:#00ffc8e6;box-shadow:0 0 18px #00ffc899}.content{overflow:auto;padding:18px 22px 36px}.page{max-width:1260px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.page-header h1{margin:0;font-size:26px;letter-spacing:.6px}.page-header p{margin:6px 0 0;color:var(--muted)}.card{background:var(--panel);border-radius:var(--radius);padding:16px;border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.card:before{content:"";position:absolute;inset:-1px;border-radius:var(--radius);background:linear-gradient(180deg,rgba(0,255,200,.12),transparent 30%,rgba(58,160,255,.1));opacity:.45;pointer-events:none}.card>*{position:relative}.card h2{margin-top:0;font-size:18px;letter-spacing:.4px}.card-header-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;font-size:12px;font-weight:800;color:#e5f2ffe0}.form{display:flex;flex-direction:column;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.flex-1{flex:1;min-width:200px}label{font-size:12px;color:#e5f2ffc7;font-weight:800;letter-spacing:.35px}.input{border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:10px 12px;font-size:14px;outline:none;transition:.14s ease;background:#ffffff0a;color:var(--text)}.input::placeholder{color:#e5f2ff73}.input:focus{border-color:#00ffc859;box-shadow:0 0 0 3px #00ffc81f}.input.small{padding:6px 8px;font-size:13px;border-radius:12px;min-width:160px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}.button,.btn{border:1px solid rgba(255,255,255,.16);background:#ffffff0a;padding:10px 14px;border-radius:14px;cursor:pointer;font-size:14px;font-weight:850;transition:.14s ease;color:#e5f2ffeb}.button:hover,.btn:hover{border-color:#00ffc840;background:#00ffc80f}.button.primary{background:linear-gradient(180deg,#00ffc838,#00ffc81a);border-color:#00ffc84d;color:var(--text)}.button.primary:hover{filter:brightness(1.06)}.button.danger{background:#ff2b3f24;border-color:#ff2b3f59;color:#ffd7dd}.button.danger:hover{filter:brightness(1.04)}.button.small{padding:6px 8px;font-size:12px;border-radius:12px}.button.button-secondary,.button.secondary{background:#3aa0ff1a;border-color:#3aa0ff47}.button.button-secondary:hover,.button.secondary:hover{background:#3aa0ff24}.button.logout{margin-top:auto;background:#ffffff0a;border-color:#ffffff24}.button.logout:hover{background:#ffffff0f}.alert{padding:10px 12px;border-radius:14px;font-size:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a}.alert.info{border-color:#3aa0ff4d;background:#3aa0ff1a;color:#e5f2ffeb}.alert.error{border-color:#ff2b3f5c;background:#ff2b3f1f;color:#ffd7dd}.barcode-section{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px dashed rgba(255,255,255,.18);background:#ffffff08;padding:12px;border-radius:16px;margin-bottom:10px}.barcode-label{margin:0;font-size:13px;color:var(--muted)}.barcode-number{font-size:22px;font-weight:950;letter-spacing:2px;color:var(--text)}.qr-wrapper img{width:170px;height:170px;border-radius:12px}.table-wrap{overflow:auto}.table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}.table th,table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}table th{font-size:11px;text-transform:uppercase;color:#e5f2ffb3;letter-spacing:.8px;white-space:nowrap}table td{white-space:normal;word-break:break-word;line-height:1.35;color:#e5f2ffe6}.table tr:hover td{background:#00ffc80d}.scanned-card{margin-top:10px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:16px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;font-size:14px;margin-bottom:8px}.detail-section-title{margin:6px 0 8px;font-weight:900;font-size:14px}.detail-wrap{display:flex;flex-direction:column;gap:6px}.muted{color:#e5f2ffa3;font-size:13px}.date-val{font-size:3.5mm}.modal-overlay{position:fixed;inset:0;background:#030812b8;display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.modal{width:min(560px,96vw);background:#0a1222eb;border-radius:18px;box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(0,255,200,.16)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#00ffc829,#00ffc80f)}.close-button{border:none;background:transparent;color:#e5f2ffe6;font-size:22px;cursor:pointer;line-height:1}.close-button:hover{opacity:.85}.scanner-overlay{position:fixed;inset:0;background:#030812c7;display:flex;align-items:center;justify-content:center;z-index:9999}.scanner-modal{width:min(520px,96vw);background:#0a1222eb;border-radius:18px;padding:12px;border:1px solid rgba(0,255,200,.14);box-shadow:var(--shadow)}#qr-region,.qr-region{width:100%;min-height:320px}.chart-wrap{width:100%;overflow-x:auto;padding-top:8px}.chart-svg{width:100%;min-width:900px;height:auto}.chart-axis{stroke:#efffe547;stroke-width:1}.chart-bar{fill:#3aa0ffb8;rx:6}.chart-line{stroke:#ff2b3fd9;stroke-width:2.5}.chart-dot{fill:#ff2b3fd9}.chart-label{font-size:11px;fill:#e5f2ffc7}.chart-value{font-size:11px;fill:#e5f2fff5;font-weight:900}.chart-tick{font-size:11px;fill:#ffe5e5b3}.chart-legend{display:flex;gap:16px;align-items:center;font-size:13px;color:#e5f2ffb3;margin-top:6px}.legend-bar,.legend-line{display:inline-block;width:14px;height:6px;border-radius:3px}.legend-bar{background:#3aa0ffb8}.legend-line{background:#ff2b3fd9;height:3px}.targets-list ul{margin:6px 0 0;padding-left:18px}.targets-list li{margin:2px 0}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin-top:6px;padding:10px 12px;border:1px dashed rgba(255,255,255,.18);border-radius:16px;background:#ffffff08}.checkbox-item{display:flex;align-items:center;font-size:14px;gap:8px;white-space:nowrap;color:#e5f2ffe0}.checkbox-item input{width:16px;height:16px;accent-color:var(--accent)}@media(max-width:900px){body,html,#root{overflow:auto}.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;position:sticky;top:0;z-index:2;border-right:none;border-bottom:1px solid rgba(0,255,200,.12)}.nav{flex-direction:row;overflow-x:auto}.button.logout{margin-top:0;margin-left:auto}.form-grid,.detail-grid{grid-template-columns:1fr}.barcode-section{flex-direction:column;align-items:flex-start}}
