:root{--bg:#f4f6f9;--surface:#fff;--ink:#0b1f3a;--muted:#64748b;--border:#e2e8f0;--l1:#c97a2b;--l2:#1b7a72;--l3:#4a5fc1;--danger:#c23b3b;--warn:#c98a1a}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans,sans-serif}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}.centered-page{margin:100px auto}@media (width<=480px){.centered-page{margin:40px auto}}.auth-shell{min-height:100vh;display:flex}.auth-hero{background:linear-gradient(160deg,#0b1f3a 0%,#0e2a4d 55%,#123761 100%);flex-direction:column;flex:1.1;justify-content:center;padding:64px;display:flex;position:relative;overflow:hidden}.auth-blob{filter:blur(70px);opacity:.35;border-radius:50%;animation:16s ease-in-out infinite auth-float;position:absolute}@keyframes auth-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(30px,-24px)scale(1.08)}}.auth-wave-track{width:200%;animation:18s linear infinite auth-wave-scroll;position:absolute;left:0;right:0}@keyframes auth-wave-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.auth-input{transition:border-color .15s,box-shadow .15s}.auth-input:focus{border-color:var(--l3);outline:none;box-shadow:0 0 0 3px #4a5fc126}.auth-submit-btn{transition:transform .12s,box-shadow .12s,opacity .12s;box-shadow:0 8px 20px #4a5fc147}.auth-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 24px #4a5fc15c}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-mobile-brand{display:none}@media (width<=860px){.auth-hero{display:none}.auth-mobile-brand{display:flex}}.device-row{transition:border-color .15s,background .15s,transform .12s}.device-row:hover{border-color:var(--l3);background:var(--surface);transform:translateY(-1px)}.device-row:active{transform:translateY(0)}.add-device-btn{transition:border-color .15s,color .15s,background .15s}.add-device-btn:hover{border-color:var(--l3);color:var(--l3);background:#4a5fc10d}.logout-link{transition:color .15s}.logout-link:hover{color:var(--ink)}.dash-card{transition:box-shadow .15s,transform .15s}.dash-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0b1f3a0f}.waveform-empty{flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding-bottom:24px;display:flex}.waveform-empty-dots{gap:5px;display:flex}.waveform-empty-dots span{background:var(--border);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite waveform-pulse}.waveform-empty-dots span:nth-child(2){animation-delay:.15s}.waveform-empty-dots span:nth-child(3){animation-delay:.3s}@keyframes waveform-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;background:var(--l3);transform:scale(1.15)}}
