@import"https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";:root{--slate-950: #0a0c10;--slate-900: #111318;--slate-800: #1a1d24;--slate-700: #282d38;--slate-600: #3d4451;--slate-500: #5a6377;--slate-400: #8b95a8;--slate-300: #b4bcc9;--slate-200: #d8dce4;--slate-100: #eef0f4;--slate-50: #f7f8fa;--safety-green: #22c55e;--safety-green-dim: #166534;--safety-amber: #f59e0b;--safety-amber-dim: #92400e;--safety-red: #ef4444;--safety-red-dim: #991b1b;--safety-blue: #3b82f6;--safety-blue-dim: #1d4ed8;--accent: #f97316;--accent-bright: #fb923c;--accent-dim: #c2410c;--bg-primary: var(--slate-50);--bg-secondary: #ffffff;--bg-elevated: #ffffff;--text-primary: var(--slate-900);--text-secondary: var(--slate-600);--text-muted: var(--slate-400);--border: var(--slate-200);--border-focus: var(--slate-800);--font-industrial: "Rajdhani", "Inter", system-ui, sans-serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--touch-min: 48px;--touch-preferred: 52px;--radius: 4px;--radius-lg: 8px;--header-height: 56px;--nav-width: 240px;--nav-collapsed-width: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-industrial);font-size:16px;font-weight:500;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden;background-image:linear-gradient(var(--slate-100) 1px,transparent 1px),linear-gradient(90deg,var(--slate-100) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-body{display:flex;flex:1}.main-content{flex:1;padding:var(--space-5);padding-bottom:calc(var(--space-5) + 64px);max-width:1200px;margin:0 auto;width:100%}@media (min-width: 768px){.main-content{padding-bottom:var(--space-5);margin-left:var(--nav-width)}}.header{position:sticky;top:0;z-index:100;background:var(--slate-900);color:#fff;padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--accent);height:var(--header-height)}.header-left{display:flex;align-items:center;gap:var(--space-3)}.header-menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:#fff;cursor:pointer;border-radius:var(--radius);transition:background .15s ease}.header-menu-btn:hover{background:#ffffff1a}@media (min-width: 768px){.header-menu-btn{display:none}}.header-home{display:flex;align-items:baseline;gap:var(--space-2);background:transparent;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-2));border-radius:var(--radius);transition:background .15s ease;text-decoration:none}.header-home:hover{background:#ffffff1a}.header-title{font-family:var(--font-industrial);font-size:18px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff}.header-version{font-family:var(--font-industrial);font-size:10px;font-weight:500;color:var(--slate-400);letter-spacing:.5px}.header-right{display:flex;align-items:center;gap:var(--space-3)}.header-user{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);color:var(--slate-300);font-family:var(--font-industrial);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.header-user:hover{background:#ffffff26;color:#fff}.header-user.confirm-logout{background:var(--safety-red);border-color:var(--safety-red);color:#fff;animation:pulse-logout .5s ease-in-out infinite alternate}@keyframes pulse-logout{0%{opacity:1}to{opacity:.8}}.status-badge{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:none;border-radius:2px;font-family:var(--font-industrial);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:opacity .15s ease}.status-badge.online{background:var(--safety-green);color:#fff}.status-badge.offline{background:var(--safety-red);color:#fff}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.side-nav{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--nav-width);background:var(--bg-secondary);border-right:1px solid var(--border);overflow-y:auto;z-index:90;transform:translate(-100%);transition:transform .2s ease}.side-nav.open{transform:translate(0)}@media (min-width: 768px){.side-nav{transform:translate(0)}}.nav-overlay{position:fixed;inset:0;top:var(--header-height);background:#00000080;z-index:85;opacity:0;visibility:hidden;transition:all .2s ease}.nav-overlay.visible{opacity:1;visibility:visible}@media (min-width: 768px){.nav-overlay{display:none}}.nav-section{padding:var(--space-3)}.nav-section-title{font-family:var(--font-industrial);font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;padding:var(--space-2) var(--space-3)}.nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);background:transparent;border:none;border-radius:var(--radius);color:var(--text-secondary);font-family:var(--font-industrial);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;transition:all .15s ease;text-align:left}.nav-item:hover{background:var(--slate-50);color:var(--text-primary)}.nav-item.active{background:var(--slate-100);color:var(--text-primary);border-left:3px solid var(--accent);margin-left:-3px}.nav-item-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-item-badge{margin-left:auto;padding:2px 8px;background:var(--safety-red);color:#fff;font-size:11px;font-weight:700;border-radius:10px}.nav-submenu{padding-left:var(--space-6)}.nav-submenu .nav-item{font-size:13px;padding:var(--space-2) var(--space-3)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));z-index:100}@media (min-width: 768px){.bottom-nav{display:none}}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2);background:transparent;border:none;color:var(--text-muted);font-family:var(--font-industrial);font-size:10px;font-weight:600;text-decoration:none;cursor:pointer;border-radius:var(--radius);min-width:64px}.bottom-nav-item:hover,.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active{background:#f973161a}.bottom-nav-icon{width:24px;height:24px}.page-header{margin-bottom:var(--space-6)}.page-title{font-family:var(--font-sans);font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px;margin-bottom:var(--space-2)}.page-subtitle{font-size:15px;color:var(--text-secondary)}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:var(--space-4);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-title{font-family:var(--font-industrial);font-size:16px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.card-body{padding:var(--space-4)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.action-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease;text-decoration:none;color:inherit}.action-card:hover{border-color:var(--slate-300);box-shadow:0 4px 12px #00000014}.action-card:active{transform:scale(.99)}.action-card.primary{background:var(--slate-900);border-color:var(--slate-900);color:#fff}.action-card.primary:hover{background:var(--slate-800);border-color:var(--slate-800)}.action-card.primary .action-card-desc{color:var(--slate-300)}.action-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--slate-100);border-radius:var(--radius);flex-shrink:0;color:var(--text-muted)}.action-card.primary .action-card-icon{background:var(--accent);color:#fff}.action-card-content{flex:1;min-width:0}.action-card-title{font-family:var(--font-industrial);font-size:16px;font-weight:700;letter-spacing:.5px;margin-bottom:var(--space-1)}.action-card-desc{font-size:13px;color:var(--text-secondary)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.stat-card-value{font-family:var(--font-industrial);font-size:32px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:var(--space-2)}.stat-card-label{font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.stat-card.success .stat-card-value{color:var(--safety-green)}.stat-card.warning .stat-card-value{color:var(--safety-amber)}.stat-card.danger .stat-card-value{color:var(--safety-red)}.form-container{max-width:640px}.form-section{margin-bottom:var(--space-6)}.form-section-title{font-family:var(--font-industrial);font-size:14px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-1)}.form-section-hint{font-size:12px;color:var(--text-muted);margin-bottom:var(--space-3)}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font-family:var(--font-industrial);font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.form-label .required{color:var(--safety-red)}.form-input{width:100%;max-width:100%;min-height:var(--touch-preferred);padding:var(--space-3) var(--space-4);font-family:var(--font-industrial);font-size:16px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius);transition:all .15s ease}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{outline:none;border-color:var(--slate-800);box-shadow:0 0 0 3px #1a1d241a}.form-input.error{border-color:var(--safety-red)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235a6377' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:44px}.form-textarea{min-height:120px;resize:vertical;font-family:var(--font-industrial)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.error-message{font-family:var(--font-industrial);font-size:11px;color:var(--safety-red);margin-top:var(--space-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-preferred);padding:var(--space-3) var(--space-5);font-family:var(--font-industrial);font-size:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;border:none;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--slate-900);color:#fff}.btn-primary:hover:not(:disabled){background:var(--slate-800)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--slate-300);background:var(--slate-50)}.btn-danger{background:var(--safety-red);color:#fff}.btn-danger:hover:not(:disabled){background:var(--safety-red-dim)}.btn-success{background:var(--safety-green);color:#fff}.btn-success:hover:not(:disabled){background:var(--safety-green-dim)}.submit-btn{width:100%;min-height:60px;margin-top:var(--space-6);padding:var(--space-4);background:var(--slate-900);border:none;border-radius:var(--radius);font-family:var(--font-industrial);font-size:18px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff;cursor:pointer;transition:all .15s ease;position:relative;overflow:hidden}.submit-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}.submit-btn:hover:not(:disabled){background:var(--slate-800)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.toast{position:fixed;bottom:calc(var(--space-6) + 64px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:var(--space-3) var(--space-5);background:var(--slate-900);color:#fff;font-family:var(--font-industrial);font-size:13px;font-weight:500;border-radius:var(--radius);border-left:3px solid var(--accent);z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease;max-width:calc(100% - var(--space-8))}@media (min-width: 768px){.toast{bottom:calc(var(--space-6) + env(safe-area-inset-bottom))}}.toast.visible{opacity:1;visibility:visible}.toast.success{border-left-color:var(--safety-green)}.toast.error{border-left-color:var(--safety-red)}.login-container{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:var(--space-4)}.login-card{width:100%;max-width:400px;background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.login-header{background:var(--slate-900);color:#fff;padding:var(--space-6);text-align:center;border-bottom:3px solid var(--accent)}.login-title{font-family:var(--font-industrial);font-size:24px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:var(--space-2)}.login-subtitle{font-size:14px;color:var(--slate-300)}.login-form{padding:var(--space-6)}.login-loading,.login-empty{padding:var(--space-4);text-align:center;color:var(--text-muted);background:var(--slate-50);border:1px dashed var(--border);border-radius:var(--radius)}.login-error{padding:var(--space-3);background:#ef44441a;border:1px solid var(--safety-red);border-radius:var(--radius);color:var(--safety-red);font-size:13px;font-weight:600;text-align:center;margin-bottom:var(--space-4)}.pin-input{font-family:var(--font-industrial);font-size:24px;font-weight:700;letter-spacing:8px;text-align:center}.login-btn{width:100%;min-height:56px;padding:var(--space-4);background:var(--slate-900);border:none;border-radius:var(--radius);font-family:var(--font-industrial);font-size:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff;cursor:pointer;transition:all .15s ease;position:relative;overflow:hidden}.login-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}.login-btn:hover:not(:disabled){background:var(--slate-800)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-footer{padding:var(--space-4) var(--space-6);background:var(--slate-50);border-top:1px solid var(--border)}.login-hint{font-size:12px;color:var(--text-muted);text-align:center}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;font-family:var(--font-industrial);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:2px}.badge-success{background:#22c55e1a;color:var(--safety-green)}.badge-warning{background:#fef3c7;color:var(--safety-amber-dim)}.badge-danger{background:#ef44441a;color:var(--safety-red)}.badge-info{background:#3b82f61a;color:var(--safety-blue)}.empty-state{text-align:center;padding:var(--space-8);color:var(--text-muted)}.empty-state-icon{width:64px;height:64px;margin:0 auto var(--space-4);color:var(--slate-300)}.empty-state-title{font-family:var(--font-industrial);font-size:16px;font-weight:700;color:var(--text-secondary);margin-bottom:var(--space-2)}.empty-state-desc{font-size:14px;color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.text-success{color:var(--safety-green)}.text-warning{color:var(--safety-amber)}.text-danger{color:var(--safety-red)}.text-muted{color:var(--text-muted)}
