:root{--primary:#f59e0b;--primary-hover:#d97706;--primary-light:#fef3c7;--primary-bg:#f59e0b14;--accent:#f59e0b;--background:#f3f4f6;--foreground:#111827;--muted:#6b7280;--secondary:#6b7280;--card:#fff;--card-bg:#fff;--card-border:#e5e7eb;--border:#e5e7eb;--border-light:#f3f4f6;--danger:#ef4444;--danger-bg:#ef444414;--success:#10b981;--success-bg:#10b98114;--warning:#f59e0b;--warning-bg:#f59e0b14;--info:#3b82f6;--info-bg:#3b82f614;--sidebar-bg:#111827;--sidebar-text:#f9fafb;--sidebar-muted:#9ca3af;--sidebar-hover:#ffffff0f;--sidebar-active:#ffffff1a;--radius:12px;--radius-sm:8px;--radius-lg:16px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app-container{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);width:260px;color:var(--sidebar-text);border-right:1px solid #ffffff14;flex-direction:column;flex-shrink:0;height:100vh;padding:1.75rem 1.25rem;display:flex;position:sticky;top:0;overflow-y:auto}.main-content{background:var(--background);flex:1;max-width:100%;min-height:100vh;padding:2rem 2.5rem;overflow-y:auto}.nav-link{border-radius:var(--radius-sm);cursor:pointer;color:var(--sidebar-muted);border:none;border-left:3px solid #0000;align-items:center;gap:.75rem;margin-left:-3px;padding:.6rem .875rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-link:hover{background:var(--sidebar-hover);color:#e5e7eb}.nav-link.active{background:var(--sidebar-active);color:#fff;border-left-color:var(--primary);font-weight:600}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem;transition:box-shadow .2s,transform .2s}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}h1{color:var(--foreground);letter-spacing:-.025em;margin-bottom:.25rem;font-size:1.75rem;font-weight:700}h2{color:var(--foreground);margin-bottom:.75rem;font-size:1.25rem;font-weight:600}h3{color:var(--foreground);font-weight:600}p{color:var(--muted);line-height:1.6}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--foreground);align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;line-height:1.4;transition:all .15s;display:inline-flex}.btn:hover{background:#f9fafb;border-color:#d1d5db}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-icon{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);background:0 0;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:inline-flex}.btn-icon:hover{color:var(--foreground);background:#f9fafb;border-color:#d1d5db}.btn-icon.danger:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem;font-size:.75rem;font-weight:600;display:block}.form-input,.main-content input[type=text],.main-content input[type=number],.main-content input[type=email],.main-content input[type=tel],.main-content input[type=search],.main-content input[type=date],.main-content input[type=datetime-local],.main-content textarea{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--foreground);background:#fff;width:100%;padding:.625rem .875rem;font-family:inherit;font-size:.875rem;line-height:1.5;transition:border-color .15s,box-shadow .15s}.form-input::placeholder,.main-content input::placeholder,.main-content textarea::placeholder{color:#9ca3af}.form-input:focus,.main-content input:focus,.main-content textarea:focus,.main-content select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg);outline:none}.form-select,select.form-input,.main-content select{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--foreground);cursor:pointer;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") right .75rem center no-repeat;width:100%;padding:.625rem 2.25rem .625rem .875rem;font-family:inherit;font-size:.875rem}.form-select option,select option{color:var(--foreground);background:#fff}.table-header{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);background:#f9fafb;padding:.75rem 1.25rem;font-size:.6875rem;font-weight:600}.table-cell{padding:.875rem 1.25rem}.hover-row{transition:background .1s}.hover-row:hover{background:#f9fafb}.status-badge{letter-spacing:.02em;border-radius:6px;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.6875rem;font-weight:600;display:inline-flex}.status-badge.active,.status-badge.online{background:var(--success-bg);color:#059669}.status-badge.completed,.status-badge.offline{color:var(--muted);background:#f3f4f6}.status-badge.scheduled{background:var(--info-bg);color:#2563eb}.status-badge.violation{background:var(--danger-bg);color:#dc2626}.status-badge.ready{background:var(--info-bg);color:#2563eb}.status-badge.inactive{background:var(--danger-bg);color:#dc2626}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot.online{background:var(--success);box-shadow:0 0 0 3px var(--success-bg)}.status-dot.offline{background:#d1d5db}.status-dot.violation{background:var(--danger);animation:1.5s infinite pulse-dot}.modal-overlay{background:var(--background);z-index:9999;scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.modal-overlay::-webkit-scrollbar{display:none}.modal-content{width:100%;max-width:620px;color:var(--foreground);margin:0 auto;padding:2.5rem 2rem 3rem;transform:translate(-130px)}@media (max-width:768px){.modal-content{transform:translate(-28px)}}.modal-close{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--muted);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.modal-close:hover{color:var(--foreground);background:#f3f4f6}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:1.25rem;display:grid}.pagination{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.pagination button{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:#fff;border-radius:6px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;transition:all .15s}.pagination button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{color:var(--muted);padding:0 .5rem;font-size:.8125rem}.empty-state{text-align:center;color:var(--muted);padding:4rem 2rem}.empty-state svg{opacity:.25;color:var(--muted);margin:0 auto 1rem}.empty-state h3{color:var(--foreground);margin-bottom:.375rem;font-size:1rem;font-weight:600}.empty-state p{margin-bottom:1.25rem;font-size:.875rem}.skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%) 0 0/200% 100%;border-radius:6px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.3s ease-out forwards fadeIn}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes pulse-animation{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.pulse{animation:2s infinite pulse-animation}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes modalIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.login-container{background:linear-gradient(135deg,#111827 0%,#1f2937 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:400px;padding:2.5rem 2rem;box-shadow:0 25px 50px -12px #00000080}.login-input{border-radius:var(--radius-sm);color:#fff;background:#ffffff0f;border:1px solid #ffffff1f;width:100%;padding:.75rem 1rem .75rem 2.75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s,background .15s}.login-input:focus{border-color:var(--primary);background:#ffffff1a;outline:none}.login-btn{border-radius:var(--radius-sm);background:var(--primary);color:#111827;cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.75rem;padding:.875rem;font-size:.9375rem;font-weight:700;transition:all .15s;display:flex}.login-btn:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 8px 12px -3px #f59e0b4d}.breadcrumbs{color:var(--muted);align-items:center;gap:.375rem;margin-bottom:1.25rem;font-size:.8125rem;display:flex}.breadcrumbs a{color:var(--muted);text-decoration:none;transition:color .15s}.breadcrumbs a:hover{color:var(--foreground)}.breadcrumbs .current{color:var(--foreground);font-weight:600}::-webkit-scrollbar{display:none}*{scrollbar-width:none;-ms-overflow-style:none}@media (max-width:768px){.sidebar{align-items:center;width:56px;padding:1rem .375rem}.sidebar .sidebar-brand-text,.sidebar .nav-link span,.sidebar .sidebar-label{display:none}.nav-link{border-left:none;justify-content:center;margin-left:0;padding:.6rem}.main-content{padding:1.25rem}.dashboard-grid{grid-template-columns:1fr}.modal-content{margin:.5rem;padding:1.5rem}}@media (max-width:480px){.main-content{padding:1rem}}
