:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{font-family:IBM Plex Sans,Arial,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body,html,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden}.container{width:100vw;height:100vh;display:flex;flex-direction:column;background-color:#f4f6f8}.container.login-mode{justify-content:center;align-items:center}.login-card{background:#fff;padding:3rem;border-radius:16px;text-align:center;max-width:450px;width:90%}.login-card h1{font-size:2rem;margin-bottom:.5rem;color:#1a1a1a}.login-card p{color:#666;margin-bottom:2rem}.btn-primary{background-color:#007bff;color:#fff;padding:12px 24px;border-radius:8px;text-decoration:none;font-weight:600;font-size:1.1rem;transition:all .2s;display:inline-block}.btn-primary:hover{background-color:#0056b3;box-shadow:0 4px 12px #007bff4d}.header{flex:0 0 auto;background:#000;color:#fff;padding:0 24px;height:64px;display:flex;align-items:center;gap:32px;z-index:10}.ps-logo{flex:0 0 auto;font-weight:800;font-size:1.25rem;text-transform:uppercase;color:#fff;-webkit-user-select:none;user-select:none}.module-tabs{display:flex;flex:1;gap:0;align-self:stretch;overflow-x:auto;overflow-y:visible;scrollbar-width:none}.module-tabs::-webkit-scrollbar{display:none}.module-tab{background:none;border:none;border-radius:0;outline:none;padding:0 20px;height:100%;cursor:pointer;font-size:.9rem;font-family:inherit;color:#fff;opacity:.7;white-space:nowrap;transition:opacity .15s,box-shadow .15s}.module-tab:hover{opacity:1}.module-tab:focus-visible{box-shadow:inset 0 0 0 2px #a4dbe8}.module-tab.active{color:#a4dbe8;opacity:1;box-shadow:inset 0 -3px #a4dbe8;font-weight:700}.module-tab.active:focus-visible{box-shadow:inset 0 -3px #a4dbe8,inset 0 0 0 2px #a4dbe8}.dashboard-wrapper{flex:1 1 auto;position:relative;width:100%;background:#fff;overflow:hidden}.loader-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffbf;z-index:5}.superset-container{width:100%;height:100%}.superset-container iframe{width:100%!important;height:100%!important;border:none!important;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.user-info{display:flex;align-items:center;gap:15px}.badge{background:#e3f2fd;color:#1565c0;padding:4px 10px;border-radius:20px;font-size:.85rem;font-weight:600}.btn-text{background:none;border:none;color:#5f6368;cursor:pointer;font-size:.9rem}.btn-text:hover{color:#d32f2f;text-decoration:underline}.header .btn-text{background:#fff;color:#000;padding:.5rem 1.25rem;border-radius:999px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-family:inherit;transition:opacity .2s ease}.header .btn-icon{background:none;color:#fff;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0}.header .btn-icon:focus-visible{outline:2px solid #a4dbe8;outline-offset:2px}.header .btn-text:hover{color:#000;text-decoration:none;opacity:.85}.error-banner{position:absolute;top:0;left:0;width:100%;background:#ffebee;color:#c62828;text-align:center;padding:10px;z-index:20}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.loader-container p{color:#666;font-size:1.1rem;font-weight:500}.spinner{width:50px;height:50px;border:5px solid #e3f2fd;border-top:5px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header .btn-icon:hover{color:#fff}
