:root{font-size:16px}*{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}html,body{width:100%;height:100%;background:#000;overflow:hidden;font-family:Barlow,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.login-screen{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100vw;height:100vh;background:-webkit-gradient(linear,left top,left bottom,from(#404),to(#202));background:linear-gradient(180deg,#404,#202)}.login-container{background:#fff;padding:3rem;border-radius:1rem;-webkit-box-shadow:0 50px 100px rgba(0,0,0,.8);box-shadow:0 50px 100px #000c;text-align:center;max-width:400px}.login-container .login-logo{width:100px;margin-bottom:2em}.login-container h1{margin-bottom:1rem;color:#333;font-size:2rem}.login-container p{margin-bottom:2rem;color:#666;font-size:1rem}#google-signin-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 auto}.error-message{display:none;margin-top:1rem;padding:1rem;background-color:#fee;color:#c33;border-radius:.5rem;font-size:.9rem}.hamburger-menu{display:none;position:fixed;top:1rem;right:1rem;z-index:1000}.hamburger-btn{background:#00000080;border:none;border-radius:.25rem;padding:.75rem;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;-webkit-transition:background .2s;transition:background .2s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hamburger-btn:hover{background:#000000b3}.hamburger-btn span{display:block;width:1.5rem;height:2px;background:#f0f;-webkit-transition:all .3s;transition:all .3s}.menu-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;background:#000000e6;border-radius:.5rem;padding:1rem;min-width:200px;opacity:0;visibility:hidden;pointer-events:none;-webkit-transform:translateY(-10px);transform:translateY(-10px);-webkit-transition:all .3s;transition:all .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.menu-dropdown.open{opacity:1;visibility:visible;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.menu-dropdown .user-info{color:#fff;margin-bottom:1rem;font-size:.9rem;text-align:center;font-family:Barlow}.menu-dropdown hr{border:0;border-top:1px solid #666;padding:.5em 0}.menu-dropdown .menu-links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.5rem;margin-bottom:1rem;text-align:center;white-space:nowrap}.menu-dropdown .menu-links .eyebrow{color:#fff;text-align:left;font:500 .8rem/1.1em Barlow}.menu-dropdown .menu-links a{color:#fff;text-decoration:none;padding:.5rem;border:1px solid #440044;border-radius:.25rem;-webkit-transition:background .2s;transition:background .2s;background:#808}.menu-dropdown .menu-links a:hover{border-color:#f0f;background:#404}.menu-dropdown .sign-out-btn{background-color:#808;color:#fff;padding:.5rem 1rem;border:none;border-radius:.25rem;cursor:pointer;width:100%;-webkit-transition:background .2s;transition:background .2s}.menu-dropdown .sign-out-btn:hover{background-color:#606}.stream-container{display:none;width:100vw;height:100vh;position:fixed;background-color:#000}.stream-container .corner{position:fixed;bottom:0;right:0;width:25vmin;height:auto;z-index:666}.stream-image{width:100vw;height:100vh;-o-object-fit:cover;object-fit:cover;-webkit-filter:contrast(1) saturate(1) brightness(1);filter:contrast(1) saturate(1) brightness(1)}.refresh-stream-btn{position:fixed;top:1rem;right:5rem;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:50%;width:44px;height:44px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;z-index:950;-webkit-transition:all .2s ease;transition:all .2s ease;color:#fff;padding:0}.refresh-stream-btn svg{width:20px;height:20px}.refresh-stream-btn:hover{background:#000000b3;border-color:#fff6;-webkit-transform:scale(1.05);transform:scale(1.05)}.refresh-stream-btn:active{-webkit-transform:scale(.95);transform:scale(.95)}.refresh-stream-btn:active svg{-webkit-animation:spin .5s ease-in-out;animation:spin .5s ease-in-out}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.printer-status{position:fixed;top:1rem;left:1rem;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.75rem;padding:1.5rem;color:#fff;font-family:Barlow;max-width:500px;z-index:900;-webkit-box-shadow:0 10px 40px rgba(0,0,0,.5);box-shadow:0 10px 40px #00000080;border:1px solid rgba(136,0,136,.3);-webkit-transition:all .3s ease;transition:all .3s ease}@media (max-width: 639px){.printer-status{max-width:70vw;padding:1rem}}.printer-status #job-file{width:100%}.printer-status .view-model-btn{background:#808;color:#fff;border:none;padding:.25rem 1rem;border-radius:4px;font-weight:600;font-size:.875rem;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;font-family:inherit;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:.5rem;margin-bottom:.5em}.printer-status .view-model-btn .material-icons{font-size:1.25rem}.printer-status .view-model-btn:hover{background:#f3f;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.printer-status .view-model-btn:active{-webkit-transform:translateY(0);transform:translateY(0)}.printer-status.collapsed{padding:0;max-width:3rem;max-height:3rem;border-radius:50%;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.printer-status.collapsed .status-content{opacity:0;visibility:hidden;max-height:0;overflow:hidden}.printer-status.collapsed .status-toggle .info-icon{-webkit-transform:rotate(0deg);transform:rotate(0)}.printer-status .status-toggle{position:absolute;top:0rem;right:0rem;background:transparent;border:none;border-radius:50%;width:2rem;height:2rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;z-index:10}.printer-status .status-toggle:hover{background:#fff3;border-color:#f0f}.printer-status .status-toggle .close-icon,.printer-status .status-toggle .info-icon{width:1rem;height:1rem;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;position:absolute}.printer-status .status-toggle .close-icon{opacity:1}.printer-status .status-toggle .info-icon{opacity:0}.printer-status.collapsed .status-toggle{position:static;width:3rem;height:3rem;border:none;background:#f0f3}.printer-status.collapsed .status-toggle:hover{background:#ff00ff4d}.printer-status.collapsed .status-toggle .close-icon{opacity:0}.printer-status.collapsed .status-toggle .info-icon{opacity:1;width:1.5rem;height:1.5rem}.printer-status .status-content{opacity:1;visibility:visible;-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.printer-status .status-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.3)}.printer-status .status-header h2{font-size:1.25rem;font-weight:600;color:#ffffffbf;margin:0;padding-right:2em}.printer-status .status-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#ff00ff1a;color:#f0f;border:1px solid #ff00ff}.printer-status .status-badge.ready,.printer-status .status-badge.idle{background:#ffff001a;color:#ff0;border-color:#ff0}.printer-status .status-badge.printing{background:#00ff001a;color:#0f0;border-color:#0f0}.printer-status .status-badge.completed{background:#00ff0026;color:#0f0;border-color:#0f0}.printer-status .status-badge.heating{background:#ffa5001a;color:orange;border-color:orange}.printer-status .status-badge.calibrating{background:#0096ff1a;color:#0096ff;border-color:#0096ff}.printer-status .status-badge.pausing{background:#ffc8001a;color:#ffc800;border-color:#ffc800}.printer-status .status-badge.paused{background:#ff8c001a;color:#ff8c00;border-color:#ff8c00}.printer-status .status-badge.busy{background:#00ffff1a;color:#0ff;border-color:#0ff}.printer-status .status-badge.cancelled{background:#ff000026;color:red;border-color:red}.printer-status .status-badge.error{background:#f003;color:red;border-color:red}.printer-status .status-badge.unknown{background:#ff00ff1a;color:#f0f;border-color:#f0f}.printer-status .status-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media (min-width: 768px){.printer-status .status-grid{grid-template-columns:repeat(2,1fr)}}.printer-status .status-section h3{font-size:.75rem;font-weight:700;color:#fffc;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.printer-status .status-item{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:1.3;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.25rem 0;border-bottom:1px solid rgba(255,255,255,.2)}.printer-status .status-item:last-child{border-bottom:none}.printer-status .status-item .label{font-size:.875rem;color:#ffffffb3}.printer-status .status-item .value{font-size:.875rem;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}.printer-status .status-item .value .temp-current{color:#fff;font-weight:600}.printer-status .status-item .value .temp-current.temp-heating{color:#ff9800;-webkit-animation:pulse-heating 2s ease-in-out infinite;animation:pulse-heating 2s ease-in-out infinite}.printer-status .status-item .value .temp-current.temp-at-target{color:#a00}.printer-status .status-item .value .temp-separator{color:#fff6;margin:0 .25rem}.printer-status .status-item .value .temp-target{color:#fff9;font-weight:400;font-size:.8rem}.printer-status .status-item .value .heating-icon{display:inline-block;margin-right:.25rem;-webkit-animation:flicker 1.5s ease-in-out infinite;animation:flicker 1.5s ease-in-out infinite}@media (min-width: 480px){.printer-status{max-width:calc(100vw - 2rem)}}@media (min-width: 768px){.printer-status{max-width:600px}}@-webkit-keyframes pulse-heating{0%,to{opacity:1}50%{opacity:.7}}@keyframes pulse-heating{0%,to{opacity:1}50%{opacity:.7}}@-webkit-keyframes flicker{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}25%{opacity:.8;-webkit-transform:scale(1.1);transform:scale(1.1)}50%{opacity:1;-webkit-transform:scale(.95);transform:scale(.95)}75%{opacity:.9;-webkit-transform:scale(1.05);transform:scale(1.05)}}@keyframes flicker{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}25%{opacity:.8;-webkit-transform:scale(1.1);transform:scale(1.1)}50%{opacity:1;-webkit-transform:scale(.95);transform:scale(.95)}75%{opacity:.9;-webkit-transform:scale(1.05);transform:scale(1.05)}}.model-viewer-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1100;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.model-viewer-modal[style*="display: none"]{opacity:0;visibility:hidden}.model-viewer-content{background:#000000f2;border-radius:.75rem;border:1px solid rgba(136,0,136,.3);-webkit-box-shadow:0 20px 60px rgba(0,0,0,.8);box-shadow:0 20px 60px #000c;max-width:90vw;max-height:90vh;width:1200px;height:800px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}@media (min-width: 480px){.model-viewer-content{max-width:95vw;max-height:80vh}}.model-viewer-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);background:#00000080;gap:1rem}.model-viewer-header h3{color:#fff;font-size:1.25rem;font-weight:600;margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1}@media (min-width: 480px){.model-viewer-header{padding:1rem}.model-viewer-header h3{font-size:1rem}}.model-viewer-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.model-viewer-toolbar .toolbar-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:.375rem;color:#fff;width:2.5rem;height:2.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;padding:0}.model-viewer-toolbar .toolbar-btn svg{width:1.25rem;height:1.25rem}.model-viewer-toolbar .toolbar-btn:hover{background:#fff3;border-color:#f0f;color:#f0f}.model-viewer-toolbar .toolbar-btn:active{-webkit-transform:scale(.95);transform:scale(.95)}.model-viewer-close{background:transparent;border:none;color:#fff;font-size:2rem;cursor:pointer;width:2rem;height:2rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:color .2s ease;transition:color .2s ease;padding:0}.model-viewer-close svg{width:1.5rem;height:1.5rem}.model-viewer-close:hover{color:#f0f}.model-viewer-body{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.model-viewer-container{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;overflow:hidden;background:#000;min-width:0}.model-viewer-stats{width:100%;background:#000c;border-top:1px solid rgba(255,255,255,.1);padding:1rem 1.5rem}.model-viewer-stats h4{color:#ffffffe6;font-size:.875rem;font-weight:600;margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 3rem}.stat-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.5rem 0;border-bottom:1px solid #444;border-top:1px solid #444}.stat-item .stat-label{font-size:.875rem;color:#fff9;font-weight:400}.stat-item .stat-value{font-size:.875rem;font-weight:600;color:#fff;font-variant-numeric:tabular-nums;text-align:right}.model-viewer-error{color:red;background:#ff00001a;padding:2rem;text-align:center;border-radius:.5rem;margin:2rem;font-size:1rem;font-weight:500}.upload-modal{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2000;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:1rem}.upload-modal-content{background:#1a1a1a;border-radius:1rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;-webkit-box-shadow:0 20px 60px rgba(0,0,0,.5);box-shadow:0 20px 60px #00000080}.upload-modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:1.5rem;border-bottom:1px solid #333}.upload-modal-header h2{color:#fff;font-size:1.5rem;margin:0}.upload-modal-close{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:color .2s ease;transition:color .2s ease}.upload-modal-close:hover{color:#f6f}.upload-modal-body{padding:1.5rem}.upload-dropzone{border:2px dashed #555;border-radius:.5rem;padding:3rem 2rem;text-align:center;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease;background:#222}.upload-dropzone:hover,.upload-dropzone.dragover{border-color:#f6f;background:#2a2a2a}.upload-dropzone svg{color:#888;margin-bottom:1rem}.upload-dropzone p{color:#ccc;margin:.5rem 0}.upload-dropzone .upload-hint{font-size:.875rem;color:#888}.file-info{background:#222;border-radius:.5rem;padding:1rem;margin-top:1rem}.file-info p{color:#ccc;margin:.5rem 0}.file-info strong{color:#fff}.upload-options{margin-top:1.5rem}.upload-checkbox{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:.75rem 0;cursor:pointer;color:#ccc}.upload-checkbox input[type=checkbox]{margin-right:.75rem;width:1.25rem;height:1.25rem;cursor:pointer}.upload-checkbox:hover{color:#fff}.upload-checkbox.upload-checkbox-warning{color:#fa0;font-weight:600}.upload-checkbox.upload-checkbox-warning:hover{color:#fc0}.upload-status{margin-top:1.5rem;text-align:center}.upload-status p{color:#ccc;margin-top:.5rem}.upload-progress{background:#333;border-radius:.5rem;height:.5rem;overflow:hidden}.upload-progress-bar{background:-webkit-gradient(linear,left top,right top,from(#880088),to(#ff66ff));background:linear-gradient(90deg,#808,#f6f);height:100%;width:0%;-webkit-transition:width .3s ease;transition:width .3s ease}.upload-error{background:#ff000020;border:1px solid #ff0000;border-radius:.5rem;padding:1rem;margin-top:1rem;color:#f66}.upload-success{background:#00ff0020;border:1px solid #00ff00;border-radius:.5rem;padding:1rem;margin-top:1rem;color:#6f6}.upload-modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #333}.btn{padding:.75rem 1.5rem;border-radius:.5rem;border:none;font-size:1rem;font-weight:600;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#808,#f6f);color:#fff}.btn-primary:hover:not(:disabled){-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 5px 15px rgba(255,102,255,.4);box-shadow:0 5px 15px #f6f6}.btn-secondary{background:#333;color:#fff}.btn-secondary:hover{background:#444}.menu-btn{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:#fff;font-size:1rem;cursor:pointer;-webkit-transition:background .2s ease;transition:background .2s ease;border-radius:.5rem}.menu-btn svg{-ms-flex-negative:0;flex-shrink:0}.menu-btn:hover{background:#ffffff1a}
