*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#fff,#f8fafc 25%,#e2e8f0 50%,#cbd5e1 75%,#94a3b8);background-attachment:fixed;min-height:100vh;overflow-x:hidden;position:relative;color:#1f2937;line-height:1.6}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 80%,rgba(59,130,246,.05) 0,transparent 50%),radial-gradient(circle at 80% 20%,rgba(37,99,235,.05) 0,transparent 50%),radial-gradient(circle at 40% 40%,rgba(96,165,250,.03) 0,transparent 50%);pointer-events:none;z-index:-1;animation:float 20s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}33%{transform:translateY(-5px) rotate(.3deg)}66%{transform:translateY(3px) rotate(-.3deg)}}.dashboard-container,.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;position:relative}.container{max-width:1400px;width:100%;margin:0 auto;padding:0 1rem}.header{text-align:center;margin-bottom:3rem;animation:slideInDown 1s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.title{font-size:clamp(2.5rem,5vw,4rem);font-weight:900;background:linear-gradient(135deg,#1e40af,#3b82f6 50%,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 4px 8px rgba(0,0,0,.1);letter-spacing:-.02em;line-height:1.1;margin-bottom:1rem;position:relative}.title:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:100px;height:4px;background:linear-gradient(90deg,#1e40af,#3b82f6);border-radius:2px;animation:expandWidth 1.5s ease-out .5s both}@keyframes expandWidth{0%{width:0}to{width:100px}}.subtitle{font-size:1.25rem;color:#374151;font-weight:400;max-width:600px;margin:0 auto;text-shadow:0 2px 4px rgba(0,0,0,.05)}.status-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:3rem;padding:1rem 2rem;background:hsla(0,0%,100%,.8);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:50px;border:1px solid rgba(59,130,246,.2);box-shadow:0 8px 32px rgba(0,0,0,.1);transition:all .3s ease}.status-indicator{width:12px;height:12px;border-radius:50%;position:relative;animation:pulse 2s infinite}.status-indicator.connected{background:#10b981;box-shadow:0 0 20px rgba(16,185,129,.5)}.status-indicator.disconnected{background:#ef4444;box-shadow:0 0 20px rgba(239,68,68,.5)}.status-indicator:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:50%;border:2px solid;opacity:.3;animation:pulse-ring 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes pulse-ring{0%{transform:scale(.8);opacity:1}to{transform:scale(2);opacity:0}}.status-text{color:#374151;font-weight:500;font-size:.95rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:2rem;gap:2rem;margin-bottom:3rem;animation:fadeInUp 1s ease-out .3s both}.card{background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:2rem;border:1px solid rgba(59,130,246,.1);box-shadow:0 8px 32px rgba(0,0,0,.08);transition:all .3s ease;overflow:hidden;position:relative;animation:fadeInUp 1s ease-out both}.card:first-child{animation-delay:.1s}.card:nth-child(2){animation-delay:.2s}.card:nth-child(3){animation-delay:.3s}.card:nth-child(4){animation-delay:.4s}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#1e40af,#3b82f6,#60a5fa);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%,to{transform:translateX(-100%)}50%{transform:translateX(100%)}}.card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,0,0,.08);background:hsla(0,0%,100%,.95)}.card-title{font-size:1.1rem;font-weight:600;color:#1f2937;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.card-value{font-size:2.2rem;font-weight:800;color:#1e40af;margin-bottom:.5rem;text-shadow:0 2px 4px rgba(0,0,0,.1);transition:all .3s ease}.card:hover .card-value{transform:scale(1.005);animation:bounce .6s ease}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-1px,0)}70%{transform:translate3d(0,-.5px,0)}90%{transform:translate3d(0,-.25px,0)}}.card-desc{font-size:.9rem;color:#6b7280;font-weight:400}.simulator{background:linear-gradient(hsla(0,0%,100%,.95),hsla(0,0%,100%,.9));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:2.5rem;margin-bottom:3rem;border:1px solid rgba(59,130,246,.1);box-shadow:0 16px 32px rgba(0,0,0,.08);animation:slideInUp 1s ease-out .6s both;position:relative;overflow:hidden}.simulator:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent,rgba(59,130,246,.02),transparent);animation:rotate 10s linear infinite;pointer-events:none}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.simulator-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1rem;text-align:center}.simulator-desc{font-size:1rem;color:#6b7280;margin-bottom:2rem;text-align:center;line-height:1.6}.simulator-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.simulator-status{margin-top:1.5rem;padding:1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:10px;text-align:center;font-weight:500;border:1px solid hsla(0,0%,100%,.2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.75rem;border-radius:12px;font-size:.95rem;font-weight:600;letter-spacing:.025em;text-decoration:none;border:none;cursor:pointer;transition:all .3s ease;min-width:140px;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s ease}.btn:hover:before{left:100%}.btn-primary{background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;box-shadow:0 4px 15px rgba(30,64,175,.3)}.btn-primary:hover{transform:translateY(-.5px);box-shadow:0 4px 18px rgba(30,64,175,.4)}.btn-secondary{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff;box-shadow:0 4px 15px hsla(220,9%,46%,.3)}.btn-secondary:hover{transform:translateY(-.5px);box-shadow:0 4px 18px hsla(220,9%,46%,.4)}.btn-accent{background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff;box-shadow:0 4px 15px rgba(59,130,246,.3)}.btn-accent:hover{transform:translateY(-.5px);box-shadow:0 4px 18px rgba(59,130,246,.4)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;animation:spin 1s ease-in-out infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(1turn)}}.tabs{margin-bottom:2rem;animation:fadeIn 1s ease-out .8s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tabs-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.5rem;gap:.5rem;padding:.5rem;background:hsla(0,0%,100%,.8);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:12px;margin-bottom:2rem;border:1px solid rgba(59,130,246,.1);box-shadow:0 8px 32px rgba(0,0,0,.08)}.tabs-trigger{padding:1rem 1.5rem;font-size:.95rem;font-weight:600;color:#374151;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;letter-spacing:.025em;position:relative;overflow:hidden}.tabs-trigger:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#1e40af,#3b82f6);opacity:0;transition:opacity .3s ease;z-index:-1}.tabs-trigger.active:before,.tabs-trigger:hover:before{opacity:1}.tabs-trigger.active,.tabs-trigger:hover{color:#fff;transform:translateY(-.25px)}.tab-panel{background:linear-gradient(hsla(0,0%,100%,.95),hsla(0,0%,100%,.9));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:2rem;border:1px solid rgba(59,130,246,.1);box-shadow:0 16px 32px rgba(0,0,0,.08);animation:scaleIn .5s ease-out}.table-wrap{overflow-x:auto;box-shadow:0 8px 24px rgba(0,0,0,.08);background:#fff}.table-wrap,table{border-radius:12px}table{width:100%;border-collapse:collapse;overflow:hidden;font-size:.95rem}th{background:linear-gradient(#1e293b,#334155);color:#fff;padding:1.25rem 1rem;text-align:left;font-size:.9rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;position:relative}th:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#1e40af,#3b82f6)}td{padding:1rem;border-bottom:1px solid #e5e7eb}tbody tr,td{transition:all .2s ease}tbody tr:nth-child(2n){background:linear-gradient(90deg,#f8fafc,#f1f5f9)}tbody tr:hover{background:linear-gradient(90deg,#eff6ff,#dbeafe);transform:translateX(.5px);box-shadow:0 1px 3px rgba(0,0,0,.05)}tbody td{font-weight:500;color:#374151}.form{background:linear-gradient(hsla(0,0%,100%,.95),hsla(0,0%,100%,.9));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:3rem;max-width:400px;width:100%;border:1px solid rgba(59,130,246,.1);box-shadow:0 16px 32px rgba(0,0,0,.08);animation:scaleIn .5s ease-out;position:relative;overflow:hidden}.form:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#1e40af,#3b82f6,#60a5fa);animation:shimmer 3s ease-in-out infinite}.form-title{font-size:2rem;font-weight:800;color:#1f2937;text-align:center;margin-bottom:.5rem;background:linear-gradient(135deg,#1e40af,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.form-subtitle{font-size:1rem;color:#6b7280;text-align:center;margin-bottom:2rem;line-height:1.6}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-size:.9rem;font-weight:600;color:#374151;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.form-input{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;transition:all .3s ease;background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);transform:translateY(-1px)}.form-input::placeholder{color:#9ca3af}.demo-credentials{margin-top:1.5rem;padding:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:10px;border:1px solid #f59e0b;position:relative;overflow:hidden}.demo-credentials:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#f59e0b,#d97706)}.demo-credentials p{margin:0;font-size:.875rem;color:#6b7280}.form-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#dc2626;font-size:.875rem;text-align:center;animation:fadeInUp .3s ease}.form-error:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#dc2626,#ef4444);border-radius:2px}.fifo-explanation{background:linear-gradient(hsla(0,0%,100%,.95),hsla(0,0%,100%,.9));border-radius:16px;padding:2.5rem;margin-top:2rem;border:1px solid rgba(59,130,246,.1);box-shadow:0 16px 32px rgba(0,0,0,.08)}.fifo-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1.5rem;text-align:center}.fifo-content{color:#4b5563;line-height:1.8;margin-bottom:2rem}.fifo-list{list-style:none;padding:0;margin:1.5rem 0}.fifo-list li{border-bottom:1px solid #e5e7eb;position:relative;padding:.75rem 0 .75rem 2rem}.fifo-list li:before{content:"→";position:absolute;left:0;color:#3b82f6;font-weight:700}.fifo-example{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;padding:2rem;margin-top:2rem;border:1px solid #0ea5e9}.fifo-example-title{font-size:1.25rem;font-weight:700;color:#0c4a6e;margin-bottom:1rem}.fifo-example-list{list-style:none;padding:0}.fifo-example-list li{padding:.5rem 0;color:#0c4a6e;font-weight:500}.font-semibold{font-weight:600}.text-slate-700{color:#374151}.text-emerald-600{color:#059669}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.rounded-full{border-radius:9999px}.text-sm{font-size:.875rem}.bg-emerald-100{background-color:#d1fae5}.text-emerald-700{color:#047857}.bg-amber-100{background-color:#fef3c7}.text-amber-700{color:#b45309}.bg-blue-100{background-color:#dbeafe}.text-blue-700{color:#1d4ed8}.bg-orange-100{background-color:#fed7aa}.text-orange-700{color:#c2410c}.bg-gray-100{background-color:#f3f4f6}.text-gray-600{color:#4b5563}.ml-4{margin-left:1rem}.mt-2{margin-top:.5rem}.font-bold{font-weight:700}@media (max-width:768px){.dashboard-container,.login-container{padding:1rem}.container{padding:0 .5rem}.header{margin-bottom:2rem}.title{font-size:2.5rem}.cards{grid-template-columns:1fr;gap:1.5rem}.card,.simulator{padding:1.5rem}.simulator-btns{flex-direction:column;align-items:center}.btn{width:100%;max-width:200px;min-height:44px}.tabs-list{grid-template-columns:1fr}.form{padding:2rem;margin:1rem;width:100%;max-width:400px}.form-input{min-height:44px}.form-input,.form-input:focus{font-size:16px}.fifo-explanation,.tab-panel{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-label{font-size:1rem;margin-bottom:.5rem}.btn-primary{min-height:48px;font-size:1rem}.demo-credentials{margin-top:1.5rem;padding:1rem}}@media (max-width:480px){.login-container{padding:.5rem}.form{padding:1.5rem;margin:.5rem}.title{font-size:2rem}.btn,.subtitle{font-size:1rem}.btn{padding:12px 20px}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1);border-radius:4px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#1e3a8a,#2563eb)}:focus{outline:2px solid #3b82f6;outline-offset:2px}::selection{background:rgba(59,130,246,.3);color:#1f2937}.loading{opacity:.6;pointer-events:none}.card-value:hover{transform:scale(1.005);transition:transform .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.995)}to{opacity:1;transform:scale(1)}}