:root{--bg:#0e0f13;--panel-bg:#14161c;--surface:#1b1e26;--surface-2:#21252f;--surface-3:#272c38;--border:#2a2f3b;--border-strong:#39404f;--text:#e8e9ef;--text-dim:#a3a9b8;--text-muted:#8a90a0;--text-faint:#6c7382;--accent:#73d13d;--accent-hover:#95de64;--accent-soft:#73d13d29;--accent-line:#73d13d8c;--on-accent:#0d1f06;--danger:#ef4444;--warn:#f0a93b;--radius:12px;--radius-sm:9px;--radius-lg:20px;--shadow:0 1px 2px #00000059;--shadow-card:0 1px 0 #ffffff05 inset, 0 4px 14px #00000052;--shadow-pop:0 18px 50px #00000080;--ease:.16s cubic-bezier(.4, 0, .2, 1);--ease-out:.55s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body,#root{-webkit-font-smoothing:antialiased;height:100%;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}body{background:radial-gradient(1100px 620px at 50% -8%, #73d13d24, transparent 62%), linear-gradient(180deg, #101218 0%, var(--bg) 45%);background-attachment:fixed}.app{height:100%;color:var(--text);background:var(--bg);flex-direction:column;display:flex}.workspace{flex:1;min-height:0;display:flex}.menubar{background:var(--panel-bg);border-bottom:1px solid var(--border);z-index:40;flex:none;align-items:center;gap:2px;padding:5px 10px;display:flex;position:relative}.menubar-spacer{flex:1}.menubar-quick{border-left:1px solid var(--border);align-items:center;gap:2px;margin-left:6px;padding-left:8px;display:flex}.icon-btn{width:28px;height:28px;color:var(--text-dim);border-radius:var(--radius-sm);box-shadow:none;cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;margin-top:0;font-size:15px;line-height:1;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.menu{position:relative}.menu-trigger{width:auto;color:var(--text-dim);border-radius:var(--radius-sm);box-shadow:none;cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;border:none;align-items:center;gap:3px;margin-top:0;padding:5px 10px;font-size:13px;display:inline-flex}.menu-trigger:hover,.menu-trigger.open{background:var(--surface-3);color:var(--text)}.menu-caret{opacity:.6;font-size:9px}.menu-pop{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:180px;max-height:calc(100vh - 60px);box-shadow:var(--shadow-pop);z-index:50;transform-origin:0 0;margin-top:5px;padding:5px;animation:.22s cubic-bezier(.16,1,.3,1) menu-pop-in;position:absolute;top:100%;left:0;overflow-y:auto}@keyframes menu-pop-in{0%{opacity:0;transform:translateY(-5px)scale(.98)}}.menu-pop-right{left:auto;right:0}.menu-item{text-align:left;width:100%;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--ease);background:0 0;border:none;padding:7px 10px;font-size:13px;display:block}.menu-item:hover:not(:disabled){background:var(--surface-3)}.menu-item:disabled{opacity:.4;cursor:default}.menu-sep{background:var(--border);height:1px;margin:5px 4px}.menu-label{color:var(--text-faint);padding:5px 10px 3px;font-size:11px}.menu-error{color:var(--warn);padding:4px 10px;font-size:12px}.menu-pop .printer-menu{margin:0;padding:2px}.menu-pop .printer-menu .btn-row{margin-bottom:0}.menu-pop .printer-menu .btn-row button{white-space:nowrap}.printer-setup{padding:2px}.printer-setup .hint{margin:4px 0 8px}.menu-slice{border-top:1px solid var(--border);padding-top:6px}.menu-slice>summary{cursor:pointer;list-style:none}.menu-slice>summary::-webkit-details-marker{display:none}.menu-slice[open]>summary{margin-bottom:4px}.menu-slice section{box-shadow:none;background:0 0;border:none;margin:0;padding:0}.menu-slice section h2{display:none}.signin-btn{width:auto;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--ease);border:none;margin-top:0;padding:5px 14px;font-size:13px;font-weight:600}.signin-btn:hover:not(:disabled){background:var(--accent-hover)}.signin-btn:disabled{opacity:.5;cursor:default}.account-trigger{align-items:center;gap:7px;display:inline-flex}.account-avatar{width:22px;height:22px;color:var(--on-accent);background:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.print-chip{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.print-chip-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite pulse}.print-chip.paused .print-chip-dot{background:var(--warn);animation:none}@keyframes pulse{50%{opacity:.35}}.panel{background:var(--panel-bg);border-right:1px solid var(--border);flex:0 0 296px;width:296px;padding:16px 14px 20px;overflow-y:auto}.panel::-webkit-scrollbar{width:10px}.panel::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--panel-bg);border-radius:6px}.panel::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.panel h1{letter-spacing:-.02em;color:var(--text);margin:0;font-size:20px;font-weight:700}.lang-select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:auto;color:var(--text-dim);cursor:pointer;transition:border-color var(--ease), color var(--ease);padding:4px 8px;font-size:12px}.lang-select:hover{color:var(--text)}.lang-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);gap:4px;margin-bottom:12px;padding:4px;display:flex}.seg-btn{width:auto;color:var(--text-dim);border-radius:var(--radius-sm);transition:background var(--ease), color var(--ease);background:0 0;flex:1;margin:0;padding:7px 10px;font-weight:550}.seg-btn:hover{background:var(--surface-3);color:var(--text)}.seg-btn.active{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow)}.seg-btn.active:hover{background:var(--accent-hover)}.panel section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:12px;padding:13px 14px}.panel h2{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin:0 0 11px;font-size:11px;font-weight:650}.printer-group{border:1px solid var(--border);border-left:2px solid var(--accent-line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);margin-bottom:12px;position:relative;overflow:hidden}.printer-group section{box-shadow:none;background:0 0;border:none;border-radius:0;margin:0}.printer-group section+section{border-top:1px solid var(--border)}.group-summary{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--ease);align-items:center;gap:8px;padding:12px 14px;list-style:none;display:flex}.group-summary::-webkit-details-marker{display:none}.group-summary:hover{background:var(--accent-soft)}.group-summary-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-size:11px;font-weight:650}.group-summary-sub{color:var(--text-faint);margin-left:auto;font-size:12px}.group-summary:after{content:"";border-right:1.5px solid var(--text-faint);border-bottom:1.5px solid var(--text-faint);width:7px;height:7px;transition:transform var(--ease);transform:rotate(-45deg)}.printer-group[open] .group-summary:after{transform:rotate(45deg)}.printer-group[open] .group-summary{border-bottom:1px solid var(--border)}.collapsed-warn{border-radius:var(--radius-sm);background:#f0a93b1a;border:1px solid #f0a93b4d;margin:-4px 0 12px;padding:9px 12px}.tree{margin:0;padding:0;list-style:none}.tree li{background:var(--surface-2);border-radius:var(--radius-sm);transition:background var(--ease), border-color var(--ease);border:1px solid #0000;padding:8px 10px;font-size:13px}.tree>li:hover{background:var(--surface-3)}.feature{margin-bottom:6px}.feature:last-child{margin-bottom:0}.feature.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.feature-head{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:6px;display:flex}.feature-head .caret{width:12px;color:var(--text-faint);flex:none;font-size:10px}.feature-name{font-weight:550}.feature-head .feature-name{flex:1;margin-bottom:0}.del{width:auto;color:var(--text-faint);border-radius:var(--radius-sm);transition:background var(--ease), color var(--ease);background:0 0;margin:0;padding:2px 8px;font-size:13px}.del:hover{color:var(--danger);background:#ef444429}.feature-params{margin-top:8px;padding-left:2px}.feature-params:empty{margin-top:0}.tree.nested{border-left:2px solid var(--border-strong);margin:9px 0 0 4px;padding-left:10px}.tree.nested li{background:var(--surface);border-color:var(--border)}.feature-op>.feature-head .feature-name{color:var(--accent)}.field{justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;display:flex}.field:last-child{margin-bottom:0}.field span{color:var(--text-dim);font-size:13px}.field-input{align-items:center;gap:5px;display:flex}.field input,.panel select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color var(--ease), box-shadow var(--ease);font-size:13px}.field input{width:96px;padding:6px 9px}.panel select{cursor:pointer;width:130px;padding:6px 9px}.field input:focus,.panel select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-unit{color:var(--text-faint);min-width:20px;font-size:11px}.field.toggle{justify-content:flex-start;gap:9px}.field.toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.form-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:10px;padding:11px}button{background:var(--accent);width:100%;color:var(--on-accent);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow);transition:background var(--ease), transform var(--ease), opacity var(--ease);border:none;margin-top:7px;padding:9px 12px;font-size:13px;font-weight:550}button:hover{background:var(--accent-hover)}button:active{transform:translateY(1px)}button:disabled{background:var(--surface-3);color:var(--text-faint);box-shadow:none;cursor:default}button.ghost{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);box-shadow:none}button.ghost:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}button.ghost:disabled{background:var(--surface);color:var(--text-faint);border-color:var(--border)}button.active{background:var(--accent);color:var(--on-accent)}.btn-row{gap:7px;display:flex}.btn-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.cloud-panel{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.cloud-user{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:9px;font-size:13px;display:flex}.cloud-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.cloud-error{color:var(--warn);margin:6px 0;font-size:12px}.cloud-panel .field{margin-bottom:7px}.hint{color:var(--text-faint);margin:9px 0 0;font-size:12px;line-height:1.5}.hint.warn{color:var(--warn)}.empty{color:var(--text-faint);font-style:italic}.status{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);word-break:break-word;margin-top:6px;padding:12px 13px;font-size:12px;line-height:1.55}.stage{flex:1;min-width:0;position:relative}.sketcher{background:var(--bg);width:100%;height:100%;position:relative}.sketch-coords{color:var(--text-dim);border-radius:var(--radius-sm);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;padding:5px 9px;font-size:12px;position:absolute;bottom:12px;right:14px}button.primary{appearance:none;border:1px solid var(--accent-line);background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--ease), transform .1s ease, opacity var(--ease);padding:8px 14px;font-size:13px;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.primary:active:not(:disabled){transform:translateY(1px)}button.primary:disabled{opacity:.5;cursor:not-allowed}.app-boot{height:100vh;color:var(--text-faint);justify-content:center;align-items:center;font-size:28px;display:flex}.auth-screen{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.auth-lang{position:absolute;top:18px;right:18px}.auth-overlay{padding:24px}.auth-split{background:var(--panel-bg);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(920px,100%);min-height:600px;animation:auth-in var(--ease-out);grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);display:grid;position:relative;overflow:hidden;box-shadow:0 30px 90px #0000008c}@keyframes auth-in{0%{opacity:0;transform:translateY(16px)scale(.985)}}.auth-close{z-index:2;position:absolute;top:14px;right:14px}.auth-panel{flex-direction:column;padding:52px 56px 34px;display:flex}.auth-panel>*{animation:auth-rise var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms + 80ms)}@keyframes auth-rise{0%{opacity:0;transform:translateY(12px)}}.auth-brand{letter-spacing:.01em;color:var(--accent);align-items:center;gap:9px;margin-bottom:34px;font-size:15px;font-weight:650;display:flex}.auth-brand span{color:var(--text)}.auth-panel h1{letter-spacing:-.02em;color:var(--text);margin:0;font-size:30px;font-weight:700}.auth-subtitle{color:var(--text-dim);margin:8px 0 26px;font-size:14px;line-height:1.6}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{flex-direction:column;gap:7px;display:flex}.auth-field span{color:var(--text-dim);font-size:12.5px;font-weight:550}.auth-field input{width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--ease), box-shadow var(--ease);padding:11px 13px;font-size:14px}.auth-field input::placeholder{color:var(--text-faint)}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth-submit{border-radius:var(--radius-sm);width:100%;transition:background var(--ease), transform .1s ease;margin-top:4px;padding:11px 14px;font-size:14.5px}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-divider{color:var(--text-faint);align-items:center;gap:14px;margin:22px 0 14px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-oauth{flex-direction:column;gap:9px;display:flex}.auth-oauth-btn{width:100%;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:none;transition:background var(--ease), color var(--ease), border-color var(--ease);justify-content:center;align-items:center;gap:9px;margin-top:0;padding:10px 14px;font-size:13.5px;font-weight:550;display:flex}.auth-oauth-btn:hover:not(:disabled){color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.auth-oauth-btn:disabled{opacity:.45;cursor:not-allowed}.auth-switch{color:var(--text-dim);text-align:center;margin:20px 0 0;font-size:13px}.auth-link{width:auto;color:var(--accent);box-shadow:none;cursor:pointer;background:0 0;border:none;margin:0 0 0 6px;padding:0;font-size:13px;font-weight:600}.auth-link:hover:not(:disabled){color:var(--accent-hover);text-decoration:underline}.auth-link:disabled{opacity:.45;cursor:not-allowed}.auth-terms{color:var(--text-faint);text-align:center;margin:auto 0 0;padding-top:26px;font-size:12px;line-height:1.7}.auth-terms-link{color:var(--text-dim);text-underline-offset:3px;margin:0 2px;text-decoration:underline}.auth-visual{border-left:1px solid var(--border);background:#0c110b;flex-direction:column;justify-content:flex-end;padding:48px 46px;display:flex;position:relative;overflow:hidden}.auth-visual:before{content:"";background:repeating-linear-gradient(0deg,#73d13d0d 0 1px,#0000 1px 34px),repeating-linear-gradient(90deg,#73d13d0d 0 1px,#0000 1px 34px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 90% at 70% 20%,#000 30%,#0000 78%);mask-image:radial-gradient(120% 90% at 70% 20%,#000 30%,#0000 78%)}.auth-blob{filter:blur(70px);pointer-events:none;border-radius:50%;position:absolute}.auth-blob-a{background:radial-gradient(circle,#73d13d52,#0000 65%);width:340px;height:340px;animation:11s ease-in-out infinite alternate auth-drift-a;top:-12%;right:-18%}.auth-blob-b{background:radial-gradient(circle,#38783c66,#0000 65%);width:260px;height:260px;animation:14s ease-in-out infinite alternate auth-drift-b;top:34%;left:-22%}@keyframes auth-drift-a{to{transform:translate(-46px,54px)scale(1.12)}}@keyframes auth-drift-b{to{transform:translate(52px,-38px)scale(.92)}}.auth-cube{color:#95de64bf;width:168px;height:168px;margin-left:-84px;animation:7s ease-in-out infinite auth-float;position:absolute;top:15%;left:50%}@keyframes auth-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-14px)rotate(2.5deg)}}.auth-slogan{letter-spacing:-.03em;color:#f2f4ee;margin:0;font-size:46px;font-weight:750;line-height:1.08;position:relative}.auth-slogan em{color:var(--accent);font-style:normal}.auth-tagline{color:#e8e9ef8c;margin:14px 0 0;font-size:13.5px;line-height:1.7;position:relative}@media (max-width:840px){.auth-split{grid-template-columns:1fr;min-height:0}.auth-visual{display:none}.auth-panel{padding:44px 30px 28px}}.project-screen{box-sizing:border-box;max-width:940px;min-height:100vh;margin:0 auto;padding:44px 28px 64px}.project-screen:before{content:"";z-index:0;pointer-events:none;background:repeating-linear-gradient(0deg,#73d13d0b 0 1px,#0000 1px 34px),repeating-linear-gradient(90deg,#73d13d0b 0 1px,#0000 1px 34px);position:fixed;inset:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 0,#000 20%,#0000 75%);mask-image:radial-gradient(90% 70% at 50% 0,#000 20%,#0000 75%)}.project-screen:after{content:"";z-index:0;filter:blur(70px);pointer-events:none;background:radial-gradient(circle,#73d13d21,#0000 65%);border-radius:50%;width:620px;height:620px;margin-left:-310px;animation:14s ease-in-out infinite alternate auth-drift-a;position:fixed;top:-180px;left:50%}.project-screen>*{z-index:1;position:relative}.project-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:20px;display:flex}.project-head h1{letter-spacing:-.025em;color:var(--text);margin:0;font-size:28px;font-weight:700}.project-head-right{align-items:center;gap:8px;display:flex}.btn-auto{width:auto;margin-top:0}.user-chip,.project-head-right .lang-select,.project-head-right .btn-auto{box-sizing:border-box;height:34px;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;padding:0 12px;font-size:12.5px;display:inline-flex}.project-head-right .btn-auto:hover,.project-head-right .lang-select:hover{color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.user-chip{text-overflow:ellipsis;white-space:nowrap;gap:7px;max-width:230px;overflow:hidden}.project-toolbar{gap:10px;margin-bottom:24px;display:flex}.project-name-input.field{flex:1;max-width:360px;margin:0}.project-empty{text-align:center;color:var(--text-faint);flex-direction:column;align-items:center;gap:14px;padding:84px 0;font-size:14px;display:flex}.project-empty .cube-icon{color:var(--accent);opacity:.85;animation:7s ease-in-out infinite auth-float}.project-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.project-grid>*{animation:auth-rise var(--ease-out) both}.project-grid>:first-child{animation-delay:30ms}.project-grid>:nth-child(2){animation-delay:70ms}.project-grid>:nth-child(3){animation-delay:.11s}.project-grid>:nth-child(4){animation-delay:.15s}.project-grid>:nth-child(5){animation-delay:.19s}.project-grid>:nth-child(6){animation-delay:.23s}.project-grid>:nth-child(7){animation-delay:.27s}.project-grid>:nth-child(8){animation-delay:.31s}.project-grid>:nth-child(n+9){animation-delay:.35s}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;transition:border-color var(--ease), transform var(--ease), box-shadow var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--accent-line);transform:translateY(-3px);box-shadow:0 14px 34px #00000073}.project-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.project-card-thumb{height:116px;color:var(--accent);background:radial-gradient(120% 120% at 50% 0%, var(--accent-soft) 0%, transparent 70%), var(--surface-2);border-bottom:1px solid var(--border);justify-content:center;align-items:center;display:flex}.project-card:hover .project-card-thumb .cube-icon{transition:transform var(--ease);transform:scale(1.06)}.project-card-body{flex-direction:column;gap:4px;min-width:0;padding:13px 15px 15px;display:flex}.project-card-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.project-card-meta{color:var(--text-faint);font-size:12px}.project-card-del{width:26px;height:26px;color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:none;opacity:0;transition:opacity var(--ease), background var(--ease), color var(--ease);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e0f138c;justify-content:center;align-items:center;margin:0;padding:0;font-size:12px;line-height:1;display:flex;position:absolute;top:8px;right:8px}.project-card:hover .project-card-del,.project-card:focus-within .project-card-del{opacity:1}.project-card-del:hover{background:var(--danger);border-color:var(--danger);color:#fff}.back-btn{font-size:13px}.printer-panel{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.printer-head{align-items:center;gap:8px;margin-bottom:9px;display:flex}.printer-head h2{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted,var(--text-dim));margin:0;font-size:12px;font-weight:600}.ws-dot{background:var(--text-faint);border-radius:50%;flex-shrink:0;width:7px;height:7px}.ws-dot.on{background:var(--accent)}.printer-empty,.printer-offline,.printer-idle{color:var(--text-faint);margin:4px 0 9px;font-size:12px;line-height:1.5}.printer-select{width:100%;margin-bottom:9px}.printer-status{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:7px;margin-bottom:9px;padding:9px 10px;display:flex}.stat-row,.stat-grid{color:var(--text-dim);font-size:12px}.stat-row{justify-content:space-between;display:flex}.stat-grid{grid-template-columns:auto 1fr auto 1fr;gap:3px 8px;display:grid}.stat-grid span:nth-child(odd),.stat-label{color:var(--text-faint)}.progress{background:var(--surface-3);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width var(--ease)}.ams-row{gap:5px;display:flex}.ams-slot{border:1px solid var(--border-strong);border-radius:4px;width:16px;height:16px}.job-status{color:var(--text-dim);flex-direction:column;gap:6px;margin-top:4px;font-size:12px;display:flex}.job-line{justify-content:space-between;gap:8px;display:flex}.job-msg{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;max-width:55%;overflow:hidden}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06070a99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{width:340px;position:relative}.auth-card{background:var(--panel-bg);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:340px;box-shadow:var(--shadow-pop);animation:auth-in var(--ease-out);flex-direction:column;gap:12px;padding:34px 30px;display:flex}.auth-card>*{animation:auth-rise var(--ease-out) both}.auth-card>:nth-child(2){animation-delay:50ms}.auth-card>:nth-child(3){animation-delay:.1s}.auth-card>:nth-child(4){animation-delay:.15s}.auth-card>:nth-child(5){animation-delay:.2s}.auth-card>:nth-child(6){animation-delay:.25s}.auth-card>:nth-child(n+7){animation-delay:.3s}.auth-card h1{letter-spacing:-.02em;color:var(--text);margin:0;font-size:23px;font-weight:700}.auth-card .btn-row{margin-top:4px}.auth-card .btn-row button{flex:1}.modal-close{justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:12px;display:flex;position:absolute;top:10px;right:10px}.cloud-hint{color:var(--text-faint);margin:4px 0 9px;font-size:12px;line-height:1.5}input.field{width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--ease), box-shadow var(--ease);margin:0;padding:10px 12px;font-size:13.5px}input.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.project-card-thumb{position:relative}.cloud-badge{color:var(--accent-hover);opacity:.9;font-size:13px;line-height:1;position:absolute;top:8px;left:8px}.new-kind{margin:4px 0 2px}.new-kind-hint{margin:0 0 12px}.section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:11px;display:flex}.section-head h2{margin:0}.lib-card{width:min(460px,92vw)}.lib-list{max-height:52vh;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.lib-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 4px;display:flex}.lib-part-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.lib-part-proj{max-width:40%;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:12px;overflow:hidden}.lib-tabs{margin:10px 0 4px}.lib-tabs .seg-btn{justify-content:center;align-items:center;gap:6px;display:inline-flex}.pro-badge{letter-spacing:.04em;color:var(--accent-hover);font-size:10px;font-weight:700}.pro-badge-lg{color:var(--on-accent);background:var(--accent);border-radius:999px;margin-bottom:10px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.pro-note{color:var(--text-dim);background:var(--accent-soft);border-radius:var(--radius-sm);margin:10px 0 4px;padding:8px 11px;font-size:13px}.lib-locked{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:26px 16px 10px;display:flex}.lib-locked p{color:var(--text-dim);margin:0 0 6px;font-size:13px;line-height:1.55}
