@import"https://fonts.googleapis.com/css2?family=Cal+Sans&family=Figtree:ital,wght@0,300..900;1,300..900&family=Fustat:wght@200..800&display=swap";.background{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--color-bg-primary);z-index:-1;overflow:hidden}.background-orbs{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.background-orb{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform}.background-orb--1{width:700px;height:700px;left:-8%;bottom:-12%;background:radial-gradient(circle,rgba(200,20,35,.18) 0%,transparent 70%);animation:orb-drift-1 28s ease-in-out infinite}.background-orb--2{width:600px;height:600px;right:-8%;top:-10%;background:radial-gradient(circle,rgba(230,80,60,.13) 0%,transparent 70%);animation:orb-drift-2 34s ease-in-out infinite}.background-orb--3{width:500px;height:500px;left:35%;top:30%;background:radial-gradient(circle,rgba(229,57,74,.09) 0%,transparent 70%);animation:orb-drift-3 40s ease-in-out infinite}@keyframes orb-drift-1{0%,to{transform:translate(0) scale(1)}25%{transform:translate(8vw,-6vh) scale(1.1)}50%{transform:translate(12vw,-3vh) scale(.95)}75%{transform:translate(4vw,4vh) scale(1.05)}}@keyframes orb-drift-2{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-6vw,5vh) scale(.9)}50%{transform:translate(-10vw,8vh) scale(1.08)}75%{transform:translate(-3vw,3vh) scale(.95)}}@keyframes orb-drift-3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-5vw,-4vh) scale(1.15)}66%{transform:translate(6vw,5vh) scale(.9)}}.background-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.header{position:fixed;top:var(--layout-gap);left:var(--layout-gap);right:var(--layout-gap);height:var(--header-height);z-index:100}.header-content{display:flex;align-items:center;padding:0 var(--spacing-2xl);height:100%;position:relative}.header-logo{height:70px;width:auto;position:relative;z-index:1}.header-logo-clickable{cursor:pointer}.header-right{margin-left:auto;display:flex;align-items:center;gap:1.5rem}.header-title{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);letter-spacing:.25em;text-transform:uppercase}.header-module-name{position:absolute;left:50%;transform:translate(-50%);font-family:var(--font-heading);font-size:1.25rem;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;font-weight:600}.header-home-button{background:transparent;border:1px solid var(--color-border);border-radius:8px;padding:.35rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.header-home-button:hover{border-color:var(--color-border-active);background:var(--color-surface-hover);box-shadow:0 0 15px #ffffff0a}.header-home-icon{height:18px;width:18px;opacity:.7;transition:opacity .15s ease}.header-home-button:hover .header-home-icon{opacity:1}.header-user{display:flex;align-items:center;gap:.75rem;padding-left:1.5rem;border-left:var(--glass-border)}.header-user-info{display:flex;flex-direction:column;align-items:flex-end}.header-user-email{font-size:var(--font-size-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.header-user-role{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.header-logout-button{padding:.3rem .75rem;background:transparent;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.header-logout-button:hover{background:var(--color-surface-hover);color:var(--color-text-primary);box-shadow:0 0 15px #ffffff0a}.glass-box{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--glass-radius);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}.session-expired-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#0009;z-index:200}.session-expired-banner{padding:var(--spacing-2xl);max-width:420px;width:90%;text-align:center}.session-expired-title{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-warning);margin-bottom:var(--spacing-md)}.session-expired-message{color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6}.session-expired-button{padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:500;transition:background .15s}.session-expired-button:hover{background:var(--color-accent-hover)}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;padding:var(--spacing-xl);padding-top:calc(var(--header-height) + var(--layout-gap) * 2)}.login-box{padding:var(--spacing-2xl);max-width:400px;width:100%}.login-box-title{font-size:var(--font-size-2xl);font-weight:600;text-align:center;margin-bottom:var(--spacing-xl)}.login-box-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.login-box-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.login-box-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-box-input{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);font-size:var(--font-size-base);outline:none;transition:border-color .15s}.login-box-input:focus{border-color:var(--color-accent)}.login-box-input:disabled{opacity:.6}.login-box-error{padding:var(--spacing-sm) var(--spacing-md);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:var(--color-error);font-size:var(--font-size-sm)}.login-box-submit{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:500;transition:background .15s}.login-box-submit:hover:not(:disabled){background:var(--color-accent-hover)}.login-box-submit:disabled{opacity:.6;cursor:not-allowed}.login-box-footer{text-align:center;margin-top:var(--spacing-lg)}.login-box-link{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-box-link:hover{color:var(--color-accent)}.change-password-page{display:flex;align-items:center;justify-content:center;height:100vh;padding:var(--spacing-xl);padding-top:calc(var(--header-height) + var(--layout-gap) * 2)}.change-password-box{padding:var(--spacing-2xl);max-width:400px;width:100%}.change-password-title{font-size:var(--font-size-2xl);font-weight:600;text-align:center;margin-bottom:var(--spacing-xl)}.change-password-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.change-password-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.change-password-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.change-password-input{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);font-size:var(--font-size-base);outline:none;transition:border-color .15s}.change-password-input:focus{border-color:var(--color-accent)}.change-password-input:disabled{opacity:.6}.change-password-hints{padding:var(--spacing-md);background:var(--color-surface);border-radius:8px}.change-password-hints-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.change-password-hints-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-xs)}.hint-met{font-size:var(--font-size-sm);color:var(--color-success)}.hint-met:before{content:"✓"}.hint-unmet{font-size:var(--font-size-sm);color:var(--color-text-muted)}.hint-unmet:before{content:"✗"}.change-password-error{padding:var(--spacing-sm) var(--spacing-md);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:var(--color-error);font-size:var(--font-size-sm)}.change-password-success{text-align:center;color:var(--color-success);margin-bottom:var(--spacing-xl)}.change-password-back-link{display:block;text-align:center;color:var(--color-accent);font-size:var(--font-size-sm)}.change-password-submit{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-base);font-weight:500;transition:background .15s}.change-password-submit:hover:not(:disabled){background:var(--color-accent-hover)}.change-password-submit:disabled{opacity:.6;cursor:not-allowed}.change-password-footer{text-align:center;margin-top:var(--spacing-lg)}.change-password-link{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.change-password-link:hover{color:var(--color-accent)}.app-shell{display:flex;min-height:100vh}.placeholder-box{padding:var(--spacing-xl)}.placeholder-box h2{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.placeholder-box p{color:var(--color-text-secondary)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg-primary: #0a0808;--color-bg-secondary: #110f0e;--color-surface: rgba(255, 255, 255, .04);--color-surface-hover: rgba(255, 255, 255, .07);--color-border: rgba(255, 255, 255, .06);--color-border-active: rgba(255, 255, 255, .15);--color-text-primary: #f5f0ec;--color-text-secondary: #d4c8bf;--color-text-muted: #a0938a;--color-accent: #e5394a;--color-accent-hover: #cf3040;--color-accent-glow: rgba(229, 57, 74, .25);--color-success: #34d399;--color-warning: #fbbf24;--color-error: #f87171;--glass-bg: linear-gradient(137deg, rgba(18, 14, 16, .72) 4.87%, rgba(14, 10, 12, .85) 75.88%);--glass-border: 1px solid rgba(255, 255, 255, .06);--glass-blur: blur(12px);--glass-radius: 20px;--glass-shadow: inset 0 1px 1px 0 rgba(255, 255, 255, .1);--font-heading: "Cal Sans", "Figtree", sans-serif;--font-display: "Figtree", sans-serif;--font-body: "Fustat", "Figtree", sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--font-size-xs: .8125rem;--font-size-sm: .9375rem;--font-size-base: 1.0625rem;--font-size-lg: 1.25rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.125rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--header-height: 100px;--sidebar-width: 240px;--layout-gap: 16px;--content-max-width: 880px;--transition-fast: .15s ease;--transition-normal: .2s ease}html{height:100%;overflow-y:scroll}body,#root{height:100%;width:100%}body{font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}button{cursor:pointer;font-family:var(--font-display)}button:active:not(:disabled){transform:scale(.98)}input,select,textarea{font-family:var(--font-display)}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 3px var(--color-accent-glow)}::placeholder{color:var(--color-text-muted);opacity:.7}::selection{background:#e5394a4d;color:var(--color-text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}.dashboard-welcome-title,.production-create-box-title,.experimental-create-box-title,.previous-jobs-box-title,.job-details-title,.help-box-title,.help-box-section-title,.login-box-title,.change-password-title,.retry-modal-title,.session-expired-title,.jobs-overview-box-title,.upload-progress-status{font-family:var(--font-heading)}.sidebar,.state-badge,.jobs-overview-box-stat-value,.shortcut-box-label,.production-create-box-label,.experimental-create-box-label,.experimental-create-box-params-title,.login-box-label,.change-password-label,.change-password-hints-title,.job-details-label,.previous-jobs-box-table th,.upload-progress-labels span,.file-drop-zone-text{font-family:var(--font-display)}.job-details-value--mono,.job-details-error-code,.upload-progress-job-id,.experimental-create-box-range-value{font-family:var(--font-mono)}.jobs-overview-box-stat-value,.previous-jobs-box-cell-date{font-variant-numeric:tabular-nums}.login-box-submit,.change-password-submit,.production-create-box-submit,.experimental-create-box-submit,.retry-modal-btn--confirm,.session-expired-button,.upload-progress-retry-btn,.job-details-download-btn{transition:background var(--transition-normal),box-shadow .4s ease,transform var(--transition-normal)}.login-box-submit:hover:not(:disabled),.change-password-submit:hover:not(:disabled),.production-create-box-submit:hover:not(:disabled),.experimental-create-box-submit:hover:not(:disabled),.retry-modal-btn--confirm:hover:not(:disabled),.session-expired-button:hover:not(:disabled),.upload-progress-retry-btn:hover:not(:disabled),.job-details-download-btn:hover:not(:disabled){box-shadow:0 0 20px #e5394a40,0 0 40px #e5394a1a}.job-details-retry-btn{transition:background var(--transition-normal),box-shadow .4s ease,transform var(--transition-normal)}.job-details-retry-btn:hover:not(:disabled){box-shadow:0 0 20px #fbbf2433,0 0 40px #fbbf2414}
