*,body{margin:0;padding:0}body{background-color:#f5f5f5;color:#3d3e41}#root,body,html{min-height:100vh}#root,html{height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f5f6f7}::-webkit-scrollbar-thumb{background:#dadce0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#b8bec3}.btn-primary{background-color:#e3821e}.btn-primary:hover{background-color:#d6730a}.btn-secondary{background-color:#fff}.btn-secondary:hover{background-color:#f8f9fa}.btn-success{background-color:#34a853}.btn-success:hover{background-color:#2d8a47}.btn-warning{background-color:#fbbc05;color:#202124}.btn-warning:hover{background-color:#f4b400}.btn-danger{background-color:#ea4335}.btn-danger:hover{background-color:#d93025}.card{border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:16px 0;padding:20px}.input{border:2px solid #dadce0;border-radius:6px;font-size:14px;padding:12px;transition:border-color .2s ease;width:100%}.input:focus{border-color:#e3821e;outline:none}.input:disabled{background-color:#f5f6f7;cursor:not-allowed}.label{color:#3d3e41;display:block;font-weight:500;margin-bottom:8px}.status-indicator{border-radius:12px;gap:6px;padding:4px 8px}.status-connected{color:#34a853}.status-disconnected{background-color:#fee7e6;color:#ea4335}.status-warning{background-color:#fef7e0;color:#fbbc05}.fade-in{animation:fadeIn .3s ease-in}.slide-in{animation:slideIn .3s ease-out}.login-content{margin:0 auto;max-width:420px;padding:40px;width:100%}.login-header{animation:fadeDown .6s ease-out;margin-bottom:48px;text-align:center}.logo-image{display:block;height:60px!important;margin-bottom:32px;margin-left:auto;margin-right:auto;object-fit:contain;width:auto!important}.login-title{color:#111827;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px}.login-subtitle{color:#6b7280;font-family:Inter,sans-serif;font-size:16px;font-weight:400;line-height:1.5;margin:0}.login-form{animation:fadeUp .6s ease-out .1s backwards}.form-group{margin-bottom:20px}.input-container{align-items:center;background:#f3f4f6;border:1px solid #0000;border-radius:12px;display:flex;height:56px;position:relative;transition:all .2s ease-in-out}.input-container:hover{background:#e5e7eb}.input-container:focus-within{background:#fff;border-color:#f7941d;box-shadow:0 0 0 4px #f7941d26}.input-icon-inside{align-items:center;border-right:1px solid #d1d5db;color:#9ca3af;display:flex;font-size:18px;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;transition:all .2s ease;width:48px;z-index:1}.input-container:focus-within .input-icon-inside{border-right-color:#f7941d;color:#f7941d}.form-input{background:#0000;border:none;border-radius:12px;color:#1f2937;font-family:Inter,sans-serif;font-size:16px;font-weight:500;height:100%;outline:none;padding:0 20px 0 62px!important;width:100%}.form-input::placeholder{color:#9ca3af;font-weight:400}.password-toggle{align-items:center;border-radius:50%;color:#9ca3af;display:flex;padding:8px;right:16px;transition:all .2s}.password-toggle:hover{background-color:#0000000d;color:#4b5563}.login-button{align-items:center;background:#f7941d;border:none;border-radius:12px;box-shadow:0 4px 12px #f7941d40;color:#fff;cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:16px;font-weight:600;gap:12px;height:56px;justify-content:center;letter-spacing:.01em;margin-top:32px;transition:all .2s ease;width:100%}.login-button:hover:not(:disabled){background:#e08316;box-shadow:0 8px 20px #f7941d59;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.7}.login-footer{animation:fadeUp .6s ease-out .2s backwards;margin-top:32px;text-align:center}.login-footer p{color:#6b7280;font-size:15px}.login-footer a{color:#f7941d!important;font-weight:600!important;transition:color .2s}.login-footer a:hover{color:#d6730a!important;text-decoration:underline}.error-message{background:#fef2f2;border:1px solid #fee2e2;border-radius:12px;color:#ef4444}.error-message,.success-message{font-size:14px;margin-bottom:24px;padding:14px}.success-message{background:#ecfdf5;border:1px solid #d1fae5;border-radius:12px;color:#10b981}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-top-color:#fff;height:20px;width:20px}@keyframes fadeDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.login-content{padding:24px}.login-title{font-size:28px}}.auth-layout{max-height:100vh;min-height:100vh;overflow:hidden}.auth-layout,.auth-left{background:#fff;display:flex}.auth-left{align-items:center;flex:0 0 45%;justify-content:center;overflow-y:auto;padding:40px;position:relative;z-index:2}@media (max-width:1024px){.auth-left{flex:0 0 100%;padding:30px 20px}}.auth-right{align-items:center;background:linear-gradient(135deg,#ff8c00,orange 50%,#ffb84d);display:flex;flex:1 1;justify-content:center;overflow:hidden;position:relative}@media (max-width:1024px){.auth-right{display:none}}.right-content{display:flex;flex-direction:column;gap:25px;justify-content:center;max-width:650px;padding:20px;position:relative;width:100%;z-index:1}.hero-section{animation:fadeInUp .8s ease-out;text-align:center}.scanner-image-container{align-items:center;display:flex;gap:0;height:320px;justify-content:center;left:-100px;margin:0 auto 20px;max-width:700px;position:relative;width:100%}.model-text{color:#fff;font-size:48px;font-weight:900;letter-spacing:2px;margin-left:-200px;position:relative;text-shadow:0 4px 20px #0000004d;white-space:nowrap;z-index:3}.scanner-image{filter:drop-shadow(0 20px 40px rgba(0,0,0,.3));height:700px;object-fit:contain;position:relative;top:-30px;width:700px;z-index:2}.scanner-glow{background:radial-gradient(circle,#ffffff4d 0,#0000 70%);border-radius:50%;filter:blur(40px);height:430px;left:0;opacity:.6;position:absolute;width:430px;z-index:1}.hero-title{animation:fadeInUp .8s ease-out .2s both;color:#fff;font-size:36px;font-weight:800;line-height:1.2;margin:0 0 10px;text-shadow:0 4px 20px #0003}.hero-subtitle{animation:fadeInUp .8s ease-out .4s both;color:#fffffff2;font-size:15px;line-height:1.4;margin:0}.features-grid{grid-gap:15px;animation:fadeInUp .8s ease-out .6s both;display:grid;gap:15px;grid-template-columns:repeat(3,1fr)}.feature-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:12px;padding:16px 14px;text-align:center;transition:all .3s ease}.feature-card:hover{background:#ffffff40;box-shadow:0 8px 20px #0003;transform:translateY(-3px)}.feature-icon{filter:drop-shadow(0 2px 8px rgba(0,0,0,.2));font-size:28px;margin-bottom:8px}.feature-title{color:#fff;font-size:13px;font-weight:700;margin:0 0 6px}.feature-description{color:#ffffffe6;font-size:11px;line-height:1.4;margin:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.auth-left{padding:30px 20px}.hero-title{font-size:28px}.hero-subtitle{font-size:13px}.scanner-image-container{flex-direction:column;gap:12px;height:auto;margin-bottom:15px}.model-text{font-size:36px}.scanner-image{height:220px;width:220px}.scanner-glow{height:270px;width:270px}.features-grid{gap:12px;grid-template-columns:1fr}}.navigation{background:linear-gradient(180deg,#e3821e,#d6730a);box-shadow:4px 0 30px #0000001a;box-sizing:border-box;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;height:100vh;left:0;overflow:hidden;padding:20px;position:fixed;top:0;transition:all .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:1000}.nav-content::-webkit-scrollbar,.nav-menu::-webkit-scrollbar,.navigation::-webkit-scrollbar{display:none}.nav-content,.nav-menu,.navigation{-ms-overflow-style:none;scrollbar-width:none}.admin-navigation.collapsed,.expo-navigation.collapsed,.full-access-navigation.collapsed,.navigation.collapsed{padding:12px;width:88px!important}.nav-header{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:16px;box-shadow:0 4px 20px #0000000d;flex-direction:column;flex-shrink:0;gap:0;margin-bottom:30px;min-height:auto;padding:8px;position:relative;transition:all .3s ease}.nav-header,.nav-logo{align-items:center;display:flex;justify-content:center}.nav-logo{background:#0000;box-sizing:border-box;height:70px;padding:0 30px;transform:translateY(18px);width:100%}.nav-logo .admin-logo-image,.nav-logo .expo-logo-image,.nav-logo .full-access-logo-image,.nav-logo .logo-image{filter:brightness(0) invert(1);height:100%;height:70px!important;max-width:100%;object-fit:contain;width:auto!important}.nav-toggle{align-items:center;background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:8px;top:8px;transition:all .2s;width:24px;z-index:10}.nav-toggle:hover{background:#fff6}.navigation.collapsed .nav-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:none;box-shadow:none;justify-content:center;margin-bottom:20px;min-height:auto;padding:0}.navigation.collapsed .nav-logo{display:none!important}.navigation.collapsed .nav-toggle{background:#fff3;border-radius:12px;font-size:18px;height:44px;position:relative;right:auto;top:auto;width:44px}.nav-content{flex:1 1;overflow-y:auto}.nav-content,.nav-menu{display:flex;flex-direction:column;padding:0}.nav-menu{gap:8px;list-style:none;margin:0}.nav-item{margin:0}.nav-link{align-items:center;border:1px solid #0000;border-radius:12px;color:#ffffffe6;display:flex;font-size:15px;font-weight:500;overflow:hidden;padding:14px 20px;text-decoration:none;transition:all .2s cubic-bezier(.25,.46,.45,.94);white-space:nowrap}.nav-link:hover{background-color:#ffffff26;color:#fff;transform:translateX(4px)}.nav-link.active{background:#fff;box-shadow:0 4px 16px #00000026;color:#e3821e;font-weight:700}.nav-icon{align-items:center;display:flex;font-size:20px;justify-content:center;margin-right:16px;min-width:24px}.nav-label{white-space:nowrap}.navigation.collapsed .nav-link{justify-content:center;padding:14px 0}.navigation.collapsed .nav-icon{font-size:22px;margin-right:0}.navigation.collapsed .nav-label{display:none}.nav-footer{margin-top:auto;padding-top:20px}.nav-version,.user-info{display:none!important}.logout-btn{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:10px;justify-content:center;padding:14px;transition:all .2s;width:100%}.logout-btn:hover{background:#fff;box-shadow:0 4px 12px #0000001a;color:#e3821e}.navigation.collapsed .logout-btn span{display:none}.navigation.collapsed .logout-btn{padding:12px 0}@media (max-width:768px){.navigation{left:-280px}.navigation.open{left:0}}.admin-navigation,.expo-navigation,.full-access-navigation{background:linear-gradient(180deg,#e3821e,#d6730a)!important;box-shadow:4px 0 30px #0000001a!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;height:100vh!important;left:0!important;overflow:hidden!important;padding:20px!important;position:fixed!important;top:0!important;width:280px!important;z-index:1000!important}.dashboard{padding:24px}.dashboard,.dashboard-tiles{margin:0 auto;max-width:1200px}.tiles-section{margin-bottom:40px}.tiles-section h2{color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-semibold);margin-bottom:20px;text-align:left}.tiles-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:30px}.dashboard-tile{background:#fff;border:1px solid #f0f0f0;border-radius:16px;box-shadow:0 4px 12px #00000014;color:inherit;cursor:pointer;display:block;overflow:hidden;padding:24px;position:relative;text-decoration:none;transition:all .3s ease}.dashboard-tile:hover{border-color:#e3821e;box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.tile-header{gap:16px;margin-bottom:16px}.tile-header,.tile-icon{align-items:center;display:flex}.tile-icon{border-radius:12px;color:#fff;font-size:20px;height:48px;justify-content:center;min-height:48px;min-width:48px;width:48px}.tile-icon svg{fill:currentColor;height:20px;width:20px}.tile-title{color:#3d3e41;flex:1 1;font-size:18px;font-weight:600}.tile-content{margin-bottom:16px}.tile-content p{color:#666;font-size:14px;line-height:1.5;margin:0}.tile-footer{align-items:center;display:flex;justify-content:flex-end}.tile-arrow{color:#e3821e;font-size:18px;font-weight:700;transition:transform .3s ease}.dashboard-tile:hover .tile-arrow{transform:translateX(4px)}.status-tile .tile-content{display:flex;flex-direction:column;gap:8px}.status-indicator{display:inline-block;letter-spacing:.5px;width:-webkit-fit-content;width:fit-content}.status-connected{background-color:#e8f5e8;color:#2e7d32}.status-warning{background-color:#fff3e0;color:#f57c00}.status-error{background-color:#ffebee;color:#d32f2f}.status-unknown{background-color:#f5f5f5;color:#757575}.dashboard-content{grid-gap:32px;display:grid;gap:32px}.dashboard-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.dashboard-section h2{align-items:center;color:#202124;display:flex;font-size:20px;font-weight:600;gap:12px;margin-bottom:20px}.quick-actions-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.quick-action-card{align-items:center;border:2px solid #f5f6f7;border-radius:8px;color:inherit;display:flex;gap:16px;padding:20px;text-decoration:none;transition:all .2s ease}.quick-action-card:hover{border-color:#007acc;box-shadow:0 4px 12px #007acc26;transform:translateY(-2px)}.action-icon{align-items:center;border-radius:8px;color:#fff;display:flex;font-size:20px;height:50px;justify-content:center;width:50px}.action-content h3{color:#202124;font-size:16px;font-weight:600;margin-bottom:4px}.action-content p{color:#5f6368;font-size:14px;margin:0}.status-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.status-error,.status-loading{color:#5f6368;padding:40px;text-align:center}.status-detail{color:#5f6368;font-size:12px;line-height:1.4;margin-top:4px}.performance-metrics{color:#9aa0a6;font-size:11px;margin-top:4px}.status-card{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;padding:20px}.status-header{align-items:center;color:#5f6368;display:flex;font-weight:500;gap:8px;margin-bottom:12px}.status-header svg{color:#007acc}@media (max-width:768px){.dashboard{padding:0 16px}.stats-grid{gap:16px}.quick-actions-grid,.stats-grid,.status-grid{grid-template-columns:1fr}.dashboard-brand{flex-direction:column;gap:16px}.dashboard-brand,.dashboard-title{text-align:center}.dashboard-title h1{font-size:24px}.dashboard-logo{height:70px;width:70px}.stat-card{padding:20px}.stat-icon{height:50px;width:50px}.stat-icon,.stat-value{font-size:24px}}.barcode-scanner{margin:0 auto;max-width:1200px;padding:24px}.scanner-tabs{border-bottom:2px solid #e8eaed;display:flex;gap:8px;justify-content:center;margin-bottom:24px;padding-bottom:0}.tab-button{align-items:center;background:#0000;border:none;border-bottom:3px solid #0000;color:#5f6368;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.tab-button.active,.tab-button:hover{background:#f8f9fa;color:#007acc}.tab-button.active{border-bottom-color:#007acc}.scanner-container{grid-gap:32px;display:grid;gap:32px;grid-template-columns:1fr 2fr;min-height:600px}.scan-section h2{color:#202124;font-size:20px;font-weight:600;margin-bottom:20px}.mode-selector{gap:12px}.esp32-status,.mode-selector{display:flex;justify-content:center;margin-bottom:24px}.esp32-status{background:#f8f9fa;border-radius:8px;gap:20px;padding:16px}.esp32-devices{display:flex;flex-direction:column;gap:20px}.devices-list h3{color:#202124;font-size:18px;font-weight:600;margin-bottom:16px}.device-card{border:1px solid #e8eaed;border-radius:8px;padding:16px;transition:box-shadow .2s ease}.device-card:hover{box-shadow:0 2px 8px #0000001a}.device-header{margin-bottom:12px}.device-name{color:#202124;flex:1 1;font-weight:600}.device-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px;text-transform:uppercase}.device-status.connected{background:#e8f5e8;color:#34a853}.device-status.disconnected{background:#fee7e6;color:#ea4335}.device-details{grid-gap:8px;display:grid;font-size:14px;gap:8px;grid-template-columns:1fr 1fr}.device-details p{color:#5f6368;margin:0}.device-details strong{color:#202124}.no-devices{border-radius:8px;padding:40px 20px}.latest-scan{background:#f8f9fa;border-left:4px solid #007acc;border-radius:8px;padding:16px}.latest-scan h3{color:#202124;font-size:16px;font-weight:600;margin:0 0 12px}.scan-info{grid-gap:8px;display:grid;gap:8px}.scan-info p{color:#5f6368;font-size:14px;margin:0}.scan-info strong{color:#202124}.mode-btn{align-items:center;background:#fff;border:2px solid #dadce0;border-radius:8px;color:#5f6368;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 20px;transition:all .2s ease}.mode-btn.active,.mode-btn:hover{border-color:#007acc;color:#007acc}.mode-btn.active{background:#e3f2fd}.camera-section{display:flex;flex-direction:column;gap:20px}.camera-container{background:#f8f9fa;border:2px solid #dadce0;border-radius:8px;overflow:hidden}.camera-viewport{margin:0 auto;max-width:640px;position:relative;width:100%}.camera-viewport video{display:block;height:auto;width:100%}.scan-overlay{align-items:center;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0}.scan-frame{background:#007acc1a;border:2px solid #007acc;border-radius:8px;height:100px;width:200px}.scan-instructions{background:#000000b3;border-radius:20px;color:#fff;font-size:14px;font-weight:500;margin-top:16px;padding:8px 16px}.camera-placeholder{align-items:center;color:#9aa0a6;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.camera-placeholder svg{color:#dadce0;margin-bottom:16px}.camera-placeholder p{font-size:16px;margin:0}.camera-controls,.scanning-controls{display:flex;justify-content:center}.scanning-controls{gap:12px}.error-message{align-items:center;background:#fee7e6;border-radius:8px;color:#ea4335;display:flex;font-weight:500;gap:8px;padding:12px 16px}.upload-section{display:flex;flex-direction:column;gap:20px}.upload-area{border:2px dashed #dadce0;border-radius:8px;padding:40px 20px;text-align:center;transition:border-color .2s ease}.upload-area:hover{border-color:#007acc}.upload-label{align-items:center;color:#5f6368;cursor:pointer;display:flex;flex-direction:column;gap:16px}.upload-label span{font-size:16px;font-weight:500}.result-section{flex:1 1;min-height:500px}.result-panel{animation:slideIn .3s ease-out}.no-result{align-items:center;color:#9aa0a6;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:60px 20px;text-align:center}.no-result svg{color:#dadce0;margin-bottom:16px}.no-result h3{color:#5f6368;font-size:18px;margin:0 0 8px}.no-result p{color:#9aa0a6;font-size:14px;margin:0}.result-panel h2{color:#202124;font-size:28px;font-weight:700;margin-bottom:30px;text-align:center}.barcode-info{border:2px solid #e8eaed;border-radius:12px;margin-bottom:30px;padding:24px}.barcode-code{color:#202124;font-size:18px}.scan-details{display:flex;flex-direction:column;gap:16px}.detail-row{background:#fff;border:1px solid #e8eaed;border-radius:8px;font-size:16px;font-weight:500;padding:12px 16px}.detail-row strong{color:#007acc;font-weight:600;margin-right:12px;min-width:80px}.barcode-code strong{color:#007acc}.barcode-image{border:1px solid #e8eaed;border-radius:8px;margin-top:16px}.barcode-image svg{color:#007acc;margin-bottom:8px}.barcode-image p{color:#5f6368;font-size:14px;margin:0}.db-record h3{color:#202124;font-size:18px;font-weight:600;margin-bottom:16px}.record-table{background:#fff;border:1px solid #e8eaed;border-radius:8px;margin-bottom:20px;overflow:hidden}.record-table table{border-collapse:collapse;width:100%}.record-table td{border-bottom:1px solid #e8eaed;padding:12px 16px}.record-table td:first-child{color:#5f6368;font-weight:500;width:30%}.record-table td:last-child{color:#202124}.record-table tr:last-child td{border-bottom:none}.result-actions{background:#f8f9fa;border:2px solid #e8eaed;border-radius:12px;flex-wrap:wrap;gap:16px;justify-content:center;margin-bottom:30px;padding:20px}.validation-result{align-items:flex-start;border:1px solid;border-radius:8px;display:flex;gap:16px;padding:20px}.validation-result.valid{background:#e8f5e8;border-color:#34a853;color:#34a853}.validation-result.invalid{background:#fee7e6;border-color:#ea4335;color:#ea4335}.validation-icon{font-size:20px;margin-top:2px}.validation-content h4{font-size:16px;font-weight:600;margin:0 0 8px}.validation-content p{font-size:14px;margin:0;opacity:.9}.manual-input-section{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;margin-top:24px;padding:20px}.manual-input-section h3{color:#202124;font-size:16px;font-weight:600;margin-bottom:16px}.input-group{align-items:center;display:flex;gap:12px}.code-input{border:2px solid #dadce0;border-radius:8px;flex:1 1;font-size:14px;outline:none;padding:12px 16px;transition:border-color .2s ease}.code-input:focus{border-color:#1a73e8}.code-input::placeholder{color:#5f6368}@media (max-width:768px){.scanner-container{gap:16px;grid-template-columns:1fr}.mode-selector{flex-direction:column}.camera-viewport{max-width:100%}.result-actions{flex-direction:column}.result-actions .btn{justify-content:center;width:100%}.barcodes-table .btn-sm{font-size:12px;min-width:60px;padding:4px 8px}.barcodes-table .btn-primary{background-color:#007bff;border-color:#007bff;color:#fff}.barcodes-table .btn-primary:hover{background-color:#0056b3;border-color:#0056b3}.scanner-header h1{font-size:24px}.scan-frame{height:75px;width:150px}}@media (max-width:480px){.camera-placeholder{padding:40px 20px}.upload-area{padding:30px 20px}.record-table td{font-size:14px;padding:8px 12px}}.fade-in{animation:slideIn .3s ease-out}.scanned-barcodes-content{margin-top:24px}.barcodes-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;margin-bottom:24px;padding:20px}.barcodes-header h2{color:#202124;font-size:24px;font-weight:600;margin:0}.barcodes-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.barcodes-table thead{background:#f8f9fa}.barcodes-table th{border-bottom:2px solid #e8eaed;color:#202124;padding:16px 12px}.barcodes-table td{color:#5f6368;padding:16px 12px}.barcodes-table tbody tr:hover{background:#f8f9fa}.barcode-data{color:#007acc;font-family:Courier New,monospace;font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-analysis-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;margin-top:20px;padding:20px}.ai-analysis-section h3{font-size:18px;margin:0 0 15px}.ai-details{display:flex;flex-direction:column;gap:12px}.ai-details .detail-row{align-items:flex-start;border-bottom:1px solid #fff3;display:flex;gap:10px;padding:8px 0}.ai-details .detail-row:last-child{border-bottom:none}.ai-details strong{color:#ffffffe6;font-weight:600;min-width:120px}.ai-description{align-items:flex-start;flex-direction:column}.ai-description-text{background:#ffffff1a;border-left:3px solid #ffffff4d;border-radius:8px;color:#fffffff2;font-size:14px;line-height:1.5;margin:8px 0 0;padding:12px}.status-badge{border-radius:6px;gap:4px;padding:4px 8px}.status-badge.success{background:#4caf5033;border:1px solid #4caf504d;color:#4caf50}.status-badge.error{background:#f4433633;border:1px solid #f443364d;color:#f44336}.product-info-section{background:linear-gradient(135deg,#4caf50,#45a049);border-radius:12px;box-shadow:0 4px 15px #4caf504d;color:#fff;margin-top:20px;padding:20px}.product-info-section h3{align-items:center;color:#fff;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 15px}.product-details{display:flex;flex-direction:column;gap:12px}.product-details .detail-row{align-items:flex-start;border-bottom:1px solid #fff3;display:flex;gap:10px;padding:8px 0}.product-details .detail-row:last-child{border-bottom:none}.product-details strong{color:#ffffffe6;font-weight:600;min-width:120px}.product-details-text{background:#ffffff1a;border-left:3px solid #ffffff4d;border-radius:8px;color:#fffffff2;font-size:14px;line-height:1.5;margin:8px 0 0;padding:12px}.type-badge{display:inline-block}.type-badge.qr{background:#e3f2fd;color:#1976d2}.type-badge.code128{background:#e8f5e8;color:#2e7d32}.type-badge.ean13{background:#fff3e0;color:#f57c00}.source-badge{border-radius:12px;font-size:11px}.source-badge.esp32{background:#e8f5e8;color:#2e7d32}.source-badge.web{background:#e3f2fd;color:#1976d2}.source-badge.app{background:#f3e5f5;color:#7b1fa2}.no-barcodes{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#9aa0a6;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.no-barcodes svg{color:#dadce0;margin-bottom:16px}.no-barcodes h3{color:#5f6368;font-size:18px;margin:0 0 8px}.no-barcodes p{font-size:14px;margin:0}.loading-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:40px}.no-db-record{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;margin-top:16px;padding:20px}.warning-message{color:#856404;text-align:center}.warning-icon{color:#f39c12;font-size:24px;margin-bottom:12px}.warning-message h4{color:#856404;font-size:16px;font-weight:600;margin:0 0 8px}.warning-message p{font-size:14px;line-height:1.4;margin:8px 0}.warning-message ul{margin:12px 0;padding-left:20px;text-align:left}.warning-message li{font-size:13px;margin:4px 0}.action-suggestion{background:#e8f5e8;border:1px solid #c3e6c3;border-radius:6px;margin-top:16px;padding:12px}.action-suggestion p{color:#2e7d32;font-size:13px;margin:0}.auto-created-badge{background:#fff3e0;border:1px solid #ffb74d;border-radius:12px;color:#f57c00;display:inline-block;font-size:11px;font-weight:500;margin-left:8px;padding:2px 8px}.status-badge.needs-review{background:#fff3e0;border:1px solid #ffb74d;color:#f57c00}.structured-data-badge{background:#e3f2fd;border:1px solid #90caf9;border-radius:12px;color:#1976d2;display:inline-block;font-size:11px;font-weight:500;margin-left:8px;padding:2px 8px}.auto-saving-indicator{animation:pulse 1.5s infinite;color:#007acc;font-size:14px;font-weight:500;margin-left:12px}.barcode-row{transition:background-color .2s ease}.barcode-dialog-overlay{padding:20px}.barcode-dialog{box-shadow:0 20px 40px #00000026;max-width:800px;overflow:hidden;width:100%}.barcode-dialog-header{background:#f8f9fa;padding:24px}.barcode-dialog-header h2{font-size:24px;font-weight:600}.close-btn{border-radius:50%}.close-btn:hover{background:#e8eaed}.product-description-section{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;padding:24px}.product-description-section h3{border-bottom:2px solid #007acc;color:#202124;font-size:20px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.product-description-content{background:#fff;border:1px solid #e8eaed;border-radius:6px;color:#202124;font-size:16px;line-height:1.6;min-height:150px;padding:20px}.product-info{gap:16px}.product-field{display:flex;flex-direction:column;gap:4px}.product-field strong{color:#5f6368;font-size:14px;font-weight:600;margin-bottom:4px}.product-field:not(:last-child){border-bottom:1px solid #f1f3f4;padding-bottom:12px}.barcode-dialog-footer{padding:20px 24px}.btn-danger{background:#dc3545;border:1px solid #dc3545}.btn-danger:hover{background:#c82333;border-color:#bd2130}.btn-danger:active{background:#bd2130;border-color:#b21f2d}.ai-analysis-section,.barcode-data-section,.description-section,.scan-info-section{margin-bottom:24px}.ai-analysis-section h3,.barcode-data-section h3,.description-section h3,.scan-info-section h3{align-items:center;border-bottom:1px solid #e8eaed;color:#3d3e41;display:flex;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.ai-analysis-section h3:before,.barcode-data-section h3:before,.description-section h3:before,.scan-info-section h3:before{background:#4285f4;border-radius:2px;content:"";height:18px;margin-right:12px;width:4px}.description-container::-webkit-scrollbar{width:6px}.description-container::-webkit-scrollbar-track{background:#f1f3f4;border-radius:3px}.description-container::-webkit-scrollbar-thumb{background:#dadce0;border-radius:3px}.description-container::-webkit-scrollbar-thumb:hover{background:#bdc1c6}@media (max-width:768px){.barcodes-table-container{overflow-x:auto}.barcodes-table{min-width:800px}.barcodes-header{align-items:stretch;flex-direction:column;gap:16px}.info-grid-two-columns{gap:16px;grid-template-columns:1fr}.auto-saving-indicator{font-size:12px;margin-left:8px}.barcode-dialog{margin:10px;max-width:95vw}.barcode-dialog-header{padding:16px}.barcode-dialog-header h2{font-size:20px}.barcode-dialog-body,.product-description-section{padding:16px}.product-description-section h3{font-size:18px}.product-description-content{font-size:14px;min-height:120px;padding:16px}.product-info{gap:12px}.product-field{gap:3px}.product-field strong{font-size:13px}.product-field:not(:last-child){padding-bottom:8px}}.ai-analysis-section h3{align-items:center;background:#1a73e8;border-radius:8px 8px 0 0;color:#fff;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0;padding:12px 16px}.ai-analysis-container{background:#f8f9fa;border:1px solid #e8eaed;border-radius:0 0 8px 8px;border-top:none;padding:0}.ai-analysis-field{border-bottom:1px solid #e8eaed;display:flex;flex-direction:column;gap:6px;padding:16px}.ai-analysis-field:last-child{border-bottom:none}.ai-analysis-field label{color:#3d3e41;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.ai-analysis-value{background:#fff;border:1px solid #dadce0;border-radius:4px;color:#5f6368;font-size:14px;font-weight:500;padding:8px 12px}.ai-analysis-status{align-items:center;background:#e6f4ea;border:1px solid #ceead6;border-radius:4px;color:#137333;display:flex;font-size:14px;font-weight:600;gap:6px;padding:8px 12px}.status-icon{color:#137333;font-size:16px;font-weight:700}.ai-analysis-description-text{background:#fff;border:1px solid #dadce0;border-radius:4px;color:#5f6368;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.6;min-height:100px;padding:12px;white-space:pre-wrap}.basic-analysis-section{background:linear-gradient(135deg,#4caf50,#45a049);border-radius:12px;box-shadow:0 4px 15px #4caf504d;color:#fff;margin-top:20px;padding:20px}.basic-analysis-section h3{align-items:center;color:#fff;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 15px}.basic-analysis-container{display:flex;flex-direction:column;gap:12px}.basic-analysis-field{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:12px}.basic-analysis-field label{color:#ffffffe6;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.basic-analysis-value{color:#fff;font-size:16px;font-weight:500;word-break:break-word}.basic-analysis-description-text{background:#fff;border:1px solid #e8eaed;border-radius:8px;color:#5f6368;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.6;margin-top:8px;padding:12px}@media (max-width:768px){.ai-analysis-field{padding:12px}.ai-analysis-section h3{font-size:14px;padding:10px 12px}.basic-analysis-field{padding:12px}.basic-analysis-section h3{font-size:14px;padding:10px 12px}}.scanned-barcodes-page{background-color:var(--bg-secondary);min-height:100vh;padding:24px}.page-header{margin-bottom:24px}.page-header h1{color:#202124;font-size:24px;font-weight:600}.page-header p{color:#5f6368;font-size:14px}.search-input .search-icon{color:#5d6368}.action-buttons{flex-wrap:wrap}.btn{padding:10px 20px;transition:all .2s}.btn-secondary{border:1px solid #dadce0;color:#3c4043}.btn-secondary:hover:not(:disabled){background:#f8f9fa;border-color:#dadce0;color:#202124}.btn-primary:hover:not(:disabled){background:#d37315;box-shadow:0 1px 2px #0003}.btn-success:hover:not(:disabled){box-shadow:0 1px 2px #0003}.btn-danger{background:#ea4335}.btn-danger:hover:not(:disabled){background:#d33b2c;box-shadow:0 1px 2px #0003}.scanned-barcodes-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.barcodes-summary{border-bottom:1px solid #e8eaed;padding:24px}.summary-info h2{color:#1a1a1a;font-size:1.5rem;font-weight:600;margin:0 0 8px}.page-info{color:#e3821e;font-weight:500}.barcodes-table-container{overflow-x:auto}.barcodes-table{border-collapse:collapse;width:100%}.barcodes-table thead{background-color:#f8f9fa}.barcodes-table th{color:#5f6368;font-weight:600;text-transform:uppercase}.barcodes-table td,.barcodes-table th{border-bottom:1px solid #e8eaed;font-size:14px;padding:16px 20px;text-align:left}.barcodes-table td{background:#fff;color:#202124}.empty-state,.loading-cell,.no-data{background:#fff!important;color:#5f6368;padding:60px 40px;text-align:center}.empty-icon{display:flex;justify-content:center}.barcodes-table tbody tr:last-child td{border-bottom:none}.barcodes-table tbody tr:hover{background-color:#f8f9fa;cursor:pointer}.barcode-id{font-size:14px}.barcode-data{max-width:250px}.barcode-text{background:#f8f9fa;border-radius:4px;display:block;font-family:Courier New,monospace;font-size:13px;max-width:100%;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.source-badge{background:#e8f0fe;color:#1a73e8}.actions-cell{padding:8px!important;text-align:center}.save-button{align-items:center;background:#34a853;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:4px;margin-right:8px;padding:6px 12px;transition:all .2s ease}.save-button:hover{background:#2e7d32;transform:translateY(-1px)}.delete-button{align-items:center;display:inline-flex;justify-content:center}.barcode-row{cursor:pointer;transition:background-color .2s}.barcode-row:hover{background-color:#f8f9fa}.barcode-id{color:#e3821e;font-weight:600}.barcode-dialog-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.barcode-dialog{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.barcode-dialog-header{align-items:center;border-bottom:1px solid #e8eaed;display:flex;justify-content:space-between;padding:20px 24px}.barcode-dialog-header h2{color:#202124;font-size:20px;margin:0}.barcode-dialog-body{flex:1 1;overflow-y:auto;padding:24px}.barcode-dialog-footer{background:#f8f9fa;border-radius:0 0 12px 12px;border-top:1px solid #e8eaed;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.barcode-dialog-footer .btn{align-items:center;display:inline-flex;gap:8px}.barcode-dialog-footer .btn svg{display:inline-block;flex-shrink:0;height:18px;vertical-align:middle;width:18px}.barcode-data-section h3,.description-section h3,.scan-info-section h3{color:#202124;font-size:16px}.info-grid-two-columns{grid-gap:16px;gap:16px;margin-bottom:24px}.info-field{gap:4px}.info-value{font-size:14px}.barcode-data-container{margin-bottom:24px}.barcode-data-text{color:#202124;font-family:Courier New,monospace;font-size:16px}.description-container{padding:16px}.description-text{line-height:1.5}.ai-analysis-trigger{text-align:center}.btn-ai-analyze{border-radius:24px;box-shadow:0 2px 6px #4285f44d;display:flex;padding:10px 20px;transition:all .2s}.btn-ai-analyze:hover:not(:disabled){box-shadow:0 4px 12px #4285f466;transform:translateY(-1px)}.btn-ai-analyze:disabled{cursor:wait;opacity:.7}.spinner-micro{border:2px solid #ffffff4d;border-top-color:#fff}.spinner-small{animation:spin 1s linear infinite}.status-cell{text-align:center}.status-badge{display:inline-block}.status-badge.status-in{background-color:#e8f5e9;border:1px solid #4caf50;color:#2e7d32}.status-badge.status-out{background-color:#ffebee;border:1px solid #f44336;color:#c62828}.fifo-cell{text-align:center}.fifo-badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.fifo-badge.fifo-pending{background-color:#fff3e0;border:1px solid #ff9800;color:#e65100}.fifo-badge.fifo-ok{background-color:#e8f5e9;border:1px solid #4caf50;color:#2e7d32}.fifo-badge.fifo-warning{animation:pulse 2s ease-in-out infinite;background-color:#ffebee;border:1px solid #f44336;color:#c62828}.fifo-alert-banner{align-items:center;background:linear-gradient(135deg,#fff3e0,#ffebee);border-left:4px solid #f44336;border-radius:8px;box-shadow:0 2px 8px #f4433633;display:flex;gap:16px;margin-bottom:24px;padding:16px 20px}.fifo-alert-icon{flex-shrink:0;font-size:32px}.fifo-alert-content{flex:1 1}.fifo-alert-content strong{color:#c62828;display:block;font-size:16px;margin-bottom:4px}.fifo-alert-content p{color:#5f6368;font-size:14px;margin:0}.barcode-generator{margin:0 auto;max-width:1200px;min-height:100vh;overflow:visible;padding:20px;width:100%}.header{margin-bottom:32px;text-align:center}.header h1{align-items:center;color:#202124;display:flex;font-size:32px;font-weight:700;gap:12px;justify-content:center;margin-bottom:8px}.header p{color:#5f6368;font-size:16px}.backend-status{margin-top:16px;text-align:center}.status-indicator{background:#f8f9fa;border:1px solid #e8eaed}.status-indicator.checking{background:#fff3e0;border-color:#ffb74d;color:#e65100}.status-indicator.running{background:#e8f5e8;border-color:#81c784;color:#2e7d32}.status-indicator.starting{background:#e3f2fd;border-color:#64b5f6;color:#1565c0}.status-indicator.error{background:#ffebee;border-color:#e57373;color:#c62828}.status-text{font-weight:600}.btn-sm{min-width:auto;padding:6px 12px}.main-content{grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;min-height:calc(100vh - 200px);width:100%}@media (min-width:769px){.main-content{gap:32px!important}.form-grid,.main-content{grid-template-columns:1fr 1fr!important}.form-grid{gap:20px!important}.button-group{flex-direction:row!important;gap:12px!important}.button-group .btn{min-width:120px!important;width:auto!important}.download-options{flex-direction:row!important;gap:12px!important}.download-options .btn{flex:1 1!important;width:auto!important}.barcode-generator{padding:20px!important}.barcode-section,.form-section{padding:24px!important}}.form-section{border:1px solid #e8eaed;height:-webkit-fit-content;height:fit-content;min-height:600px;overflow:visible;padding:24px}.form-section h2{color:#202124;font-size:20px;font-weight:600;margin-bottom:24px}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:24px;max-width:100%;overflow:visible;width:100%}.form-group.full-width{grid-column:1/-1}.form-group label{align-items:center;display:flex;gap:6px;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:2px solid #dadce0;border-radius:6px;font-size:14px;padding:12px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007acc;outline:none}.form-group textarea{min-height:80px;resize:vertical}.barcode-type-selector{display:flex;flex-wrap:wrap;gap:12px}.type-option{align-items:center;background:#fff;border:2px solid #dadce0;border-radius:8px;color:#5f6368;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-width:120px;padding:12px 16px;transition:all .3s ease}.type-option:hover{background:#e3821e0d;border-color:#e3821e;box-shadow:0 4px 12px #e3821e26;color:#e3821e;transform:translateY(-2px)}.type-option.selected{background:#e3821e;border-color:#e3821e;box-shadow:0 4px 12px #e3821e4d;color:#fff}.type-option.selected:hover{background:#d6730a;transform:translateY(-2px)}.type-icon{font-size:18px}.type-label{font-weight:600;white-space:nowrap}.button-group{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.btn{min-width:120px;padding:12px 20px}.btn:disabled{opacity:.6}.btn-primary:hover:not(:disabled){background:#005a9e}.generate-btn{background:linear-gradient(135deg,#e3821e,#d6730a);box-shadow:0 4px 12px #e3821e4d;font-size:16px;font-weight:600;min-width:180px;overflow:hidden;padding:16px 24px;position:relative}.generate-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.generate-btn:hover:not(:disabled):before{left:100%}.generate-btn:hover:not(:disabled){background:linear-gradient(135deg,#d6730a,#c5630a);box-shadow:0 6px 20px #e3821e66;transform:translateY(-2px)}.generate-btn:active:not(:disabled){transform:translateY(0)}.btn-success{background:#34a853}.btn-success:hover:not(:disabled){background:#2e7d32}.btn-warning{background:#fb8c00;color:#fff}.btn-warning:hover:not(:disabled){background:#e65100}.btn-secondary{background:#5f6368;color:#fff}.btn-secondary:hover:not(:disabled){background:#3c4043}.btn-download{background:#4285f4;color:#fff;flex:1 1}.btn-download:hover{background:#3367d6}.message{border-radius:8px;font-weight:500;margin-top:16px;padding:12px 16px}.message.success{background:#e8f5e8;border:1px solid #34a853;color:#34a853}.message.error{background:#fee7e6;border:1px solid #ea4335;color:#ea4335}.barcode-section{background:#fff;border:1px solid #e8eaed;border-radius:8px;height:-webkit-fit-content;height:fit-content;padding:24px}.barcode-section h2{color:#202124;font-size:20px;font-weight:600;margin-bottom:24px}.barcode-display{background:#fff;border:2px solid #e8eaed;border-radius:8px;overflow:hidden}.barcode-info{background:#f8f9fa;border-bottom:1px solid #e8eaed;padding:16px}.barcode-info p{color:#202124;font-size:14px;margin:8px 0}.barcode-info strong{color:#5f6368}.barcode-image{background:#fff;padding:20px;text-align:center}.barcode-image img{border:1px solid #e8eaed;border-radius:4px;height:auto;max-width:100%}.download-options{border-top:1px solid #e8eaed;gap:12px;padding:16px}.download-options,.no-barcode{background:#f8f9fa;display:flex}.no-barcode{align-items:center;border:2px dashed #dadce0;border-radius:8px;color:#9aa0a6;flex-direction:column;justify-content:center;min-height:300px;padding:80px 20px;text-align:center}.placeholder-icon{color:#dadce0;font-size:48px;margin-bottom:16px}.no-barcode p{font-size:16px;line-height:1.5;margin:8px 0;max-width:300px}@media (max-width:1200px){.main-content{margin:0 20px;max-width:100%}}@media (max-width:1024px){.main-content{gap:24px;grid-template-columns:1fr;min-height:auto}.barcode-generator{padding:16px}}@media (min-width:1025px){.main-content{gap:32px!important}.form-grid,.main-content{grid-template-columns:1fr 1fr!important}.button-group,.download-options{flex-direction:row!important}}@media (max-width:768px){.main-content{gap:20px;min-height:auto}.form-grid,.main-content{grid-template-columns:1fr}.form-grid{gap:16px}.form-section{min-height:auto;overflow:visible}.barcode-type-selector{flex-direction:column}.type-option{min-width:auto;width:100%}.button-group{flex-direction:column}.button-group .btn{width:100%}.generate-btn{min-width:auto}.download-options{flex-direction:column}.download-options .btn{width:100%}.header h1{font-size:24px}.barcode-image{padding:16px}}@media (max-width:480px){.main-content{gap:16px}.form-grid{gap:12px}.no-barcode{min-height:250px;padding:60px 20px}.no-barcode p{font-size:14px}.barcode-info{padding:12px}.barcode-info p{font-size:13px}}.image-processing{margin:0 auto;max-width:1200px}.processing-header{margin-bottom:32px;text-align:center}.processing-header h1{color:#202124;font-size:32px;font-weight:700;margin-bottom:8px}.processing-header p{color:#5f6368;font-size:16px}.processing-container{grid-gap:24px;display:grid;gap:24px}.upload-section h2{color:#202124;font-size:20px;font-weight:600;margin-bottom:20px}.upload-options{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:24px}.upload-option{align-items:center;display:flex;flex-direction:column;gap:12px}.file-input{display:none}.camera-btn,.upload-label{align-items:center;background:#fff;border:2px dashed #dadce0;border-radius:8px;color:#5f6368;cursor:pointer;display:flex;flex-direction:column;gap:12px;padding:24px;text-align:center;transition:all .2s ease;width:100%}.camera-btn:hover,.upload-label:hover{background:#f8f9fa;border-color:#007acc;color:#007acc}.camera-btn{background:#f8f9fa;border-style:solid}.camera-btn span,.upload-label span{font-size:16px;font-weight:500}.upload-hint{color:#9aa0a6;font-size:14px}.uploaded-image{text-align:center}.uploaded-image img{border:2px solid #dadce0;border-radius:8px;margin-bottom:12px;max-height:300px;max-width:100%}.image-info{color:#5f6368;font-size:14px;font-weight:500}.processing-options h2{color:#202124;font-size:20px;font-weight:600;margin-bottom:20px}.options-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.option-group{display:flex;flex-direction:column;gap:8px}.slider-label{color:#202124;font-size:14px;font-weight:500}.slider{-webkit-appearance:none;background:#dadce0;border-radius:3px;height:6px;outline:none;width:100%}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#007acc;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:20px;width:20px}.slider::-moz-range-thumb{background:#007acc;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:20px;width:20px}.processing-actions{display:flex;gap:12px;justify-content:flex-start}.output-viewer h2{color:#202124;font-size:20px;font-weight:600;margin-bottom:20px}.image-comparison{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-bottom:24px}.image-container h3{color:#202124;font-size:16px;font-weight:600;margin-bottom:12px;text-align:center}.image-wrapper{align-items:center;background:#f8f9fa;border:2px solid #e8eaed;border-radius:8px;display:flex;justify-content:center;min-height:300px;overflow:hidden}.image-wrapper img{max-height:100%;max-width:100%;object-fit:contain}.processing-placeholder{align-items:center;color:#9aa0a6;display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.processing-placeholder svg{color:#dadce0;margin-bottom:16px}.processing-placeholder p{font-size:14px;line-height:1.4;margin:0;max-width:200px}.output-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.output-actions .btn{min-width:140px}@media (max-width:1024px){.image-comparison{gap:20px;grid-template-columns:1fr}}@media (max-width:768px){.processing-container{gap:20px}.options-grid,.upload-options{gap:16px;grid-template-columns:1fr}.processing-actions{flex-direction:column}.processing-actions .btn{width:100%}.output-actions{flex-direction:column}.output-actions .btn{width:100%}.processing-header h1{font-size:24px}.image-wrapper{min-height:250px}.camera-btn,.upload-label{padding:20px}}@media (max-width:480px){.options-grid,.upload-options{gap:12px}.image-wrapper{min-height:200px}.processing-placeholder{padding:30px 20px}.processing-placeholder p{font-size:13px}}.robot-data-monitor{background:#2c2c2c;color:#e0e0e0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;padding:20px}.robot-data-monitor.fullscreen{background:#2c2c2c;height:100vh;left:0;padding:0;position:fixed;top:0;width:100vw;z-index:1000}.monitor-header{margin-bottom:30px;padding:20px 0;text-align:center}.monitor-header h1{color:#e0e0e0;font-size:32px;font-weight:700;letter-spacing:.5px;margin:0 0 8px}.monitor-header p{color:#b0b0b0;font-size:16px;font-weight:400;margin:0}.monitor-dashboard{grid-gap:20px;display:grid;gap:20px;grid-template-columns:2fr 1fr;height:calc(100vh - 120px);margin:0 auto;max-width:1400px}.lidar-panel{background:#3a3a3a;border:2px solid #e3821e;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.panel-header{background:#2c2c2c;border-bottom:1px solid #4a4a4a;padding:16px 20px}.panel-header h2{color:#e0e0e0;font-size:18px;font-weight:600;letter-spacing:.3px;margin:0}.lidar-container{display:flex;flex:1 1;flex-direction:column}.lidar-canvas,.lidar-container{background:#1a1a1a;position:relative}.lidar-canvas{flex:1 1;overflow:hidden}.lidar-content{height:100%;position:relative;transform-origin:center center;transition:transform .3s ease;width:100%}.lidar-background{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.lidar-image{filter:brightness(.8) contrast(1.2);height:100%;object-fit:cover;opacity:.8;width:100%}.lidar-grid{background-image:linear-gradient(#e3821e1a 1px,#0000 0),linear-gradient(90deg,#e3821e1a 1px,#0000 0);background-size:40px 40px;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:2}.robot-marker{height:20px;position:absolute;transform:translate(-50%,-50%);width:20px;z-index:10}.marker-dot{animation:pulse 2s infinite;background:#e3821e;border:3px solid #fff;border-radius:50%;box-shadow:0 0 10px #e3821ecc;height:100%;width:100%}.trajectory-line{background:linear-gradient(90deg,#8b4513,#e3821e);box-shadow:0 0 5px #8b451380;height:2px;left:20%;position:absolute;top:50%;transform:translateY(-50%);width:60%;z-index:3}.lidar-legend{background:#000c;border:1px solid #4a4a4a;border-radius:8px;left:20px;padding:12px 16px;position:absolute;top:20px;z-index:15}.legend-item{align-items:center;color:#e0e0e0;display:flex;font-size:12px;gap:8px;margin-bottom:6px}.legend-item:last-child{margin-bottom:0}.legend-dot{border:2px solid #fff;border-radius:50%;height:12px;width:12px}.legend-dot.initial{background:#34a853}.legend-dot.final{background:#ea4335}.legend-line{background:#8b4513;border-radius:1px;height:2px;width:20px}.telemetry-panel{background:#3a3a3a;border:2px solid #e3821e;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.telemetry-panel .panel-header p{color:#b0b0b0;font-size:14px;font-weight:400;margin:4px 0 0}.telemetry-cards{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:20px}.telemetry-card{align-items:center;background:#2c2c2c;border:1px solid #4a4a4a;border-radius:8px;display:flex;gap:16px;min-height:70px;padding:16px;transition:all .3s ease}.telemetry-card:hover{background:#333;border-color:#e3821e;box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.card-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:18px;height:40px;justify-content:center;width:40px}.card-icon.battery{background:#34a85333;color:#34a853}.card-icon.position{background:#4285f433;color:#4285f4}.card-icon.orientation{background:#fbbc0533;color:#fbbc05}.card-icon.temperature{background:#ea433533;color:#ea4335}.card-icon.task{background:#00acc133;color:#00acc1}.card-content{flex:1 1;min-width:0}.card-label{color:#b0b0b0;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.card-value{color:#e0e0e0;font-size:16px;font-weight:700;word-break:break-all}.control-section{border-top:1px solid #4a4a4a;display:flex;flex-direction:column;gap:12px;padding:20px}.control-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;letter-spacing:.5px;min-height:44px;padding:12px 20px;text-transform:uppercase;transition:all .3s ease}.control-btn.connected{background:#34a853;color:#fff}.control-btn.disconnected{background:#ea4335;color:#fff}.control-btn.running{background:#fbbc05;color:#2c2c2c}.control-btn.stopped{background:#6c757d;color:#fff}.control-btn.emergency{animation:emergencyPulse 1s infinite;background:#ea4335;color:#fff;font-weight:700}.control-btn:hover:not(:disabled){box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.control-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.emergency-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.emergency-alert{align-items:center;animation:slideIn .3s ease;background:#2c2c2c;border:2px solid #ea4335;border-radius:16px;box-shadow:0 20px 60px #00000080;display:flex;gap:24px;max-width:500px;padding:40px}.alert-icon{animation:emergencyPulse 1s infinite;color:#ea4335;font-size:48px}.alert-content{flex:1 1}.alert-title{color:#ea4335;font-size:24px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.alert-message{color:#e0e0e0;font-size:16px;line-height:1.4}@keyframes pulse{0%{box-shadow:0 0 0 0 #e3821eb3}70%{box-shadow:0 0 0 10px #e3821e00}to{box-shadow:0 0 0 0 #e3821e00}}@keyframes emergencyPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width:1200px){.monitor-dashboard{grid-template-columns:1fr;height:auto}.lidar-panel{height:500px}.telemetry-panel{height:auto}}@media (max-width:768px){.robot-data-monitor{padding:12px}.monitor-header h1{font-size:24px}.monitor-header p{font-size:14px}.panel-header{padding:12px 16px}.panel-header h2{font-size:16px}.telemetry-cards{padding:16px}.telemetry-card{min-height:60px;padding:12px}.card-icon{font-size:16px;height:36px;width:36px}.card-label{font-size:11px}.card-value{font-size:14px}.control-section{padding:16px}.control-btn{font-size:13px;min-height:40px;padding:10px 16px}.emergency-alert{margin:20px;padding:24px}.alert-title{font-size:20px}.alert-message{font-size:14px}}@media (max-width:480px){.monitor-header h1{font-size:20px}.lidar-legend{left:10px;padding:8px 12px;top:10px}.legend-item{font-size:11px}.telemetry-card{gap:12px}.card-icon{font-size:14px;height:32px;width:32px}}.rack-status-container{background:#f5f5f5;min-height:100vh;padding:20px}.rack-status-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:24px}.header-content h1{margin:0 0 8px}.header-actions{align-items:center;display:flex;gap:12px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-icon{border-radius:8px;padding:12px}.stat-icon.total{background:#3d3e411a;color:#3d3e41}.stat-icon.occupied{background:#ea43351a;color:#ea4335}.stat-icon.free{background:#34a8531a;color:#34a853}.stat-icon.maintenance{background:#fbbc051a;color:#fbbc05}.stat-icon.utilization{background:#e3821e1a;color:#e3821e}.controls-section{margin-bottom:30px}.search-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.search-box{min-width:300px}.search-box .search-icon{color:#666;font-size:16px;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{border:2px solid #e0e0e0;font-size:16px;padding:12px 12px 12px 40px;transition:border-color .3s ease;width:100%}.search-box input:focus{border-color:#e3821e}.filter-select{border:2px solid #e0e0e0;font-size:16px;padding:12px 16px;transition:border-color .3s ease}.racks-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.rack-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;padding:20px;transition:all .3s ease}.rack-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.rack-card.selected{border-color:#e3821e;box-shadow:0 4px 16px #e3821e4d}.rack-card.occupied{border-left:4px solid #ea4335}.rack-card.free{border-left:4px solid #34a853}.rack-card.maintenance{border-left:4px solid #fbbc05}.rack-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.rack-name{color:#3d3e41;font-size:20px;font-weight:700}.rack-status{align-items:center;display:flex;font-weight:600;gap:8px}.status-icon{font-size:18px}.status-icon.occupied{color:#ea4335}.status-icon.free{color:#34a853}.status-icon.maintenance{color:#fbbc05}.rack-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.detail-icon{color:#e3821e;font-size:14px;min-width:16px}.detail-label{color:#666;font-weight:500;min-width:80px}.detail-value{color:#3d3e41;font-weight:600}.rack-footer{border-top:1px solid #e0e0e0;padding-top:12px}.last-updated{color:#999;font-size:12px;font-style:italic}.rack-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.rack-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-height:80vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{border-bottom:1px solid #e0e0e0}.modal-header h2{color:#3d3e41;font-size:24px}.close-btn:hover{background:#f5f5f5}.modal-content{padding:24px}.modal-section{margin-bottom:24px}.modal-section:last-child{margin-bottom:0}.modal-section h3{border-bottom:2px solid #e3821e;color:#e3821e;font-size:18px;margin:0 0 16px;padding-bottom:8px}.modal-details{display:flex;flex-direction:column;gap:12px}.modal-detail-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.modal-detail-item:last-child{border-bottom:none}.modal-label{color:#666}.modal-label,.modal-value{font-size:14px;font-weight:600}.modal-value{color:#3d3e41}.spinning{animation:spin 1s linear infinite}@media (max-width:768px){.rack-status-header{align-items:stretch;flex-direction:column;gap:16px}.header-actions{justify-content:center}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.search-controls{align-items:stretch;flex-direction:column}.search-box{min-width:auto}.racks-grid{grid-template-columns:1fr}.rack-card{padding:16px}.rack-header{align-items:flex-start;flex-direction:column;gap:8px}.rack-status{align-self:flex-end}}@media (max-width:480px){.rack-status-container{padding:12px}.rack-status-header{padding:16px}.header-content h1{font-size:24px}.stat-card{padding:16px}.stat-value{font-size:24px}.rack-card{padding:12px}.rack-name{font-size:18px}}.loading-state{align-items:center;display:flex;justify-content:center;padding:60px 20px}.empty-state,.loading-state{grid-column:1/-1}.rack-management{margin:0 auto;max-width:1200px}.rack-header{margin-bottom:32px;text-align:center}.rack-header h1{color:#3d3e41;font-size:32px;font-weight:700;margin-bottom:8px}.rack-header p{color:#3d3e41;font-size:16px}.connection-status{margin-top:16px}.connection-status .status-indicator{align-items:center;border-radius:20px;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px}.connection-status .status-indicator.checking{background:#fef7e0;border:1px solid #f4b400;color:#fbbc05}.connection-status .status-indicator.connected{background:#e8f5e8;border:1px solid #2d8a47;color:#34a853}.connection-status .status-indicator.error{background:#fee7e6;border:1px solid #d93025;color:#ea4335}.connection-status{align-items:center;flex-wrap:wrap;gap:16px}.init-db-btn{font-size:14px;padding:8px 16px;white-space:nowrap}.init-db-btn:disabled{cursor:not-allowed;opacity:.6}.db-init-section{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.db-init-help{color:#5f6368;font-size:12px;font-style:italic;margin:0;max-width:300px}.stats-grid{grid-gap:24px;gap:24px;margin-bottom:40px}.stat-card{border-left:4px solid #e3821e;gap:20px;padding:24px;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{box-shadow:0 4px 16px #00000026}.stat-icon{background:#007acc1a;font-size:32px;height:60px;width:60px}.stat-value{color:#202124;font-size:28px;margin-bottom:4px}.stat-label{color:#5f6368;font-weight:500}.rack-content{grid-gap:32px;display:grid;gap:32px}.quick-search-section{background:#fff;border-left:4px solid #007acc;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.search-header{margin-bottom:20px}.search-header h3{color:#202124;font-size:20px;font-weight:600;margin-bottom:8px}.search-header p{color:#5f6368;font-size:14px;margin:0}.quick-search-form{width:100%}.search-input-group{align-items:center;display:flex;gap:12px;position:relative}.search-input-group .search-icon{color:#5f6368;font-size:16px;left:12px;position:absolute;z-index:1}.search-input-group .search-input{border:2px solid #dadce0;border-radius:6px;flex:1 1;font-size:14px;padding:12px 12px 12px 40px;transition:border-color .2s ease}.search-input-group .search-input:focus{border-color:#007acc;outline:none}.search-input-group .search-input:disabled{background:#f5f6f7;cursor:not-allowed}.search-btn{min-width:100px;white-space:nowrap}.clear-btn{min-width:80px;white-space:nowrap}.search-results-section{background:#fff;border-left:4px solid #34a853;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.search-results-header{border-bottom:1px solid #e8eaed;margin-bottom:20px;padding-bottom:16px}.search-results-header h3{color:#202124;font-size:20px;font-weight:600;margin-bottom:8px}.search-results-header p{color:#5f6368;font-size:14px;margin:0}.search-results-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.search-result-card{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;padding:20px;transition:all .2s ease}.search-result-card:hover{background:#f1f3f4;border-color:#dadce0;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.result-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.rack-info{align-items:center;display:flex;gap:12px}.rack-info .rack-icon{color:#007acc;font-size:20px}.rack-info h4{color:#202124;font-size:16px;font-weight:600;margin:0 0 4px}.rack-id{color:#5f6368;font-size:12px;font-weight:500}.product-info{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.product-detail{align-items:center;display:flex;gap:8px}.product-detail .barcode-icon,.product-detail .product-icon,.product-detail .product-id-icon{color:#5f6368;font-size:14px;width:16px}.product-detail div{display:flex;flex-direction:column;gap:2px}.product-detail label{color:#5f6368;font-size:12px;font-weight:500;text-transform:uppercase}.product-detail span{color:#202124;font-size:14px;font-weight:500}.result-footer{align-items:center;border-top:1px solid #e8eaed;display:flex;justify-content:space-between;padding-top:16px}.date-info{color:#5f6368;font-size:12px}.result-actions{display:flex;gap:8px}.no-results{color:#5f6368;padding:40px 20px;text-align:center}.no-results-icon{color:#dadce0;font-size:48px;margin-bottom:16px}.no-results h4{color:#202124;font-size:16px;font-weight:600;margin-bottom:8px}.no-results p{font-size:14px;margin:0}.search-filter{flex-wrap:wrap}.search-icon{color:#5f6368}.search-input{border:2px solid #dadce0;border-radius:6px;padding:12px 12px 12px 40px;width:300px}.filter-box{align-items:center;display:flex}.filter-icon{color:#5f6368;font-size:16px;z-index:1}.filter-select{-webkit-appearance:none;appearance:none;border:2px solid #dadce0;border-radius:6px;padding:12px 40px;transition:border-color .2s ease}.form-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.form-header{border-bottom:1px solid #e8eaed;margin-bottom:24px;padding:24px 24px 0}.form-header h3{color:#202124;font-size:20px;font-weight:600;margin:0}.close-btn{padding:8px;transition:all .2s ease}.close-btn:hover{background:#f1f3f4;color:#ea4335}.form-content{padding:0 24px 24px}.form-row{margin-bottom:20px}.form-group .label{color:#202124;font-size:14px;font-weight:500}.form-group .input{border:2px solid #dadce0;border-radius:6px;font-size:14px;padding:12px;transition:border-color .2s ease}.form-group .input:focus{border-color:#e3821e;outline:none}.racks-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.section-header{border-bottom:1px solid #e8eaed;margin-bottom:0;padding:24px 24px 0}.section-header h2{color:#202124;margin:0 0 24px}.loading-state{color:#5f6368;padding:60px 24px;text-align:center}.loading-spinner{align-items:center;display:flex;flex-direction:column;gap:16px}.loading-spinner .spinner{height:40px;width:40px}.empty-state{color:#5f6368;padding:60px 24px}.empty-icon{color:#dadce0}.empty-state h3{font-size:18px;margin-bottom:8px}.racks-table{display:flex;flex-direction:column}.table-header{background:#f8f9fa;border-bottom:1px solid #e8eaed;color:#5f6368;font-size:14px;font-weight:600}.table-header,.table-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr 1fr 120px 120px 120px;padding:16px 24px}.table-row{align-items:center;border-bottom:1px solid #f1f3f4;transition:background-color .2s ease}.table-row:hover{background:#f8f9fa}.table-cell{align-items:center;color:#202124;display:flex;font-size:14px}.product-id,.product-name,.rack-name{align-items:center;display:flex;gap:8px}.barcode-icon,.product-icon,.product-id-icon,.rack-icon{color:#5f6368;font-size:14px}.product-id-text{background:#f0f7ff;border:1px solid #e3f2fd;border-radius:4px;color:#007acc;font-family:Courier New,monospace;font-size:13px;font-weight:600;padding:2px 6px}.status-badge{border-radius:12px;padding:4px 12px;text-transform:capitalize}.status-badge.active{background:#e8f5e8;color:#34a853}.status-badge.inactive{background:#fee7e6;color:#ea4335}.action-buttons{gap:8px}.btn-icon{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:14px;justify-content:center;padding:8px;transition:all .2s ease}.edit-btn{color:#007acc}.edit-btn:hover{background:#e3f2fd;color:#0056b3}.delete-btn{color:#ea4335}.delete-btn:hover{background:#fee7e6;color:#d93025}@media (max-width:768px){.rack-management{padding:0 16px}.stats-grid{gap:16px;grid-template-columns:1fr}.search-input-group{align-items:stretch;flex-direction:column}.search-input-group .search-input{margin-bottom:12px}.clear-btn,.search-btn{width:100%}.search-results-grid{gap:16px;grid-template-columns:1fr}.search-result-card{padding:16px}.result-footer,.result-header{align-items:flex-start;flex-direction:column;gap:12px}.result-actions{align-self:flex-end}.controls-section,.search-filter{align-items:stretch;flex-direction:column}.search-input{width:100%}.form-row{gap:16px;grid-template-columns:1fr}.table-header,.table-row{gap:8px;grid-template-columns:1fr}.table-header{display:none}.table-row{align-items:stretch;border:1px solid #e8eaed;border-radius:8px;display:flex;flex-direction:column;margin-bottom:12px;padding:16px}.table-cell{border-bottom:1px solid #f1f3f4;justify-content:space-between;padding:8px 0}.table-cell:last-child{border-bottom:none}.table-cell:before{color:#5f6368;content:attr(data-label);font-size:12px;font-weight:600;text-transform:uppercase}.rack-header h1{font-size:24px}.stat-card{padding:20px}.stat-icon{height:50px;width:50px}.stat-icon,.stat-value{font-size:24px}}@media (max-width:480px){.form-actions{flex-direction:column}.form-actions .btn{width:100%}.action-buttons{justify-content:center}}.product-management{background:#f5f5f5;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.product-header{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px;position:relative}.header-content{align-items:center;display:flex;gap:16px}.header-icon{color:#e3821e;font-size:32px}.header-content h1{color:#3d3e41;font-size:32px;font-weight:700;margin:0}.header-content p{color:#666;font-size:16px;margin:0}.header-buttons{display:flex;gap:12px;margin-left:auto}.header-buttons .btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;transition:all .2s ease}.header-buttons .btn-primary{background:#e3821e;color:#fff}.header-buttons .btn-primary:hover{background:#d1700f;transform:translateY(-1px)}.header-buttons .btn-success{background:#34a853;color:#fff}.header-buttons .btn-success:hover:not(:disabled){background:#2d8f47;transform:translateY(-1px)}.header-buttons .btn:disabled{background:#e0e0e0;color:#9e9e9e;cursor:not-allowed;transform:none}.success-message{align-items:center;animation:slideIn .3s ease-out;background:#e8f5e8;border-radius:8px;color:#34a853;display:flex;font-weight:500;gap:8px;padding:12px 16px;position:absolute;right:24px;top:24px}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.stat-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:16px;padding:20px;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px)}.stat-icon{align-items:center;border-radius:12px;color:#fff;display:flex;font-size:20px;height:48px;justify-content:center;width:48px}.stat-icon.total{background:#e3821e}.stat-icon.inbound{background:#34a853}.stat-icon.outbound{background:#ea4335}.stat-icon.quantity{background:#007acc}.stat-content{flex:1 1}.stat-value{color:#3d3e41;font-size:24px;font-weight:700;margin:0}.stat-label{color:#666;font-size:14px;margin:4px 0 0}.controls-section{box-shadow:0 2px 8px #0000001a;gap:20px;padding:20px}.search-filter{align-items:center;display:flex;flex:1 1;gap:16px}.search-box{flex:1 1;max-width:400px}.search-icon{color:#666;font-size:14px;top:50%;transform:translateY(-50%)}.search-input{border:1px solid #ddd;border-radius:8px;font-size:14px;padding:10px 12px 10px 36px;transition:border-color .2s ease;width:100%}.search-input:focus{border-color:#e3821e;box-shadow:0 0 0 2px #e3821e33;outline:none}.filter-box{position:relative}.filter-icon{color:#666;font-size:14px;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.filter-select{background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:14px;min-width:140px;padding:10px 12px 10px 36px}.filter-select:focus{border-color:#e3821e;box-shadow:0 0 0 2px #e3821e33;outline:none}.movement-form-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.movement-form{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.form-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e5e5e5;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.form-header h2{color:#3d3e41;font-size:20px;font-weight:600;margin:0}.close-btn{color:#666;transition:background-color .2s ease}.close-btn:hover{background:#f0f0f0}.form-content{padding:24px}.movement-type-section{margin-bottom:24px}.form-label{color:#3d3e41;font-weight:600}.movement-type-buttons{display:flex;gap:12px}.movement-type-btn{align-items:center;background:#fff;border:2px solid #e5e5e5;border-radius:8px;color:#666;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 16px;transition:all .2s ease}.movement-type-btn.active{background:#e3821e;border-color:#e3821e;color:#fff}.movement-type-btn:hover:not(.active){border-color:#e3821e;color:#e3821e}.form-fields{display:flex;flex-direction:column;gap:20px}.form-row{grid-gap:16px;gap:16px}.form-input,.form-textarea{border:1px solid #ddd;border-radius:8px;font-family:inherit;font-size:14px;padding:12px 16px;transition:border-color .2s ease}.form-input:focus,.form-textarea:focus{border-color:#e3821e;box-shadow:0 0 0 2px #e3821e33;outline:none}.form-textarea{min-height:80px}.required{color:#ea4335}.form-actions{border-top:1px solid #e5e5e5;justify-content:flex-end;margin-top:24px;padding-top:20px}.movements-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.section-header{background:#f8f9fa;border-bottom:1px solid #e5e5e5;padding:20px 24px}.section-header h2{color:#3d3e41;font-size:20px;margin:0}.movements-list{display:flex;flex-direction:column;gap:16px;padding:16px}.movement-card{background:#f8f9fa;border:2px solid #e5e5e5;border-radius:12px;padding:20px 24px;position:relative;transition:all .2s ease}.movement-card:hover{background:#f0f2f5;border-color:#d0d0d0;box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.movement-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.movement-type{align-items:center;display:flex;gap:10px}.movement-icon{background:#fffc;border-radius:6px;font-size:18px;padding:6px}.movement-type-text{color:#3d3e41;font-size:16px;font-weight:700;text-transform:capitalize}.movement-time{color:#666;font-size:13px;font-weight:500}.movement-details{grid-gap:20px;background:#ffffffb3;border:1px solid #e8e8e8;border-radius:8px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:16px;padding:16px}.movement-info,.product-info{display:flex;flex-direction:column;gap:10px}.product-id,.product-name,.quantity-info,.rack-info{align-items:center;color:#3d3e41;display:flex;font-size:14px;font-weight:500;gap:10px;padding:4px 0}.barcode-icon,.product-icon,.quantity-icon,.rack-icon{color:#666;font-size:14px;text-align:center;width:16px}.notes-info{border-top:1px solid #e0e0e0;grid-column:1/-1;margin-top:12px;padding-top:12px}.notes-info p{background:#fffc;border:1px solid #e8e8e8;border-radius:6px;color:#666;font-size:13px;font-style:italic;margin:0;padding:10px 14px}.movement-status{border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;margin-top:16px;padding-top:12px}.status-badge{border:2px solid #0000;font-weight:700;letter-spacing:.5px;padding:8px 16px}.status-badge.completed{background:#e8f5e8;border-color:#34a853;color:#34a853}.empty-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#e3821e;height:40px;margin:0 auto 16px;width:40px}.loading-spinner p{color:#666;font-size:16px}.empty-icon{color:#ccc;font-size:64px;margin-bottom:20px}.empty-state h3{color:#666;font-size:24px}.empty-state p{color:#999}@media (max-width:768px){.product-management{padding:16px}.product-header{padding:20px}.header-content{align-items:flex-start;flex-direction:column;gap:12px}.header-content h1{font-size:28px}.success-message{align-self:flex-start;margin-top:16px;position:static}.stats-grid{gap:16px;grid-template-columns:repeat(2,1fr)}.controls-section{align-items:stretch;flex-direction:column;gap:16px}.search-filter{flex-direction:column;gap:12px}.search-box{max-width:none}.movement-form{margin:10px;max-height:calc(100vh - 20px)}.form-content{padding:20px}.form-row{gap:16px;grid-template-columns:1fr}.form-actions{flex-direction:column}.movement-details{gap:16px;grid-template-columns:1fr;padding:12px}.movement-header{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:12px;padding-bottom:8px}.movement-type-text{font-size:15px}.movement-time{font-size:12px}.status-badge{font-size:11px;padding:6px 12px}}@media (max-width:480px){.product-management{padding:12px}.stats-grid{grid-template-columns:1fr}.header-content h1{font-size:24px}.movement-form{margin:5px;max-height:calc(100vh - 10px)}.form-header{padding:16px 20px}.form-content{padding:16px}.movement-type-buttons{flex-direction:column}}.device-connected{margin:0 auto;max-width:1200px;padding:20px}.device-header{margin-bottom:32px;text-align:center}.device-header h1{color:#202124;font-size:32px;font-weight:700;margin-bottom:8px}.device-header p{color:#5f6368;font-size:16px}.connection-status{background:#f8f9fa;border-radius:8px;display:flex;gap:20px;justify-content:center;margin-bottom:24px;padding:16px}.status-indicator{border-radius:20px;display:flex;font-size:14px;font-weight:500;padding:8px 16px}.status-indicator.connected{background:#e8f5e8;color:#34a853}.status-indicator.disconnected{background:#fee7e6;color:#ea4335}.device-count{background:#e3f2fd;border-radius:20px;color:#007acc;font-size:14px;font-weight:500;gap:8px;padding:8px 16px}.device-controls,.device-count{align-items:center;display:flex}.device-controls{gap:20px;justify-content:space-between;margin-bottom:24px}.search-section{gap:12px}.search-box,.search-section{align-items:center;display:flex}.search-box{position:relative}.search-box input{border:2px solid #dadce0;border-radius:8px;font-size:14px;padding:12px 16px 12px 40px;transition:border-color .2s ease;width:300px}.search-box input:focus{border-color:#007acc;outline:none}.search-icon{color:#9aa0a6;font-size:16px;left:12px;position:absolute}.filter-btn{align-items:center;background:#fff;border:2px solid #dadce0;border-radius:8px;color:#5f6368;cursor:pointer;display:flex;gap:8px;padding:12px 16px;transition:all .2s ease}.filter-btn:hover{border-color:#007acc;color:#007acc}.filters-panel{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:24px;margin-bottom:24px;padding:20px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{color:#202124;font-size:14px;font-weight:500}.filter-group select{background:#fff;border:2px solid #dadce0;border-radius:6px;color:#202124;cursor:pointer;font-size:14px;padding:8px 12px}.latest-scan-info{background:#f8f9fa;border-left:4px solid #007acc;border-radius:8px;margin-bottom:24px;padding:16px}.latest-scan-info h3{color:#202124;font-size:16px;font-weight:600;margin:0 0 12px}.scan-details{grid-gap:8px;display:grid;gap:8px}.scan-details p{color:#5f6368;font-size:14px;margin:0}.scan-details strong{color:#202124}.device-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.device-card{border-radius:12px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.device-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.device-header{justify-content:space-between;margin-bottom:16px}.device-info h3{color:#202124;font-size:18px;font-weight:600;margin:0 0 8px}.device-id{color:#5f6368;font-size:14px;margin:0}.device-status{align-items:center;display:flex}.status-badge{border-radius:16px;display:flex;font-size:12px;font-weight:500;padding:6px 1px;text-transform:uppercase;white-space:nowrap}.status-badge.connected{background:#4caf501a;color:#4caf50;padding:6px 12px}.status-badge.disconnected{background:#f443361a;color:#f44336;padding:6px 12px}.device-details{margin-bottom:16px}.detail-row{align-items:center;color:#5f6368;display:flex;font-size:14px;gap:8px;margin-bottom:8px}.detail-row svg{color:#9aa0a6;width:14px}.device-metrics{background:#f8f9fa;border-radius:8px;display:flex;gap:20px;margin-bottom:16px;padding:12px}.metric{align-items:center;display:flex;flex-direction:column;gap:4px}.metric-label{color:#5f6368;font-size:12px;font-weight:500}.metric-value{align-items:center;color:#202124;display:flex;font-size:14px;font-weight:600;gap:4px}.device-actions{display:flex;gap:8px}.btn{border-radius:6px;display:flex;font-size:12px;gap:6px;padding:8px 12px;transition:all .2s ease}.btn-sm{font-size:11px;padding:6px 10px}.btn-primary{background:#007acc}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#f1f3f4;color:#5f6368}.btn-secondary:hover{background:#e8eaed}.no-devices{align-items:center;background:#fafbfc;border:2px dashed #dadce0;border-radius:12px;color:#9aa0a6;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center}.no-devices svg{color:#dadce0;margin-bottom:16px}.no-devices h3{color:#5f6368;font-size:18px;margin:0 0 8px}.no-devices p{font-size:14px;margin:4px 0}@media (max-width:768px){.device-controls{align-items:stretch}.device-controls,.search-section{flex-direction:column}.search-box input{width:100%}.device-grid{grid-template-columns:1fr}.filters-panel{align-items:stretch;flex-direction:column}}.modal-overlay{background:#00000080}.modal-content{border-radius:12px;box-shadow:0 10px 30px #0000004d;max-height:80vh;max-width:600px;overflow-y:auto}.modal-header{border-bottom:1px solid #e8eaed;padding:20px 24px}.modal-header h2{color:#202124;font-size:20px;font-weight:600}.close-btn{border-radius:4px;font-size:20px;padding:4px;transition:background-color .2s}.close-btn:hover{background:#f8f9fa}.modal-body{padding:24px}.modal-footer{border-top:1px solid #e8eaed;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.device-details-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}.detail-section{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;padding:16px}.detail-section h3{color:#202124;font-size:16px;font-weight:600;margin:0 0 12px}.detail-item{align-items:center;display:flex;font-size:14px;gap:8px;margin-bottom:8px}.detail-item strong{color:#5f6368;min-width:120px}.config-form{display:flex;flex-direction:column;gap:16px}.form-group{gap:6px}.form-control{border:1px solid #dadce0;border-radius:6px;font-size:14px;padding:8px 12px;transition:border-color .2s}.form-control:focus{border-color:#007acc;box-shadow:0 0 0 2px #007acc1a;outline:none}.saved-scans-page{margin:0 auto;max-width:1200px;padding:32px 20px}.saved-scans-header{margin-bottom:32px;text-align:center}.saved-scans-header h1{color:#202124;font-size:32px;font-weight:700;margin-bottom:8px}.saved-scans-header p{color:#5f6368;font-size:16px;margin:0}.controls-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;justify-content:space-between;margin-bottom:24px;padding:24px}.controls-section,.search-filter-container{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.search-filter-container{flex:1 1}.search-input{flex:1 1;min-width:250px;position:relative}.search-input .search-icon{color:#5f6368;font-size:14px;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-input input{border:1px solid #dadce0;border-radius:8px;font-size:14px;padding:12px 12px 12px 40px;transition:border-color .2s;width:100%}.search-input input:focus{border-color:#e3821e;box-shadow:0 0 0 2px #e3821e1a;outline:none}.filter-dropdown{min-width:150px;position:relative}.filter-dropdown .filter-icon{color:#5f6368;font-size:14px;left:12px;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.filter-dropdown select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;border:1px solid #dadce0;border-radius:8px;cursor:pointer;font-size:14px;padding:12px 36px 12px 40px;width:100%}.filter-dropdown select:focus{border-color:#e3821e;box-shadow:0 0 0 2px #e3821e1a;outline:none}.action-buttons{display:flex;gap:12px}.saved-scans-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.scans-summary{background:#f8f9fa;border-bottom:1px solid #e8eaed;padding:20px 24px}.scans-summary,.summary-info{align-items:center;display:flex;justify-content:space-between}.summary-info{gap:16px;width:100%}.scans-summary h2{color:#202124;font-size:20px;font-weight:600;margin:0}.total-count{color:#5f6368;font-size:14px;font-weight:500}.loading-container{padding:60px 20px}.loading-spinner{color:#5f6368}.empty-state{padding:60px 20px}.empty-icon{color:#e8eaed;font-size:48px;margin-bottom:16px}.empty-state h3{color:#202124}.empty-state p{color:#5f6368;font-size:16px;margin:0 0 24px}.scans-table-container{overflow-x:auto}.scans-table{border-collapse:collapse;width:100%}.scans-table td,.scans-table th{border-bottom:1px solid #e8eaed;padding:16px 20px;text-align:left}.scan-data{max-width:200px}.scan-text{display:block;font-family:Courier New,monospace;font-size:13px;max-width:100%;word-break:break-all}.scan-product,.scan-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-product{max-width:150px}.product-text{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-category{color:#5f6368;font-size:13px}.scan-id{color:#ff6b35}.scan-id,.scans-table th{font-size:14px;font-weight:600}.scans-table th{background:#f8f9fa;color:#5f6368;text-transform:uppercase}.scans-table tbody tr:last-child td{border-bottom:none}.scans-table tbody tr:hover{background:#f8f9fa;cursor:pointer}.scan-data .scan-text{background:#f8f9fa;border-radius:4px;font-family:Courier New,monospace;font-size:13px;padding:4px 8px}.type-badge{border-radius:12px;font-size:11px;font-weight:600;padding:4px 8px;text-transform:uppercase}.type-ean13{background:#e8f5e8;color:#2e7d32}.type-qr{background:#e3f2fd;color:#1976d2}.type-code128{background:#fff3e0;color:#f57c00}.type-code39{background:#f3e5f5;color:#7b1fa2}.type-upc{background:#e0f2f1;color:#00695c}.type-unknown{background:#ffebee;color:#c62828}.source-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.source-esp32,.source-robrige-scanner-beta2,.source-web{background:#e8f0fe;color:#1a73e8}.source-web{background:#e3f2fd;color:#1976d2}.source-manual{background:#fff3e0;color:#f57c00}.action-column{text-align:center;width:80px}.action-cell{padding:8px!important;text-align:center}.delete-button{background:#ea4335;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px;transition:all .2s ease}.delete-button:hover{background:#d33b2c;transform:translateY(-1px)}.scan-dialog-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.scan-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 24px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.scan-dialog-header{align-items:center;border-bottom:1px solid #e8eaed;display:flex;justify-content:space-between;padding:20px 24px}.scan-dialog-header h2{color:#202124;font-size:24px;margin:0}.scan-dialog-body{flex-grow:1;padding:24px}.scan-info-section h3{border-bottom:1px solid #e8eaed;color:#3d3e41;font-size:18px;margin-bottom:16px;padding-bottom:8px}.info-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.info-field{color:#5f6368;font-size:15px;margin-bottom:12px}.info-field strong{color:#202124;margin-right:8px}.metadata-field{grid-column:1/-1}.metadata-field pre{background:#f8f9fa;border-radius:6px;font-size:13px;margin-top:8px;overflow-x:auto;padding:12px}.info-grid-two-columns{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.info-column{gap:16px}.info-column,.info-field{display:flex;flex-direction:column}.info-field{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;gap:6px;padding:12px}.info-field label{color:#5f6368;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.info-value{color:#202124;font-weight:500;word-break:break-word}.barcode-dialog .info-value,.barcode-dialog-body .info-value,.info-value,.scan-dialog .info-value,.scan-dialog-body .info-value,.scan-info-section .info-value{font-size:13px!important}.barcode-data-section{margin-top:24px}.barcode-data-container{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;padding:16px}.barcode-data-text{color:#5f6368;display:block;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5;word-break:break-all}.description-section{margin-top:24px}.description-container{background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;max-height:300px;overflow-y:auto;padding:20px}.description-text{color:#3c4043;font-size:14px;line-height:1.6;margin:0;text-align:justify}.description-text::-webkit-scrollbar{width:6px}.description-text::-webkit-scrollbar-track{background:#f1f3f4;border-radius:3px}.description-text::-webkit-scrollbar-thumb{background:#dadce0;border-radius:3px}.description-text::-webkit-scrollbar-thumb:hover{background:#bdc1c6}.barcode-data-section h3,.description-section h3,.scan-info-section h3{align-items:center;border-bottom:1px solid #e8eaed;color:#3d3e41;display:flex;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.barcode-data-section h3:before,.description-section h3:before,.scan-info-section h3:before{background:#4285f4;border-radius:2px;content:"";height:18px;margin-right:12px;width:4px}.scan-dialog-footer{border-top:1px solid #e8eaed;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.close-btn{background:none;border:none;color:#5f6368;cursor:pointer;font-size:24px;transition:color .2s ease}.close-btn:hover{color:#202124}@media (max-width:768px){.saved-scans-page{padding:20px 15px}.saved-scans-header h1{font-size:28px}.search-filter-container{flex-direction:column;gap:12px}.search-input{max-width:none}.action-buttons{justify-content:center}.scans-summary{align-items:flex-start;flex-direction:column;gap:8px}.scans-table-container{font-size:12px}.scans-table td,.scans-table th{font-size:13px;padding:12px 15px}.scan-dialog{width:95%}.scan-dialog-header h2{font-size:20px}.info-grid{grid-template-columns:1fr}.scan-dialog-footer{flex-direction:column}.info-grid-two-columns{gap:16px;grid-template-columns:1fr}}@media (max-width:480px){.scans-table{font-size:12px}.scans-table td,.scans-table th{padding:10px}}.ai-analysis-trigger{align-items:center;background:#f8f9fa;border:1px dashed #dadce0;border-radius:8px;display:flex;flex-direction:column;gap:12px;margin-top:15px;padding:16px}.description-placeholder{color:#5f6368;font-size:14px;font-style:italic;margin:0;text-align:center}.btn-ai-analyze{align-items:center;background:linear-gradient(135deg,#4285f4,#34a853);border:none;border-radius:20px;box-shadow:0 2px 4px #00000026;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:8px 16px;transition:all .2s ease}.btn-ai-analyze:hover{box-shadow:0 4px 8px #0003;filter:brightness(1.1);transform:translateY(-1px)}.btn-ai-analyze:disabled{background:#dadce0;box-shadow:none;cursor:not-allowed;transform:none}.spinner-micro{animation:spin 1s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:#0000;height:12px;width:12px}.profile-page{background:#fff;margin:0 auto;max-width:1400px;min-height:100vh;padding:24px}.message-banner{align-items:center;animation:slideDown .3s ease;border-radius:12px;display:flex;font-weight:500;gap:12px;margin-bottom:24px;padding:16px 24px}.message-banner.success{background:#d4edda;border:2px solid #27ae60;color:#27ae60}.message-banner.error{background:#f8d7da;border:2px solid #e74c3c;color:#e74c3c}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.profile-layout{grid-gap:40px;align-items:start;display:grid;gap:40px;grid-template-columns:400px 1fr;margin-top:32px}.avatar-card{background:#fff;border:2px solid #f8f9fa;border-radius:20px;box-shadow:0 2px 12px #00000014;padding:48px 32px;position:-webkit-sticky;position:sticky;text-align:center;top:24px}.avatar-container{display:inline-block;margin-bottom:24px;position:relative}.avatar-circle{background:linear-gradient(135deg,#e3821e,#d6730a);border:6px solid #fff;border-radius:50%;box-shadow:0 8px 24px #e3821e4d;color:#fff;font-size:64px;height:160px;width:160px}.avatar-circle,.camera-button{align-items:center;display:flex;justify-content:center}.camera-button{background:#fff;border:3px solid #e3821e;border-radius:50%;bottom:8px;box-shadow:0 2px 8px #00000026;color:#e3821e;cursor:pointer;font-size:18px;height:44px;position:absolute;right:8px;transition:all .3s ease;width:44px}.camera-button:hover{background:#e3821e;color:#fff;transform:scale(1.1)}.profile-pic-img{border-radius:50%;height:100%;object-fit:cover;width:100%}.remove-pic-btn{background:none;border:none;border-radius:6px;color:#e74c3c;cursor:pointer;display:block;font-size:13px;font-weight:500;margin:16px auto 0;padding:6px 12px;text-decoration:underline;transition:all .3s ease}.remove-pic-btn:hover{background:#e74c3c1a;color:#c0392b;text-decoration:none}.user-info-section h2{color:#2c3e50;font-size:28px;font-weight:700;margin:0 0 12px}.user-id-badge{background:linear-gradient(135deg,#e3821e,#d6730a);border-radius:20px;box-shadow:0 2px 8px #e3821e4d;color:#fff;display:inline-block;font-size:18px;font-weight:700;margin:0 0 16px;padding:8px 20px}.member-date{color:#7f8c8d;font-size:14px;margin:0}.account-card{background:#fff;border:2px solid #f8f9fa;border-radius:20px;box-shadow:0 2px 12px #00000014;padding:40px}.account-card h3{border-bottom:3px solid #fff5eb;color:#2c3e50;font-size:26px;font-weight:700;margin:0 0 32px;padding-bottom:20px}.form-field{margin-bottom:28px}.form-field label{align-items:center;color:#e3821e;display:flex;font-size:12px;font-weight:700;gap:10px;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.form-field label svg{font-size:16px}.input-wrapper{align-items:center;display:flex;position:relative}.input-wrapper input{background:#f8f9fa;border:2px solid #e8eaed;border-radius:12px;color:#2c3e50;font-size:15px;font-weight:500;padding:14px 50px 14px 18px;transition:all .3s ease;width:100%}.input-wrapper input.editing{background:#fff;border-color:#fff;box-shadow:0 0 0 4px #e3821e1a}.input-wrapper input:focus{background:#fff;border-color:#e3821e;box-shadow:0 0 0 4px #e3821e1a;outline:none}.input-wrapper input:disabled{background:#f8f9fa;border-color:#e8eaed;color:#95a5a6;cursor:not-allowed}.input-wrapper input[readonly]:not(.editing){cursor:default}.edit-btn{color:#e3821e;cursor:pointer;font-size:16px;padding:4px;position:absolute;right:16px;transition:all .2s ease}.edit-btn:hover{color:#d6730a;transform:scale(1.15)}.save-btn{border-radius:12px;box-shadow:0 4px 12px #e3821e4d;font-size:16px;font-weight:700;letter-spacing:.5px;margin-top:36px;padding:16px;text-transform:uppercase;transition:all .3s ease;width:100%}.save-btn:hover:not(:disabled){box-shadow:0 6px 16px #e3821e66;transform:translateY(-2px)}.save-btn:disabled{cursor:not-allowed;opacity:.6}.password-section{border-top:3px solid #fff5eb;margin-top:48px;padding-top:40px}.password-section h3{color:#2c3e50;font-size:24px;font-weight:700;margin:0 0 28px}.password-section .save-btn{background:#e3821e;color:#fff;margin-top:24px}.password-section .save-btn:hover:not(:disabled){background:#d6730a;box-shadow:0 6px 16px #e3821e66}@media (max-width:1024px){.profile-layout{gap:32px;grid-template-columns:1fr}.avatar-card{padding:40px 24px;position:static}.account-card{padding:32px 24px}}@media (max-width:480px){.profile-page{padding:16px}.avatar-circle{font-size:52px;height:130px;width:130px}.camera-button{font-size:16px;height:38px;width:38px}.user-info-section h2{font-size:24px}.account-card h3{font-size:22px}.input-wrapper input{font-size:14px;padding:12px 45px 12px 16px}}.modal-overlay{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.password-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 8px 32px #0003;max-width:500px;padding:40px;position:relative;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-close{font-size:24px;padding:4px}.password-modal h2{color:#2c3e50;font-size:28px;font-weight:700;margin:0 0 8px}.modal-subtitle{color:#7f8c8d;font-size:14px;margin:0 0 32px}.modal-form{margin-bottom:0}.modal-actions{align-items:center;display:flex;gap:12px;margin-top:24px}.modal-actions button{align-items:center;border:2px solid #e3821e;border-radius:12px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex:1 1;font-size:16px;font-weight:600;justify-content:center;min-height:50px;padding:12px 24px;transition:all .3s ease;vertical-align:middle}.btn-secondary:hover{background:#fff5eb;border-color:#d6730a;color:#d6730a}.btn-primary{border-color:#e3821e}.btn-primary:hover{background:#d6730a;border-color:#d6730a}.settings{margin:0 auto;max-width:1200px}.settings-header{margin-bottom:32px;text-align:center}.settings-header h1{color:#202124;font-size:32px;font-weight:700;margin-bottom:8px}.settings-header p{color:#5f6368;font-size:16px}.settings-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.settings-tabs{background:#f8f9fa;border-bottom:1px solid #e8eaed;display:flex}.tab-btn{align-items:center;background:none;border:none;border-bottom:3px solid #0000;color:#5f6368;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:16px 24px;transition:all .2s ease}.tab-btn:hover{background:#f1f3f4;color:#007acc}.tab-btn.active{background:#fff;border-bottom-color:#007acc;color:#007acc}.tab-btn svg{font-size:16px}.settings-content{padding:32px}.settings-tab h3{color:#202124;font-size:20px;font-weight:600;margin-bottom:8px}.tab-description{color:#5f6368;font-size:14px;line-height:1.5;margin-bottom:24px}.settings-form{display:flex;flex-direction:column;gap:20px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:#202124;font-size:14px;font-weight:500}.form-group input,.form-group select{background:#fff;border:2px solid #dadce0;border-radius:6px;font-size:14px;padding:12px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{border-color:#007acc;outline:none}.form-group input:disabled{background:#f5f6f7;cursor:not-allowed}.password-input{align-items:center;display:flex;position:relative}.password-toggle{background:none;border:none;border-radius:4px;color:#5f6368;cursor:pointer;padding:4px;position:absolute;right:12px;transition:color .2s ease}.password-toggle:hover{color:#007acc}.checkbox-label{align-items:center;color:#202124;cursor:pointer;display:flex;font-weight:500;gap:8px}.checkbox-label input[type=checkbox]{accent-color:#007acc;height:18px;width:18px}.form-actions{display:flex;gap:12px;justify-content:flex-start;margin-top:8px}.test-result{align-items:flex-start;border:1px solid;border-radius:8px;display:flex;gap:16px;margin-top:20px;padding:20px}.test-result.success{background:#e8f5e8;border-color:#34a853;color:#34a853}.test-result.error{background:#fee7e6;border-color:#ea4335;color:#ea4335}.result-icon{font-size:20px;margin-top:2px}.result-content h4{font-size:16px;font-weight:600;margin:0 0 8px}.result-content p{font-size:14px;margin:0;opacity:.9}.global-actions{background:#f8f9fa;border-top:1px solid #e8eaed;display:flex;gap:12px;justify-content:center;padding:24px 32px}.global-actions .btn{min-width:140px}@media (max-width:768px){.settings-content{padding:24px}.settings-tabs{flex-wrap:wrap}.tab-btn{font-size:14px;padding:12px 16px}.form-row{gap:16px;grid-template-columns:1fr}.form-actions{justify-content:center}.global-actions{align-items:center;flex-direction:column}.global-actions .btn{max-width:300px;width:100%}.settings-header h1{font-size:24px}.settings-tab h3{font-size:18px}}@media (max-width:480px){.settings-content{padding:20px}.settings-tabs{flex-direction:column}.tab-btn{justify-content:center;padding:16px}.form-group input,.form-group select{font-size:13px;padding:10px}.test-result{padding:16px}.result-content h4{font-size:15px}.result-content p{font-size:13px}}.devices-page{background:#fff;margin:0 auto;max-width:1200px;min-height:100vh;padding:40px}.devices-header{background:linear-gradient(135deg,#fff,#fff9f5);border-left:4px solid #e3821e;border-radius:16px;box-shadow:0 1px 3px #0000000f;margin-bottom:32px;padding:32px}.devices-header h1{color:#2c3e50;font-size:32px;font-weight:700;line-height:1.2;margin:0 0 8px}.devices-subtitle{color:#7f8c8d;font-size:16px;line-height:1.5;margin:0}.error-banner{background:#fff5eb;border:2px solid #e3821e;border-radius:8px;color:#e3821e;font-weight:500;margin-bottom:24px;padding:16px;text-align:center}.devices-actions{display:flex;justify-content:center;margin-bottom:40px}.pair-device-btn{align-items:center;background:#e3821e;border:none;border-radius:12px;box-shadow:0 4px 15px #e3821e4d;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:700;gap:12px;padding:16px 32px;transition:all .3s ease}.pair-device-btn:hover:not(:disabled){background:#d6730a;box-shadow:0 6px 20px #e3821e66;transform:translateY(-2px)}.pair-device-btn:disabled{cursor:not-allowed;opacity:.6}.devices-list{margin-top:40px}.devices-list h2{color:#2c3e50;font-size:32px;font-weight:600;margin-bottom:24px}.no-devices{background:#fff5eb;border:2px dashed #e3821e;border-radius:16px;padding:60px 20px;text-align:center}.no-devices-icon{color:#e3821e;font-size:64px;margin-bottom:20px}.no-devices p{color:#2c3e50;font-size:18px;margin:8px 0}.no-devices-hint{color:#7f8c8d;font-size:14px!important}.devices-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.device-card{background:#fff;border:2px solid #e8eaed;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:24px;transition:all .3s ease}.device-card:hover{border-color:#e3821e;box-shadow:0 8px 24px #e3821e33;transform:translateY(-4px)}.device-header{align-items:center;border-bottom:2px solid #fff5eb;display:flex;gap:12px;margin-bottom:20px;padding-bottom:16px}.device-icon{color:#e3821e;font-size:32px}.device-header h3{color:#2c3e50;font-size:24px;font-weight:600;margin:0}.device-details{gap:12px;margin-bottom:20px}.device-detail,.device-details{display:flex;flex-direction:column}.device-detail{align-items:flex-start;background:#f8f9fa;border:none;border-radius:8px;gap:6px;padding:14px}.detail-label{color:#e3821e;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.detail-value{align-items:center;color:#2c3e50;display:flex;font-size:15px;font-weight:500;gap:8px}.status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 12px}.status-badge.active{background:#d4edda;color:#27ae60}.status-badge.inactive{background:#f8d7da;color:#e74c3c}.unpair-btn{align-items:center;background:#e74c3c;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px;transition:all .3s ease;width:100%}.unpair-btn:hover{background:#c0392b;transform:translateY(-2px)}.modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:500px;padding:40px;position:relative;width:90%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.modal-header h2{color:#2c3e50;font-size:28px;margin:0}.close-modal-btn{background:none;border:none;color:#7f8c8d;cursor:pointer;font-size:24px;transition:color .3s ease}.close-modal-btn:hover{color:#2c3e50}.modal-body{text-align:center}.pairing-code-display{background:#fff5eb;border:2px solid #e3821e;border-radius:12px;margin:24px 0;padding:24px}.pairing-code-label{color:#7f8c8d;font-size:14px;margin-bottom:8px}.pairing-code{color:#e3821e;font-family:Courier New,monospace;font-size:32px;font-weight:700;letter-spacing:2px}.qr-code-container{display:flex;justify-content:center;margin:24px 0}.qr-code-container img{background:#fff;border:4px solid #e3821e;border-radius:12px;max-width:250px;padding:16px}.pairing-instructions{color:#7f8c8d;font-size:14px;line-height:1.6;margin-top:16px}.close-pairing-btn{background:#e3821e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:24px;padding:14px;transition:all .3s ease;width:100%}.close-pairing-btn:hover{background:#d6730a}@media (max-width:768px){.devices-page{padding:20px}.devices-grid{grid-template-columns:1fr}.modal-content{padding:24px}.pairing-code{font-size:24px}}.pairing-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:500px;padding:40px;position:relative;text-align:center;width:90%}.modal-close{background:none;border:none;color:#7f8c8d;cursor:pointer;font-size:32px;line-height:1;position:absolute;right:20px;top:20px;transition:color .3s ease}.modal-close:hover{color:#2c3e50}.modal-instructions{color:#7f8c8d;font-size:14px;line-height:1.6;margin-bottom:24px;margin-top:16px}.modal-done-btn{background:#e3821e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:24px;padding:14px;transition:all .3s ease;width:100%}.modal-done-btn:hover{background:#d6730a}.qr-code{background:#fff;border:4px solid #e3821e;border-radius:12px;max-width:250px;padding:16px}:root{--primary-orange:#e3821e;--primary-orange-dark:#d6730a;--primary-orange-light:#f39c3f;--primary-orange-lighter:#fff5eb;--text-primary:#2c3e50;--text-secondary:#7f8c8d;--text-tertiary:#95a5a6;--text-white:#fff;--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#ecf0f1;--border-light:#e8eaed;--border-medium:#dadce0;--border-dark:#bdc3c7;--success:#27ae60;--success-light:#d4edda;--warning:#f39c12;--warning-light:#fff3cd;--error:#e74c3c;--error-light:#f8d7da;--info:#3498db;--info-light:#d1ecf1;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001f;--shadow-xl:0 8px 24px #00000026;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--spacing-xs:8px;--spacing-sm:12px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:28px;--text-4xl:32px;--text-5xl:36px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--transition-fast:150ms ease-in-out;--transition-base:200ms ease-in-out;--transition-slow:300ms ease-in-out}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;background-color:var(--bg-secondary);color:#2c3e50;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);line-height:1.6}.page-header{background:linear-gradient(135deg,#fff,#fff9f5);border-left:4px solid #e3821e;border-left:4px solid var(--primary-orange);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm);margin-bottom:32px;margin-bottom:var(--spacing-xl);padding:32px;padding:var(--spacing-xl)}.page-header h1{color:#2c3e50;color:var(--text-primary);font-size:32px;font-size:var(--text-4xl);font-weight:700;font-weight:var(--font-bold);line-height:1.2;margin:0 0 8px;margin:0 0 var(--spacing-xs) 0}.page-header p{color:#7f8c8d;color:var(--text-secondary);font-size:16px;font-size:var(--text-base);line-height:1.5;margin:0}.card{background:#fff;background:var(--bg-primary);border:1px solid #e8eaed;border:1px solid var(--border-light);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md);padding:24px;padding:var(--spacing-lg);transition:box-shadow .2s ease-in-out;transition:box-shadow var(--transition-base)}.card:hover{box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-lg)}.card-header{border-bottom:1px solid #e8eaed;border-bottom:1px solid var(--border-light);margin-bottom:16px;margin-bottom:var(--spacing-md);padding-bottom:16px;padding-bottom:var(--spacing-md)}.card-header h2{font-size:24px;font-size:var(--text-2xl)}.card-header h2,.card-header h3{color:#2c3e50;color:var(--text-primary);font-weight:600;font-weight:var(--font-semibold);margin:0}.card-header h3{font-size:20px;font-size:var(--text-xl)}.card-body{padding:16px 0;padding:var(--spacing-md) 0}.card-footer{border-top:1px solid #e8eaed;border-top:1px solid var(--border-light);margin-top:16px;margin-top:var(--spacing-md);padding-top:16px;padding-top:var(--spacing-md)}.btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-size:14px;font-size:var(--text-sm);font-weight:500;font-weight:var(--font-medium);gap:8px;gap:var(--spacing-xs);justify-content:center;padding:12px 24px;padding:var(--spacing-sm) var(--spacing-lg);text-decoration:none;transition:all .2s ease-in-out;transition:all var(--transition-base);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#e3821e;background:var(--primary-orange);box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm);color:#fff;color:var(--text-white)}.btn-primary:hover:not(:disabled){background:#d6730a;background:var(--primary-orange-dark);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#fff;background:var(--bg-primary);border:2px solid #e3821e;border:2px solid var(--primary-orange);box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm);color:#e3821e;color:var(--primary-orange)}.btn-secondary:hover:not(:disabled){background:#fff5eb;background:var(--primary-orange-lighter);border-color:#d6730a;border-color:var(--primary-orange-dark);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md)}.btn-success{background:#27ae60;background:var(--success);box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm);color:#fff;color:var(--text-white)}.btn-success:hover:not(:disabled){background:#229954;box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-danger{background:#e74c3c;background:var(--error);box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm);color:#fff;color:var(--text-white)}.btn-danger:hover:not(:disabled){background:#c0392b;box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-sm{font-size:12px;font-size:var(--text-xs);padding:8px 16px;padding:var(--spacing-xs) var(--spacing-md)}.btn-lg{font-size:16px;font-size:var(--text-base);padding:16px 32px;padding:var(--spacing-md) var(--spacing-xl)}.badge{align-items:center;border-radius:9999px;border-radius:var(--radius-full);display:inline-flex;font-size:12px;font-size:var(--text-xs);font-weight:600;font-weight:var(--font-semibold);letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.badge-primary{background:#fff5eb;background:var(--primary-orange-lighter);color:#d6730a;color:var(--primary-orange-dark)}.badge-success{background:#d4edda;background:var(--success-light);color:#27ae60;color:var(--success)}.badge-warning{background:#fff3cd;background:var(--warning-light);color:#f39c12;color:var(--warning)}.badge-error{background:#f8d7da;background:var(--error-light);color:#e74c3c;color:var(--error)}.badge-info{background:#d1ecf1;background:var(--info-light);color:#3498db;color:var(--info)}.form-group{margin-bottom:16px;margin-bottom:var(--spacing-md)}.form-label{display:block;font-weight:500;font-weight:var(--font-medium);margin-bottom:8px;margin-bottom:var(--spacing-xs)}.form-input,.form-label,.form-select,.form-textarea{color:#2c3e50;color:var(--text-primary);font-size:14px;font-size:var(--text-sm)}.form-input,.form-select,.form-textarea{background:#fff;background:var(--bg-primary);border:2px solid #dadce0;border:2px solid var(--border-medium);border-radius:8px;border-radius:var(--radius-sm);padding:12px 16px;padding:var(--spacing-sm) var(--spacing-md);transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out;transition:border-color var(--transition-base),box-shadow var(--transition-base);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#e3821e;border-color:var(--primary-orange);box-shadow:0 0 0 3px #fff5eb;box-shadow:0 0 0 3px var(--primary-orange-lighter);outline:none}.form-textarea{min-height:100px;resize:vertical}.table-container{background:#fff;background:var(--bg-primary);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md);overflow:hidden}.table{border-collapse:collapse;width:100%}.table thead{background:#f8f9fa;background:var(--bg-secondary)}.table th{border-bottom:2px solid #e8eaed;border-bottom:2px solid var(--border-light);font-weight:600;font-weight:var(--font-semibold);text-align:left}.table td,.table th{color:#2c3e50;color:var(--text-primary);font-size:14px;font-size:var(--text-sm);padding:16px 24px;padding:var(--spacing-md) var(--spacing-lg)}.table td{border-bottom:1px solid #e8eaed;border-bottom:1px solid var(--border-light)}.table tbody tr{transition:background-color .15s ease-in-out;transition:background-color var(--transition-fast)}.table tbody tr:hover{background:#f8f9fa;background:var(--bg-secondary)}.table tbody tr:last-child td{border-bottom:none}.section-header{margin-bottom:24px;margin-bottom:var(--spacing-lg)}.section-header h2{color:#2c3e50;color:var(--text-primary);font-size:24px;font-size:var(--text-2xl);font-weight:600;font-weight:var(--font-semibold);margin:0 0 8px;margin:0 0 var(--spacing-xs) 0}.section-header p{color:#7f8c8d;color:var(--text-secondary);font-size:14px;font-size:var(--text-sm);margin:0}.status-indicator{align-items:center;border-radius:9999px;border-radius:var(--radius-full);display:inline-flex;font-size:12px;font-size:var(--text-xs);font-weight:600;font-weight:var(--font-semibold);gap:8px;gap:var(--spacing-xs);padding:6px 12px;text-transform:uppercase}.status-active,.status-connected{background:#d4edda;background:var(--success-light);color:#27ae60;color:var(--success)}.status-disconnected,.status-inactive{background:#f8d7da;background:var(--error-light);color:#e74c3c;color:var(--error)}.status-warning{background:#fff3cd;background:var(--warning-light);color:#f39c12;color:var(--warning)}.status-info{background:#d1ecf1;background:var(--info-light);color:#3498db;color:var(--info)}.loading-container{flex-direction:column;padding:48px;padding:var(--spacing-2xl);text-align:center}.loading-spinner{color:#7f8c8d;color:var(--text-secondary);font-size:16px;font-size:var(--text-base)}.empty-state{align-items:center;color:#95a5a6;color:var(--text-tertiary);display:flex;flex-direction:column;justify-content:center;padding:48px;padding:var(--spacing-2xl);text-align:center}.empty-state-icon{color:#dadce0;color:var(--border-medium);font-size:48px;margin-bottom:16px;margin-bottom:var(--spacing-md)}.empty-state h3{color:#7f8c8d;color:var(--text-secondary);font-size:20px;font-size:var(--text-xl);font-weight:600;font-weight:var(--font-semibold);margin:0 0 8px;margin:0 0 var(--spacing-xs) 0}.empty-state p{color:#95a5a6;color:var(--text-tertiary);font-size:14px;font-size:var(--text-sm);margin:0;max-width:400px}.mt-xs{margin-top:8px;margin-top:var(--spacing-xs)}.mt-sm{margin-top:12px;margin-top:var(--spacing-sm)}.mt-md{margin-top:16px;margin-top:var(--spacing-md)}.mt-lg{margin-top:24px;margin-top:var(--spacing-lg)}.mt-xl{margin-top:32px;margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:8px;margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:12px;margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:16px;margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:24px;margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:32px;margin-bottom:var(--spacing-xl)}.p-xs{padding:8px;padding:var(--spacing-xs)}.p-sm{padding:12px;padding:var(--spacing-sm)}.p-md{padding:16px;padding:var(--spacing-md)}.p-lg{padding:24px;padding:var(--spacing-lg)}.p-xl{padding:32px;padding:var(--spacing-xl)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:8px;gap:var(--spacing-xs)}.gap-sm{gap:12px;gap:var(--spacing-sm)}.gap-md{gap:16px;gap:var(--spacing-md)}.gap-lg{gap:24px;gap:var(--spacing-lg)}.text-primary{color:#2c3e50;color:var(--text-primary)}.text-secondary{color:#7f8c8d;color:var(--text-secondary)}.text-tertiary{color:#95a5a6;color:var(--text-tertiary)}.text-orange{color:#e3821e;color:var(--primary-orange)}.text-white{color:#fff;color:var(--text-white)}.bg-white{background-color:#fff;background-color:var(--bg-primary)}.bg-gray{background-color:#f8f9fa;background-color:var(--bg-secondary)}.bg-orange{background-color:#e3821e;background-color:var(--primary-orange)}.bg-orange-light{background-color:#fff5eb;background-color:var(--primary-orange-lighter)}.border{border:1px solid #e8eaed;border:1px solid var(--border-light)}.border-orange{border-color:#e3821e;border-color:var(--primary-orange)}.rounded{border-radius:12px;border-radius:var(--radius-md)}.rounded-lg{border-radius:16px;border-radius:var(--radius-lg)}.shadow-sm{box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-lg)}.App{display:flex;min-height:100vh}.app-main-content{background-color:#fff;flex:1 1;margin-left:280px;min-height:100vh;overflow-y:auto;padding:24px;transition:margin-left .3s ease}body.sidebar-collapsed .app-main-content{margin-left:80px}@media (max-width:768px){.app-main-content{margin-left:0;padding:16px}body.sidebar-collapsed .app-main-content{margin-left:0}}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{transition:opacity .3s,transform .3s}.page-enter-active,.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-20px);transition:opacity .3s,transform .3s}.loading-container{align-items:center;background:linear-gradient(135deg,#1a1a1a,#2c2c2c 50%,#1a1a1a);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh}.loading-spinner{color:#e0e0e0;text-align:center}.loading-spinner .spinner{animation:spin 1s linear infinite;border:4px solid #e3821e33;border-radius:50%;border-top-color:#e3821e;height:50px;margin:0 auto 20px;width:50px}.loading-spinner p{color:#b0b0b0;font-size:18px;font-weight:500;margin:0}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.access-denied{align-items:center;background:#fff;display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:20px}.access-denied-content{background:#fff5eb;border:2px solid #e3821e;border-radius:16px;box-shadow:0 8px 32px #e3821e33;max-width:500px;padding:40px;text-align:center;width:100%}.access-denied-content h2{color:#ea4335;font-size:32px;font-weight:700;margin-bottom:16px}.access-denied-content p{color:#2c3e50;font-size:16px;line-height:1.6;margin-bottom:12px}.access-denied-content button{background:#e3821e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:20px;padding:12px 24px;transition:all .3s ease}.access-denied-content button:hover{background:#d6730a;box-shadow:0 4px 12px #e3821e4d;transform:translateY(-2px)}.access-denied-content button:active{transform:translateY(0)}
/*# sourceMappingURL=main.f3261372.css.map*/