:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e8ece8;background:#151c1b;font-synthesis:none;font-weight:400;color-scheme:dark;--mint:#b9ebca;--muted:#899791;--line:#303c37}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.45}button,a,input,summary{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--mint)}button{border:0}a{color:inherit;text-decoration:none}.app-header{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:24px;background:#17201d}.brand{display:flex;align-items:center;gap:12px}.brand svg{width:31px;height:37px;color:var(--mint)}.brand>span{font-size:30px;font-weight:650;letter-spacing:-1.4px;display:flex;align-items:center;gap:3px}.brand-dot{color:var(--mint);font-weight:300;margin:0 12px 0 3px}.brand small{font-size:10px;letter-spacing:2px;font-weight:500}.header-note{font-size:12px;color:#9ba8a0}.local-badge{font-size:9px;letter-spacing:1.3px;color:#b1c9bb;display:flex;align-items:center;gap:8px}.local-badge i,#status i{width:6px;height:6px;background:var(--mint);border-radius:50%;display:inline-block}main{display:grid;grid-template-columns:326px minmax(0,1fr);height:calc(100dvh - 80px);min-height:580px}.sidebar{overflow:auto;background:#18211e;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#44544a transparent}.intro{padding:28px 26px 22px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:600;color:#9caaa1}.intro h1{font-size:27px;letter-spacing:-1px;font-weight:500;margin:10px 0 7px}.intro p{font-size:11px;color:var(--muted);margin:0;line-height:1.6}section{padding:22px 26px;border-top:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}h2{margin:0;font-size:13px;font-weight:550}.section-title h2{display:flex;gap:10px;align-items:center}.section-title h2 span{font-size:9px;color:#7b9183;font-weight:400}.section-hint{font-size:7px;color:#7d9084;letter-spacing:1px}.text-button{background:none;color:#9fad9f;font-size:10px;padding:3px 0}.text-button:hover{color:var(--mint)}.upload{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #506453;border-radius:7px;background:#202c25;padding:16px;gap:7px;cursor:pointer;transition:background .2s}.upload:hover,.upload.dragging{background:#2c3d30;border-color:var(--mint)}.upload-icon{font-size:24px;color:var(--mint);line-height:1}.upload strong{font-size:11px;font-weight:500}.upload>span:last-of-type{font-size:9px;color:var(--muted)}.upload u{text-underline-offset:3px;color:#b4c7b8}.upload input{position:absolute;width:1px;height:1px;opacity:0}.upload:focus-within{outline:2px solid var(--mint);outline-offset:3px}.file-info{display:flex;gap:10px;align-items:center;padding:14px 0 18px}.file-info div{min-width:0;flex:1}.file-info strong{display:block;font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}.file-info small{display:block;font-size:9px;color:#819187;margin-top:4px}.file-symbol{font-size:22px;color:#a4b7a7}.file-check{font-size:12px;color:var(--mint)}.label-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#a5b0a8;margin-bottom:9px}.rotation-inputs{display:flex;gap:7px}.rotation-inputs label{display:flex;gap:5px;align-items:center;background:#202a25;border:1px solid #354237;border-radius:4px;padding:8px;width:calc((100% - 14px)/3);font-size:9px;color:#91a094}.rotation-inputs input{background:none;border:0;width:100%;min-width:0;color:#d9e4da;text-align:right;font-size:11px;appearance:textfield}.rotation-inputs input::-webkit-inner-spin-button{appearance:none}.control{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#bfcbc1;margin:20px 0 10px}.section-title+.control{margin-top:0}.control output{font-size:10px;color:var(--mint);font-variant-numeric:tabular-nums}input[type=range]{width:100%;height:3px;display:block;margin:0;appearance:none;border-radius:3px;background:linear-gradient(to right,#accfb1 var(--fill,50%),#3b4940 var(--fill,50%));cursor:pointer;accent-color:var(--mint)}input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:#d6edda;border-radius:50%;border:2px solid #a9c4ae;box-shadow:0 0 0 3px #18211e}input[type=range]::-moz-range-thumb{width:8px;height:8px;background:#d6edda;border-radius:50%;border:2px solid #a9c4ae}.range-hints{display:flex;justify-content:space-between;font-size:8px;color:#73887a;margin-top:9px}.height-control{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#bfcbc1;margin:18px 0 0}.height-control small{display:block;font-size:8px;color:#7d9084;margin-top:4px}.height-control>span:last-child{font-size:9px;color:#97ac9a}.height-control input{width:63px;padding:5px;background:#202a25;border:1px solid #354237;border-radius:4px;font-size:11px}.debug{margin:0 26px;padding:16px 0;border-top:1px solid var(--line);font-size:10px;color:#85998b}.debug summary{cursor:pointer;display:flex;justify-content:space-between;list-style:none}.debug>div{display:grid;gap:10px;padding-top:15px}.debug label{display:flex;gap:8px;align-items:center}input[type=checkbox]{accent-color:var(--mint);width:12px;height:12px;margin:0}.output{padding:12px 26px 20px;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#18211e;position:sticky;bottom:0;border-top:1px solid var(--line)}.primary-button,.secondary-button{padding:13px 7px;border-radius:5px;font-size:11px;font-weight:600}.primary-button{background:var(--mint);color:#193b28}.primary-button:hover:not(:disabled){background:#d1f7dd}.secondary-button{background:#26372c;color:#bdd1c0;border:1px solid #3c5141}.output p{grid-column:1/-1;font-size:8px;text-align:center;color:#788d7d;margin:2px 0 0}.workspace{position:relative;overflow:hidden;background:#202a29}.viewport-top{position:absolute;top:32px;left:36px;right:32px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:2}.viewport-top h2{font-size:20px;letter-spacing:-.5px;font-weight:400;margin-top:9px;color:#d8e2da}.version{font-size:8px;color:#81998b;letter-spacing:1.5px}.view-toolbar{position:absolute;top:114px;left:36px;right:32px;z-index:3;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.view-toolbar>*{pointer-events:auto}.segmented{display:flex;background:#18211fdc;border:1px solid #3a4941;border-radius:6px;padding:4px;gap:2px}.segmented button{background:none;color:#8fa197;padding:8px 17px;font-size:10px;border-radius:3px}.segmented button.active{background:#3b5043;color:#dcf1df}.fit-button{background:#26332ed9;border:1px solid #435449;color:#b8cbbd;border-radius:5px;padding:9px 11px;font-size:15px;display:flex;gap:8px;align-items:center}.fit-button span{font-size:10px}#viewport{width:100%;height:calc(100% - 40px)}#viewport canvas{display:block;touch-action:none}.viewport-caption{position:absolute;bottom:117px;left:36px;display:flex;gap:13px;pointer-events:none}.caption-mark{font-size:25px;color:#8ba293}.viewport-caption strong{display:block;font-size:12px;font-weight:450;color:#c2d0c6}.viewport-caption div>span{display:block;font-size:10px;margin-top:6px;color:#7e9386}.viewport-bottom{position:absolute;bottom:62px;left:36px;right:32px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:#7d9587}.toggle-label{display:flex;gap:8px;align-items:center;font-size:10px;color:#a9bdae;cursor:pointer}.viewport-bottom b{padding:0 8px;font-weight:400}.axis{display:flex;align-items:center;gap:15px}.axis span{color:#b8d1be;font-size:11px}.axis small{font-size:9px;color:#799283}.statusbar{height:40px;border-top:1px solid #3a4941;background:#1b2521;display:flex;align-items:center;justify-content:space-between;padding:0 26px;font-size:9px;color:#9eb5a5;gap:10px;position:absolute;bottom:0;left:0;right:0}#status{display:flex;align-items:center;gap:8px}#status.busy i{animation:pulse 1s infinite}#status.error{color:#f3b69f}#status.error i{background:#f3b69f}#mesh-stats{color:#788e7e;white-space:nowrap}.notice{position:absolute;bottom:165px;left:36px;right:32px;padding:12px 15px;border:1px solid #79654a;background:#342e23ed;color:#edd3af;border-radius:6px;font-size:11px;line-height:1.6;z-index:5}.notice[hidden]{display:none}@keyframes pulse{50%{opacity:.25}}@media(min-width:1500px){main{grid-template-columns:354px minmax(0,1fr)}.intro,section{padding-left:30px;padding-right:30px}.control{margin-top:24px}}@media(max-width:1000px){.header-note,.version{display:none}.viewport-top{left:24px}.viewport-top h2{font-size:17px}.view-toolbar,.viewport-caption,.viewport-bottom{left:24px;right:20px}.viewport-bottom>span{display:none}.segmented button{padding:8px 12px}#mesh-stats{font-size:8px}.statusbar{padding:0 15px}}@media(max-width:700px){.app-header{height:64px;padding:0 18px}.brand small{font-size:8px}.local-badge{font-size:7px;letter-spacing:.5px}main{display:flex;flex-direction:column;height:auto;min-height:0}.workspace{order:-1;height:570px;min-height:570px}.sidebar{overflow:visible;border-right:0}.intro{padding-top:23px}.viewport-top{top:22px}.view-toolbar{top:88px}.viewport-caption{bottom:104px}.viewport-caption div>span{font-size:9px}.output{position:static;padding:20px 26px}.output p{font-size:10px}.control{font-size:12px}.section-hint{font-size:8px}.file-info strong{max-width:75vw}.statusbar{font-size:8px}.rotation-inputs input{font-size:13px}}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.4}.feature-toggle{display:flex;align-items:center;gap:9px;font-size:11px;color:#c5d5c8;cursor:pointer;margin:14px 0}.feature-toggle input{flex-shrink:0}.eye-toggle{padding-top:17px;border-top:1px solid var(--line);margin-top:20px}.dimension-control{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#bfcbc1;margin:17px 0}.dimension-control small{display:block;font-size:8px;color:#7d9084;margin-top:4px}.dimension-control>span:last-child{font-size:9px;color:#97ac9a;white-space:nowrap}.dimension-control input{width:65px;padding:6px;background:#202a25;border:1px solid #354237;border-radius:4px;font-size:11px;color:#d9e4da}.dimension-control select{padding:6px 9px;background:#202a25;border:1px solid #354237;border-radius:4px;font-size:11px;color:#d9e4da}.control-help{font-size:9px;color:#8a9e90;line-height:1.6;margin:12px 0 0}.dimension-control[hidden]{display:none}input:disabled,fieldset:disabled input{cursor:not-allowed}.placed-header{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:18px;font-size:10px;color:#b9ebca}#placed-eye-list{list-style:none;margin:10px 0 0;padding:0;max-height:170px;overflow:auto;scrollbar-width:thin}#placed-eye-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:10px;color:#bfcbc1}.placement-banner{position:absolute;top:174px;left:36px;z-index:3;background:#172b23e8;border:1px solid #527960;color:#b9ebca;border-radius:5px;padding:8px 12px;font-size:10px;pointer-events:none}.placement-banner[hidden]{display:none}@media(max-width:700px){.placement-banner{top:140px;left:24px;right:20px;font-size:9px}}#targetSize{width:86px}.export-panel{grid-template-columns:1fr;position:static;padding-top:20px}.export-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.export-panel p{line-height:1.6}.export-panel .sound-toggle{justify-self:center;font-size:9px;margin-top:4px;color:#899791}.export-panel [hidden],#prusa-upload [hidden]{display:none}#prusa-upload{width:min(390px,calc(100vw - 36px));padding:26px;border:1px solid #506453;border-radius:10px;background:#18211e;color:#e8ece8}#prusa-upload::backdrop{background:#0008}#prusa-upload p{font-size:12px;line-height:1.6}#prusa-upload progress{width:100%;accent-color:var(--mint);margin:10px 0 20px}#prusa-upload a{display:block;text-align:center;margin-bottom:12px}#prusa-upload button{width:100%}#export-easyprint,#export-prusaslicer{display:flex;align-items:center;justify-content:center;gap:7px}.export-logo{width:20px;height:22px;object-fit:contain;flex-shrink:0}#export-prusaslicer[hidden]{display:none}
