:root{--primary-color: #4a90e2;--primary-hover-color: #357abd;--background-color: #f4f7f9;--card-background-color: #ffffff;--text-color: #333333;--subtle-text-color: #666666;--border-color: #e0e0e0;--success-color: #2ecc71;--error-color: #e74c3c;--warning-color: #f39c12;--info-color: #3498db;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}.print-page{padding:2rem;background-color:var(--background-color);font-family:var(--font-family),sans-serif;min-height:100vh}.print-header{margin-bottom:2rem}.print-header h1{font-size:2.5rem;font-weight:700;color:var(--text-color)}.print-container{display:grid;grid-template-columns:minmax(400px,1.2fr) 2fr;gap:2rem;align-items:start}@media (max-width: 1200px){.print-container{grid-template-columns:1fr}}.print-form-card,.print-jobs-card{background:var(--card-background-color);border-radius:16px;padding:2rem;box-shadow:0 8px 24px #0000000d;transition:all .3s ease}.print-form-card:hover,.print-jobs-card:hover{box-shadow:0 12px 32px #00000014}.print-form-card h2,.print-jobs-card h2{font-size:1.5rem;font-weight:600;color:var(--text-color);margin:0 0 1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.form-group{margin-bottom:1.5rem}.form-row{display:flex;gap:1rem;margin-bottom:1.5rem}.form-row .form-group{margin-bottom:0}@media (max-width: 768px){.form-row{flex-direction:column;gap:0}.form-row .form-group{margin-bottom:1.5rem}}.form-group label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--text-color);font-size:.9rem}.form-select,.form-input{width:100%;padding:.8rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;transition:all .3s ease;background-color:#fdfdfd}.form-select:focus,.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a90e233}.form-file-input{width:100%;padding:2rem;border:2px dashed var(--border-color);border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:center;background-color:#fafafa}.form-file-input:hover{border-color:var(--primary-color);background-color:#f5f9ff}.file-info{margin-top:1rem;font-size:.9rem;color:var(--subtle-text-color);font-weight:500}.btn-primary{width:100%;padding:1rem;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary:hover:not(:disabled){background:var(--primary-hover-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.btn-secondary{background:none;border:1px solid var(--border-color);color:var(--subtle-text-color);transition:all .3s ease}.btn-secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.jobs-list{display:flex;flex-direction:column;gap:1rem}.no-jobs{text-align:center;padding:3rem 1rem;color:var(--subtle-text-color);border:2px dashed var(--border-color);border-radius:12px}.job-item{background:#fdfdfd;border-radius:12px;padding:1.2rem;border:1px solid var(--border-color);transition:all .3s ease}.job-item:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.job-filename{font-weight:600;color:var(--text-color);font-size:1.1rem}.job-status{padding:.3rem .8rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-pending{background-color:#fdf3e1;color:#f39c12}.status-printing{background-color:#e1f0fa;color:#3498db}.status-completed{background-color:#e2f8e8;color:#2ecc71}.status-failed{background-color:#fae5e3;color:#e74c3c}.status-cancelled{background-color:#f4f4f4;color:#999}.job-details{display:flex;flex-wrap:wrap;gap:1.5rem;font-size:.9rem;color:var(--subtle-text-color)}.job-details span{display:flex;align-items:center;gap:.5rem}.job-error{margin-top:1rem;padding:.8rem;background:#fae5e3;color:#e74c3c;border-radius:8px;font-size:.9rem}.error-message,.warning-message,.info-message{padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid}.error-message{background:#fae5e3;color:#e74c3c;border-color:#e74c3c}.warning-message{background:#fdf3e1;color:#f39c12;border-color:#f39c12}.info-message{background:#e1f0fa;color:#3498db;border-color:#3498db}.servers-page{padding:20px;max-width:1400px;margin:0 auto}.servers-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.servers-header h1{font-size:32px;color:#2c3e50;margin:0}.btn-primary{padding:12px 24px;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s}.btn-primary:disabled{background:#bdc3c7;cursor:not-allowed}.create-form-card{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px}.create-form-card h2{font-size:24px;color:#2c3e50;margin:0 0 10px}.form-description{color:#7f8c8d;margin-bottom:24px}.form-group label{display:block;font-weight:600;margin-bottom:8px;color:#2c3e50}.form-input{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px}.form-input:focus{outline:none;border-color:#3498db}.form-actions{display:flex;gap:12px;margin-top:24px}.btn-secondary{padding:12px 24px;background:#ecf0f1;color:#2c3e50;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s}.btn-secondary:hover{background:#bdc3c7}.servers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.no-servers{grid-column:1 / -1;text-align:center;padding:60px 20px;background:#fff;border-radius:12px;color:#7f8c8d}.no-servers p{margin:10px 0}.server-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.server-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.server-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #ecf0f1}.server-header h3{font-size:20px;color:#2c3e50;margin:0}.server-version{background:#3498db;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.server-info{margin-bottom:20px}.info-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.info-label{color:#7f8c8d;font-weight:500}.info-value{color:#2c3e50;font-weight:600}.server-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.btn-download,.btn-danger{padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;text-align:left}.btn-download{background:#27ae60;color:#fff}.btn-download:hover{background:#229954}.btn-danger:hover{background:#c0392b}.server-features{background:#f8f9fa;padding:16px;border-radius:8px}.server-features h4{font-size:14px;color:#2c3e50;margin:0 0 12px}.server-features ul{list-style:none;padding:0;margin:0}.server-features li{padding:4px 0;font-size:13px;color:#7f8c8d}.error-message{padding:12px;background:#f8d7da;color:#721c24;border-radius:8px;margin-bottom:20px}.form-help-text{font-size:13px;color:#7f8c8d;margin:4px 0 12px}.no-printers-message{padding:16px;background:#f8f9fa;border:1px dashed #ddd;border-radius:8px;color:#7f8c8d;text-align:center;font-size:14px}.printer-checkboxes{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto;padding:12px;background:#f8f9fa;border-radius:8px}.printer-checkbox-label{display:flex;align-items:center;gap:10px;padding:10px;background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;transition:background .2s,border-color .2s}.printer-checkbox-label:hover{background:#f0f7ff;border-color:#3498db}.printer-checkbox{width:18px;height:18px;cursor:pointer}.printer-name{flex:1;color:#2c3e50;font-weight:500;font-size:14px}.printer-status{font-size:12px;padding:3px 8px;border-radius:4px;font-weight:600}.edit-printers-section{padding:20px 0}.edit-printers-section h4{font-size:16px;color:#2c3e50;margin:0 0 8px}.clients-page{padding:20px;max-width:1400px;margin:0 auto}.clients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.clients-header h1{font-size:32px;color:#2c3e50;margin:0}.os-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.os-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;border:2px solid #ddd;border-radius:12px;background:#fff;cursor:pointer;transition:all .3s}.os-option:hover{border-color:#3498db;transform:translateY(-2px)}.os-option.selected{border-color:#3498db;background:#ebf5fb}.os-icon{font-size:48px}.os-name{font-weight:600;color:#2c3e50}.form-group small{display:block;margin-top:4px;font-size:12px;color:#7f8c8d}.form-select{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px}.form-select:focus{outline:none;border-color:#3498db}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.no-clients{grid-column:1 / -1;text-align:center;padding:60px 20px;background:#fff;border-radius:12px;color:#7f8c8d}.no-clients p{margin:10px 0}.client-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.client-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.client-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #ecf0f1}.client-title{display:flex;gap:12px;align-items:center}.os-icon-large{font-size:40px}.client-header h3{font-size:18px;color:#2c3e50;margin:0 0 4px}.client-os{display:inline-block;padding:2px 8px;background:#ecf0f1;border-radius:4px;font-size:12px;color:#7f8c8d;text-transform:capitalize}.client-version{background:#3498db;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.client-info{margin-bottom:20px}.client-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.client-features{background:#f8f9fa;padding:16px;border-radius:8px}.client-features h4{font-size:14px;color:#2c3e50;margin:0 0 12px}.client-features ul{list-style:none;padding:0;margin:0}.client-features li{padding:4px 0;font-size:13px;color:#7f8c8d}.users-page{padding:2rem;max-width:1200px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header h1{font-size:2rem;margin-bottom:.5rem;color:#1a1a1a}.page-description{color:#666;font-size:.95rem}.loading{text-align:center;padding:3rem;color:#666}.error-message{background-color:#fee;border:1px solid #fcc;color:#c00;padding:1rem;border-radius:8px;margin-bottom:1rem}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.user-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 4px #0000000d;transition:box-shadow .2s}.user-card:hover{box-shadow:0 4px 8px #0000001a}.user-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #f0f0f0}.user-info h3{margin:0 0 .25rem;font-size:1.25rem;color:#1a1a1a}.user-username{margin:.25rem 0;color:#666;font-size:.9rem}.user-email{margin:.25rem 0;color:#888;font-size:.85rem}.user-role-badge{padding:.35rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase}.user-role-badge.admin{background:#e3f2fd;color:#1976d2}.user-role-badge.user{background:#f5f5f5;color:#666}.user-meta{margin-bottom:1rem;font-size:.85rem;color:#888}.user-actions{display:flex;gap:.75rem}.role-select{flex:1;padding:.5rem;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:.9rem;cursor:pointer;transition:border-color .2s}.role-select:hover{border-color:#1976d2}.role-select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.delete-button{padding:.5rem 1rem;background:#fff;color:#d32f2f;border:1px solid #d32f2f;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.delete-button:hover{background:#d32f2f;color:#fff}.no-users{text-align:center;padding:3rem;color:#999}@media (max-width: 768px){.users-grid{grid-template-columns:1fr}.users-page{padding:1rem}.user-actions{flex-direction:column}.role-select,.delete-button{width:100%}}:root{--sidebar-width: 260px;--sidebar-collapsed-width: 80px;--header-height: 70px;--sidebar-background: #1e293b;--sidebar-text-color: #cbd5e1;--sidebar-hover-background: #334155;--sidebar-active-background: #4a90e2;--page-background: #f4f7f9;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}.layout{display:flex;min-height:100vh;font-family:var(--font-family),sans-serif}.sidebar{width:var(--sidebar-width);background:var(--sidebar-background);color:var(--sidebar-text-color);display:flex;flex-direction:column;transition:width .3s ease}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{display:flex;align-items:center;justify-content:center;height:var(--header-height);padding:0 1.5rem;border-bottom:1px solid #334155}.logo{font-size:1.5rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden}.logo-icon{font-size:2rem;display:none}.sidebar.collapsed .logo{display:none}.sidebar.collapsed .logo-icon{display:block}.nav-menu{list-style:none;padding:1rem 0;margin:0;flex-grow:1}.nav-item{margin:.5rem 1rem}.nav-link{display:flex;align-items:center;padding:.8rem 1.2rem;border-radius:8px;color:var(--sidebar-text-color);text-decoration:none;transition:all .3s ease;white-space:nowrap;overflow:hidden}.nav-link:hover{background:var(--sidebar-hover-background);color:#fff}.nav-link.active{background:var(--sidebar-active-background);color:#fff;font-weight:600}.nav-icon{font-size:1.5rem;min-width:32px;text-align:center}.nav-text{margin-left:1rem;opacity:1;transition:opacity .3s ease}.sidebar.collapsed .nav-text{opacity:0;width:0}.sidebar-footer{padding:1.5rem;border-top:1px solid #334155}.toggle-btn{background:var(--sidebar-hover-background);border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.toggle-btn:hover{background:var(--sidebar-active-background)}.main-content{flex:1;background:var(--page-background);overflow-y:auto}.page-content{padding:2rem}.api-keys-container{padding:20px;max-width:1200px;margin:0 auto}.api-keys-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.api-keys-header h1{margin:0;font-size:28px;color:#333}.error-message{background:#fee;border:1px solid #fcc;padding:12px;border-radius:6px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;color:#c33}.error-message button{background:none;border:none;cursor:pointer;font-size:18px;color:#c33}.new-key-display{background:#fffbe6;border:2px solid #ffd666;border-radius:8px;padding:20px;margin-bottom:30px}.new-key-display h3{margin-top:0;color:#d48806}.key-display{background:#fff;border:1px solid #ddd;border-radius:4px;padding:15px;margin:15px 0;display:flex;gap:10px;align-items:center}.key-display code{flex:1;font-family:Courier New,monospace;font-size:14px;word-break:break-all}.key-display button{padding:8px 16px;background:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer}.key-display button:hover{background:#40a9ff}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:30px;border-radius:8px;max-width:500px;width:90%}.modal-content h2{margin-top:0;color:#333}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#555}.form-group input,.form-group select{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn-primary{padding:10px 20px;background:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500}.btn-primary:hover{background:#40a9ff}.btn-secondary{padding:10px 20px;background:#f0f0f0;color:#333;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-secondary:hover{background:#e0e0e0}.btn-danger{padding:8px 16px;background:#ff4d4f;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-danger:hover{background:#ff7875}.btn-small{padding:6px 12px;font-size:12px}.loading{text-align:center;padding:40px;color:#999}.empty-state{text-align:center;padding:60px 20px;color:#999}.api-keys-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.api-keys-table thead{background:#fafafa}.api-keys-table th{padding:12px 16px;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #e8e8e8}.api-keys-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0}.api-keys-table tbody tr:hover{background:#fafafa}.api-info{margin-top:40px;padding:20px;background:#f6f8fa;border-radius:8px}.api-info h3{margin-top:0;color:#333}.api-info code{background:#fff;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:13px}.api-info pre{background:#2d3748;color:#e2e8f0;padding:15px;border-radius:6px;overflow-x:auto;font-size:13px}.api-info a{color:#1890ff;text-decoration:none}.api-info a:hover{text-decoration:underline}.api-token-page{padding:20px;max-width:1200px;margin:0 auto}.api-token-header{margin-bottom:30px}.api-token-header h1{color:#2c3e50;font-size:32px;margin:0}.api-token-container{display:flex;flex-direction:column;gap:20px}.api-token-card{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.api-token-card h1{font-size:24px;color:#2c3e50;margin:0 0 10px}.api-token-card .subtitle{color:#666;font-size:14px;margin:0 0 30px}.credential-section{margin-bottom:30px}.credential-section label{display:block;font-weight:600;color:#2c3e50;margin-bottom:10px;font-size:16px}.token-box{display:flex;gap:10px;align-items:center}.token-box input{flex:1;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-family:Courier New,monospace;font-size:14px;background:#f9f9f9}.token-box input:focus{outline:none;border-color:#667eea;background:#fff}.printers-list{background:#f9f9f9;border-radius:8px;padding:15px}.printer-item{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#fff;border-radius:8px;margin-bottom:10px;border:1px solid #e0e0e0}.printer-item:last-child{margin-bottom:15px}.printer-info{flex:1;display:flex;flex-direction:column;gap:5px}.printer-info strong{color:#2c3e50;font-size:16px}.printer-id{color:#666;font-size:13px;font-family:Courier New,monospace}.printer-note{color:#666;font-size:13px;margin:10px 0 0;font-style:italic}.no-printers{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:20px;text-align:center}.no-printers p{margin:0 0 15px;color:#856404}.info-box{background:#f0f7ff;border:1px solid #b3d9ff;border-left:4px solid #2196f3;border-radius:8px;padding:20px;margin-top:20px}.info-box h3{margin:0 0 15px;color:#2c3e50;font-size:18px}.info-box h4{margin:15px 0 10px;color:#2c3e50;font-size:16px}.info-box p{margin:0 0 10px;color:#555;line-height:1.6}.info-box ol{margin:10px 0;padding-left:25px;color:#555}.info-box ol li{margin-bottom:8px;line-height:1.6}.info-box code{background:#e3f2fd;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:13px;color:#1565c0}.warning-box{background:#fff3e0;border:1px solid #ffb74d;border-left:4px solid #ff9800;border-radius:8px;padding:20px;margin-top:20px}.warning-box h3{margin:0 0 10px;color:#e65100;font-size:18px}.warning-box p{margin:0 0 10px;color:#555;line-height:1.6}.warning-box ul{margin:10px 0 0;padding-left:25px;color:#555}.warning-box ul li{margin-bottom:8px;line-height:1.6}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:active{transform:translateY(0)}@media (max-width: 768px){.api-token-page{padding:15px}.api-token-card{padding:20px}.token-box{flex-direction:column}.token-box input{width:100%}.printer-item{flex-direction:column;align-items:flex-start;gap:10px}.printer-item button{width:100%}}.workers-container{padding:20px;max-width:1200px;margin:0 auto}.workers-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.workers-header h1{margin:0;font-size:28px;color:#333}.new-worker-display{background:#f6ffed;border:2px solid #b7eb8f;border-radius:8px;padding:20px;margin-bottom:30px}.new-worker-display h3{margin-top:0;color:#52c41a}.installation-instructions{background:#fff;border:1px solid #ddd;border-radius:4px;padding:15px;margin:15px 0}.installation-instructions h4{margin-top:0;color:#333}.installation-instructions ol{margin:0;padding-left:20px}.installation-instructions pre{background:#f5f5f5;padding:8px;border-radius:4px;font-family:Courier New,monospace;font-size:13px}.workers-list{display:flex;flex-direction:column;gap:20px}.worker-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.worker-header{padding:20px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s}.worker-header:hover{background:#fafafa}.worker-info h3{margin:0 0 10px;font-size:20px;color:#333;display:flex;align-items:center;gap:10px}.status-indicator{width:12px;height:12px;border-radius:50%;display:inline-block}.status-indicator.online{background:#52c41a;box-shadow:0 0 8px #52c41a80}.status-indicator.offline{background:#ff4d4f}.worker-meta{display:flex;gap:20px;font-size:14px;color:#666}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.online{background:#f6ffed;color:#52c41a}.status-badge.offline{background:#fff1f0;color:#ff4d4f}.worker-actions{display:flex;align-items:center;gap:10px}.expand-icon{font-size:16px;color:#999}.worker-details{padding:0 20px 20px;border-top:1px solid #f0f0f0;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.worker-details h4{margin:20px 0 15px;color:#333}.no-printers{color:#999;font-style:italic}.printers-table{width:100%;border-collapse:collapse}.printers-table thead{background:#fafafa}.printers-table th{padding:10px 12px;text-align:left;font-weight:600;font-size:13px;color:#555;border-bottom:2px solid #e8e8e8}.printers-table td{padding:12px;border-bottom:1px solid #f0f0f0}.printers-table small{color:#999;font-size:12px}.toggle-switch{position:relative;display:inline-block;width:48px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:#52c41a}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.enabled-badge{color:#52c41a;font-size:13px}.disabled-badge{color:#999;font-size:13px}.workers-info{margin-top:40px;padding:20px;background:#f6f8fa;border-radius:8px}.workers-info h3{margin-top:0;color:#333}.workers-info p{color:#666;line-height:1.6}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1;background:#f5f5f5}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #00000026;flex-wrap:wrap;gap:1rem}.header h1{font-size:1.5rem;font-weight:600}.header-nav{display:flex;gap:.5rem;flex:1;justify-content:center}.nav-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-btn:hover{background:#fff3;transform:translateY(-1px);box-shadow:0 2px 8px #0003}.header-actions{display:flex;gap:1rem;align-items:center}.user-info{display:flex;align-items:center;gap:.5rem}.container{max-width:1200px;margin:0 auto;padding:2rem;flex:1}.card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#2c3e50}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover:not(:disabled){background:#2980b9}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover:not(:disabled){background:#7f8c8d}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover:not(:disabled){background:#c0392b}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50}.form-group input,.form-group select{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db}.error{color:#e74c3c;padding:.75rem;background:#ffe6e6;border-radius:4px;margin-bottom:1rem}.success{color:#27ae60;padding:.75rem;background:#e6ffe6;border-radius:4px;margin-bottom:1rem}.loading{text-align:center;padding:2rem;color:#7f8c8d}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-card{background:#fff;border-radius:8px;padding:2rem;width:100%;max-width:400px;box-shadow:0 10px 40px #0003}.auth-card h2{text-align:center;margin-bottom:1.5rem;color:#2c3e50}.printer-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.printer-item{padding:1rem;border:2px solid #ecf0f1;border-radius:8px;cursor:pointer;transition:all .2s}.printer-item:hover{border-color:#3498db;background:#f8f9fa}.printer-item.selected{border-color:#3498db;background:#e3f2fd}.printer-item h3{font-size:1rem;margin-bottom:.5rem}.printer-status{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.printer-status.online{background:#d4edda;color:#155724}.printer-status.offline{background:#f8d7da;color:#721c24}.job-list{display:flex;flex-direction:column;gap:1rem}.job-item{padding:1rem;border:1px solid #ecf0f1;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.job-info h4{margin-bottom:.25rem}.job-info p{font-size:.85rem;color:#7f8c8d}.job-status{padding:.5rem 1rem;border-radius:4px;font-size:.85rem;font-weight:600;text-transform:uppercase}.job-status.pending{background:#fff3cd;color:#856404}.job-status.printing{background:#cce5ff;color:#004085}.job-status.completed{background:#d4edda;color:#155724}.job-status.failed{background:#f8d7da;color:#721c24}.job-status.cancelled{background:#e2e3e5;color:#383d41}.api-token-card{background:#fff;border-radius:12px;padding:2rem;margin:2rem auto;max-width:900px;box-shadow:0 2px 8px #0000001a}.api-token-card h1{margin-bottom:.5rem}.credential-section{margin:2rem 0}.credential-section label{display:block;font-weight:600;margin-bottom:.5rem;font-size:1.1rem}.printers-list{border:1px solid #e0e0e0;border-radius:8px;padding:1rem;background:#f8f9fa}.printer-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#fff;border-radius:6px;margin-bottom:.5rem}.printer-info{display:flex;flex-direction:column;gap:.25rem}.printer-id{font-family:monospace;font-size:.85rem;color:#666}.printer-note{margin-top:1rem;font-size:.9rem;color:#666;font-style:italic}.no-printers{padding:2rem;text-align:center;background:#f8f9fa;border-radius:8px}.btn-small{padding:.5rem 1rem;font-size:.9rem}
