:root{--bg:#f3f2f0;--panel:#fff;--raise:#f8f7f5;--sunk:#f0eeeb;--hover:#f2f0ed;--line:#e8e5e1;--line2:#d9d5d0;--fg:#1c1a18;--muted:#6e6862;--faint:#a29c95;--primary:#1c1a18;--primary-ink:#fff;--accent:#ee5a1c;--accent-ink:#fff;--accent-soft:#ee5a1c17;--accent-line:#ee5a1c80;--ok:#15a04a;--warn:#c98a06;--bad:#d83a3a;--canvas:#e9e7e3;--grid:#1c1a1812;--scroll:#1c1a1838;--shadow:0 1px 2px #1c1a180f, 0 12px 32px #1c1a181a;--pop:0 2px 6px #1c1a1814, 0 24px 60px #1c1a182e;--font-ui:"Geist", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121110;--panel:#1a1918;--raise:#211f1e;--sunk:#0d0c0b;--hover:#262422;--line:#2b2927;--line2:#393633;--fg:#edebe8;--muted:#a39d96;--faint:#6f6963;--primary:#edebe8;--primary-ink:#151413;--accent:#ff6b2c;--accent-ink:#1a0d06;--accent-soft:#ff6b2c21;--accent-line:#ff6b2c8c;--ok:#3fcb7e;--warn:#f2b53a;--bad:#f26060;--canvas:#0f0e0d;--grid:#ffffff0b;--scroll:#fff3;--shadow:0 1px 2px #0006, 0 12px 32px #0006;--pop:0 2px 6px #0006, 0 24px 60px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121110;--panel:#1a1918;--raise:#211f1e;--sunk:#0d0c0b;--hover:#262422;--line:#2b2927;--line2:#393633;--fg:#edebe8;--muted:#a39d96;--faint:#6f6963;--primary:#edebe8;--primary-ink:#151413;--accent:#ff6b2c;--accent-ink:#1a0d06;--accent-soft:#ff6b2c21;--accent-line:#ff6b2c8c;--ok:#3fcb7e;--warn:#f2b53a;--bad:#f26060;--canvas:#0f0e0d;--grid:#ffffff0b;--scroll:#fff3;--shadow:0 1px 2px #0006, 0 12px 32px #0006;--pop:0 2px 6px #0006, 0 24px 60px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font:13px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased;margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}*{scrollbar-width:thin;scrollbar-color:transparent transparent}:hover{scrollbar-color:var(--scroll) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background-color:#0000;background-clip:padding-box;border:3px solid #0000;border-radius:10px}:hover::-webkit-scrollbar-thumb{background-color:var(--scroll)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.grow{flex:1}.icon{flex:none;width:16px;height:16px}.btn{border:1px solid var(--line2);background:var(--panel);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:7px;height:32px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:#0000}.btn.primary:hover:not(:disabled){background:var(--primary);opacity:.88}.btn.accent{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.sm{height:28px;padding:0 10px;font-size:12.5px}.btn.lg{height:42px;font-size:14px}.tb{min-width:30px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 7px;font-size:12.5px;display:inline-flex}.tb:hover:not(:disabled){background:var(--hover);color:var(--fg)}.tb:disabled{opacity:.4;cursor:default}.tb.on{background:var(--accent-soft);color:var(--accent)}.tag{background:var(--sunk);color:var(--muted);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:0 6px;font-size:11px;line-height:18px;display:inline-flex}.tag.ok{color:var(--ok)}.tag.warn{color:var(--warn)}.tag.bad{color:var(--bad)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label{color:var(--muted);font-size:12px}.input{border:1px solid var(--line2);background:var(--panel);border-radius:8px;width:100%;min-width:0;height:38px;padding:0 12px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.seg{background:var(--sunk);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.seg button{height:26px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 11px;font-size:12.5px}.seg button.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px #00000014}.card{border:1px solid var(--line);background:var(--panel);border-radius:12px}.error{color:var(--bad);background:color-mix(in srgb, var(--bad) 8%, transparent);border-radius:8px;padding:8px 10px;font-size:12.5px}.note{color:var(--faint);align-items:flex-start;gap:7px;font-size:12px;line-height:1.55;display:flex}.avatar{color:#f3e9e1;background:#2b2724;border:0;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:grid}.brandmark{letter-spacing:-.01em;align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.dd{background:var(--sunk);text-align:left;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;width:100%;min-width:0;height:28px;padding:0 5px 0 8px;font-size:12px;display:flex}.dd:hover,.dd[aria-expanded=true]{border-color:var(--line2)}.dd>i{color:var(--faint);font-size:11px;font-style:normal}.dd .v{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu{z-index:100;background:var(--panel);border:1px solid var(--line);min-width:160px;max-height:min(620px,100vh - 16px);box-shadow:var(--pop);border-radius:10px;padding:4px;position:fixed;overflow:auto}.menu button{text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;height:30px;padding:0 10px 0 6px;font-size:12.5px;display:flex}.menu button:hover{background:var(--hover)}.menu .ck{width:16px;color:var(--accent);display:flex}.menu .hint{color:var(--faint);font-size:11px;font-family:var(--font-mono);margin-left:auto;padding-left:16px}.menu .sep{background:var(--line);height:1px;margin:4px 2px}.menu .danger{color:var(--bad)}.nf{background:var(--sunk);border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;min-width:0;height:28px;padding:0 7px;font-size:12px;display:flex}.nf:hover{border-color:var(--line2)}.nf:focus-within{border-color:var(--accent);background:var(--panel)}.nf>i{color:var(--faint);white-space:nowrap;flex:none;min-width:10px;font-size:11px;font-style:normal;display:flex}.nf input{width:100%;min-width:0;font-family:var(--font-mono);background:0 0;border:0;outline:none;padding:0;font-size:11.5px}.nf .u{color:var(--faint);font-size:11px}.sw{cursor:pointer;border:0;border-radius:4px;flex:none;width:18px;height:18px;padding:0;box-shadow:inset 0 0 0 1px #00000024}.nf.num{padding-right:2px;position:relative}.nf .scrub{cursor:ew-resize;-webkit-user-select:none;user-select:none;align-self:stretch;align-items:center;padding-right:2px}.nf .scrub:hover{color:var(--fg)}body.scrubbing,body.scrubbing *{cursor:ew-resize!important;-webkit-user-select:none!important;user-select:none!important}.nf .nf-steps{opacity:0;flex-direction:column;flex:none;width:16px;height:24px;transition:opacity .12s;display:flex}.nf.num:hover .nf-steps,.nf.num:focus-within .nf-steps{opacity:1}.nf .nf-steps button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:3px;flex:1;place-items:center;padding:0;display:grid}.nf .nf-steps button:hover{background:var(--hover);color:var(--fg)}.nf .nf-steps button:active{background:var(--accent-soft);color:var(--accent)}.nf .nf-steps button:disabled{opacity:.3;cursor:default;background:0 0}.nf .nf-steps svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:8px;height:5px}.nf.color{gap:6px;padding-left:5px}.nf.color.open{border-color:var(--accent);background:var(--panel)}.nf.color .hash{color:var(--faint);font-family:var(--font-mono);margin-right:-4px;font-size:11.5px}.nf.color>i{margin-right:2px}.colorpop{z-index:120;background:var(--panel);border:1px solid var(--line);width:252px;max-height:calc(100vh - 16px);box-shadow:var(--pop);-webkit-user-select:none;user-select:none;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex;position:fixed;overflow:auto}.cp-head{align-items:center;gap:4px;display:flex}.cp-cmp{border-radius:6px;width:44px;height:24px;margin-right:auto;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #00000024}.cp-cmp>*{border:0;flex:1;padding:0}.cp-cmp button{cursor:pointer}.cp-ic{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid}.cp-ic:hover{background:var(--hover);color:var(--fg)}.cp-ic.on{color:#f5a623}.cp-ic.on svg{fill:currentColor}.cp-ic svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.cp-seg{background:var(--sunk);border-radius:7px;gap:2px;margin-left:4px;padding:2px;display:flex}.cp-seg button{width:26px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid}.cp-seg button.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px #0000001a}.cp-seg svg{fill:currentColor;width:13px;height:13px}.cp-sv{cursor:crosshair;touch-action:none;background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#fff0);border-radius:8px;height:150px;position:relative}.cp-hue{cursor:pointer;touch-action:none;background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);border-radius:6px;height:12px;margin:2px 0;position:relative}.cp-knob{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d,0 1px 3px #00000059}.cp-fmt{align-items:center;gap:6px;display:flex}.cp-fmts{margin:0}.cp-fmts button{width:auto;font-size:11px;font-family:var(--font-mono);letter-spacing:.02em;flex:1}.cp-fmt .cp-hex{flex:1;gap:4px}.cp-3{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.cp-3 .nf{gap:3px;padding:0 1px 0 5px}.cp-3 .nf .nf-steps{width:12px}.cp-t{color:var(--faint);align-items:center;margin-top:2px;font-size:11px;display:flex}.cp-grid{grid-template-columns:repeat(9,1fr);gap:5px;display:grid}.cp-board{gap:4px}.cp-sw{aspect-ratio:1;cursor:pointer;border:0;border-radius:4px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #0000001a}.cp-sw.light{box-shadow:inset 0 0 0 1px #0003}.cp-sw:hover{z-index:1;transform:scale(1.14)}.cp-sw.on{box-shadow:inset 0 0 0 1px #00000024, 0 0 0 2px var(--panel), 0 0 0 3.5px var(--accent);z-index:1}.cp-x{background:var(--fg);width:13px;height:13px;color:var(--panel);text-align:center;border-radius:50%;font-size:10px;line-height:13px;display:none;position:absolute;top:-5px;right:-5px}.cp-sw:hover .cp-x{display:block}.cp-favh{justify-content:space-between}.cp-fold,.cp-add{color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;font-size:11px;display:flex}.cp-fold{margin-left:-4px}.cp-fold:hover,.cp-add:hover{background:var(--hover);color:var(--fg)}.cp-fold svg{fill:none;stroke:currentColor;stroke-width:1.4px;width:9px;height:6px;transition:transform .12s}.cp-fold svg.shut{transform:rotate(-90deg)}.cp-add{font-size:14px;line-height:1}.cp-empty{color:var(--faint);padding:2px 0 0;font-size:11px}.slider{align-items:center;gap:10px;display:flex}.slider .sl-l{color:var(--muted);white-space:nowrap;flex:none;font-size:12px}.sl-track{cursor:pointer;touch-action:none;outline:none;flex:1;align-items:center;height:20px;display:flex;position:relative}.sl-rail{background:var(--line2);border-radius:2px;width:100%;height:4px;overflow:hidden}.sl-fill{background:var(--accent);height:100%}.sl-thumb{border:1.5px solid var(--accent);background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .1s;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000040}.sl-track:hover .sl-thumb,.sl-track:focus-visible .sl-thumb{transform:translate(-50%,-50%)scale(1.15)}.sl-track:focus-visible .sl-rail{outline:2px solid var(--accent-line);outline-offset:3px}.slider .nf{flex:none;width:72px}.slider .nf>i{display:none}.toast{background:var(--primary);color:var(--primary-ink);z-index:200;box-shadow:var(--pop);border-radius:9px;padding:9px 14px;font-size:12.5px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.center-msg{height:100%;color:var(--muted);place-items:center;display:grid}.menu button:disabled{opacity:.4;cursor:default;background:0 0}.menu[role=menu] button{height:27px}.menu[role=menu] .sep{margin:3px 0}.spin{border:2px solid var(--line2);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}}.conn-setup p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.6}.conn-acts{flex-wrap:wrap;gap:8px;margin:2px 0;display:flex}.conn-acts .btn{text-decoration:none}.conn-how{color:var(--muted);margin:0;padding-left:18px;font-size:12px;line-height:1.7}.conn-update a{color:var(--accent);margin:0 2px}.conn-adv summary{color:var(--muted);cursor:pointer;padding:4px 0;font-size:12px}.conn-adv[open] summary{margin-bottom:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.auth{background:var(--panel);height:100%;display:flex}.auth-side{flex-direction:column;flex:1;min-width:0;padding:28px 40px;display:flex;overflow:auto}.auth-card{flex-direction:column;gap:18px;width:100%;max-width:380px;margin:40px auto;display:flex}.auth-card h1{letter-spacing:-.015em;margin:0;font-size:28px;font-weight:600}.auth-card .lead{color:var(--muted);margin:6px 0 0;font-size:14px}.auth-tabs{background:var(--sunk);border-radius:9px;gap:4px;padding:3px;display:flex}.auth-tabs button{height:32px;color:var(--muted);background:0 0;border:0;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.auth-tabs button.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px #00000014}.auth-tabs button:disabled{cursor:not-allowed}.ifield{position:relative}.ifield>.icon{color:var(--faint);pointer-events:none;position:absolute;top:11px;left:12px}.ifield .input{padding-left:36px}.ifield .eye{width:28px;height:28px;color:var(--faint);background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:5px;right:6px}.ifield .eye:hover{background:var(--hover);color:var(--fg)}.meter{gap:4px;display:flex}.meter i{background:var(--line);border-radius:2px;flex:1;height:3px}.meter i.on{background:var(--ok)}.auth-row{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex}.auth-row label{align-items:center;gap:8px;display:flex}.auth-row input{accent-color:var(--accent)}.link{color:var(--fg);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:12.5px;text-decoration:underline}.auth-or{color:var(--faint);align-items:center;gap:12px;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--line);flex:1;height:1px}a.btn{color:inherit;text-decoration:none}.auth-foot{color:var(--muted);text-align:center;font-size:13px}.auth-foot a{color:var(--fg);font-weight:600}.auth-legal{color:var(--faint);justify-content:space-between;margin-top:auto;font-size:12px;display:flex}.auth-art{color:#edebe8;background:radial-gradient(70% 55% at 62% 38%,#ff6b2c33,#0000 70%),radial-gradient(60% 50% at 20% 90%,#5a8cbe29,#0000 70%),#141312;border-radius:20px;flex-direction:column;flex:1.15;justify-content:space-between;gap:24px;margin:12px 12px 12px 0;padding:44px;display:flex;position:relative;overflow:hidden}.art-stage{perspective:1400px;flex:1;place-items:center;min-height:0;display:grid;position:relative}.art-card{background:#1e1c1a;border:1px solid #ffffff14;border-radius:14px;width:min(92%,640px);overflow:hidden;transform:rotateY(-14deg)rotateX(7deg)rotate(1deg);box-shadow:0 40px 90px #0000008c}.art-bar{height:30px;font:11px var(--font-mono);color:#a39d96;border-bottom:1px solid #ffffff0f;align-items:center;gap:6px;padding:0 12px;display:flex}.art-bar i{background:#3a3633;border-radius:50%;width:8px;height:8px}.art-bar span{margin-left:8px}.art-screen svg{width:100%;height:auto;display:block}.art-chip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1c1adb;border:1px solid #ffffff17;border-radius:12px;align-items:center;gap:10px;padding:9px 12px 9px 9px;animation:6s ease-in-out infinite float;display:flex;position:absolute;box-shadow:0 18px 40px #00000073}.art-chip .tile{width:32px;height:32px;font:500 11px var(--font-mono);background:#2e2b28;border-radius:8px;place-items:center;display:grid}.art-chip b{font-size:12.5px;font-weight:600;display:block}.art-chip small{font:11px var(--font-mono);color:#a39d96}.art-chip .dot{border-radius:50%;width:7px;height:7px;margin-left:4px}.dot.ok{background:#3fcb7e}.dot.warn{background:#f2b53a}.art-chip.c1{animation-delay:-1s;top:12%;left:2%}.art-chip.c2{animation-delay:-3s;top:46%;right:0}.art-chip.c3{animation-delay:-5s;bottom:6%;left:8%}.auth-art .copy h2{margin:0;font-size:clamp(28px,3vw,42px);font-weight:600;line-height:1.15}.auth-art .copy em{color:#ff6b2c;font-style:normal}.auth-art .copy p{color:#a39d96;max-width:44ch;margin:14px 0 0;font-size:14.5px}@keyframes float{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.art-chip{animation:none}}@media (width<=980px){.auth-art{display:none}}.shell{height:100%;display:flex}.rail{border-right:1px solid var(--line);background:var(--raise);flex-direction:column;flex:none;gap:2px;width:232px;padding:14px 10px;display:flex;overflow:auto}.rail .brandmark{padding:2px 8px 16px}.rail .sec{color:var(--faint);padding:14px 10px 5px;font-size:11px}.nav{height:32px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;padding:0 10px;display:flex}.nav:hover:not(:disabled){background:var(--hover);color:var(--fg)}.nav.on{background:var(--panel);color:var(--fg);box-shadow:0 0 0 1px var(--line);font-weight:500}.nav:disabled{cursor:default;opacity:.7}.nav .count{color:var(--faint);margin-left:auto;font-size:11px}.nav .soon{color:var(--faint);margin-left:auto;font-size:10.5px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--panel);flex:none;align-items:center;gap:10px;height:56px;padding:0 20px 0 28px;display:flex}.topbar h2{margin:0;font-size:15px;font-weight:600}.search{height:32px;color:var(--faint);background:var(--sunk);border-radius:8px;align-items:center;gap:8px;width:260px;padding:0 10px;display:flex}.search input{min-width:0;color:var(--fg);background:0 0;border:0;outline:none;flex:1}.content{flex:1;padding:28px 28px 56px;overflow:auto}.page{flex-direction:column;gap:20px;max-width:1320px;margin:0 auto;display:flex}.hello{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.hello h1{margin:0 0 6px;font-size:24px;font-weight:600}.hello p{margin:0;font-size:14px}.sect-h h3{margin:8px 0 0;font-size:14px;font-weight:600}.projects{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.proj{cursor:pointer;flex-direction:column;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.proj:hover{box-shadow:var(--shadow);border-color:var(--line2)}.proj .thumb{aspect-ratio:16/10;background:var(--sunk);border-bottom:1px solid var(--line)}.proj .thumb svg{width:100%;height:100%;display:block}.proj .meta{flex-direction:column;gap:3px;padding:10px 10px 12px 14px;display:flex}.proj .row1{justify-content:space-between;align-items:center;gap:8px;display:flex}.proj .row1 b{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.proj .row{color:var(--faint);gap:6px;font-size:12px;display:flex}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.icon.big{width:32px;height:32px;color:var(--faint)}.scrim{z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1412105c;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(480px,100% - 32px);box-shadow:var(--pop);border-radius:16px;overflow:hidden}.modal-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 14px 14px 20px;display:flex}.modal-h b{font-size:15px}.modal-b{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-f{justify-content:flex-end;gap:8px;display:flex}a.nav{text-decoration:none}.rail-new{margin:12px 4px 4px}.toolbar-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hello-acts{flex-wrap:wrap;gap:8px;display:flex}.sect-h.row{justify-content:space-between;align-items:center;display:flex}.sect-h .btn.ghost{margin-top:8px}.home-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.home-main{flex-direction:column;gap:14px;min-width:0;display:flex}.home-side{flex-direction:column;gap:16px;display:flex}.resume{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);display:grid;overflow:hidden}.resume-art{border-right:1px solid var(--line);cursor:pointer}.resume-art .thumb{aspect-ratio:16/10;height:100%}.resume-art .thumb svg{width:100%;height:100%;display:block}.resume-b{flex-direction:column;gap:14px;min-width:0;padding:22px 22px 20px;display:flex}.resume-t{font-size:18px;font-weight:600}.resume-meta{color:var(--muted);flex-direction:column;gap:8px;font-size:13px;display:flex}.resume-meta span{align-items:center;gap:8px;display:flex}.resume-meta .icon{width:15px;height:15px;color:var(--faint)}.resume-acts{gap:8px;margin-top:auto;display:flex}.side-card{flex-direction:column;gap:4px;padding:14px;display:flex}.side-h{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:13.5px;display:flex}.side-h b{font-weight:600}.xrow{text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:8px 6px;display:grid}.xrow:hover{background:var(--hover)}.xrow-m{flex-direction:column;min-width:0;display:flex}.xrow-m b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.xrow-m small,.xrow-t small{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.xrow-t{color:var(--muted);white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:12px;display:flex}.qlink{color:inherit;border-radius:8px;align-items:center;gap:12px;padding:9px 6px;text-decoration:none;display:flex}.qlink:hover{background:var(--hover)}.qlink>.icon{background:var(--sunk);width:30px;height:30px;color:var(--muted);border-radius:8px;flex:none;padding:7px}.qlink span{flex-direction:column;min-width:0;display:flex}.qlink b{font-size:13px;font-weight:500}.qlink small{color:var(--faint);font-size:11.5px}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.proj.tpl{cursor:default}.proj.tpl .meta{gap:8px;padding:12px 14px 14px}.tpl-note{color:var(--muted);font-size:12.5px;line-height:1.5}.proj.tpl .btn{align-self:flex-start}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chips .chip{border-style:solid}.chips .chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chips .chk{margin-left:8px}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.lib-card{flex-direction:column;display:flex;overflow:hidden}.lib-art{aspect-ratio:5/4;background:var(--sunk);border-bottom:1px solid var(--line);place-items:center;display:grid}.lib-art svg{width:100%;height:100%}.lib-art.img{background:var(--sunk) repeating-conic-gradient(var(--line) 0 25%, transparent 0 50%) 0 0 / 14px 14px}.lib-art img{object-fit:contain;max-width:92%;max-height:92%}.lib-meta{flex-direction:column;gap:3px;min-width:0;padding:10px 12px 12px;display:flex}.lib-meta .row1{justify-content:space-between;align-items:center;gap:8px;display:flex}.lib-meta b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.lib-meta small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.proj-pick{min-width:240px}.proj-pick .dd{height:32px}.vtable-wrap{max-height:calc(100vh - 260px);overflow:auto}.vtable{border-collapse:collapse;width:100%;font-size:12.5px}.vtable th{background:var(--panel);text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px;font-weight:500;position:sticky;top:0}.vtable td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 12px}.vtable tr:last-child td{border-bottom:0}.vtable tbody tr:hover td{background:var(--hover)}.vtable .role-cell .dd{min-width:120px;height:28px}.vtable .acts-cell{text-align:right;white-space:nowrap}.conn-page{gap:16px}.conn-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.conn-card{flex-direction:column;gap:12px;padding:16px;display:flex}.conn-card.wide{grid-column:1/-1}.kv{grid-template-columns:84px minmax(0,1fr);gap:6px 12px;margin:0;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{min-width:0;margin:0}.kv .path{white-space:nowrap;text-overflow:ellipsis;text-align:left;direction:rtl;font-size:12px;overflow:hidden}.row-in{gap:8px;display:flex}.steps{color:var(--muted);flex-direction:column;gap:8px;margin:0;padding-left:20px;font-size:13px;line-height:1.6;display:flex}.steps code,.conn-card code{font-family:var(--font-mono);background:var(--sunk);color:var(--fg);-webkit-user-select:all;user-select:all;border-radius:5px;padding:2px 6px;font-size:12px}.acct{gap:16px}.acct-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.acct-card{flex-direction:column;gap:14px;padding:16px;display:flex}.acct-me{align-items:center;gap:12px;display:flex}.acct-me b{font-size:15px;display:block}.acct-me small{color:var(--faint);font-size:12px}.avatar.lg{width:44px;height:44px;font-size:17px}.invite-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.invite-form .input{flex:1;min-width:200px;height:34px}.np-src{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.np-card{border:1px solid var(--line2);background:var(--panel);text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.np-card:hover:not(:disabled){border-color:var(--faint)}.np-card.on{box-shadow:0 0 0 2px var(--accent);border-color:#0000}.np-card:disabled{opacity:.5;cursor:not-allowed}.np-card .mi{background:var(--sunk);border-radius:8px;place-items:center;width:30px;height:30px;margin-bottom:4px;display:grid}.np-card.on .mi{background:var(--accent-soft);color:var(--accent)}.np-card b{font-size:13px;font-weight:600}.np-card small{color:var(--muted);font-size:11.5px;line-height:1.45}.np-tpls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.np-tpl{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:10px;flex-direction:column;gap:4px;padding:8px;display:flex}.np-tpl.on{box-shadow:0 0 0 2px var(--accent);border-color:#0000}.np-tpl .art{aspect-ratio:1024/600;background:var(--sunk);border-radius:6px;overflow:hidden}.np-tpl .art svg{width:100%;height:100%;display:block}.np-tpl b{margin-top:4px;font-size:12.5px;font-weight:600}.np-tpl small{color:var(--muted);font-size:11px;line-height:1.4}.np-file{flex-wrap:wrap;align-items:center;gap:12px;font-size:12.5px;display:flex}@media (width<=1100px){.home-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.resume,.conn-grid,.acct-grid{grid-template-columns:minmax(0,1fr)}.resume-art{border-right:0;border-bottom:1px solid var(--line)}.np-src{grid-template-columns:repeat(2,minmax(0,1fr))}.np-tpls{grid-template-columns:minmax(0,1fr)}}.editor{background:var(--canvas);flex-direction:column;height:100%;display:flex}.ed-top{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:6px;height:48px;padding:0 10px 0 8px;display:flex}.home-btn{height:32px;color:var(--muted);border-radius:7px;align-items:center;gap:4px;padding:0 6px;text-decoration:none;display:flex}.home-btn:hover{background:var(--hover)}.file{align-items:center;gap:10px;min-width:0;padding:0 6px;font-size:13px;display:flex}.file b{white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-weight:600;overflow:hidden}.save{color:var(--faint);white-space:nowrap;font-size:12px}.save.dirty,.save.saving{color:var(--muted)}.save.error,.save.conflict{color:var(--bad)}.vsep{background:var(--line);width:1px;height:20px;margin:0 4px}.target{border:1px solid var(--line);background:var(--panel);border-radius:8px;align-items:center;gap:8px;height:30px;padding:0 10px;font-size:12.5px;display:flex}.ed-body{flex:1;min-height:0;display:flex}.ed-left{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:none;width:248px;min-height:0;display:flex}.ed-right{background:var(--panel);border-left:1px solid var(--line);flex:none;width:280px;overflow:auto}.sec-h{flex:none;justify-content:space-between;align-items:center;height:38px;padding:0 10px 0 14px;font-size:12px;font-weight:600;display:flex}.sec-h small{color:var(--faint);font-weight:400}.sec-h .tb{min-width:24px;height:24px;padding:0 4px}.pages-list{border-bottom:1px solid var(--line);flex-direction:column;flex:none;padding:0 6px 8px;display:flex}.li{height:28px;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:7px;width:100%;min-width:0;padding:0 6px 0 8px;font-size:12.5px;display:flex}.li .icon{color:var(--faint)}.li .n{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.li .meta{color:var(--faint);font-size:11px}.li:hover{background:var(--hover)}.li.on{background:var(--accent-soft)}.li.on .icon{color:var(--accent)}.li.dim .n{color:var(--faint)}.li .acts{gap:2px;display:none}.li:hover .acts,.li .acts.show{display:flex}.li .rename{border:1px solid var(--accent);background:var(--panel);border-radius:4px;flex:1;min-width:0;height:22px;padding:0 4px;font-size:12.5px}.layers{flex:1;min-height:0;padding:0 6px 12px;overflow:auto}.empty-layers{color:var(--faint);padding:16px 10px;font-size:12px}.ic-btn{width:24px;height:24px;color:var(--faint);background:0 0;border:0;border-radius:5px;flex:none;place-items:center;padding:0;display:grid}.ic-btn:hover{background:var(--hover);color:var(--fg)}.ic-btn.on{color:var(--fg)}.stage{background-color:var(--canvas);background-image:radial-gradient(var(--grid) 1px, transparent 1px);touch-action:none;-webkit-user-select:none;user-select:none;background-size:20px 20px;flex:1;min-width:0;position:relative;overflow:hidden}.stage canvas{display:block;position:absolute;inset:0}.stage[data-tool=hand] canvas{cursor:grab}.dock{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);z-index:2;border-radius:12px;gap:2px;padding:4px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.dock .tb{min-width:34px;height:34px}.dock .tb.on{background:var(--accent);color:var(--accent-ink)}.dock-i{align-items:center;gap:2px;display:flex}.dock-sep{background:var(--line);width:1px;height:20px;margin:0 4px}.ltabs{flex:none;gap:2px;padding:8px 8px 4px;display:flex}.ltabs button{height:28px;color:var(--muted);background:0 0;border:0;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:flex}.ltabs button:hover{background:var(--hover)}.ltabs button.on{background:var(--sunk);color:var(--fg)}.ltabs .meta{color:var(--faint);font-size:11px;font-weight:400}.vp-bar{flex:none;align-items:center;gap:2px;padding:4px 8px 6px;display:flex}.vp-search{background:var(--sunk);min-width:0;height:28px;color:var(--faint);border:1px solid #0000;border-radius:7px;flex:1;align-items:center;gap:6px;padding:0 8px;display:flex}.vp-search:focus-within{border-color:var(--accent);background:var(--panel)}.vp-search .icon{flex:none;width:14px;height:14px}.vp-search input{min-width:0;color:var(--fg);background:0 0;border:0;outline:none;flex:1;font-size:12px}.vp-list{padding-top:2px}.vp-empty{color:var(--muted);flex-direction:column;gap:10px;padding:14px 8px;font-size:12px;line-height:1.6;display:flex}.vp-empty p{margin:0}.vp-empty small{color:var(--faint);font-size:11.5px}.vp-empty .btn{align-self:flex-start}.vgrp-h{text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;width:100%;min-width:0;height:28px;padding:0 6px;font-size:12px;display:flex}.vgrp-h:hover{background:var(--hover)}.vgrp-h b{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.vgrp-h .meta{color:var(--faint);font-size:11px}.vgrp-h .chev{color:var(--faint);transition:transform .12s;display:flex;transform:rotate(-90deg)}.vgrp-h .chev.open{transform:none}.vgrp-h .chev .icon{width:14px;height:14px}.vrow{cursor:grab;border-radius:6px;align-items:center;gap:8px;min-width:0;height:28px;padding:0 6px 0 22px;font-size:12px;display:flex}.vrow:hover{background:var(--hover)}.vrow:active{cursor:grabbing}.vrow .ty{background:var(--sunk);width:20px;height:16px;color:var(--muted);font-family:var(--font-mono);border-radius:4px;flex:none;place-items:center;font-size:9.5px;font-weight:600;display:grid}.vrow .ty.t-Bool{color:#1f8f4e;background:#1f8f4e1f}.vrow .ty.t-Real{color:#2f6fde;background:#2f6fde1f}.vrow .ty.t-String{color:#a1608f;background:#a1608f1f}.vrow .nm{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.vrow .ad{color:var(--faint);white-space:nowrap;font-size:10.5px}.vrow.bound .nm:after{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:5px;height:5px;margin-left:6px;display:inline-block}.vp-foot{color:var(--faint);align-items:flex-start;gap:6px;padding:12px 6px 4px;font-size:11.5px;line-height:1.5;display:flex}.vp-foot .icon{flex:none;width:14px;height:14px;margin-top:1px}.modal.wide{width:min(620px,100% - 32px)}.g2x{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.g2x .dd{border-radius:8px;height:38px}.ve-uses{flex-wrap:wrap;gap:4px;display:flex}.ve-uses .tag{cursor:pointer;border:0}.danger-btn{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, transparent)}.imp-file{align-items:center;gap:10px;display:flex}.imp-file .icon{width:28px;height:28px;color:var(--accent)}.imp-file b{font-size:13px;display:block}.imp-file small{color:var(--faint);font-size:12px}.imp-groups{flex-wrap:wrap;gap:4px;max-height:120px;display:flex;overflow:auto}.imp-skip{color:var(--muted);background:color-mix(in srgb, var(--warn) 8%, transparent);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;font-size:12px;display:flex}.imp-skip b{color:var(--warn);font-weight:600}.li .lk{color:var(--accent);display:flex}.li .lk .icon{width:13px;height:13px}.prow{grid-template-columns:56px minmax(0,1fr);align-items:center;gap:8px;display:grid}.prow .lbl{color:var(--muted);font-size:12px}.note.warn{color:var(--warn)}.note .icon{flex:none;width:14px;height:14px;margin-top:1px}.vpick>i{display:flex}.vpick>i .icon{width:14px;height:14px}.vpick.unbound .v{color:var(--faint)}.vpick .vp-t{color:var(--faint);font-size:10.5px}.vpop{flex-direction:column;gap:4px;width:300px;max-height:380px;padding:6px;display:flex;overflow:hidden}.vpop-list{min-height:0;overflow:auto}.vpop-g{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;padding:8px 8px 2px;font-size:11px;overflow:hidden}.vpop .vpop-list button{gap:8px;height:28px;padding:0 8px}.vpop .vpop-list button.on{background:var(--accent-soft)}.vpop .ty{color:var(--faint);flex:none;width:34px;font-size:10px}.vpop .nm{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.vpop .hint{padding-left:8px}.vpop-note{color:var(--faint);padding:8px;font-size:11.5px}.vpop .vpop-clear{color:var(--muted);border-top:1px solid var(--line);border-radius:0 0 6px 6px;gap:6px;height:30px}.vpop .vpop-clear .icon{width:14px;height:14px}.stage.drop-ok{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 50%, transparent)}.zoom{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);z-index:2;border-radius:10px;align-items:center;padding:3px;display:flex;position:absolute;bottom:14px;right:12px}.zbtn{min-width:52px;font-size:12px}.ins-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 10px 10px 14px;display:flex}.ins-head .ti{background:var(--sunk);width:30px;height:30px;color:var(--muted);border-radius:8px;flex:none;place-items:center;display:grid}.ins-head>div:nth-child(2){flex:1;min-width:0}.ins-head b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;display:block;overflow:hidden}.ins-head small{color:var(--faint);font-size:11.5px}.ins-head .name{background:0 0;border:1px solid #0000;border-radius:5px;width:100%;margin-left:-5px;padding:1px 4px;font-size:13px;font-weight:600}.ins-head .name:hover{border-color:var(--line2)}.ins-head .name:focus{border-color:var(--accent);background:var(--panel);outline:none}.alignbar{border-bottom:1px solid var(--line);grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;padding:6px 10px;display:grid}.alignbar .tb{min-width:0;height:28px;padding:0}.sect{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 12px 14px 14px;display:flex}.sect-t{justify-content:space-between;align-items:center;height:22px;font-size:12px;font-weight:600;display:flex}.g2{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.nf.wide{width:100%}.ed-top,.ed-left,.ed-right,.ed-body{-webkit-user-select:none;user-select:none}.ed-body input,.ed-body textarea,.ed-body [contenteditable=true]{-webkit-user-select:text;user-select:text}.nf input:disabled{color:var(--muted)}.ta{border:1px solid var(--line2);background:var(--sunk);resize:vertical;border-radius:6px;width:100%;padding:6px 8px;font-size:12.5px}.ta:focus{border-color:var(--accent);background:var(--panel);outline:none}.icseg{background:var(--sunk);border-radius:7px;gap:2px;padding:2px;display:flex}.icseg button{height:24px;color:var(--muted);background:0 0;border:0;border-radius:5px;flex:1;font-size:12px}.icseg button.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px #00000014}.icseg button{justify-content:center;align-items:center;gap:4px;display:inline-flex}.ta-ic{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:14px;height:14px}.txt-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;display:grid}.txt-tools .icseg button b,.txt-tools .icseg button i,.txt-tools .icseg button u{font-size:13px}.msel{flex-wrap:wrap;gap:4px;display:flex}.msel .tag{cursor:pointer;border:0}.keys{flex-direction:column;gap:4px;font-size:12px;display:flex}.keys div{color:var(--muted);justify-content:space-between;gap:8px;display:flex}.keys .mono{color:var(--fg);font-size:11px}.stage canvas.ruler-x,.stage canvas.ruler-y{z-index:1;pointer-events:none;position:absolute;inset:0 auto auto 0}.stage .ruler-c{background:var(--panel);border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:1;pointer-events:none;width:20px;height:20px;position:absolute;top:0;left:0}.stage [hidden]{display:none}.li.drop{box-shadow:inset 0 2px 0 var(--accent)}.li.sub{padding-left:26px}.li.grp .caret{width:16px;min-width:16px;height:16px;margin-left:-4px;padding:0}.li.grp .caret .icon{width:14px;height:14px}.li.grp .n{font-weight:500}.li .btn.sm{height:22px;padding:0 8px;font-size:11.5px}.pages-list .li .acts .ic-btn{width:22px;height:22px}.turnbar{border-bottom:1px solid var(--line);gap:2px;padding:6px 10px;display:flex}.turnbar .tb{flex:1;min-width:0;height:28px;padding:0}.ins-head .btn.sm{flex:none;margin-left:auto}.img-prev{background:var(--sunk) repeating-conic-gradient(var(--line) 0 25%, transparent 0 50%) 0 0 / 12px 12px;border-radius:8px;place-items:center;height:96px;display:grid;overflow:hidden}.img-prev img{object-fit:contain;max-width:100%;max-height:96px}.g2x .btn.sm{justify-content:center}.inline-text{z-index:50;border:1.5px solid var(--accent);background:color-mix(in srgb, var(--panel) 92%, transparent);resize:none;border-radius:2px;outline:none;margin:0;padding:0 2px;font-family:Geist,Microsoft YaHei UI,Microsoft YaHei,sans-serif;line-height:1.25;position:fixed;overflow:hidden}.parts-panel{flex-direction:column;flex:1;min-height:0;display:flex}.parts-panel .lsearch{background:var(--sunk);height:30px;color:var(--faint);border-radius:8px;align-items:center;gap:6px;margin:6px 10px 2px;padding:0 8px;display:flex}.parts-panel .lsearch input{min-width:0;color:var(--fg);background:0 0;border:0;outline:none;flex:1;font-size:12.5px}.parts-panel .lsearch .icon{width:14px;height:14px}.parts-scroll{flex:1;padding-bottom:12px;overflow:auto}.parts-scroll .sec-h{justify-content:flex-start;gap:8px;height:32px}.parts-scroll .sec-h small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.parts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 10px 6px;display:grid}.pt{border:1px solid var(--line);background:var(--panel);color:var(--fg);cursor:grab;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;font-size:11.5px;display:flex}.pt:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.pt:disabled{opacity:.5;cursor:default}.pt-art{width:40px;height:40px;color:var(--muted);place-items:center;display:grid}.pt-art svg{width:40px;height:40px}.pt-art .icon{width:22px;height:22px}.rule{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.rule-h{justify-content:space-between;align-items:center;font-size:11.5px;display:flex}.rule-cmp{grid-template-columns:64px minmax(0,1fr);gap:6px;display:grid}.rule .prow{grid-template-columns:40px minmax(0,1fr) 24px}.rule-f{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px dashed var(--line2,var(--line));height:24px;color:var(--muted);background:0 0;border-radius:12px;padding:0 8px;font-size:11.5px}.chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chk{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.chk input{accent-color:var(--accent);margin:0}.rule-f .chk{margin-left:auto}.sim-btn{gap:6px;padding:0 10px;font-size:12.5px}.sim-btn.on{background:var(--accent-soft);color:var(--accent)}.stage.simulating canvas{cursor:default}.sim{background:var(--panel);border:1px solid var(--line);width:300px;max-height:calc(100% - 100px);box-shadow:var(--pop);z-index:3;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px 12px;font-size:12.5px;display:flex;position:absolute;bottom:60px;right:12px}.sim-h{align-items:center;gap:8px;display:flex}.sim-h .faint{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.sim-h .dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 25%, transparent);border-radius:50%;flex:none}.sim-list{flex-direction:column;gap:4px;min-height:0;display:flex;overflow:auto}.sim-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:30px;display:grid}.sim-row.num{grid-template-columns:minmax(0,1fr) 96px 56px}.sim-row .n{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sim-row input[type=range]{width:100%;accent-color:var(--accent)}.sim-row input.mono{border:1px solid var(--line);background:var(--sunk);width:100%;height:26px;color:var(--fg);border-radius:6px;padding:0 6px;font-size:12px}.switch{background:var(--sunk);width:36px;height:20px;box-shadow:inset 0 0 0 1px var(--line);border:0;border-radius:10px;padding:0;position:relative}.switch i{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch.on{background:var(--ok);box-shadow:none}.switch.on i{left:18px}.tag.acc{background:var(--accent-soft);color:var(--accent)}.ai-tb{gap:6px;padding:0 10px;font-size:12.5px}.ai-tb .icon,.ai-dock .icon{color:var(--accent)}.dock .ai-dock{gap:5px;width:auto;padding:0 10px;font-size:12.5px;font-weight:600}.dock .ai-dock.on{background:var(--accent-soft);color:var(--accent)}.ai-panel{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;flex:none;min-width:320px;min-height:0;font-size:13px;display:flex;position:relative}.aip-resize{cursor:col-resize;z-index:5;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.aip-resize:after{content:"";background:0 0;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:3px}.aip-resize:hover:after,body.col-resizing .aip-resize:after{background:var(--accent)}body.col-resizing,body.col-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.aip-title{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.aip-title b{white-space:nowrap}.aip-h{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:10px 10px 10px 12px;display:flex}.aip-h b{font-size:13px;font-weight:600}.aip-sub{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;overflow:hidden}.ai-av{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:7px;flex:none;place-items:center;display:grid}.ai-av .icon{width:15px;height:15px}.aip-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow:auto}.ai-quick{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;display:grid}.ai-quick button{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:3px;padding:10px;display:flex}.ai-quick button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.ai-quick button:disabled{opacity:.5;cursor:not-allowed}.ai-quick .icon{color:var(--accent);margin-bottom:2px}.ai-quick b{font-size:12.5px;font-weight:600}.ai-quick small{color:var(--muted);font-size:11px;line-height:1.4}.msg{white-space:pre-wrap;word-break:break-word;border-radius:10px;padding:9px 11px;line-height:1.6}.msg.user{background:var(--sunk);align-self:flex-end;max-width:min(88%,560px)}.msg.ai{background:var(--panel);border:1px solid var(--line);white-space:normal;flex-direction:column;gap:8px;display:flex}.msg.ai.err{border-color:color-mix(in srgb, var(--bad) 40%, transparent);color:var(--bad)}.msg .plan{color:var(--muted);margin:0;padding-left:18px;font-size:12.5px}.msg .warns{color:var(--warn);margin:0;padding-left:18px;font-size:12px}.msg-acts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.msg.thinking{color:var(--muted);flex-direction:row;align-items:center;gap:8px;display:flex}.dots{gap:3px;display:inline-flex}.dots i{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite blink}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.dots i{animation:none}}.aip-compose{border-top:1px solid var(--line);flex-direction:column;flex:none;gap:6px;padding:8px 10px 10px;display:flex}.ctx-row{justify-content:space-between;gap:8px;font-size:11px;display:flex}.ctx-row .ctx{color:var(--muted)}.aip-input{align-items:flex-end;gap:8px;display:flex}.aip-input textarea{resize:none;border:1px solid var(--line2);min-width:0;font:inherit;background:var(--panel);color:var(--fg);border-radius:8px;flex:1;max-height:160px;padding:7px 9px;font-size:13px}.aip-input textarea:focus{border-color:var(--accent);outline:none}.aib .modal-h b{align-items:center;gap:8px;display:flex}.aib .modal-h b .icon{color:var(--accent)}.aib-wait{color:var(--muted);align-items:center;gap:10px;padding:24px 4px;display:flex}.aib-bar{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.aib-list{border:1px solid var(--line);border-radius:10px;max-height:min(56vh,520px);overflow:auto}.aib-row{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:auto minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:12px;padding:9px 12px;font-size:12.5px;display:grid}.aib-row:last-child{border-bottom:0}.aib-row:hover{background:var(--hover)}.aib-row input{accent-color:var(--accent)}.aib-row small{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.aib-el{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:6px;display:grid}.aib-el .icon{width:15px;height:15px;color:var(--faint);grid-row:1/3}.aib-el b{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.aib-var .mono{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.conf{background:var(--sunk);border-radius:2px;height:4px;margin-bottom:4px;display:block;overflow:hidden}.conf i{background:var(--warn);height:100%;display:block}.conf.hi i{background:var(--ok)}.conf.lo i{background:var(--bad)}.aib-why small{white-space:normal;line-height:1.4}textarea.input.ta-in{resize:vertical;height:auto;font:inherit;padding:8px 12px;line-height:1.5}.ai-prov{flex-wrap:wrap;align-self:flex-start}.note.ok-note{color:var(--ok)}@media (width<=760px){.aib-row{grid-template-columns:auto minmax(0,1fr)}.aib-var,.aib-why{grid-column:2}}.target-btn{border:1px solid var(--line);background:var(--panel);height:30px;color:var(--fg);border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;display:inline-flex}.target-btn:hover{border-color:var(--faint)}.target-btn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.target-btn .icon{width:15px;height:15px}.health{border:1px solid var(--line);background:var(--panel);height:30px;color:var(--muted);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.health:hover{border-color:var(--faint);color:var(--fg)}.health.ok .sdot{background:var(--ok)}.health.warn .sdot{background:var(--warn)}.health-pop{flex-direction:column;gap:2px;width:360px;max-height:420px;padding:8px;display:flex}.health-pop .hp-h{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;margin-bottom:4px;padding:4px 6px 8px;display:flex}.health-pop .hp-h b{font-size:13px}.health-pop .hp-h small{color:var(--faint);font-size:11.5px}.health-pop .is{white-space:normal;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;height:auto;padding:7px 6px;display:grid}.health-pop .is b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.health-pop .is span:not(.sdot){color:var(--muted);grid-column:2;font-size:11.5px;line-height:1.5}.health-pop .note{padding:6px}.pv-banner{background:var(--panel);border:1px solid var(--accent);box-shadow:var(--pop);z-index:3;border-radius:12px;align-items:center;gap:10px;max-width:calc(100% - 60px);padding:6px 8px 6px 12px;font-size:12.5px;display:flex;position:absolute;top:30px;left:50%;transform:translate(-50%)}.pv-banner>.icon{color:var(--accent);flex:none}.pv-banner b{white-space:nowrap}.pv-notes{gap:12px;min-width:0;display:flex;overflow:hidden}.pv-notes>span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.pv-notes small{color:var(--muted);text-overflow:ellipsis;max-width:240px;font-size:11.5px;overflow:hidden}.pv-notes .warn{color:var(--warn)}.cond-lead{margin-bottom:-2px;font-size:11.5px}.rule-text{background:var(--sunk);min-width:0;height:28px;color:var(--fg);border:1px solid #0000;border-radius:6px;flex:1;padding:0 8px;font-size:12.5px}.rule-text:focus{border-color:var(--accent);background:var(--panel);outline:none}.xd{background:var(--panel);border:1px solid var(--line);width:min(1080px,100% - 32px);height:min(720px,100% - 32px);box-shadow:var(--pop);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.xd-h{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:14px 14px 14px 20px;display:flex}.xd-h b{font-size:15px;font-weight:600}.xd-h small{color:var(--faint);margin-left:4px;font-size:12.5px}.xd-b{flex:1;grid-template-columns:220px minmax(0,1fr) 300px;min-height:0;display:grid}.xd-col{min-height:0;overflow:auto}.xd-col.l{border-right:1px solid var(--line);background:var(--raise);flex-direction:column;gap:2px;padding:8px;display:flex}.xd-col.m{flex-direction:column;gap:24px;padding:20px 24px;display:flex}.xd-col.r{border-left:1px solid var(--line);background:var(--raise);flex-direction:column;gap:14px;padding:18px;display:flex}.xd-sec{color:var(--faint);padding:8px 8px 6px;font-size:11px}.xd-f{border-top:1px solid var(--line);flex:none;align-items:center;gap:10px;min-width:0;padding:12px 16px 12px 20px;display:flex}.xd-title{align-items:center;gap:12px;display:flex}.xd-title b{font-size:16px;font-weight:600;display:block}.xd-title small{color:var(--muted);font-size:12.5px}.mono-tile{background:var(--sunk);width:30px;height:30px;font-family:var(--font-mono);color:var(--muted);border-radius:8px;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.mono-tile.lg{border-radius:10px;width:38px;height:38px;font-size:12.5px}.tgt{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.tgt:hover:not(:disabled){background:var(--hover)}.tgt.on{background:var(--panel);box-shadow:0 0 0 1px var(--line), 0 1px 2px #0000000d}.tgt.on .mono-tile{background:var(--accent-soft);color:var(--accent)}.tgt:disabled{opacity:.45;cursor:not-allowed}.tgt div{flex:1;min-width:0}.tgt b{font-size:13px;font-weight:500;display:block}.tgt small{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;display:block;overflow:hidden}.block-t{align-items:center;gap:8px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.block-t small{color:var(--faint);font-weight:400}.xd-col.r .block-t{margin-bottom:0}.scr-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.scr-custom{gap:6px;display:flex}.scr-custom .nf{width:92px}.fit-seg{margin-top:8px}.scr-prev{grid-template-columns:minmax(0,1fr) 200px;align-items:start;gap:16px;margin-top:12px;display:grid}.scr-frame{background:#2b2724;border:5px solid #2b2724;border-radius:8px;max-width:100%;max-height:280px;margin:0 auto;overflow:hidden}.scr-frame svg{width:100%;height:100%;display:block}.scr-pages{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.scr-pages button{background:var(--sunk);color:var(--muted);border:0;border-radius:6px;height:22px;padding:0 8px;font-size:11.5px}.scr-pages button.on{background:var(--accent-soft);color:var(--accent)}.scr-notes{flex-direction:column;gap:10px;font-size:12px;display:flex}.scr-notes>div{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;display:grid}.scr-notes .sdot{margin-top:5px}.scr-notes b{font-weight:500;display:block}.scr-notes span:not(.sdot){color:var(--muted);line-height:1.5}.sdot{background:var(--faint);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.sdot.ok{background:var(--ok)}.sdot.warn{background:var(--warn)}.sdot.bad{background:var(--bad)}.sdot.info{background:var(--faint)}.methods{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.method{border:1px solid var(--line2);background:var(--panel);text-align:left;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 12px;padding:12px 14px;display:grid}.method .mi{background:var(--sunk);border-radius:9px;grid-row:1/3;place-items:center;width:34px;height:34px;display:grid}.method>span:not(.mi){color:var(--muted);grid-column:2;font-size:12px;line-height:1.5}.method b{font-size:13.5px;font-weight:600}.method:hover{border-color:var(--faint)}.method.on{box-shadow:0 0 0 2px var(--accent);border-color:#0000}.method.on .mi{background:var(--accent-soft);color:var(--accent)}.pages-pick{border:1px solid var(--line);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.pages-pick label{cursor:pointer;align-items:center;gap:10px;min-width:0;padding:9px 12px;font-size:12.5px;display:flex}.pages-pick label+label{border-top:1px solid var(--line)}.pages-pick input{accent-color:var(--accent)}.pages-pick .meta{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:11.5px;overflow:hidden}.field.prefix{max-width:320px;margin-top:12px}.field.prefix .input{height:34px}.xd-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;padding:14px;font-size:12.5px;display:flex}.xd-card-h{align-items:center;gap:8px;display:flex}.xd-card-h b{font-weight:600}.xd-card p{color:var(--muted);margin:0;line-height:1.6}.xd-card ol{color:var(--muted);margin:0;padding-left:18px;line-height:1.7}.xd-card code{background:var(--sunk);color:var(--fg);font-family:var(--font-mono);-webkit-user-select:all;user-select:all;border-radius:6px;margin:4px 0 2px;padding:6px 8px;font-size:11.5px;display:block}.xd-card .btn{align-self:flex-start}.xd-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.xd-stats div{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;padding:10px;display:flex}.xd-stats b{font-size:18px;font-weight:600}.xd-stats b.warn{color:var(--warn)}.xd-stats span{color:var(--faint);font-size:11.5px}.xd-target{flex-direction:column;gap:6px;font-size:12px;display:flex}.xd-target div{grid-template-columns:34px minmax(0,1fr);gap:8px;display:grid}.xd-target .path{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;text-align:left;direction:rtl;font-size:11px;overflow:hidden}.xd-ow{border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);background:color-mix(in srgb, var(--warn) 8%, transparent);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:12.5px;display:flex}.xd-ow input{accent-color:var(--warn);margin-top:2px}.xd-ow small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.xd-tags{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px}.xd-tags summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;list-style:none;display:flex}.xd-tags summary::-webkit-details-marker{display:none}.xd-tags summary .icon{width:14px;height:14px;color:var(--accent);flex:none}.xd-tags[open] summary,.xd-tags .note{margin-bottom:8px}.xd-taglist{flex-direction:column;gap:2px;max-height:160px;display:flex;overflow:auto}.xd-taglist span{justify-content:space-between;gap:8px;font-size:11.5px;display:flex}.xd-taglist small{color:var(--faint)}.iss{flex-direction:column;gap:2px;display:flex}.is{text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;width:100%;padding:7px 8px;font-size:12px;display:grid}.is .sdot{transform:translateY(-1px)}.is b{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.is span:not(.sdot){color:var(--muted);word-break:break-all;grid-column:2;line-height:1.5}button.is:hover{background:var(--hover)}.xd-done{background:color-mix(in srgb, var(--ok) 10%, transparent);color:var(--ok);border-radius:12px;align-items:flex-start;gap:10px;padding:12px;display:flex}.xd-done.warn{background:color-mix(in srgb, var(--warn) 10%, transparent);color:var(--warn)}.xd-done b{color:var(--fg);font-size:13px;font-weight:600;display:block}.xd-done small{color:var(--muted);font-size:12px}.xd-done .icon{flex:none;margin-top:1px}.conn{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;font-size:12px;display:flex;overflow:hidden}.progress{background:var(--sunk);border-radius:3px;flex:none;width:140px;height:6px;overflow:hidden}.progress i{background:var(--accent);height:100%;transition:width .2s;display:block}.run-text{white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:12px;overflow:hidden}.run-err{color:var(--bad);white-space:nowrap;text-overflow:ellipsis;max-width:360px;font-size:12px;overflow:hidden}@media (width<=900px){.xd-b{grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;overflow:auto}.xd-col{min-height:auto;overflow:visible}.xd-col.l{display:none}.xd-col.r{border-left:0;border-top:1px solid var(--line)}.scr-prev,.methods{grid-template-columns:minmax(0,1fr)}}
