:root{--font:"Be Vietnam Pro", "Segoe UI", system-ui, Roboto, sans-serif;--bg-1:#effaf3;--bg-2:#e6f4fb;--blob-1:#6ee7a8;--blob-2:#7dd3c7;--blob-3:#c8f07a;--glass:#ffffff8c;--glass-strong:#ffffffbd;--glass-border:#ffffffc7;--glass-shadow:0 10px 40px -12px #064e3b38, 0 2px 8px -2px #064e3b14;--highlight:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #ffffff40;--text:#0f2a1f;--muted:#5b7266;--line:#063c281c;--field:#ffffffb3;--field-hover:#fffffff2;--accent:#16a34a;--accent-2:#15803d;--accent-soft:#16a34a21;--accent-glow:#16a34a73;--sel:#16a34a24;--focus:#16a34a;--danger:#dc2626;--warn:#b45309;--overlay-text:#0f2a1f;--r-lg:20px;--r-md:14px;--r-sm:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg-1:#06120c;--bg-2:#0a1716;--blob-1:#166534;--blob-2:#115e59;--blob-3:#3f6212;--glass:#101c1694;--glass-strong:#16261ec7;--glass-border:#ffffff1c;--glass-shadow:0 10px 40px -12px #0009, 0 2px 8px -2px #0006;--highlight:inset 0 1px 0 #ffffff1a, inset 0 -1px 0 #ffffff08;--text:#e3f2ea;--muted:#93ab9e;--line:#ffffff17;--field:#ffffff0f;--field-hover:#ffffff1c;--accent:#22c55e;--accent-2:#16a34a;--accent-soft:#22c55e29;--accent-glow:#22c55e80;--sel:#22c55e2e;--focus:#4ade80;--danger:#f87171;--warn:#fbbf24;--overlay-text:#e3f2ea;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden}body{background:linear-gradient(135deg, var(--bg-1), var(--bg-2));color:var(--text);font:13px/1.4 var(--font);-webkit-font-smoothing:antialiased}.bg-blobs{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-blobs i{filter:blur(80px);opacity:.55;border-radius:50%;animation:28s ease-in-out infinite alternate drift;position:absolute}.bg-blobs i:first-child{background:var(--blob-1);width:46vw;height:46vw;top:-14vw;left:-10vw}.bg-blobs i:nth-child(2){background:var(--blob-2);width:42vw;height:42vw;animation-duration:34s;top:10vh;right:-12vw}.bg-blobs i:nth-child(3){background:var(--blob-3);width:36vw;height:36vw;animation-duration:40s;bottom:-20vw;left:30vw}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(6vw,4vh)scale(1.12)}}@media (prefers-reduced-motion:reduce){.bg-blobs i{animation:none}}.glass,.toolbar,.panel,#viewport,dialog,.tools2d,#toast{background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow), var(--highlight);-webkit-backdrop-filter:blur(28px)saturate(180%)}button,select,input,textarea{font:inherit;color:var(--text)}button{cursor:pointer;white-space:nowrap;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--field);box-shadow:var(--highlight);padding:6px 11px;transition:background .15s,transform 80ms,box-shadow .15s,filter .15s}button:hover{background:var(--field-hover)}button:active{transform:translateY(1px)scale(.99)}button:disabled{opacity:.4;cursor:default;transform:none}button.primary,button.active,.seg button.active{background:linear-gradient(180deg, #22c55e, var(--accent-2));color:#fff;box-shadow:0 6px 18px -6px var(--accent-glow), inset 0 1px 0 #ffffff59;border-color:#15803d99;font-weight:600}button.primary:hover,button.active:hover{filter:brightness(1.06)}button.share{color:#fff;background:linear-gradient(#10b981,#047857);border-color:#04785799;font-weight:600;box-shadow:0 6px 18px -6px #10b9818c,inset 0 1px #ffffff59}button.share:hover{filter:brightness(1.07)}button.danger{color:var(--danger)}button.danger:hover{background:#dc26261a;border-color:#dc262666}button.warn{color:var(--warn);background:#fbbf242e;border-color:#d977068c}button.sm{padding:3px 8px;font-size:12px}select,input[type=text],input[type=number],input:not([type]),textarea{background:var(--field);border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;padding:6px 8px;transition:border-color .15s,box-shadow .15s,background .15s}select:hover,input:hover,textarea:hover{background:var(--field-hover)}select:focus,input:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-soft);background:var(--field-hover);outline:none}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-repeat:no-repeat;background-size:5px 5px;width:100%;padding-right:26px}select option,select optgroup{background:var(--bg-1);color:var(--text)}input[type=number]{width:100%}input[type=color]{border:1px solid var(--line);background:var(--field);cursor:pointer;border-radius:8px;flex:none;width:38px;height:30px;padding:2px}input[type=range]{width:100%;accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);justify-self:start;width:16px;height:16px}.toolbar{z-index:2;border-radius:var(--r-lg);scrollbar-width:none;align-items:center;gap:6px;height:54px;margin:10px 10px 0;padding:0 10px;display:flex;position:relative;overflow:auto hidden}.toolbar .brand{white-space:nowrap;align-items:center;gap:9px;margin-right:8px;display:flex}.toolbar .brand svg{filter:drop-shadow(0 4px 10px var(--accent-glow));flex:none}.toolbar .brand b{letter-spacing:.02em;font-size:15px;font-weight:800}.toolbar .brand b span{color:var(--accent)}.toolbar .brand small{color:var(--muted);letter-spacing:0;font-size:10.5px;font-weight:500;display:block}.toolbar .sep{background:var(--line);flex:none;width:1px;height:26px;margin:0 4px}.toolbar .grow{flex:1}.toolbar select{width:auto;min-width:82px}.views{gap:3px;display:flex}main{z-index:1;gap:10px;height:calc(100% - 64px);padding:10px;display:flex;position:relative}.panel{border-radius:var(--r-lg);scrollbar-width:thin;overflow-y:auto}#left{flex-direction:column;flex:none;gap:8px;width:270px;padding:10px;display:flex}#right{flex:none;width:330px}#viewport{border-radius:var(--r-lg);flex:1;min-width:0;position:relative;overflow:hidden}#viewport canvas{outline:none;width:100%;height:100%;display:block}.panel-title{font-size:14px;font-weight:700}.muted{color:var(--muted)}.pad{padding:14px}.hint{color:var(--muted);margin-top:4px;font-size:11.5px;line-height:1.5}.label{color:var(--muted);font-size:12px;font-weight:500}.big{margin:2px 0 6px;font-size:17px;font-weight:700}.row{align-items:center;gap:6px;margin:4px 0;display:flex}.row.tight{flex-wrap:wrap;gap:4px}.row.end{justify-content:flex-end}.row>label{color:var(--muted);white-space:nowrap}.grid2{grid-template-columns:1fr 1.1fr;align-items:center;gap:6px 8px;display:grid}.grid2>label{color:var(--muted);font-size:12px}.box,.group{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:var(--r-md);box-shadow:var(--highlight);padding:9px 11px}.group{margin-bottom:10px}.group-title{align-items:center;gap:7px;margin-bottom:7px;font-size:12.5px;font-weight:700;display:flex}.group-title:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent-glow);border-radius:50%}.chk{flex:1;align-items:center;gap:6px;display:flex;color:var(--text)!important}.presets{margin-top:8px}#partList{border:1px solid var(--glass-border);border-radius:var(--r-md);background:var(--glass-strong);min-height:120px;box-shadow:var(--highlight);flex:1;margin:0;padding:4px;list-style:none;overflow-y:auto}#partList li{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:7px;margin:1px 0;padding:5px 8px;display:flex}#partList li:hover{background:var(--field-hover)}#partList li.sel{background:var(--sel);box-shadow:inset 0 0 0 1px #16a34a4d}#partList li.hidden .nm{opacity:.4;text-decoration:line-through}#partList .sw{border:1px solid #0000002e;border-radius:4px;flex:none;width:14px;height:14px}#partList .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}#partList .meta{color:var(--muted);font-size:11px}#partList .glow{color:#d97706;font-size:11px}#partList li.layer{z-index:1;background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);gap:5px;padding:6px;font-weight:700;position:sticky;top:0}#partList li.layer.sel{background:var(--sel)}#partList li.layer.partsel{background:var(--accent-soft)}#partList li.layer .caret{width:12px;color:var(--muted);cursor:pointer}#partList li.layer .ic{cursor:pointer;opacity:.8;font-size:12px}#partList li.layer .ic:hover{opacity:1}#partList li.layer.hidden .nm{opacity:.45;text-decoration:line-through}#partList li.item{padding-left:24px}#partList li.layer .mg{color:var(--accent);margin-left:2px}.tabs{z-index:2;background:var(--glass);-webkit-backdrop-filter:blur(20px);border-radius:var(--r-lg) var(--r-lg) 0 0;gap:4px;padding:8px 8px 0;display:flex;position:sticky;top:0}.tab{color:var(--muted);box-shadow:none;background:0 0;border:none;border-radius:999px;flex:1;padding:8px;font-weight:600}.tab:hover{background:var(--field);color:var(--text)}.tab.active{color:#fff;background:linear-gradient(180deg, #22c55e, var(--accent-2));box-shadow:0 6px 16px -6px var(--accent-glow)}.tabpane{padding:10px;display:none}.tabpane.active{display:block}#dropHint{border:2px dashed var(--accent);border-radius:var(--r-lg);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;z-index:5;background:#064e3b73;justify-content:center;align-items:center;font-size:22px;font-weight:600;display:none;position:absolute;inset:14px}#viewport.drag #dropHint{display:flex}#toast{opacity:0;pointer-events:none;z-index:6;background:var(--glass-strong);border-radius:999px;max-width:76%;padding:9px 16px;font-weight:500;transition:opacity .25s;position:absolute;top:14px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#overlayInfo{pointer-events:none;z-index:3;color:#fff;text-shadow:0 1px 3px #000c;font-size:11.5px;position:absolute;bottom:9px;left:12px}.seg{border:1px solid var(--line);background:var(--field);border-radius:999px;flex:none;gap:2px;padding:2px;display:flex;overflow:hidden}.seg button{box-shadow:none;background:0 0;border:none;border-radius:999px;padding:5px 13px}.editor2d{z-index:2;position:absolute;inset:0}.editor2d canvas{display:block}.tools2d{z-index:4;border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:3px;max-width:calc(100% - 20px);padding:5px;display:flex;position:absolute;top:10px;left:10px}.tools2d button{min-width:30px;padding:4px 8px}.tools2d .sep{background:var(--line);width:1px;height:22px;margin:0 2px}dialog{color:var(--text);border-radius:var(--r-lg);background:var(--glass-strong);width:560px;max-width:calc(100vw - 24px);padding:0}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#041e1459}.dlg{flex-direction:column;gap:10px;padding:18px;display:flex}.dlg textarea{resize:vertical;width:100%;font-size:15px}#tPreview{border-radius:var(--r-sm);border:1px solid var(--line);background:#f6f8f7;width:100%;height:90px}#shareDlg{width:620px}.shlist{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--field);max-height:180px;padding:4px;overflow-y:auto}.shrow{border-radius:8px;align-items:center;gap:8px;padding:4px 6px;display:flex}.shrow.cur{background:var(--sel)}.shrow .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.shrow .muted{font-size:11px}.disclaimer{border-radius:var(--r-sm);color:var(--text);background:#fbbf2421;border:1px solid #d9770659;align-items:flex-start;gap:8px;padding:9px 11px;font-size:12.5px;line-height:1.5;display:flex}.disclaimer:before{content:"ⓘ";color:var(--warn);font-weight:700}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#16653447;border-radius:6px}::-webkit-scrollbar-track{background:0 0}#viewerBar,#vbLoading,#vbNote{display:none}body.viewer .toolbar,body.viewer #left,body.viewer #right,body.viewer #dropHint,body.viewer #tools2d,body.viewer .bg-blobs{display:none!important}body.viewer main{height:100%;padding:0}body.viewer #viewport{box-shadow:none;border:none;border-radius:0}body.viewer #viewerBar{z-index:5;border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow), var(--highlight);-webkit-backdrop-filter:blur(24px)saturate(180%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 8px 14px;display:flex;position:absolute;top:10px;left:10px;right:10px}.vb-brand{align-items:center;gap:10px;min-width:0;display:flex}.vb-brand svg{filter:drop-shadow(0 4px 10px var(--accent-glow));flex:none}.vb-brand small{letter-spacing:.06em;color:var(--accent);font-size:10.5px;font-weight:800;display:block}.vb-title{text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-weight:700;overflow:hidden}.vb-btns{flex-wrap:wrap;gap:4px;display:flex}body.viewer #vbNote:not([hidden]){z-index:5;background:var(--glass-strong);-webkit-backdrop-filter:blur(20px);width:min(640px,100% - 20px);box-shadow:var(--glass-shadow);display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}#vbNote button{box-shadow:none;color:var(--muted);background:0 0;border:none;margin-left:auto;padding:0 6px;font-size:16px;line-height:1}body.viewer #vbLoading:not([hidden]){z-index:6;background:linear-gradient(135deg, var(--bg-1), var(--bg-2));color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:15px;display:flex;position:absolute;inset:0}.spin{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}body.viewer #overlayInfo{white-space:nowrap;bottom:10px;left:50%;transform:translate(-50%)}@media (max-width:640px){body.viewer #viewerBar{top:6px;left:6px;right:6px}.vb-title{font-size:14px}.vb-btns{width:100%}.vb-btns button{padding:6px 8px;font-size:12px}body.viewer #vbNote:not([hidden]){font-size:11.5px;bottom:30px}}body.login-page{justify-content:center;align-items:center;min-height:100%;padding:16px;display:flex;overflow:auto}.login-card{z-index:1;border-radius:24px;flex-direction:column;gap:12px;width:100%;max-width:370px;padding:28px 26px;display:flex;position:relative}.login-card label{color:var(--muted);flex-direction:column;gap:5px;font-size:12.5px;font-weight:500;display:flex}.login-card input{padding:10px 12px;font-size:15px}.login-card button{border-radius:999px;margin-top:4px;padding:11px;font-size:15px}.login-logo{letter-spacing:.02em;align-items:center;gap:10px;margin:0;font-size:21px;font-weight:800;display:flex}.login-logo svg{filter:drop-shadow(0 4px 10px var(--accent-glow))}.login-logo span{color:var(--accent)}.login-sub{color:var(--muted);margin:0 0 6px}.login-error{color:var(--danger);margin:0}
