*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1e293b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#3b82f6;--primary-dark:#1e40af;--primary-subtle:#eff6ff;--accent-green:#10b981;--accent-green-light:#34d399;--accent-orange:#f59e0b;--accent-red:#ef4444;--accent-purple:#8b5cf6;--accent-cyan:#06b6d4;--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-elevated:#fff;--bg-hover:#f1f5f9;--bg-blue-subtle:#eff6ff;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--border-primary:#e2e8f0;--border-secondary:#cbd5e1;--border-accent:#2563eb;--border-light:#f1f5f9;--status-online:#10b981;--status-offline:#94a3b8;--status-error:#ef4444;--status-warning:#f59e0b;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-glow:0 0 0 3px #2563eb1a;--shadow-blue:0 4px 14px 0 #2563eb26;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#f1f5f9;background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:#cbd5e1;background:var(--border-secondary);border-radius:9999px;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#94a3b8;background:var(--text-muted)}::selection{background-color:#eff6ff;background-color:var(--primary-subtle);color:#1e40af;color:var(--primary-dark)}.home-page{display:flex;flex-direction:column;min-height:100vh}.header,.home-page{background:var(--bg-secondary)}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-primary);box-shadow:var(--shadow-sm);padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{justify-content:space-between;margin:0 auto;max-width:1280px}.header-content,.logo-section{align-items:center;display:flex}.logo-section{gap:.75rem}.logo-icon{border-radius:var(--radius-md);height:40px;width:40px}.logo-text{align-items:center;display:flex;gap:.5rem}.logo-name{color:var(--text-primary);font-size:1.25rem;font-weight:600}.logo-badge{background:var(--primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-blue);color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.sign-in-btn{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-block;font-size:.875rem;font-weight:500;overflow:hidden;padding:.5rem 1.5rem;position:relative;text-decoration:none;transition:all var(--transition-base)}.sign-in-btn:before{background:var(--bg-blue-subtle);border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.sign-in-btn:hover:before{height:300px;width:300px}.sign-in-btn:hover{border-color:var(--primary);box-shadow:var(--shadow-glow);color:var(--primary);transform:translateY(-2px)}.sign-in-btn:active{transform:translateY(0)}.hero-section{background:linear-gradient(to bottom,var(--bg-secondary) 0,var(--bg-blue-subtle) 100%);padding:5rem 2rem}.hero-content{margin:0 auto;max-width:800px;text-align:center}.hero-badge{align-items:center;background:var(--bg-secondary);border:1px solid var(--primary);border-radius:var(--radius-full);box-shadow:var(--shadow-glow);color:var(--primary);display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;margin-bottom:1.5rem;padding:.5rem 1rem}.hero-title{color:var(--text-primary);font-size:2.5rem;font-weight:700;line-height:1.2;margin-bottom:1.5rem}.hero-description{color:var(--text-secondary);font-size:1.125rem;line-height:1.7;margin-bottom:2.5rem}.highlight-blue{color:var(--primary);font-weight:600}.highlight-magenta{color:var(--accent-purple);font-weight:600}.hero-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.btn-primary{align-items:center;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-md);box-shadow:var(--shadow-blue);display:flex;font-size:1rem;font-weight:600;gap:.5rem;overflow:hidden;padding:.875rem 1.75rem;position:relative;text-decoration:none;transition:all var(--transition-base)}.btn-primary:after{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.btn-primary:hover:after{height:300px;width:300px}.btn-primary:hover{box-shadow:0 10px 25px #2563eb66;transform:translateY(-3px)}.btn-primary:active{transform:translateY(-1px)}.btn-secondary{background:var(--bg-secondary);border:2px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-secondary);display:inline-block;font-size:1rem;font-weight:600;overflow:hidden;padding:.875rem 1.75rem;position:relative;text-decoration:none;transition:all var(--transition-base)}.btn-secondary:before{background:var(--bg-blue-subtle);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease;width:100%;z-index:-1}.btn-secondary:hover:before{left:0}.btn-secondary:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.btn-secondary:active{transform:translateY(0)}.stats-section{background:var(--bg-secondary);padding:3rem 2rem}.stats-grid{grid-gap:2rem;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1000px}.stat-card{padding:2rem;position:relative;transition:all var(--transition-slow)}.stat-card:before{background:linear-gradient(135deg,#2563eb0d,#8b5cf60d);border-radius:var(--radius-lg);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity var(--transition-slow)}.stat-card:hover:before{opacity:1}.stat-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-lg);transform:translateY(-6px)}.stat-value{font-size:2.5rem;margin-bottom:.5rem}.stat-value.blue{color:var(--primary-light)}.stat-value.green{color:var(--accent-green)}.stat-value.magenta{color:var(--accent-purple)}.stat-label{color:var(--text-tertiary);font-size:.875rem}.features-section{background:var(--bg-primary);padding:5rem 2rem}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:1200px}.feature-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;padding:2rem;position:relative;transition:all var(--transition-slow)}.feature-card:before{background:radial-gradient(circle,#2563eb1a 0,#0000 70%);content:"";height:200%;opacity:0;position:absolute;right:-50%;top:-50%;transition:opacity var(--transition-slow);width:200%}.feature-card:hover:before{opacity:1}.feature-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-xl);transform:translateY(-6px)}.feature-card:hover .feature-icon{transform:scale(1.1) rotate(5deg)}.feature-icon{align-items:center;border-radius:var(--radius-lg);color:#fff;display:flex;height:56px;justify-content:center;margin-bottom:1.5rem;transition:transform var(--transition-slow);width:56px}.feature-icon.blue{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%)}.feature-icon.green{background:linear-gradient(135deg,var(--accent-green) 0,var(--accent-green-light) 100%)}.feature-icon.purple{background:linear-gradient(135deg,var(--accent-purple) 0,#a78bfa 100%)}.feature-icon.orange{background:linear-gradient(135deg,var(--accent-orange) 0,#fbbf24 100%)}.feature-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.feature-description{color:var(--text-secondary);font-size:.9375rem;line-height:1.6;margin-bottom:1.25rem}.feature-badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:.8125rem;font-weight:500;gap:.375rem;padding:.375rem .75rem}.feature-badge.blue{background:#3b82f61a;color:var(--primary-light)}.feature-badge.green{background:#10b9811a;color:var(--accent-green-light)}.feature-badge.purple{background:#8b5cf61a;color:var(--accent-purple)}.feature-badge.orange{background:#f59e0b1a;color:var(--accent-orange)}.secondary-features{background:var(--bg-secondary);padding:4rem 2rem}.secondary-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin:0 auto;max-width:1200px}.secondary-feature{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:1.25rem;padding:1.75rem;transition:all var(--transition-base)}.secondary-feature:hover{border-color:var(--border-accent);box-shadow:var(--shadow-md);transform:translateX(4px)}.secondary-feature:hover .secondary-icon{transform:scale(1.1)}.secondary-icon{align-items:center;border-radius:var(--radius-md);color:#fff;display:flex;flex-shrink:0;height:48px;justify-content:center;transition:transform var(--transition-base);width:48px}.secondary-content{flex:1 1}.secondary-title{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.secondary-description{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.cta-section{background:var(--bg-primary);padding:5rem 2rem}.cta-content{background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);border:1px solid var(--border-secondary);border-radius:var(--radius-xl);margin:0 auto;max-width:800px;overflow:hidden;padding:4rem 3rem;position:relative;text-align:center}.cta-content:before{animation:pulse 4s ease-in-out infinite;background:radial-gradient(circle,#2563eb26 0,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}.cta-title{color:var(--primary-light);font-size:2rem;font-weight:700;margin-bottom:1rem;position:relative;z-index:1}.cta-description{color:var(--text-secondary);font-size:1rem;line-height:1.7;margin-bottom:2.5rem;position:relative;z-index:1}.cta-button-wrapper{flex-direction:column;gap:1rem;position:relative;z-index:1}.cta-badge,.cta-button-wrapper{align-items:center;display:flex}.cta-badge{color:var(--accent-green);font-size:.875rem;font-weight:500;gap:.5rem}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-primary);margin-top:auto;padding:2rem}.footer-content{flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;max-width:1280px}.footer-content,.footer-left{align-items:center;display:flex}.footer-left{gap:.75rem}.footer-logo{align-items:center;background:var(--primary);border-radius:var(--radius-sm);color:#fff;display:flex;height:32px;justify-content:center;width:32px}.footer-text{color:var(--text-tertiary);font-size:.875rem}.footer-links{display:flex;gap:2rem}.footer-link{color:var(--text-tertiary);font-size:.875rem;text-decoration:none;transition:color var(--transition-base)}.footer-link:hover{color:var(--text-primary)}@media (max-width:768px){.hero-title{font-size:2rem}.hero-description{font-size:1rem}.features-grid,.secondary-grid,.stats-grid{grid-template-columns:1fr}.cta-content{padding:3rem 2rem}.cta-title{font-size:1.5rem}.footer-content{flex-direction:column;text-align:center}}.signin-page{background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-blue-subtle) 100%);justify-content:center;min-height:100vh;padding:2rem 1rem}.signin-card,.signin-page{align-items:center;display:flex}.signin-card{animation:slideUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;max-width:480px;padding:3rem 2.5rem;width:100%}.signin-icon{align-items:center;animation:iconPulse 2s ease-in-out infinite;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-blue);display:flex;height:72px;justify-content:center;margin-bottom:1.5rem;width:72px}@keyframes iconPulse{0%,to{box-shadow:var(--shadow-blue)}50%{box-shadow:0 6px 20px #2563eb4d}}.signin-title{color:var(--text-primary);font-size:1.75rem;font-weight:600;margin:0 0 .5rem;text-align:center}.signin-subtitle{color:var(--text-tertiary);font-size:1rem;margin:0 0 2rem;text-align:center}.signin-form{width:100%}.error-message{animation:shake .4s ease-in-out;padding:.75rem 1rem}.error-message,.form-group{margin-bottom:1.5rem}.form-group label,.label-row{margin-bottom:.5rem}.label-row{align-items:center;display:flex;justify-content:space-between}.forgot-link{color:var(--primary-light);font-size:.875rem;font-weight:500;position:relative;text-decoration:none;transition:all var(--transition-base)}.forgot-link:after{background:var(--primary);bottom:-2px;content:"";height:2px;left:0;position:absolute;transition:width var(--transition-base);width:0}.forgot-link:hover:after{width:100%}.forgot-link:hover{color:var(--primary)}.form-group input{background:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);font-size:1rem;padding:.75rem 1rem;transition:all var(--transition-base);width:100%}.form-group input:focus{background:var(--bg-secondary);border-color:var(--primary);box-shadow:0 0 0 4px #2563eb1a;outline:none;transform:translateY(-2px)}.signin-button{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-blue);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;overflow:hidden;padding:.875rem 1.5rem;position:relative;transition:all var(--transition-base);width:100%}.signin-button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.signin-button:hover:before{height:400px;width:400px}.signin-button:hover:not(:disabled){box-shadow:0 8px 25px #2563eb66;transform:translateY(-2px)}.signin-button:active:not(:disabled){transform:translateY(0)}.signin-button:disabled{cursor:not-allowed;opacity:.6}.divider{margin:2rem 0 1.5rem;position:relative;text-align:center;width:100%}.divider:before{background:var(--border-primary);content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:var(--bg-secondary);color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:0 1rem;position:relative;z-index:1}.register-button{background:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;overflow:hidden;padding:.875rem 1.5rem;position:relative;text-align:center;text-decoration:none;transition:all var(--transition-base);width:100%}.register-button:before{background:var(--bg-blue-subtle);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease;width:100%;z-index:0}.register-button:hover:before{left:0}.register-button:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.register-button:active{transform:translateY(0)}.back-link{color:var(--text-tertiary);font-size:.875rem;margin-top:1.5rem}.back-link svg{height:18px;width:18px}@media (max-width:640px){.signin-card{padding:2rem 1.5rem}.signin-title{font-size:1.5rem}.signin-subtitle{font-size:.875rem}}.register-page{align-items:center;background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-blue-subtle) 100%);display:flex;justify-content:center;min-height:100vh;padding:40px 20px}.register-container{animation:slideUp .4s ease-out;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:800px;padding:40px;position:relative;width:100%}.back-link{transition:all var(--transition-base)}.back-link:hover{color:var(--primary);transform:translateX(-4px)}.back-link svg{transition:transform var(--transition-base)}.back-link:hover svg{transform:translateX(-2px)}.register-header{margin-bottom:32px;text-align:center}.register-icon{align-items:center;animation:iconFloat 3s ease-in-out infinite;background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-xl);box-shadow:var(--shadow-blue);display:flex;height:80px;justify-content:center;margin:0 auto 20px;width:80px}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.register-title{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 8px}.register-subtitle{color:var(--text-tertiary);font-size:16px;margin:0}.register-form{display:flex;flex-direction:column;gap:32px}.error-banner{animation:shake .4s ease-in-out;background:#ef44441a;border:1px solid #ef44444d;border-radius:var(--radius-md);color:var(--accent-red);font-size:14px;margin-bottom:8px;padding:12px 16px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.form-section{display:flex;flex-direction:column;gap:20px}.section-title{border-bottom:2px solid var(--primary);color:var(--text-primary);font-size:18px;margin:0 0 4px;padding-bottom:12px;position:relative}.section-title:after{background:var(--primary-light);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:60px}.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;padding:12px 16px;transition:all var(--transition-base)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:var(--bg-secondary);border-color:var(--primary);box-shadow:0 0 0 4px #2563eb1a;transform:translateY(-2px)}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--accent-red)}.form-group select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m1 1.5 5 5 5-5' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;cursor:pointer;padding-right:40px}.form-group textarea{min-height:80px}.error-text{color:var(--accent-red);font-size:12px;margin-top:-4px}.submit-btn{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-md);box-shadow:var(--shadow-blue);overflow:hidden;padding:14px 24px;position:relative;transition:all var(--transition-base)}.submit-btn:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.submit-btn:hover:before{height:500px;width:500px}.submit-btn:hover:not(:disabled){box-shadow:0 10px 30px #2563eb66;transform:translateY(-3px)}.submit-btn:active:not(:disabled){transform:translateY(-1px)}@media (max-width:768px){.register-container{padding:24px}.form-row{grid-template-columns:1fr}.register-title{font-size:24px}.register-subtitle{font-size:14px}}.plan-page{background:linear-gradient(180deg,#f8f9fa 0,#e9ecef);min-height:100vh;padding:1.5rem 1rem}.plan-container{margin:0 auto;max-width:1200px}.back-link{font-size:.9rem;gap:.5rem;margin-bottom:1.5rem}.plan-header{margin-bottom:2rem;text-align:center}.plan-icon{background:linear-gradient(135deg,#4169e1,#5b7ff5);border-radius:14px;box-shadow:0 8px 20px #4169e140;margin:0 auto 1rem}.plan-icon svg{height:24px;width:24px}.plan-title{color:#4169e1;font-size:1.75rem;font-weight:600;margin-bottom:.25rem}.plan-subtitle{color:#6b7280;font-size:1rem}.machine-count-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:2rem;margin-left:auto;margin-right:auto;max-width:500px;padding:1.25rem 1.5rem}.machine-count-header{align-items:center;display:flex;gap:.6rem;margin-bottom:.5rem}.machine-icon{align-items:center;background:#4169e1;border-radius:8px;color:#fff;display:flex;height:32px;justify-content:center;width:32px}.machine-icon svg{height:18px;width:18px}.machine-count-header h2{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.machine-count-description{color:#6b7280;font-size:.85rem;margin-bottom:1rem}.machine-input-group{margin-bottom:.75rem}.machine-input-group label{color:#374151;display:block;font-size:.8rem;font-weight:500;margin-bottom:.35rem}.machine-input-group input{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:.95rem;font-weight:500;padding:.6rem .75rem;text-align:center;width:100%}.machine-input-group input:focus{background:#fff;border-color:#4169e1;outline:none}.machine-recommendation{color:#6b7280;font-size:.8rem;font-style:italic;text-align:center}.plans-grid{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:2rem}.plan-card{border:2px solid #0000;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;padding:1.25rem;position:relative;transition:all .3s}.plan-card.recommended{border-color:#4169e1;box-shadow:0 4px 16px #4169e133}.recommended-badge{background:#4169e1;border-radius:12px;color:#fff;font-size:.7rem;font-weight:600;left:50%;padding:.25rem .75rem;position:absolute;top:-10px;transform:translateX(-50%);white-space:nowrap}.plan-card-header{margin-bottom:.75rem}.plan-name{display:inline;font-size:1.1rem;font-weight:700;margin-bottom:.25rem}.plan-description{color:#6b7280;display:inline;font-size:.75rem;line-height:1.4;margin-left:.5rem}.plan-pricing{margin-bottom:.25rem}.plan-price{color:#1f2937;font-size:1.5rem;font-weight:700}.plan-machine-range,.plan-period{color:#6b7280;font-size:.8rem}.plan-machine-range{border-bottom:1px solid #e5e7eb;margin-bottom:.75rem;padding-bottom:.75rem}.plan-features{flex-grow:1;margin:0 0 1rem}.plan-features li{align-items:flex-start;font-size:.75rem;gap:.5rem;line-height:1.4;margin-bottom:.4rem}.plan-features li svg{color:#10b981;flex-shrink:0;height:14px;margin-top:.1rem;width:14px}.plan-select-btn{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;margin-top:auto;padding:.6rem 1rem;transition:all .2s;width:100%}.plan-select-btn.primary{background:#4169e1;color:#fff}.plan-select-btn.primary:hover{background:#3557c7;box-shadow:0 4px 12px #4169e14d;transform:translateY(-1px)}.plan-select-btn.secondary{background:#fff;border:1.5px solid #4169e1;color:#4169e1}.plan-select-btn.secondary:hover{background:#f0f4ff}.help-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem;text-align:center}.help-section h3{color:#4169e1;font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.help-section>p{color:#6b7280;font-size:.85rem;margin-bottom:1.25rem}.recommendations-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(4,1fr);margin:0 auto;max-width:800px}.recommendation-item{text-align:center}.recommendation-badge{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:.9rem;font-weight:700;height:44px;justify-content:center;margin:0 auto .5rem;width:44px}.recommendation-item h4{color:#1f2937;font-size:.9rem;font-weight:600;margin-bottom:.25rem}.recommendation-item p{color:#6b7280;font-size:.75rem;line-height:1.4}@media (max-width:1024px){.plans-grid{grid-template-columns:repeat(2,1fr)}.recommendations-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:768px){.plans-grid{gap:1rem;grid-template-columns:1fr}.plan-card.recommended{transform:scale(1)}.recommendations-grid{gap:1rem;grid-template-columns:repeat(2,1fr)}.plan-container{padding:0 .5rem}}.payment-page{background:linear-gradient(180deg,#f8f9fa 0,#e9ecef);min-height:100vh;padding:2rem 1rem}.payment-container{margin:0 auto;max-width:1200px}.payment-header{margin-bottom:3rem;text-align:center}.payment-icon{align-items:center;background:linear-gradient(135deg,#4169e1,#5b7ff5);border-radius:20px;box-shadow:0 10px 30px #4169e14d;display:flex;height:80px;justify-content:center;margin:0 auto 1.5rem;width:80px}.payment-title{color:#1f2937;font-size:2rem;font-weight:600;margin-bottom:.5rem}.payment-subtitle{color:#6b7280;font-size:1.1rem}.payment-content{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:1fr 400px}.payment-form-section{box-shadow:0 4px 20px #0000001a}.existing-payment-info{padding:1rem 0}.saved-card-info{margin-bottom:2rem}.card-display{background:linear-gradient(135deg,#1f2937,#374151);border-radius:12px;box-shadow:0 4px 12px #00000026;color:#fff;margin-bottom:1rem;padding:1.5rem}.card-brand{font-size:.875rem;margin-bottom:.5rem;opacity:.8;text-transform:uppercase}.card-brand,.card-number{font-weight:600;letter-spacing:.1em}.card-number{font-family:Courier New,monospace;font-size:1.25rem;margin-bottom:1rem}.card-details{align-items:center;display:flex;font-size:.875rem;justify-content:space-between}.card-name{font-weight:500;text-transform:uppercase}.card-expiry{font-family:Courier New,monospace;font-weight:600}.billing-address{background:#f8f9fa;border-radius:8px;margin-bottom:1rem;padding:1rem}.billing-address h3{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.billing-address p{color:#6b7280;font-size:.875rem;margin:.25rem 0}.edit-payment-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;margin-bottom:1.5rem;padding:.75rem 1.5rem;transition:all .2s}.edit-payment-btn:hover{background:#e5e7eb;border-color:#9ca3af}.payment-form-section{background:#fff;border-radius:16px;box-shadow:0 4px 6px #0000000d;padding:2rem}.payment-form .form-section{margin-bottom:2rem}.payment-form .section-title{color:#1f2937;font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}.payment-form .form-group{margin-bottom:1.25rem}.payment-form .form-group label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.payment-form .form-group input{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:all .2s;width:100%}.payment-form .form-group input:focus{background:#fff;border-color:#4169e1;box-shadow:0 0 0 3px #4169e11a;outline:none}.payment-form .form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.payment-form .submit-btn{background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-bottom:1rem;padding:1rem 1.5rem;transition:all .2s;width:100%}.payment-form .submit-btn:hover:not(:disabled){background:#3557c7;box-shadow:0 4px 12px #4169e14d;transform:translateY(-2px)}.payment-form .submit-btn:disabled{cursor:not-allowed;opacity:.6}.secure-notice{align-items:center;background:#f0fdf4;border-radius:8px;color:#10b981;display:flex;font-size:.9rem;gap:.5rem;justify-content:center;padding:1rem}.order-summary{background:#fff;border-radius:16px;box-shadow:0 4px 6px #0000000d;padding:2rem;position:-webkit-sticky;position:sticky;top:2rem}.order-summary h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.summary-content{margin-bottom:2rem}.summary-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.summary-label{color:#6b7280;font-size:.95rem}.summary-value{color:#1f2937;font-weight:500}.summary-divider{background:#e5e7eb;height:1px;margin:1.5rem 0}.summary-item.total{margin-top:1rem}.summary-item.total .summary-label{color:#1f2937;font-size:1.1rem;font-weight:600}.summary-item.total .summary-value{color:#4169e1;font-size:1.5rem;font-weight:700}.plan-features{border-top:1px solid #e5e7eb;padding-top:2rem}.plan-features h3{color:#1f2937;font-size:1rem;font-weight:600;margin-bottom:1rem}.plan-features ul{list-style:none;margin:0;padding:0}.plan-features li{align-items:center;color:#374151;display:flex;font-size:.9rem;gap:.75rem;margin-bottom:.75rem}@media (max-width:968px){.payment-content{grid-template-columns:1fr}.order-summary{position:static}}.dashboard-layout{background-color:var(--bg-primary);display:flex;min-height:100vh}.dashboard-sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-primary);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;height:100vh;overflow-y:auto;position:fixed;width:260px;z-index:100}.sidebar-header{background:var(--bg-blue-subtle);border-bottom:1px solid var(--border-primary);padding:24px 20px}.sidebar-logo{gap:12px}.logo-icon,.sidebar-logo{align-items:center;display:flex}.logo-icon{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-blue);color:#fff;flex-shrink:0;height:48px;justify-content:center;width:48px}.logo-text h2{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.logo-text p{color:var(--text-tertiary);font-size:11px;margin:2px 0 0}.sidebar-nav{flex:1 1;padding:20px 0}.nav-section{margin-bottom:24px}.nav-section-title{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;margin:0 0 8px;padding:0 20px;text-transform:uppercase}.nav-item{align-items:center;border-left:3px solid #0000;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;padding:10px 20px;position:relative;text-decoration:none;transition:all var(--transition-base)}.nav-item:before{background:var(--primary);bottom:0;content:"";left:0;position:absolute;top:0;transform:scaleY(0);transition:transform var(--transition-base);width:3px}.nav-item:hover:before{transform:scaleY(1)}.nav-item:hover{background-color:var(--bg-hover);color:var(--primary);transform:translateX(2px)}.nav-item.active{background-color:var(--bg-blue-subtle);border-left-color:var(--primary);color:var(--primary);font-weight:600}.nav-item.active:before{transform:scaleY(1)}.nav-item svg{stroke-width:2;height:20px;width:20px}.nav-item.add-device{color:var(--primary);font-weight:600}.dashboard-main{display:flex;flex:1 1;flex-direction:column;margin-left:260px;min-height:100vh}.dashboard-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);box-shadow:var(--shadow-sm);color:var(--text-primary);display:flex;justify-content:space-between;padding:16px 32px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-title{color:var(--text-secondary);font-size:14px;font-weight:500}.header-actions{gap:16px}.socket-status{align-items:center;border-radius:20px;display:flex;font-size:12px;font-weight:500;gap:6px;padding:6px 12px;transition:all .3s ease}.socket-status.connected{background:#d1fae5;color:#065f46}.socket-status.disconnected{background:#fee2e2;color:#991b1b}.socket-status .status-dot{animation:pulse 2s ease-in-out infinite;background:currentColor;border-radius:50%;height:6px;width:6px}.socket-status.connected .status-dot{animation:none}.socket-status .status-text{font-size:11px;letter-spacing:.5px;text-transform:uppercase}.notification-btn,.user-btn{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;gap:4px;justify-content:center;padding:8px;position:relative;transition:all var(--transition-base)}.notification-btn:hover,.user-btn:hover{background-color:var(--bg-hover);color:var(--primary);transform:translateY(-1px)}.notification-btn:active,.user-btn:active{transform:translateY(0)}.dropdown-arrow{transition:transform var(--transition-base)}.user-dropdown{position:relative}.dropdown-menu{animation:dropdownSlide .3s cubic-bezier(.16,1,.3,1);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);margin-top:8px;min-width:280px;position:absolute;right:0;top:100%;transform-origin:top right;z-index:1000}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.dropdown-header{background:var(--bg-blue-subtle);border-bottom:1px solid var(--border-primary);gap:12px;padding:16px}.dropdown-header,.user-avatar{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-full);box-shadow:var(--shadow-blue);color:#fff;flex-shrink:0;font-weight:600;height:40px;justify-content:center;width:40px}.user-info{flex:1 1;min-width:0}.user-name{color:var(--text-primary);font-size:14px;margin-bottom:2px}.user-email,.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{color:var(--text-tertiary)}.dropdown-divider{background-color:var(--border-primary);height:1px;margin:0 8px}.dropdown-item{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;padding:12px 16px;text-align:left;text-decoration:none;transition:all var(--transition-base);width:100%}.dropdown-item:hover{background-color:var(--bg-hover);color:var(--primary);padding-left:20px}.dropdown-item:active{transform:scale(.98)}.dropdown-item:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.dropdown-item svg{stroke-width:2;height:16px;width:16px}.notification-badge{background-color:var(--accent-red);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);color:#fff;font-size:10px;font-weight:600;min-width:18px;padding:2px 6px;position:absolute;right:4px;text-align:center;top:4px}.dashboard-content{background-color:var(--bg-primary);flex:1 1;overflow-y:auto;padding:32px}.loading{align-items:center;display:flex;justify-content:center;min-height:100vh}@media (max-width:768px){.dashboard-sidebar{width:200px}.dashboard-main{margin-left:200px}.logo-text p{display:none}.dashboard-content{padding:20px}}.device-management-page{width:100%}.success-message{align-items:center;animation:slideIn .3s ease-out;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#166534;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:24px;padding:12px 16px}.success-message svg{color:#22c55e;flex-shrink:0}.page-header-content h1{color:#1f2937;font-size:28px;font-weight:700;margin:0 0 8px}.page-subtitle{font-size:14px}.page-header-actions{display:flex;gap:12px}.refresh-btn{color:#4b5563}.refresh-btn svg{stroke-width:2}.add-device-btn{align-items:center;background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.add-device-btn:hover{background:#3557c7;transform:translateY(-1px)}.add-device-btn svg{stroke-width:2.5}.stat-card{box-shadow:0 1px 3px #0000001a;justify-content:space-between;transition:all .2s}.stat-card:hover{box-shadow:0 4px 12px #0000001a}.stat-label{font-weight:500;margin-bottom:8px}.stat-value{font-size:32px}.stat-icon{border-radius:10px;opacity:.8}.stat-online .stat-value{color:#10b981}.stat-online .stat-icon{background:#d1fae5;color:#10b981}.stat-offline .stat-value{color:#6b7280}.stat-offline .stat-icon{background:#f3f4f6;color:#6b7280}.stat-error .stat-value{color:#ef4444}.stat-error .stat-icon{background:#fee2e2;color:#ef4444}.devices-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.section-title{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 20px}.search-bar{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:12px 16px}.search-bar svg{stroke-width:2;color:#9ca3af;flex-shrink:0}.search-bar input{background:none;border:none;color:#1f2937;flex:1 1}.search-bar input::placeholder{color:#9ca3af}.devices-container,.empty-state{min-height:200px}.empty-state{align-items:center;background:#f9fafb;border:2px dashed #e5e7eb;border-radius:8px;display:flex;font-size:16px;justify-content:center}.devices-table{overflow-x:auto}.devices-table table{border-collapse:collapse;width:100%}.devices-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.devices-table th{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.devices-table td{border-bottom:1px solid #f3f4f6;color:#1f2937;font-size:14px;padding:16px}.devices-table tbody tr:hover{background:#f9fafb}.device-groups{display:flex;flex-direction:column;gap:32px}.device-group{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.device-group-header{background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:20px 24px}.device-group-title{color:#1f2937;display:flex;font-size:18px;gap:12px;margin:0}.device-count,.device-group-title{align-items:center;font-weight:600}.device-count{background:#e5e7eb;border-radius:14px;color:#4b5563;display:inline-flex;font-size:13px;height:28px;justify-content:center;min-width:28px;padding:0 10px}.device-group .devices-table{background:#fff;overflow-x:auto}.device-group .devices-table table{border-collapse:collapse;width:100%}.device-group .devices-table thead{background:#fff;border-bottom:2px solid #f3f4f6}.device-group .devices-table th{background:#f8fafc;color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;padding:16px 24px;text-align:left;text-transform:uppercase}.device-group .devices-table td{border-bottom:1px solid #f3f4f6;color:#1f2937;font-size:14px;padding:20px 24px;vertical-align:middle}.device-group .devices-table tbody tr:last-child td{border-bottom:none}.device-group .devices-table tbody tr:hover{background:#f8fafc!important;box-shadow:0 2px 4px #0000000d;cursor:pointer;transform:translateY(-1px)}.device-row{transition:all .2s ease}.device-row:hover{background:#f8fafc!important;box-shadow:0 2px 4px #0000000d;cursor:pointer;transform:translateY(-1px)}.actions-cell{pointer-events:all}.device-name{color:#1f2937;font-weight:600}.status-badge{gap:8px;justify-content:center;min-width:85px}.status-badge svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));flex-shrink:0;height:8px;width:8px}.status-offline:hover{box-shadow:0 4px 12px #6b728066}.status-maintenance{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#fbbf24;box-shadow:0 2px 8px #f59e0b4d}.status-maintenance:hover{box-shadow:0 4px 12px #f59e0b66}.action-btn{background:#4169e1;color:#fff;font-size:13px;font-weight:500;padding:6px 16px}.action-btn:hover{background:#3557c7}.action-icon-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .2s;width:32px}.action-icon-btn:hover{background:#f3f4f6;color:#4169e1}.action-icon-btn svg{stroke-width:2}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.page-header{flex-direction:column;gap:16px}.page-header-actions{width:100%}.add-device-btn,.refresh-btn{flex:1 1;justify-content:center}.stats-grid{grid-template-columns:1fr}.devices-table{font-size:12px}}.protocol-badge{background:#eff6ff;border-radius:12px;color:#1e40af;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase}.device-template-selector{background:#f7f8fa;background:var(--card-bg,#f7f8fa);border-radius:12px;box-shadow:0 2px 12px #0000000a;margin:0 auto;max-width:900px;padding:24px}.selector-header{margin-bottom:24px}.selector-header h2{align-items:center;color:#222;color:var(--text-primary,#222);display:flex;font-size:1.5rem;font-weight:600;gap:8px;margin:0 0 8px}.selector-header p{color:#555;color:var(--text-secondary,#555);margin:0}.category-icon-small{font-size:1.25rem}.btn-back{align-items:center;background:none;border:none;color:#4f7cff;color:var(--primary-color,#4f7cff);cursor:pointer;display:flex;font-size:.875rem;gap:4px;margin-bottom:16px;padding:0}.btn-back:hover{text-decoration:underline}.categories-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:24px}.category-card{background:#fff;background:var(--card-bg-secondary,#fff);border:1px solid #e0e3ea;border:1px solid var(--border-color,#e0e3ea);border-radius:10px;cursor:pointer;padding:20px;text-align:center;transition:all .2s ease}.category-card:hover{border-color:#4f7cff;border-color:var(--primary-color,#4f7cff);box-shadow:0 4px 12px #4f7cff1a;transform:translateY(-2px)}.category-icon{display:block;font-size:2.5rem;margin-bottom:12px}.category-card h3{color:#222;color:var(--text-primary,#222);font-size:1rem;font-weight:600;margin:0 0 4px}.category-card p{color:#555;color:var(--text-secondary,#555);font-size:.75rem;margin:0 0 8px}.template-count{color:#4f7cff;color:var(--primary-color,#4f7cff);font-size:.75rem;font-weight:500}.template-filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.search-box{flex:1 1;min-width:200px}.search-box input{background:#fff;background:var(--input-bg,#fff);border:1px solid #e0e3ea;border:1px solid var(--border-color,#e0e3ea);border-radius:8px;color:#222;color:var(--text-primary,#222);font-size:.875rem;padding:10px 16px;width:100%}.search-box input:focus{border-color:#4f7cff;border-color:var(--primary-color,#4f7cff);outline:none}.manufacturer-filter{align-items:center;display:flex;gap:8px}.manufacturer-filter label{color:#555;color:var(--text-secondary,#555);font-size:.875rem}.manufacturer-filter select{background:#fff;background:var(--input-bg,#fff);border:1px solid #e0e3ea;border:1px solid var(--border-color,#e0e3ea);border-radius:8px;color:#222;color:var(--text-primary,#222);cursor:pointer;font-size:.875rem;padding:10px 16px}.templates-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-bottom:24px}.template-card{background:#fff;background:var(--card-bg-secondary,#fff);border:1px solid #e0e3ea;border:1px solid var(--border-color,#e0e3ea);border-radius:10px;cursor:pointer;padding:16px;transition:all .2s ease}.template-card:hover{border-color:#4f7cff;border-color:var(--primary-color,#4f7cff);box-shadow:0 4px 12px #4f7cff1a;transform:translateY(-2px)}.template-header{margin-bottom:8px}.template-header h3{color:#4f7cff;color:var(--primary-color,#4f7cff);font-size:.875rem;font-weight:600;margin:0}.template-model{color:#222;color:var(--text-primary,#222);display:block;font-size:1rem;font-weight:600;margin-top:4px}.template-description{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#555;color:var(--text-secondary,#555);display:-webkit-box;font-size:.813rem;line-height:1.4;margin:0 0 12px;overflow:hidden}.template-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.template-meta .protocol{background:#4f7cff1a;background:var(--primary-color-alpha,#4f7cff1a);border-radius:4px;color:#4f7cff;color:var(--primary-color,#4f7cff);font-size:.75rem;font-weight:500;padding:2px 8px}.template-meta .capability{background:#10b9811a;background:var(--success-color-alpha,#10b9811a);border-radius:4px;color:#10b981;color:var(--success-color,#10b981);font-size:.75rem;padding:2px 8px}.template-tags{display:flex;flex-wrap:wrap;gap:4px}.template-tags .tag{background:#e0e3ea;background:var(--tag-bg,#e0e3ea);border-radius:4px;color:#555;color:var(--text-secondary,#555);font-size:.688rem;padding:2px 6px}.selected-template-info{background:#fff;background:var(--card-bg-secondary,#fff);border:1px solid #4f7cff;border:1px solid var(--primary-color,#4f7cff);border-radius:10px;margin-bottom:24px;padding:16px}.selected-template-info h3{color:#222;color:var(--text-primary,#222);font-size:1.125rem;font-weight:600;margin:0 0 8px}.selected-template-info p{color:#555;color:var(--text-secondary,#555);font-size:.875rem;margin:0}.form-section{margin-bottom:28px}.form-section h4{color:#222;color:var(--text-primary,#222);font-size:1rem;font-weight:600;margin:0 0 4px}.section-hint{color:#555;color:var(--text-secondary,#555);font-size:.813rem;margin:0 0 16px}.form-group{margin-bottom:16px}.form-group label{color:#222;color:var(--text-primary,#222);font-size:.875rem}.form-group label .required{color:#ef4444;color:var(--error-color,#ef4444)}.form-group input,.form-group select,.form-group textarea,.form-input{background:#fff;background:var(--input-bg,#fff);border:1px solid #e0e3ea;border:1px solid var(--border-color,#e0e3ea);border-radius:8px;color:#222;color:var(--text-primary,#222);font-size:.875rem;padding:10px 14px;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4f7cff;border-color:var(--primary-color,#4f7cff)}.form-group input.error,.form-group select.error{border-color:var(--error-color,#ef4444)}.field-help{color:#555;color:var(--text-secondary,#555)}.field-error,.field-help{display:block;font-size:.75rem;margin-top:4px}.field-error{color:var(--error-color,#ef4444)}.capabilities-list{display:flex;flex-wrap:wrap;gap:10px}.capability-item{align-items:center;border-radius:6px;display:flex;font-size:.813rem;gap:6px;padding:6px 12px}.capability-item.enabled{background:#10b9811a;background:var(--success-color-alpha,#10b9811a);color:#10b981;color:var(--success-color,#10b981)}.capability-item.disabled{background:#e0e3ea;background:var(--disabled-bg,#e0e3ea);color:#bbb;color:var(--text-secondary,#bbb)}.capability-icon{font-weight:600}.form-actions,.selector-actions{border-top:1px solid #e0e3ea;border-top:1px solid var(--border-color,#e0e3ea);display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.btn-primary{background:#4f7cff;background:var(--primary-color,#4f7cff);border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;padding:10px 20px;transition:background .2s ease}.btn-primary:hover{background:#3a5fc8;background:var(--primary-color-hover,#3a5fc8)}.btn-primary:disabled{background:#e0e3ea;background:var(--disabled-bg,#e0e3ea);cursor:not-allowed}.btn-secondary{background:#0000;border:1px solid #e0e3ea;border:1px solid var(--border-color,#e0e3ea);border-radius:8px;color:#222;color:var(--text-primary,#222);cursor:pointer;font-size:.875rem;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-secondary:hover{border-color:#555;border-color:var(--text-secondary,#555)}.btn-link{background:none;border:none;color:#4f7cff;color:var(--primary-color,#4f7cff);cursor:pointer;font-size:.875rem;padding:10px 20px}.btn-link:hover{text-decoration:underline}.loading-spinner{color:#555;color:var(--text-secondary,#555);padding:40px}.error-message{background:var(--error-bg,#ef44441a);border:1px solid #ef4444;border:1px solid var(--error-color,#ef4444);color:var(--error-color,#ef4444);font-size:.875rem;margin-bottom:16px}.no-templates{color:#555;color:var(--text-secondary,#555);padding:40px;text-align:center}.no-templates p{margin-bottom:12px}@media (max-width:640px){.device-template-selector{padding:16px}.categories-grid{grid-template-columns:repeat(2,1fr)}.templates-grid{grid-template-columns:1fr}.form-actions,.selector-actions,.template-filters{flex-direction:column}.btn-link,.btn-primary,.btn-secondary{width:100%}}.pairing-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9999}.pairing-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.pairing-modal-header{border-bottom:1px solid #e5e7eb;padding:32px 32px 24px;text-align:center}.success-icon-large{align-items:center;animation:scaleIn .4s ease-out;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;color:#fff;display:flex;font-size:32px;font-weight:700;height:64px;justify-content:center;margin:0 auto 16px;width:64px}.pairing-modal-header h2{color:#111827;font-size:24px;margin:0 0 8px}.pairing-modal-header .device-name{color:#6b7280;font-size:16px;font-weight:500;margin:0}.pairing-modal-body{padding:24px 32px}.warning-banner{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;color:#92400e;display:flex;font-size:14px;gap:12px;margin-bottom:24px;padding:12px 16px}.warning-banner svg{color:#f59e0b;flex-shrink:0}.pairing-code-section{margin-bottom:24px}.pairing-code-section label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.pairing-code-box{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;display:flex;gap:8px;padding:12px}.pairing-code{background:#0000;color:#1f2937;flex:1 1;font-family:Courier New,monospace;font-size:13px;padding:0;word-break:break-all}.copy-button{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 12px;transition:all .2s;white-space:nowrap}.copy-button:hover{background:#2563eb;transform:translateY(-1px)}.copy-button:active{transform:translateY(0)}.copy-button svg{height:16px;width:16px}.device-info-grid{grid-gap:16px;background:#f9fafb;border-radius:8px;gap:16px;margin-bottom:24px;padding:16px}.info-item{gap:4px}.info-item label{font-weight:500}.info-item span{color:#111827}.status-badge{border-radius:4px;padding:4px 8px}.status-offline{background:#fee2e2;color:#991b1b}.pairing-instructions{margin-bottom:24px}.pairing-instructions h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 12px}.pairing-instructions ol{color:#374151;font-size:14px;line-height:1.8;margin:0;padding-left:20px}.pairing-instructions li{margin-bottom:8px}.quick-actions{display:flex;gap:12px}.btn-download{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:10px 16px;transition:all .2s}.btn-download:hover{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.btn-download svg{height:16px;width:16px}.pairing-modal-footer{background:#f9fafb;border-radius:0 0 12px 12px;border-top:1px solid #e5e7eb;padding:20px 32px}.btn-primary-large{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 24px;transition:all .2s;width:100%}.btn-primary-large:hover{box-shadow:0 10px 20px #3b82f64d;transform:translateY(-2px)}.btn-primary-large:active{transform:translateY(0)}@media (max-width:640px){.pairing-modal{border-radius:0;margin:0;max-height:100vh;max-width:100%}.device-info-grid{grid-template-columns:1fr}.pairing-modal-body,.pairing-modal-footer,.pairing-modal-header{padding-left:20px;padding-right:20px}}.add-device-page{background:#0000;padding:0}.back-link{color:var(--text-secondary);margin-bottom:24px;padding:0;transition:color var(--transition-base)}.back-link:hover{color:var(--primary-light)}.back-link svg{height:20px;width:20px}.info-banner{background:#3b82f61a;border:1px solid #3b82f64d;border-radius:var(--radius-md)}.success-banner{align-items:center;animation:slideDown .3s ease-out;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:var(--radius-md);display:flex;gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px 20px}.info-banner-content,.success-banner-content{align-items:flex-start;display:flex;flex:1 1;gap:12px}.info-icon,.success-icon{flex-shrink:0;margin-top:2px}.info-icon{color:var(--primary-light)}.success-icon{color:#22c55e}.info-banner p,.success-banner p{color:var(--primary-light);font-size:14px;line-height:1.5;margin:0}.success-banner span{color:#22c55e;font-weight:500}.request-support-btn{background:var(--bg-elevated);border:1px solid var(--border-accent);border-radius:var(--radius-sm);color:var(--primary-light);transition:all var(--transition-base)}.request-support-btn:hover{background:var(--bg-hover)}.register-device-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.card-title{color:var(--text-primary)}.card-title svg{color:var(--primary-light)}.form-group label{color:var(--text-secondary)}.required{color:var(--accent-red)}.form-group input,.form-group select{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--text-primary);transition:all var(--transition-base)}.form-group input:focus,.form-group select:focus{background:var(--bg-tertiary);border-color:var(--border-accent)}.form-group input.error,.form-group select.error{border-color:var(--accent-red)}.form-group input::placeholder{color:var(--text-muted)}.field-error{color:var(--accent-red)}.error-message,.register-btn{border-radius:var(--radius-sm)}.register-btn{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);box-shadow:var(--shadow-glow);transition:all var(--transition-base)}.register-btn:hover:not(:disabled){box-shadow:0 0 30px #3b82f666;transform:translateY(-1px)}.info-banner{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px 20px}.info-banner-content{align-items:flex-start;display:flex;flex:1 1;gap:12px}.info-icon{color:#3b82f6;flex-shrink:0;margin-top:2px}.info-banner p{color:#1e40af;font-size:14px;line-height:1.5;margin:0}.request-support-btn{background:#fff;border:1px solid #3b82f6;border-radius:6px;color:#3b82f6;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.request-support-btn:hover{background:#eff6ff}.register-device-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:32px}.card-title{align-items:center;color:#1f2937;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0 0 24px}.card-title svg{color:#4169e1}.form-grid{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.form-group input,.form-group select{border-radius:6px;color:#1f2937;padding:10px 14px;transition:all .2s}.form-group input.error,.form-group select.error{border-color:#ef4444}.form-group input::placeholder{color:#9ca3af}.field-error{color:#ef4444;font-size:12px;margin-top:-4px}.error-message{background:#fee2e2;border:1px solid #fecaca;border-radius:6px}.register-btn{background:#1f2937;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:12px 24px;transition:background .2s}.register-btn:hover:not(:disabled){background:#111827}.register-btn:disabled{cursor:not-allowed;opacity:.6}.cancel-btn{background:#fff;border-radius:6px;font-size:16px}.cancel-btn:hover{background:#f9fafb}@media (max-width:768px){.info-banner{align-items:flex-start;flex-direction:column}.request-support-btn{width:100%}.register-device-card{padding:24px}}.add-device-tabs{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;margin-bottom:24px;padding:6px}.add-device-tabs .tab{background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.add-device-tabs .tab:hover{background:#f9fafb;color:#1f2937}.add-device-tabs .tab.active{background:#1f2937;color:#fff}.browse-templates-panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:32px}.browse-templates-panel h2{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 24px}.template-categories{display:flex;flex-direction:column;gap:32px}.template-category-panel{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.category-title{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:16px;font-weight:600;margin:0 0 16px;padding-bottom:12px}.template-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.template-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:16px;transition:all .2s ease}.template-item:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.template-item.empty{border-style:dashed;color:#9ca3af;font-style:italic;justify-content:center}.template-info{align-items:center;display:flex;flex:1 1;gap:8px}.template-info strong{color:#1f2937;font-weight:600}.template-info span{color:#6b7280;font-size:14px}.select-template-btn{background:#1f2937;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.select-template-btn:hover{background:#111827;box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}@media (max-width:640px){.add-device-tabs,.template-item{flex-direction:column}.template-item{align-items:flex-start;gap:12px}.select-template-btn{width:100%}}.browse-templates-page{padding:0}.job-status{align-items:flex-start;border-radius:8px;display:inline-flex;flex-direction:column;font-size:14px;gap:4px;padding:6px 12px;transition:all .3s ease}.job-status.completed{background:#d1fae5;color:#065f46}.job-status.failed{background:#fee2e2;color:#991b1b}.job-status.queued{background:#fef3c7;color:#92400e}.job-status.active{background:#dbeafe;color:#1e40af}.status-content{align-items:center;display:flex;gap:8px}.status-icon.completed{color:#10b981}.status-icon.failed{color:#ef4444}.status-icon.active{color:#3b82f6}.status-icon.queued{color:#f59e0b}.status-icon.spin{animation:spin 1s linear infinite}.status-text{font-weight:500}.offline-badge{animation:pulse 2s ease-in-out infinite;color:#dc2626;font-size:8px;margin-left:4px}.mini-progress{background:#0000001a;border-radius:2px;height:3px;overflow:hidden;width:100%}.mini-progress-fill{background:currentColor;border-radius:2px;height:100%;transition:width .3s ease}.error-message{color:#991b1b;margin-top:2px}.job-history-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.job-history-modal{animation:slideUp .3s ease-out;background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:90%}.job-history-header{align-items:center;border-bottom:1px solid var(--border-secondary);display:flex;justify-content:space-between;padding:20px 24px}.test-print-btn{align-items:center;background:var(--primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all var(--transition-base)}.test-print-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.test-print-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.test-print-btn svg{height:16px;width:16px}.close-btn:hover{color:var(--text-primary)}.job-history-content{flex:1 1;overflow-y:auto;padding:0}.empty-state,.loading-state{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:40px 20px}.spinner{animation:spin 1s linear infinite;border-top:3px solid var(--border-secondary);border:3px solid var(--border-secondary);border-radius:50%;border-top-color:var(--primary);height:32px;margin-bottom:12px;width:32px}.jobs-list{padding:16px 24px}.job-item{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);margin-bottom:12px;padding:16px;transition:all var(--transition-base)}.job-item:hover{background:var(--bg-hover);border-color:var(--border-accent)}.job-item:last-child{margin-bottom:0}.job-item.status-completed{border-left:4px solid #10b981}.job-item.status-failed{border-left:4px solid #ef4444}.job-item.status-processing{border-left:4px solid #f59e0b}.job-item.status-pending{border-left:4px solid #6b7280}.job-item.status-cancelled{border-left:4px solid #8b5cf6}.job-main{justify-content:space-between;margin-bottom:8px}.job-main,.job-type{align-items:center;display:flex}.job-type{gap:8px}.job-icon{font-size:16px}.job-name{color:var(--text-primary);font-size:14px;font-weight:500}.job-status .status-badge{border-radius:var(--radius-sm);font-size:12px;font-weight:500;padding:4px 8px;text-transform:capitalize}.status-badge.status-completed{background:#10b9811a;color:#10b981}.status-badge.status-failed{background:#ef44441a;color:#ef4444}.status-badge.status-processing{background:#f59e0b1a;color:#f59e0b}.status-badge.status-pending{background:#6b72801a;color:#6b7280}.status-badge.status-cancelled{background:#8b5cf61a;color:#8b5cf6}.status-badge.status-timeout{background:#ef44441a;color:#ef4444}.job-details{border-top:1px solid var(--border-tertiary);padding-top:8px}.job-time{color:var(--text-muted)}.job-error{background:#ef44441a;border:1px solid #ef444433;border-radius:var(--radius-sm);margin-top:8px;padding:8px 12px}.error-message{color:#dc2626;font-weight:500}@media (max-width:768px){.job-history-modal{max-height:85vh;width:95%}.job-history-header,.jobs-list{padding:16px 20px}.job-main{align-items:flex-start;flex-direction:column;gap:8px}.job-info{flex-direction:row;gap:12px}}.device-actions{gap:8px;position:relative}.action-btn{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--text-secondary);height:32px;transition:all var(--transition-base);width:32px}.action-btn:hover{background:var(--bg-hover);border-color:var(--border-accent);color:var(--text-primary)}.edit-btn:hover{background:#3b82f61a;border-color:var(--primary-light);color:var(--primary-light)}.jobs-btn:hover{background:#10b9811a;border-color:#10b981;color:#10b981}.history-btn:hover{background:#a855f71a;border-color:#a855f7;color:#a855f7}.actions-dropdown{animation:slideDown .2s ease-out;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:absolute;right:0;top:40px;width:320px;z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.actions-header{align-items:center;border-bottom:1px solid var(--border-secondary);display:flex;justify-content:space-between;padding:16px 20px}.actions-header h4{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.close-btn{border-radius:var(--radius-sm);color:var(--text-muted);font-size:20px;transition:all var(--transition-base)}.close-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.actions-list{max-height:400px;overflow-y:auto;padding:8px}.action-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;padding:12px 16px;text-align:left;transition:all var(--transition-base);width:100%}.action-item:hover:not(.disabled){background:var(--bg-hover)}.action-item.disabled{cursor:not-allowed;opacity:.6}.action-icon{flex-shrink:0;font-size:20px;text-align:center;width:24px}.action-details{display:flex;flex:1 1;flex-direction:column;gap:2px}.action-name{color:var(--text-primary);font-size:14px;font-weight:500}.action-description{color:var(--text-muted);font-size:12px;line-height:1.4}.edit-modal-overlay{animation:fadeIn .2s ease-out;background:#00000080;z-index:2000}.edit-modal{animation:slideUp .3s ease-out;background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.edit-modal-header{border-bottom:1px solid var(--border-secondary);padding:20px 24px}.edit-modal-header h3{color:var(--text-primary);font-size:18px}.edit-form{padding:24px}.edit-form .form-group{margin-bottom:20px}.edit-form .form-group:last-of-type{margin-bottom:24px}.edit-form label{color:var(--text-secondary);display:block;font-size:14px;font-weight:500;margin-bottom:6px}.edit-form input,.edit-form select{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;padding:10px 12px;transition:all var(--transition-base);width:100%}.edit-form input:focus,.edit-form select:focus{background:var(--bg-tertiary);border-color:var(--border-accent);outline:none}.form-actions{border-top:1px solid var(--border-secondary)}.cancel-btn{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-base)}.cancel-btn:hover{background:var(--bg-hover);border-color:var(--border-accent)}.save-btn{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-sm);box-shadow:var(--shadow-glow);transition:all var(--transition-base)}.save-btn:hover{box-shadow:0 0 20px #3b82f666;transform:translateY(-1px)}@media (max-width:768px){.actions-dropdown{right:-20px;width:280px}.edit-modal{margin:20px;width:95%}.edit-form,.edit-modal-header{padding:16px 20px}}.device-actions-buttons{width:100%}.action-button-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.action-button{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;color:#1f2937;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;min-height:60px;padding:16px 20px;transition:all .2s ease}.action-button:hover{background:#f8fafc;border-color:#4169e1;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.action-button.disabled{cursor:not-allowed;opacity:.6;transform:none}.action-button .action-icon{flex-shrink:0;font-size:20px}.action-button .action-name{color:#374151;font-weight:600}.action-button[title*="Turn On"]:hover{background:#f0fdf4;border-color:#10b981}.action-button[title*="Turn Off"]:hover{background:#fef2f2;border-color:#ef4444}.action-button[title*=Access]:hover,.action-button[title*=Door]:hover{background:#faf5ff;border-color:#8b5cf6}.action-button[title*=Camera]:hover{background:#fffbeb;border-color:#f59e0b}.notification{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;bottom:20px;box-shadow:0 4px 20px #00000026;max-width:450px;min-width:350px;padding:16px;position:fixed;right:20px;transition:all .3s ease;z-index:9999}.notification.success{border-left:4px solid #10b981}.notification.error{border-left:4px solid #ef4444}.notification.processing{border-left:4px solid #3b82f6}.notification-content{align-items:flex-start;display:flex;gap:12px}.status-icon{flex-shrink:0;margin-top:2px}.status-icon.success{color:#10b981}.status-icon.error{color:#ef4444}.status-icon.processing{color:#3b82f6}.status-icon.pending{color:#6b7280}.status-icon.rotating{animation:rotate 1s linear infinite}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.notification-text{flex:1 1}.notification-title{color:#111827;font-size:16px;font-weight:600;margin-bottom:4px}.notification-message{color:#6b7280;font-size:14px;margin-bottom:8px}.progress-bar{background:#e5e7eb;border-radius:2px;height:4px;margin-top:8px;width:100%}.progress-fill{background:#3b82f6;border-radius:2px}.close-btn{align-items:center;color:#9ca3af;display:flex;flex-shrink:0;height:24px;justify-content:center;padding:0;width:24px}.close-btn:hover{color:#4b5563}.notification:nth-child(2){bottom:110px}.notification:nth-child(3){bottom:200px}@media (max-width:640px){.notification{left:20px;min-width:auto;right:20px}}.device-detail-page{background:#f8fafc;min-height:100vh;padding:24px 32px}.detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.back-link{color:#6b7280;display:flex;font-size:16px;font-weight:500}.back-link svg{stroke-width:2}.detail-actions{display:flex;gap:12px}.edit-btn{align-items:center;background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.edit-btn:hover{background:#3557c7;transform:translateY(-1px)}.delete-btn{align-items:center;background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.delete-btn:hover{background:#dc2626;transform:translateY(-1px)}.error-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-left-color:#4169e1;border-radius:50%;height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-state p{color:#ef4444;font-size:16px;margin-bottom:16px}.back-btn{background:#4169e1;border-radius:8px;color:#fff;font-weight:600;padding:10px 20px;transition:all .2s}.back-btn:hover{background:#3557c7}.device-info-section{grid-gap:24px;display:grid;gap:24px;grid-template-columns:2fr 1fr;margin-bottom:32px}.device-info-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.device-info-header h1{color:#1f2937;font-size:24px;font-weight:700;margin:0 0 20px}.device-info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.info-item{flex-direction:column;gap:6px}.info-item label{color:#6b7280;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.info-item span{color:#1f2937;font-size:14px;font-weight:500}.status-badge{display:inline-flex;width:-webkit-fit-content;width:fit-content}.status-badge.status-online{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:#4ade80;box-shadow:0 2px 8px #22c55e4d}.status-badge.status-online:hover{box-shadow:0 4px 12px #22c55e66}.status-badge.status-offline{background:linear-gradient(135deg,#6b7280,#374151);border-color:#9ca3af;box-shadow:0 2px 8px #6b72804d}.status-badge.status-offline:hover{box-shadow:0 4px 12px #6b728066}.status-badge.status-error{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#f87171;box-shadow:0 2px 8px #ef44444d}.status-badge.status-error:hover{box-shadow:0 4px 12px #ef444466}.device-status-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;height:-webkit-fit-content;height:fit-content;padding:24px}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.status-header h2{color:#1f2937;font-size:18px;font-weight:600;margin:0}.status-indicator{align-items:center;border-radius:20px;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:8px 16px;text-transform:capitalize}.status-indicator.status-online{background:#dcfce7;color:#166534}.status-indicator.status-offline{background:#fef2f2;color:#991b1b}.status-details{gap:16px}.status-details,.status-item{display:flex;flex-direction:column}.status-item{gap:4px}.status-label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.status-value{color:#1f2937;font-size:14px;font-weight:500}.device-id{background:#f3f4f6;border-radius:4px;color:#4b5563;font-family:monospace;font-size:12px;padding:4px 8px;word-break:break-all}.activity-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:32px;padding:24px}.activity-section h2{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.activity-log{display:flex;flex-direction:column;gap:16px}.activity-item{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;gap:12px;padding:12px 0}.activity-item:last-child{border-bottom:none}.activity-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}.activity-icon.online{background:#dcfce7;color:#166534}.activity-icon.warning{background:#fef3c7;color:#92400e}.activity-icon.success{background:#dcfce7;color:#166534}.activity-content{flex:1 1}.activity-title{color:#1f2937;font-size:14px;font-weight:500;margin:0 0 4px}.activity-time{color:#6b7280;font-size:12px;margin:0}.actions-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.actions-section h2{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.device-actions-container{margin-top:8px}@media (max-width:1024px){.device-info-grid,.device-info-section{grid-template-columns:1fr}}@media (max-width:768px){.device-detail-page{padding:16px}.detail-header{align-items:flex-start;flex-direction:column;gap:16px}.detail-actions{justify-content:flex-end;width:100%}.actions-section,.activity-section,.device-info-card,.device-status-card{padding:16px}}.edit-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.edit-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}.edit-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:24px;padding:24px 24px 0}.edit-modal-header h3{color:#111827;font-size:20px;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:24px;line-height:1;padding:4px;transition:color .2s}.close-btn:hover{color:#ef4444}.edit-form{padding:0 24px 24px}.form-group input,.form-group select{background:#fff;border:1px solid #d1d5db;color:#111827;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{box-shadow:0 0 0 3px #4169e11a;outline:none}.form-actions{margin-top:32px}.cancel-btn{background:#f3f4f6;color:#374151;padding:10px 20px}.cancel-btn:hover{background:#e5e7eb;color:#111827}.save-btn{background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s}.save-btn:hover{background:#3b5ac7}.view-history-btn{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.view-history-btn:hover{background:#e5e7eb;color:#111827}.delete-modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.delete-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #00000014;max-width:480px;padding:0;width:90%}.delete-modal-header{align-items:center;border-bottom:1px solid #fee2e2;display:flex;justify-content:space-between;margin-bottom:20px;padding:24px 24px 0}.delete-modal-header h3{color:#dc2626;font-size:20px;font-weight:600;margin:0}.delete-modal-content{padding:0 24px;text-align:center}.warning-icon{margin-bottom:16px}.warning-icon svg{stroke:#f59e0b;height:48px;width:48px}.delete-message h4{color:#111827;font-size:18px;font-weight:600;margin:0 0 12px}.delete-message p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.delete-message strong{color:#111827;font-weight:600}.delete-modal-actions{border-top:1px solid #fee2e2;display:flex;gap:12px;justify-content:flex-end;margin-top:32px;padding:24px}.confirm-delete-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s}.confirm-delete-btn:hover:not(:disabled){background:#b91c1c}.confirm-delete-btn:disabled{cursor:not-allowed;opacity:.6}.socket-offline-banner{animation:slideIn .3s ease-out;background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;box-shadow:0 4px 12px #0000001a;color:#92400e;font-size:14px;font-weight:500;padding:12px 20px;position:fixed;right:20px;top:20px;z-index:9998}@keyframes slideIn{0%{opacity:0;transform:translateX(400px)}to{opacity:1;transform:translateX(0)}}.delete-btn:disabled{cursor:not-allowed;opacity:.6}.settings-page{padding:0}.settings-header{margin-bottom:24px}.back-link{background:none;border:none;cursor:pointer;padding:8px 0}.settings-title-section h1{color:#1f2937;font-size:28px;font-weight:700;margin:0 0 8px}.settings-subtitle{color:#6b7280;font-size:14px;margin:0}.settings-tabs{border-bottom:1px solid #e5e7eb;display:flex;gap:8px;margin-bottom:32px}.tab-button{align-items:center;border-bottom:2px solid #0000;color:#6b7280;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px}.tab-button:hover{background:#f9fafb;color:#1f2937}.tab-button.active{background:#fff;border-bottom-color:#4169e1;color:#1f2937}.tab-icon{font-size:16px}.settings-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:32px}.section-header{margin-bottom:24px}.section-header h2{color:#1f2937;font-size:20px;margin:0 0 8px}.section-header p{color:#6b7280;font-size:14px;margin:0}.message{font-size:14px;margin-bottom:24px;padding:12px 16px}.message.success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.message.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.company-form{display:flex;flex-direction:column;gap:20px}.form-group{gap:8px}.form-group.full-width{grid-column:1/-1}.form-group input,.form-group select,.form-group textarea{background:#f9fafb;border:1px solid #d1d5db;color:#1f2937;padding:10px 14px;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;border-color:#4169e1}.save-button{align-self:flex-start;background:#1f2937;padding:12px 24px}.save-button:hover:not(:disabled){background:#111827}.save-button:disabled{opacity:.6}.current-subscription{margin-bottom:48px}.current-subscription h2{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 8px}.current-subscription p{color:#6b7280;font-size:14px;margin:0 0 20px}.current-plan-card{background:#f9fafb;border:1px solid #e5e7eb;gap:16px;padding:20px}.current-plan-card,.plan-icon{align-items:center;border-radius:12px;display:flex}.plan-icon{background:#fff;font-size:32px;height:56px;justify-content:center;width:56px}.plan-details{flex:1 1}.plan-name-price{align-items:center;display:flex;gap:12px;margin-bottom:4px}.plan-name{color:#1f2937;font-size:16px;font-weight:600}.plan-price{color:#4169e1;font-size:14px;font-weight:600}.plan-machines{color:#6b7280;font-size:14px}.change-subscription h2{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 8px}.change-subscription p{color:#6b7280;font-size:14px;margin:0 0 24px}.plans-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}.plan-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:24px;transition:all .2s}.plan-card:hover{border-color:#4169e1;box-shadow:0 4px 12px #4169e11a}.plan-card-header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.plan-card-icon{font-size:24px}.plan-card-header h3{color:#1f2937;font-size:18px;font-weight:600;margin:0}.plan-card-price{align-items:baseline;display:flex;gap:4px;margin-bottom:8px}.plan-card-price .price{color:#1f2937;font-size:32px;font-weight:700}.plan-card-machines,.plan-card-price .period{color:#6b7280;font-size:14px}.plan-card-machines{margin:0 0 20px}.plan-features{list-style:none;margin:0 0 24px;padding:0}.plan-features li{border-bottom:1px solid #f3f4f6;color:#4b5563;font-size:14px;padding:8px 0}.plan-features li:last-child{border-bottom:none}.select-plan-button{background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#1f2937;cursor:pointer;font-size:14px;font-weight:600;padding:12px;transition:all .2s;width:100%}.select-plan-button:hover{background:#4169e1;border-color:#4169e1;color:#fff}@media (max-width:1024px){.plans-grid{grid-template-columns:1fr}}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.saved-payment-method{margin-bottom:24px}.payment-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;justify-content:space-between;margin-bottom:16px;padding:20px}.card-info,.payment-card{align-items:center;display:flex}.card-info{gap:16px}.card-icon{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;font-size:24px;height:40px;justify-content:center;width:40px}.card-details h3{color:#1f2937;font-size:16px;font-weight:600;margin:0 0 4px}.card-number{color:#6b7280;font-family:monospace;font-size:14px;margin:0 0 2px}.card-expiry{color:#9ca3af;font-size:12px;margin:0}.card-actions{display:flex;gap:8px}.delete-button,.edit-button{border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.edit-button{background:#fff;border-color:#4169e1;color:#4169e1}.edit-button:hover{background:#4169e1;color:#fff}.delete-button{background:#fff;border-color:#dc2626;color:#dc2626}.delete-button:hover{background:#dc2626;color:#fff}.delete-button:disabled{cursor:not-allowed;opacity:.5}.billing-address-display{background:#f9fafb;border-radius:8px;padding:16px}.billing-address-display h4{color:#1f2937;font-size:14px;font-weight:600;margin:0 0 8px}.billing-address-display p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.no-payment-method{align-items:center;display:flex;justify-content:center;min-height:300px}.empty-state{max-width:400px}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 8px}.empty-state p{font-size:14px;line-height:1.5;margin:0 0 24px}.add-payment-button{background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background .2s}.add-payment-button:hover{background:#3730a3}.payment-form-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.payment-form-modal{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:90%}.modal-header{margin-bottom:24px;padding-bottom:16px}.modal-header h3{color:#1f2937;font-size:18px;font-weight:600}.close-button{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:24px;padding:4px;transition:background .2s}.close-button:hover{background:#f3f4f6}.modal-actions{border-top:1px solid #e5e7eb;padding-top:16px}.save-button{background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px;transition:background .2s}.save-button:hover{background:#3730a3}.save-button:disabled{background:#9ca3af;cursor:not-allowed}.cancel-button{background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px;transition:all .2s}.cancel-button:hover{background:#f9fafb;border-color:#d1d5db}.staff-management-page{padding:0}.page-header{align-items:flex-start;margin-bottom:32px}.back-link{align-items:center;color:#1f2937;display:inline-flex;font-size:14px;gap:8px;margin-bottom:16px;text-decoration:none;transition:color .2s}.back-link:hover{color:#4169e1}.back-arrow{font-size:18px}.staff-management-page h1{color:#1f2937;font-size:32px;font-weight:700;margin:0 0 8px}.page-subtitle{color:#6b7280;font-size:16px;margin:0}.btn-add-staff{align-items:center;background:#000;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:background .2s}.btn-add-staff:hover{background:#1f2937}.plus-icon{font-size:18px;font-weight:400}.error-message{background:#fee;color:#c00;font-size:14px;margin-bottom:24px;padding:12px 16px}.stats-grid{grid-template-columns:repeat(4,1fr);margin-bottom:32px}.stat-card{border:1px solid #e5e7eb;gap:16px;padding:24px}.stat-card,.stat-icon{align-items:center;border-radius:12px;display:flex}.stat-icon{flex-shrink:0;height:48px;justify-content:center;width:48px}.users-icon{background:#f3f4f6;color:#6b7280}.admins-icon{background:#fef3c7;color:#f59e0b}.staff-icon{background:#dbeafe;color:#3b82f6}.active-icon{background:#d1fae5;color:#10b981}.stat-content{flex:1 1}.stat-label{color:#6b7280;font-size:14px;margin-bottom:4px}.stat-value{color:#1f2937;font-size:28px}.users-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px}.users-section h2{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.search-bar{margin-bottom:24px;position:relative}.search-icon{color:#9ca3af;left:16px;position:absolute;top:50%;transform:translateY(-50%)}.search-bar input{border:1px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none;padding:12px 16px 12px 48px;transition:border-color .2s;width:100%}.search-bar input:focus{border-color:#4169e1}.empty-state,.loading-state{color:#6b7280;font-size:14px;padding:48px 24px;text-align:center}.users-table-container{overflow-x:auto}.users-table{border-collapse:collapse;width:100%}.users-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.users-table th{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.users-table td{border-bottom:1px solid #f3f4f6;color:#1f2937;font-size:14px;padding:16px}.users-table tbody tr:last-child td{border-bottom:none}.user-info{align-items:center;display:flex;gap:12px}.crown-icon{color:#f59e0b;flex-shrink:0}.user-name{color:#1f2937;font-weight:600;margin-bottom:4px}.user-email{color:#6b7280;font-size:13px}.role-badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.role-badge-admin{background:#fef3c7;color:#92400e}.role-badge-operator{background:#dbeafe;color:#1e40af}.role-badge-viewer{background:#f3f4f6;color:#4b5563}.status-badge{border-radius:6px}.status-active{background:#d1fae5;color:#065f46}.status-inactive{background:#fee;color:#991b1b}.status-pending{background:#fef3c7;color:#92400e}.action-btn{border-radius:6px;padding:8px;transition:all .2s}.action-btn:hover{background:#f3f4f6;color:#1f2937}.modal-overlay{padding:20px}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;max-width:540px;overflow-y:auto;width:100%}.modal-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;padding:24px 24px 20px}.modal-header h2{color:#1f2937;font-size:20px;font-weight:700;margin:0 0 4px}.modal-subtitle{color:#6b7280;font-size:14px;margin:0}.modal-close{border-radius:6px;color:#9ca3af;font-size:28px;height:32px;line-height:1;padding:0;transition:all .2s;width:32px}.modal-close:hover{background:#f3f4f6;color:#1f2937}.modal-content form{padding:24px}.form-error{background:#fee;border-radius:8px;color:#c00;font-size:14px;padding:12px 16px}.form-error,.form-group{margin-bottom:20px}.form-group label{color:#1f2937;display:block}.form-group input,.form-group select{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none;padding:12px 16px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{background:#fff;border-color:#4169e1}.field-hint{color:#6b7280;font-size:12px;margin:6px 0 0}.modal-actions{gap:12px;margin-top:24px}.btn-cancel{background:#fff;border:1px solid #e5e7eb;color:#1f2937;flex:1 1;font-size:14px;padding:12px 24px;transition:all .2s}.btn-cancel:hover:not(:disabled){background:#f9fafb}.btn-submit{background:#000;border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px 24px;transition:background .2s}.btn-submit:hover:not(:disabled){background:#1f2937}.btn-cancel:disabled,.btn-submit:disabled{cursor:not-allowed;opacity:.5}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.page-header{flex-direction:column;gap:16px}.btn-add-staff{justify-content:center;width:100%}.stats-grid{grid-template-columns:1fr}.users-table-container{overflow-x:scroll}.users-table{min-width:800px}}.device-requests-page{padding:0}.requests-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:32px}.header-left{display:flex;flex-direction:column;gap:16px}.header-actions{align-items:center;display:flex;gap:12px}.back-btn{color:#1f2937;font-weight:500;padding:0}.new-request-btn{align-items:center;background:#4169e1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s}.new-request-btn:hover{background:#3b5bb8;transform:translateY(-1px)}.header-content h1{color:#1f2937;font-size:28px;font-weight:700;margin:0 0 8px}.header-content p{color:#6b7280;font-size:14px;margin:0}.refresh-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;color:#1f2937;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s}.refresh-btn:hover{background:#f9fafb;border-color:#d1d5db}.requests-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.requests-tab{border-bottom:1px solid #e5e7eb;margin-bottom:24px;padding-bottom:16px}.requests-tab h3{color:#1f2937;font-size:16px;font-weight:600;margin:0}.empty-state{padding:80px 20px}.empty-state p{color:#6b7280;font-size:16px;margin:0}.empty-state.error p{color:#ef4444}.requests-table{overflow-x:auto}.requests-table table{border-collapse:collapse;width:100%}.requests-table th{border-bottom:1px solid #e5e7eb;color:#6b7280;font-size:12px;letter-spacing:.05em;padding:12px 16px;text-transform:uppercase}.requests-table td{border-bottom:1px solid #f3f4f6;color:#1f2937;font-size:14px;padding:16px}.device-info{display:flex;flex-direction:column;gap:4px}.device-info strong{color:#1f2937;font-weight:600}.device-info .model{color:#6b7280;font-size:12px}.priority-badge,.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 12px;text-transform:capitalize}.status-badge.status-pending{background:#fef3c7;color:#92400e}.status-badge.status-reviewing{background:#dbeafe;color:#1e40af}.status-badge.status-approved{background:#d1fae5;color:#065f46}.status-badge.status-rejected{background:#fee2e2;color:#991b1b}.status-badge.status-completed{background:#d1fae5;color:#065f46}.priority-badge.priority-low{background:#f3f4f6;color:#4b5563}.priority-badge.priority-medium{background:#dbeafe;color:#1e40af}.priority-badge.priority-high{background:#fef3c7;color:#92400e}.priority-badge.priority-urgent{background:#fee2e2;color:#991b1b}.action-btn{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:color .2s}.action-btn:hover{color:#4169e1}.request-device-support-page{margin:0 auto;max-width:1000px}.page-header{margin-bottom:24px}.back-btn{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:14px;gap:8px;transition:color .2s}.back-btn:hover{color:#4169e1}.form-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;overflow:hidden}.form-header{background:#f8fafc;border-bottom:1px solid #e5e7eb;gap:16px;padding:24px}.form-header,.form-icon{align-items:center;display:flex}.form-icon{background:linear-gradient(135deg,#4169e1,#5b7ef5);border-radius:12px;color:#fff;flex-shrink:0;height:48px;justify-content:center;width:48px}.form-title h1{color:#1f2937;font-size:24px;font-weight:600;margin:0 0 4px}.form-title p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.device-support-form{padding:32px}.form-section{margin-bottom:32px}.form-section:last-of-type{margin-bottom:24px}.form-section h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:18px;margin:0 0 16px;padding-bottom:8px}.form-row{margin-bottom:16px}.form-group label{color:#374151;font-weight:500;margin-bottom:6px}.required{color:#ef4444}.form-group input,.form-group textarea{background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:12px 16px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:#4169e1;box-shadow:0 0 0 3px #4169e11a;outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:#9ca3af}.form-group textarea{min-height:100px}.form-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding-top:24px}.submit-btn{align-items:center;background:#1f2937;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px}.submit-btn:hover:not(:disabled){background:#111827;transform:translateY(-1px)}.submit-btn:disabled{opacity:.6}.cancel-btn{background:none;border:1px solid #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s}.cancel-btn:hover{border-color:#9ca3af;color:#374151}@media (max-width:768px){.form-container{border-radius:0;margin:0 -16px}.form-header{padding:20px}.form-header h1{font-size:20px}.device-support-form{padding:24px 20px}.form-row{gap:16px;grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.cancel-btn,.submit-btn{justify-content:center;width:100%}}.form-group input:invalid:not(:focus),.form-group textarea:invalid:not(:focus){border-color:#ef4444}.form-group input:valid,.form-group textarea:valid{border-color:#10b981}.submit-btn:disabled{background:#9ca3af}.error-message{color:#ef4444;font-size:12px;margin-top:4px}.success-message{color:#10b981;font-size:12px;margin-top:4px}.edge-agent-page{background:var(--bg-primary);min-height:100vh;padding:20px}.page-header{justify-content:space-between;padding:20px 0}.back-button,.page-header{align-items:center;display:flex}.back-button{background:none;border:none;color:var(--primary);cursor:pointer;font-size:16px;gap:5px}.back-button:hover{color:var(--primary-hover)}.agent-title h1{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 5px}.agent-title p{color:var(--text-tertiary);font-size:16px;margin:0}.dispatch-job-btn{background:var(--primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all var(--transition-base)}.dispatch-job-btn:hover{background:var(--primary-hover);transform:translateY(-2px)}.stat-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat-card h3{color:var(--text-secondary);font-size:14px;letter-spacing:1px;margin:0 0 15px;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:24px;font-weight:700}.status-badge{border:2px solid #0000;box-shadow:0 2px 8px #00000026;color:#fff;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;padding:8px 16px;transition:all .3s ease}.status-badge:hover{box-shadow:0 4px 12px #00000040;transform:translateY(-1px)}.status-active{background:linear-gradient(135deg,#10b981,#059669);border-color:#34d399;box-shadow:0 2px 8px #10b9814d}.status-active:hover{box-shadow:0 4px 12px #10b98166}.status-inactive{background:linear-gradient(135deg,#6b7280,#4b5563);border-color:#9ca3af;box-shadow:0 2px 8px #6b72804d}.status-pending{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#fbbf24;box-shadow:0 2px 8px #f59e0b4d}.status-pending:hover{box-shadow:0 4px 12px #f59e0b66}.status-error{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#f87171;box-shadow:0 2px 8px #ef44444d}.status-error:hover{box-shadow:0 4px 12px #ef444466}.status-online{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:#4ade80;box-shadow:0 2px 8px #22c55e4d}.status-online:hover{box-shadow:0 4px 12px #22c55e66}.status-completed{background:linear-gradient(135deg,#059669,#047857);border-color:#10b981;box-shadow:0 2px 8px #0596694d}.status-completed:hover{box-shadow:0 4px 12px #05966966}.status-failed{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#ef4444;box-shadow:0 2px 8px #dc26264d}.status-failed:hover{box-shadow:0 4px 12px #dc262666}.status-ready{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#60a5fa;box-shadow:0 2px 8px #3b82f64d}.status-ready:hover{box-shadow:0 4px 12px #3b82f666}.status-warning{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#fbbf24;box-shadow:0 2px 8px #f59e0b4d}.status-running{animation:pulse-glow 2s ease-in-out infinite alternate;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:#a78bfa;box-shadow:0 2px 8px #8b5cf64d}.status-queued{background:linear-gradient(135deg,#06b6d4,#0891b2);border-color:#22d3ee;box-shadow:0 2px 8px #06b6d44d}.status-offline{background:linear-gradient(135deg,#6b7280,#374151);border-color:#9ca3af;box-shadow:0 2px 8px #6b72804d}.status-success{background:linear-gradient(135deg,#10b981,#059669);border-color:#34d399;box-shadow:0 2px 8px #10b9814d}@keyframes pulse-glow{0%{box-shadow:0 2px 8px #8b5cf64d}to{box-shadow:0 4px 16px #8b5cf699}}.connection-section,.devices-section,.jobs-section,.telemetry-section{margin-bottom:40px}.connection-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.connection-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.connection-card h3{color:var(--text-secondary);font-size:14px;letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}.connection-card p{color:var(--text-primary);line-height:1.5;margin:0 0 16px;word-break:break-all}.connection-card button{background:var(--primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-weight:600;padding:10px 14px}.connection-help{color:var(--text-secondary);line-height:1.6;margin:16px 0 0}.section-header{margin-bottom:20px}.section-header h2{align-items:center;color:var(--text-primary);display:flex;font-size:22px;font-weight:600;gap:8px;margin:0}.device-card{transition:all var(--transition-base)}.device-card:hover{box-shadow:var(--shadow-md)}.device-header{gap:15px}.device-icon{align-items:center;background:var(--primary);border-radius:var(--radius-full);display:flex;font-size:32px;height:60px;justify-content:center;width:60px}.device-info h3{color:var(--text-primary);font-size:18px;margin:0 0 5px}.device-info p{margin:0}.jobs-table{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.table-header{background:var(--bg-secondary);color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.table-header,.table-row{display:grid;grid-template-columns:1fr 1fr 1fr 150px 150px;padding:15px 20px}.table-row{align-items:center;border-top:1px solid var(--border-primary);color:var(--text-primary)}.table-row:hover{background:var(--bg-secondary)}.telemetry-section{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:25px}.telemetry-feed{background:var(--bg-secondary);border-radius:var(--radius-sm);font-family:Monaco,Consolas,monospace;font-size:14px;max-height:300px;overflow-y:auto;padding:20px}.feed-entry{align-items:center;display:flex;gap:10px;margin-bottom:8px}.level-indicator{border-radius:50%;flex-shrink:0;height:8px;width:8px}.level-info{color:var(--accent-green)}.level-error{color:var(--accent-red)}.feed-time{color:var(--text-tertiary);min-width:80px}.feed-agent{color:var(--primary-light);min-width:150px}.feed-message{color:var(--text-primary)}.feed-info .level-indicator{background:var(--accent-green)}.feed-error .level-indicator{background:var(--accent-red)}.agents-list h2{color:var(--text-primary);font-size:22px;font-weight:600;margin-bottom:20px}.agents-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.agent-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);cursor:pointer;padding:25px;transition:all var(--transition-base)}.agent-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.agent-header{gap:15px;margin-bottom:15px}.agent-header,.agent-icon{align-items:center;display:flex}.agent-icon{background:var(--primary);border-radius:var(--radius-full);font-size:32px;height:60px;justify-content:center;width:60px}.agent-info h3{color:var(--text-primary);font-size:20px;margin:0 0 5px}.agent-info p{margin:0}.agent-details p,.agent-info p{color:var(--text-secondary);font-size:14px}.agent-details p{margin:8px 0}.agent-details strong{color:var(--text-primary)}.no-agents{color:var(--text-secondary);padding:60px 20px;text-align:center}.loading{color:var(--text-tertiary);font-size:18px;padding:50px;text-align:center}.error-message{background:#ef44441a;border:1px solid #ef44444d;border-radius:var(--radius-md);color:var(--accent-red)}@media (max-width:768px){.page-header{align-items:stretch;flex-direction:column;gap:15px}.table-header,.table-row{gap:10px}.agents-grid,.devices-grid,.table-header,.table-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}.agent-details{grid-gap:20px;display:grid;gap:20px;grid-template-columns:2fr 1fr;margin-bottom:30px}.agent-info-card,.mqtt-topics-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:25px}.agent-info-card h2{border-bottom:2px solid var(--border-primary);color:var(--text-primary);margin:0 0 20px;padding-bottom:10px}.agent-info-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item{align-items:center;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;padding:10px 0}.info-item label{color:var(--text-secondary);font-weight:600}.info-item span{color:var(--text-primary);max-width:60%;text-align:right;word-break:break-word}.mqtt-topics-card h3{color:var(--text-primary);margin:0 0 20px}.mqtt-topics{gap:15px}.mqtt-topics,.topic-item{display:flex;flex-direction:column}.topic-item{gap:5px}.topic-item label{color:var(--text-secondary);font-size:14px;font-weight:600}.topic-item code{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--primary-light);font-family:Monaco,Consolas,monospace;font-size:12px;padding:8px 12px;word-break:break-all}.devices-section,.jobs-section,.scaling-section,.telemetry-section{margin-bottom:40px}.devices-section h2,.jobs-section h2,.scaling-section h2,.telemetry-section h2{border-bottom:2px solid var(--border-primary);color:var(--text-primary);margin-bottom:20px;padding-bottom:10px}.devices-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.device-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:20px;transition:transform var(--transition-base)}.device-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.device-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.device-header h3{color:var(--text-primary);margin:0}.device-status{font-size:14px;font-weight:700}.device-info p{color:var(--text-secondary);font-size:14px;margin:8px 0}.device-info strong{color:var(--text-primary)}.device-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.btn-outline,.btn-primary,.btn-secondary{border:none;border-radius:var(--radius-sm);cursor:pointer;flex:1 1;font-size:14px;font-weight:500;min-width:100px;padding:8px 16px;transition:all var(--transition-base)}.btn-primary{background:var(--primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--text-muted);color:#fff}.btn-secondary:hover{background:var(--text-tertiary)}.btn-outline{background:#0000;border:2px solid var(--primary);color:var(--primary-light)}.btn-outline:hover{background:var(--primary);color:#fff}.telemetry-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.telemetry-card{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);color:#fff;padding:20px;text-align:center}.telemetry-card h4{font-size:14px;margin:0 0 15px;opacity:.9;text-transform:uppercase}.metric-value{font-size:28px;font-weight:700;margin:10px 0}.metric-name{font-size:16px;margin:10px 0;opacity:.9}.metric-time{font-size:12px;opacity:.7}.job-controls{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:25px}.job-controls button{flex:1 1;min-width:200px}.jobs-list{gap:15px}.job-item{grid-gap:20px;align-items:center;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:grid;gap:20px;grid-template-columns:1fr 200px 150px;padding:20px}.job-info h4{color:var(--text-primary);margin:0 0 8px}.job-info p{color:var(--text-secondary);font-size:14px;margin:4px 0}.job-progress{align-items:center;display:flex;gap:10px}.progress-bar{background:var(--bg-secondary);border-radius:var(--radius-full);flex:1 1;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--accent-green),var(--accent-green-light));height:100%;transition:width .3s ease}.job-timing{text-align:right}.job-timing p{color:var(--text-secondary);font-size:12px;margin:4px 0}.scaling-section{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);color:#fff;padding:30px}.scaling-section h2{border-bottom:2px solid #ffffff4d;color:#fff}.scaling-info p{font-size:16px;margin-bottom:15px}.scaling-info ul{list-style:none;margin:20px 0;padding:0}.scaling-info li{font-size:14px;padding:8px 0}.scaling-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:25px}.scaling-actions button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;color:#fff}.scaling-actions button:hover{background:#ffffff4d;border-color:#ffffff80}@media (max-width:768px){.agent-details,.job-item{grid-template-columns:1fr}.job-item{gap:15px}.device-actions,.job-controls,.scaling-actions{flex-direction:column}}.success-page{align-items:center;background:linear-gradient(135deg,#f0fdf4,#dcfce7 50%,#bbf7d0);display:flex;justify-content:center;min-height:100vh;padding:20px}.success-container{background:#fff;border-radius:24px;box-shadow:0 25px 50px -12px #0000001a;max-width:480px;padding:40px 32px;text-align:center;width:100%}.success-icon-wrapper{height:80px;margin:0 auto 24px;position:relative;width:80px}.success-icon{align-items:center;animation:scaleIn .5s ease-out;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;display:flex;height:80px;justify-content:center;width:80px}.success-icon svg{stroke:#fff;height:40px;width:40px}.checkmark{stroke-dasharray:50;stroke-dashoffset:50;animation:drawCheck .6s ease-out .3s forwards}.success-ring{animation:ringPulse 1s ease-out .2s forwards;border:3px solid #10b981;border-radius:50%;height:100px;left:-10px;opacity:0;position:absolute;top:-10px;width:100px}@keyframes scaleIn{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes drawCheck{to{stroke-dashoffset:0}}@keyframes ringPulse{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.3)}}.success-title{color:#111827;font-size:28px;font-weight:700;margin:0 0 8px}.success-subtitle{color:#6b7280;font-size:16px;line-height:1.5;margin:0 0 32px}.receipt-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:24px;overflow:hidden}.receipt-header{align-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;font-size:15px;font-weight:600;gap:10px;padding:16px 20px}.receipt-body{padding:20px}.receipt-row{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:12px 0}.receipt-row:last-child{border-bottom:none}.receipt-label{color:#6b7280;font-size:14px}.receipt-value{color:#111827;font-size:14px;font-weight:600}.receipt-value.highlight{color:#059669;font-size:16px}.receipt-value.small{color:#6b7280;font-family:monospace;font-size:12px}.status-badge{align-items:center;background:#dcfce7;color:#059669;display:flex;font-size:13px;gap:6px}.status-dot{animation:pulse 2s infinite;background:#10b981}.features-card{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:16px;margin-bottom:24px;padding:20px;text-align:left}.features-title{align-items:center;color:#1e40af;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.features-list{list-style:none;margin:0;padding:0}.features-list li{align-items:center;color:#374151;display:flex;font-size:14px;gap:10px;padding:8px 0}.actions-section{margin-bottom:24px}.redirect-text{color:#6b7280;font-size:14px;margin-bottom:20px}.countdown{background:#4f46e5;border-radius:50%;color:#fff;display:inline-block;font-size:14px;font-weight:700;height:28px;line-height:28px;width:28px}.action-buttons{gap:12px}.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:14px 20px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff}.btn-primary:hover{box-shadow:0 10px 20px -5px #4f46e566;transform:translateY(-2px)}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.support-info{border-top:1px solid #e5e7eb;padding-top:20px}.support-info p{color:#9ca3af;font-size:13px;margin:0}.support-info a{color:#4f46e5;text-decoration:none}.support-info a:hover{text-decoration:underline}@media (max-width:480px){.success-container{border-radius:16px;padding:32px 20px}.success-title{font-size:24px}.action-buttons{flex-direction:column}}.admin-requests-container{background:#f8fafc;min-height:100vh;padding:20px}.admin-requests-header{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.admin-requests-header h1{color:#1a202c;font-size:28px;font-weight:700;margin:0}.admin-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:14px;font-weight:600;letter-spacing:.5px;padding:8px 16px;text-transform:uppercase}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:20px;text-align:center;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-card h3{color:#4a5568;font-size:16px;font-weight:600;margin:0 0 10px}.stat-number{color:#2d3748;font-size:32px;font-weight:700}.filters-section{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;display:flex;gap:15px;margin-bottom:20px;padding:20px}.filter-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 15px;transition:border-color .2s}.filter-select:focus{border-color:#4299e1;outline:none}.refresh-btn{background:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:background .2s}.refresh-btn:hover{background:#3182ce}.requests-table-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.requests-table{border-collapse:collapse;width:100%}.requests-table th{background:#f7fafc;border-bottom:2px solid #e2e8f0;color:#4a5568;font-weight:600;padding:15px;text-align:left}.requests-table td{border-bottom:1px solid #e2e8f0;padding:15px;vertical-align:top}.requests-table tr:hover{background:#f7fafc}.request-id{color:#4299e1;font-family:Courier New,monospace;font-weight:600}.device-info strong{color:#2d3748;display:block;margin-bottom:4px}.device-details{color:#718096;font-size:12px}.user-info strong{color:#2d3748;display:block;margin-bottom:2px}.user-email{color:#718096;font-size:12px}.status-badge{padding:4px 12px}.priority-badge{border-radius:15px;font-size:11px;font-weight:600;padding:4px 8px;text-transform:uppercase}.priority-low{background:#e6fffa;color:#38b2ac}.priority-medium{background:#fef5e7;color:#dd6b20}.priority-high{background:#fed7d7;color:#c53030}.priority-critical{background:#fed7e2;color:#b83280}.action-buttons{display:flex;flex-wrap:wrap;gap:8px}.action-buttons button{border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s}.btn-processing{background:#feebc8;color:#dd6b20}.btn-processing:hover{background:#fbd38d}.btn-approve{background:#c6f6d5;color:#22543d}.btn-approve:hover{background:#9ae6b4}.btn-decline{background:#fed7d7;color:#c53030}.btn-decline:hover{background:#feb2b2}.btn-complete{background:#bee3f8;color:#2b6cb0}.btn-complete:hover{background:#90cdf4}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.action-modal{background:#fff;border-radius:10px;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#2d3748;margin:0}.modal-close{align-items:center;background:none;border:none;color:#718096;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;width:30px}.modal-close:hover{color:#4a5568}.modal-content{padding:20px}.request-summary{background:#f7fafc;border-radius:8px;margin-bottom:20px;padding:15px}.request-summary h4{color:#2d3748;margin:0 0 10px}.request-summary p{color:#4a5568;font-size:14px;margin:5px 0}.action-form .form-group{margin-bottom:20px}.action-form label{color:#4a5568;display:block;font-weight:600;margin-bottom:8px}.action-form input,.action-form textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:14px;padding:10px;resize:vertical;width:100%}.action-form input:focus,.action-form textarea:focus{border-color:#4299e1;outline:none}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:15px;justify-content:flex-end;padding:20px}.btn-cancel{background:#e2e8f0;border:none;border-radius:8px;color:#4a5568;cursor:pointer;font-weight:600;padding:10px 20px}.btn-cancel:hover{background:#cbd5e0}.btn-confirm{border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px}.btn-confirm:disabled{cursor:not-allowed;opacity:.6}.btn-confirm.btn-processing{background:#dd6b20}.btn-confirm.btn-approved{background:#38a169}.btn-confirm.btn-declined{background:#e53e3e}.btn-confirm.btn-completed{background:#3182ce}.loading-spinner{color:#718096;font-size:18px;padding:50px;text-align:center}.error-message{background:#fed7d7;border-radius:8px;color:#c53030;margin-bottom:20px;padding:15px;text-align:center}.no-requests{font-size:18px;padding:50px}@media (max-width:768px){.admin-requests-container{padding:10px}.admin-requests-header{flex-direction:column;gap:15px;text-align:center}.stats-grid{grid-template-columns:repeat(2,1fr)}.filters-section{flex-direction:column}.requests-table-container{overflow-x:auto}.requests-table{min-width:800px}.action-modal{margin:20px;width:95%}}.device-request-container{background:#f8fafc;margin:0 auto;max-width:900px;min-height:100vh;padding:20px}.page-header{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:30px;padding:20px;text-align:center}.page-header h1{color:#1a202c;font-size:28px;font-weight:700;margin:0 0 10px}.page-header p{color:#718096;font-size:16px;margin:0}.content-tabs{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;display:flex;margin-bottom:20px;padding:5px}.tab-button{background:none;border:none;border-radius:8px;color:#718096;cursor:pointer;flex:1 1;font-weight:600;padding:12px 20px;transition:all .2s}.tab-button.active{background:#4299e1;color:#fff}.tab-button:hover:not(.active){background:#f7fafc;color:#4a5568}.request-form-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.device-request-form{padding:30px}.form-section{margin-bottom:40px}.form-section h3{border-bottom:2px solid #e2e8f0;color:#2d3748;font-size:20px;font-weight:600;margin:0 0 20px;padding-bottom:10px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.form-group{display:flex;flex-direction:column}.form-group label{color:#4a5568;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;padding:12px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.form-group textarea{font-family:inherit;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#a0aec0}.message{border-radius:8px;font-weight:600;margin-bottom:20px;padding:15px}.message.success{background:#c6f6d5;border:1px solid #9ae6b4;color:#22543d}.message.error{background:#fed7d7;border:1px solid #feb2b2;color:#c53030}.form-actions{border-top:2px solid #e2e8f0;margin-top:30px;padding-top:20px}.submit-btn{background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:15px 30px;transition:all .2s;width:100%}.submit-btn:hover:not(:disabled){box-shadow:0 4px 20px #4299e166;transform:translateY(-2px)}.submit-btn:disabled{background:#cbd5e0;box-shadow:none;cursor:not-allowed;transform:none}.requests-history{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:30px}.history-header{margin-bottom:30px;text-align:center}.history-header h3{color:#2d3748;font-size:24px;font-weight:600;margin:0 0 10px}.history-header p{color:#718096;margin:0}.no-requests{color:#718096;padding:50px 20px;text-align:center}.no-requests p{font-size:18px;margin-bottom:20px}.submit-first-btn{background:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:background .2s}.submit-first-btn:hover{background:#3182ce}.requests-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.request-card{background:#f7fafc;border:2px solid #e2e8f0;border-radius:10px;padding:20px;transition:all .2s}.request-card:hover{box-shadow:0 4px 20px #0000001a;transform:translateY(-2px)}.request-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:15px}.request-header h4{color:#2d3748;flex:1 1;font-size:18px;font-weight:600;margin:0 10px 0 0}.status-badge{border-radius:20px;font-size:12px;font-weight:600;padding:6px 12px;text-transform:uppercase;white-space:nowrap}.status-pending{background:#fed7d7;color:#c53030}.status-processing{background:#feebc8;color:#dd6b20}.status-approved{background:#c6f6d5;color:#22543d}.status-declined{background:#fed7d7;color:#c53030}.status-completed{background:#bee3f8;color:#2b6cb0}.request-details{margin-bottom:15px}.request-details p{color:#4a5568;font-size:14px;margin:5px 0}.request-details strong{color:#2d3748}.request-description{margin-bottom:15px}.request-description p{color:#718096;font-size:14px;line-height:1.5;margin:0}.admin-notes,.decline-reason,.estimated-completion{border-radius:8px;margin-top:15px;padding:12px}.admin-notes{background:#e6fffa;border-left:4px solid #38b2ac}.decline-reason{background:#fed7d7;border-left:4px solid #e53e3e}.estimated-completion{background:#bee3f8;border-left:4px solid #3182ce}.admin-notes strong,.decline-reason strong,.estimated-completion strong{color:#2d3748;display:block;font-size:14px;margin-bottom:8px}.admin-notes p,.decline-reason p,.estimated-completion p{font-size:14px;line-height:1.4;margin:0}@media (max-width:768px){.device-request-container{padding:15px}.device-request-form{padding:20px}.form-row{gap:15px}.form-row,.requests-grid{grid-template-columns:1fr}.request-header{align-items:flex-start;flex-direction:column;gap:10px}.status-badge{align-self:flex-start}}@media (max-width:480px){.content-tabs{flex-direction:column;gap:5px}.tab-button{text-align:center}}.socket-demo-page{margin:0 auto;max-width:1200px;padding:24px}.demo-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:16px}.demo-header h1{color:#111827;font-size:28px;margin:0}.connection-status{align-items:center;border-radius:8px;display:flex;font-weight:500;gap:8px;padding:8px 16px}.connection-status.connected{background:#d1fae5;color:#065f46}.connection-status.disconnected{background:#fee2e2;color:#991b1b}.status-dot{animation:pulse 2s ease-in-out infinite;background:currentColor;border-radius:50%;height:8px;width:8px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.demo-content{display:flex;flex-direction:column;gap:24px}.demo-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.demo-section h2{color:#111827;font-size:20px;margin:0 0 16px}.status-card{background:#f9fafb;border-radius:8px;padding:16px}.status-card p{color:#4b5563;margin:8px 0}.create-job-btn{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:background .2s}.create-job-btn:hover:not(:disabled){background:#2563eb}.create-job-btn:disabled{background:#9ca3af;cursor:not-allowed}.helper-text{color:#6b7280;font-size:14px;margin-top:8px}.subscribe-form{display:flex;gap:12px}.job-id-input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-size:14px;padding:10px 16px}.job-id-input:focus{border-color:#3b82f6;outline:none}.subscribe-btn{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:10px 24px;transition:background .2s}.subscribe-btn:hover:not(:disabled){background:#059669}.subscribe-btn:disabled{background:#9ca3af;cursor:not-allowed}.jobs-list{display:flex;flex-direction:column;gap:12px}.job-card{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;padding:16px}.job-info{display:flex;flex-direction:column;gap:4px}.job-id{color:#6b7280;font-family:monospace;font-size:12px}.job-time{color:#9ca3af;font-size:12px}.empty-state{color:#9ca3af;padding:32px;text-align:center}.updates-log{background:#f9fafb;border-radius:8px;max-height:300px;overflow-y:auto;padding:12px}.log-entry{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;font-size:14px;gap:12px;padding:8px}.log-entry:last-child{border-bottom:none}.log-time{color:#6b7280;font-size:12px;min-width:80px}.log-job{color:#4b5563;flex:1 1;font-family:monospace;font-size:12px}.log-status{border-radius:4px;font-size:12px;font-weight:500;padding:4px 8px}.log-status.status-completed{background:#d1fae5;color:#065f46}.log-status.status-failed{background:#fee2e2;color:#991b1b}.log-status.status-printing,.log-status.status-processing{background:#dbeafe;color:#1e40af}.log-progress{color:#6b7280;font-size:12px}.how-it-works{flex-direction:column}.how-it-works,.step{display:flex;gap:16px}.step{align-items:flex-start}.step-number{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:600;height:32px;justify-content:center;width:32px}.step-content strong{color:#111827;display:block;margin-bottom:4px}.step-content p{color:#6b7280;font-size:14px;margin:0}.App{display:flex;flex-direction:column;min-height:100vh}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{transition:opacity .3s ease-out,transform .3s ease-out}.page-enter-active,.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-20px);transition:opacity .2s ease-in,transform .2s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-content{animation:fadeIn .4s ease-out}a,button,input,select,textarea{transition:all var(--transition-base)}
/*# sourceMappingURL=main.fc397fa3.css.map*/