living-ai-documentation 3.23.0 → 3.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -150,7 +150,7 @@ Texte`};case`link`:return{text:Se(`snip-link-text`),textFallback:X(`snippet.link
150
150
  </html>`,f=window.open(``,`_blank`);if(!f){alert(X(`error.pdf_popup`));return}f.document.write(d),f.document.close(),t.onclose()}catch(e){alert(X(`error.pdf_export`)+(e instanceof Error?e.message:String(e)))}finally{I(d,!1)}}let y=`px-4 py-2 text-sm border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 font-semibold transition-colors`,b=`px-4 py-2 text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors`;var x=Ur(),S=z(x),C=e=>{var r=d_(),f=R(r),p=R(f),h=B(R(p),2),x=R(h,!0);N(h),N(p);var S=B(p,2),C=R(S),w=R(C,!0);N(C);var T=B(C,2),E=R(T,!0);N(T);var D=B(T,2),ee=R(D,!0);N(D),N(S);var O=B(S,2),k=e=>{var t=c_(),n=R(t),r=R(n),c=e=>{var t=a_(),n=R(t,!0);N(t),V(e=>K(n,e),[()=>X(`common.loading`)]),G(e,t)},l=e=>{var t=o_(),n=R(t);N(t),V(e=>K(n,`${e??``}failed to load folders`),[()=>X(`common.error_prefix`)]),G(e,t)},u=e=>{var t=Ur();J(z(t),16,()=>H(o),e=>e,(e,t)=>{var n=s_(),r=R(n);Ei(r);var i,a=B(r,2),o=R(a,!0);N(a),N(n),V(()=>{i!==(i=t)&&(r.value=(r.__value=t)??``),K(o,t)}),Ni(r,()=>H(s)[t],e=>H(s)[t]=e),G(e,n)}),G(e,t)};q(r,e=>{H(i)?e(c):H(a)?e(l,1):e(u,-1)}),N(n),N(t),G(e,t)};q(O,e=>{H(n)===`html`&&e(k)});var A=B(O,2),te=e=>{var n=l_(),r=R(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a),s=R(o,!0);N(o);var l=B(o,2),u=R(l,!0);N(l),N(a),N(n),V((e,t,n)=>{K(i,e),K(s,t),l.disabled=H(c),K(u,n)},[()=>X(`modal.export.markdown_hint`),()=>X(`common.cancel`),()=>H(c)?`⏳`:X(`modal.export.markdown_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),U(`click`,l,g),G(e,n)};q(A,e=>{H(n)===`markdown`&&e(te)});var ne=B(A,2),re=e=>{var n=u_(),r=R(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a),s=R(o,!0);N(o);var c=B(o,2),d=R(c,!0);N(c);var f=B(c,2),p=R(f,!0);N(f),N(a),N(n),V((e,t,n,r)=>{K(i,e),K(s,t),c.disabled=H(l),K(d,n),f.disabled=H(u),K(p,r)},[()=>X(`modal.export_html.hint`),()=>X(`common.cancel`),()=>H(l)?`⏳`:X(`modal.export_html.notion_btn`),()=>H(u)?`⏳`:X(`modal.export_html.confluence_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),U(`click`,c,()=>_(`notion`)),U(`click`,f,()=>_(`confluence`)),G(e,n)};q(ne,e=>{H(n)===`html`&&e(re)});var ie=B(ne,2),ae=e=>{var n=l_(),r=R(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a),s=R(o,!0);N(o);var c=B(o,2),l=R(c,!0);N(c),N(a),N(n),V((e,t,n)=>{K(i,e),K(s,t),c.disabled=H(d),K(l,n)},[()=>X(`modal.export.pdf_hint`),()=>X(`common.cancel`),()=>H(d)?`⏳`:X(`modal.export.pdf_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),U(`click`,c,v),G(e,n)};q(ie,e=>{H(n)===`pdf`&&e(ae)}),N(f),N(r),V((e,t,r,i)=>{K(x,e),hi(C,1,li(H(n)===`markdown`?y:b)),K(w,t),hi(T,1,li(H(n)===`html`?y:b)),K(E,r),hi(D,1,li(H(n)===`pdf`?y:b)),K(ee,i)},[()=>X(`modal.export.title`),()=>X(`modal.export.tab_markdown`),()=>X(`modal.export.tab_html`),()=>X(`modal.export.tab_pdf`)]),U(`click`,r,e=>{e.target===e.currentTarget&&t.onclose()}),U(`click`,C,()=>m(`markdown`)),U(`click`,T,()=>m(`html`)),U(`click`,D,()=>m(`pdf`)),G(e,r)};q(S,e=>{t.open&&e(C)}),G(e,x),Ke()}Nr([`click`]);var p_=W(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),m_=W(`<p> </p>`),h_=W(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">&#128193;</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),g_=W(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-gray-500 dark:text-gray-400"><span class="shrink-0 opacity-40">&#128196;</span> <span class="truncate font-mono"> </span></span> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),__=W(`<div class="border-t border-gray-200 dark:border-gray-700"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0">&#8593; Up</button> <span class="font-mono text-xs text-gray-400 dark:text-gray-500 truncate flex-1 text-right"> </span></div> <div class="divide-y divide-gray-100 dark:divide-gray-800 max-h-52 overflow-y-auto"><!></div></div>`),v_=W(`<label class="flex items-center gap-1.5 text-xs text-gray-700 dark:text-gray-300 cursor-pointer"><input type="checkbox"/> </label>`),y_=W(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">&#128193;</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Exclude this folder" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 px-3 py-2 text-sm transition-opacity">⊖</button></div>`),b_=W(`<button class="w-full px-3 py-2 text-xs text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/30 text-left font-medium border-t border-gray-100 dark:border-gray-800">&#10003; Select: <span class="font-mono"> </span></button>`),x_=W(`<!> <!>`,1),S_=W(`<div> </div>`),C_=W(`<div> </div> <div> </div> <div> </div> <!>`,1),w_=W(`<div role="button" tabindex="0" class="flex items-center gap-2 px-3 py-1 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors"><span class="text-gray-400 dark:text-gray-600 w-5 text-right shrink-0 tabular-nums text-xs"></span> <div class="flex-1 min-w-0"><div class="flex items-center justify-between gap-1"><span class="text-gray-800 dark:text-gray-200 font-medium truncate text-xs"> </span> <span class="text-gray-400 dark:text-gray-600 tabular-nums shrink-0 text-xs"> </span></div> <div class="h-1 bg-gray-100 dark:bg-gray-800 rounded-full mt-0.5"><div class="h-1 bg-blue-400 dark:bg-blue-600 rounded-full"></div></div></div></div>`),T_=W(`<div class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 text-xs text-gray-500 dark:text-gray-400 space-y-0.5 border-b border-gray-100 dark:border-gray-800"><!></div> <div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center gap-2"><span class="text-xs text-gray-500 dark:text-gray-400 shrink-0 cursor-help"> </span> <input type="number" min="1" max="20" class="w-12 px-1.5 py-0.5 text-xs rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-800 dark:text-gray-200 focus:outline-none"/> <button class="text-xs text-blue-600 dark:text-blue-400 hover:underline"> </button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto"></div></div>`),E_=W(`<p class="absolute inset-0 flex items-center justify-center text-gray-400 dark:text-gray-500 text-sm animate-pulse"> </p>`),D_=W(`<div class="flex items-center gap-1 group py-0.5"><span class="text-gray-600 dark:text-gray-400 break-all font-mono flex-1 text-xs"> </span> <button title="Exclude this file" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 text-xs leading-none px-1 transition-opacity">⊖</button></div>`),O_=W(`<div class="text-gray-400 text-center py-2">—</div>`),k_=W(`<div class="w-80 shrink-0 border-l border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center justify-between"><span class="font-bold text-sm text-gray-900 dark:text-gray-100"> </span> <button class="text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 text-xs leading-none">✕</button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto px-3 py-1 space-y-1 text-xs"><!></div></div>`),A_=W(`<div class="fixed inset-0 z-50 flex flex-col bg-white dark:bg-gray-950"><div class="flex items-center justify-between px-6 h-14 border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><h2 class="font-semibold text-base"> </h2> <button class="text-sm px-3 py-1.5 rounded-lg text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"> </button></div> <div class="border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><div class="flex items-center gap-3 px-6 py-3"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </label> <input type="text" readonly="" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono cursor-default focus:outline-none"/> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">&#128193; <span> </span></button> <button class="text-sm px-4 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors shrink-0"> </button></div> <div class="flex items-start gap-3 px-6 pb-2"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0 pt-1.5"> </label> <textarea rows="3" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-1 focus:ring-blue-400 resize-y"></textarea> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">&#128193; <span> </span></button></div> <!> <div class="flex items-center gap-x-4 gap-y-2 px-6 pb-3 flex-wrap"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </span> <label class="flex items-center gap-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 cursor-pointer shrink-0"><input type="checkbox"/> </label> <!></div> <!></div> <div class="flex-1 overflow-hidden flex"><!> <div class="flex-1 relative overflow-hidden"><!> <canvas style="position: absolute; inset: 0"></canvas></div> <!></div></div>`);function j_(e,t){Ge(t,!0);let n=new Set(`the.a.an.and.or.but.not.nor.so.yet.both.either.neither.is.are.was.were.be.been.being.have.has.had.do.does.did.will.would.shall.should.may.might.can.could.must.need.dare.ought.used.to.of.in.for.on.with.at.by.from.up.about.into.through.during.before.after.above.below.between.out.off.over.under.again.further.then.once.here.there.when.where.why.how.all.each.few.more.most.other.some.such.no.only.own.same.than.too.very.just.also.still.already.always.never.often.sometimes.usually.this.that.these.those.its.your.our.their.his.her.him.she.you.they.we.me.my.it.who.which.what.whose.whom.if.though.although.because.since.while.unless.until.whether.as.like.via.per.i.am.he.us.see.now.new.old.got.let.put.say.said.says.get.use.make.made.take.come.came.go.went.know.think.look.want.give.seem.back.down.even.much.well.good.work.tell.keep.hold.turn.move.play.live.help.run.start.off.way.too.few.show.hear.etc.eg.ie.one.two.three.four.five.six.seven.eight.nine.ten.le.la.les.un.une.des.du.de.d.l.au.aux.ce.ci.cet.cette.ces.mon.ma.mes.ton.ta.tes.son.sa.ses.notre.nos.votre.vos.leur.leurs.je.tu.il.elle.on.nous.vous.ils.elles.me.te.se.lui.y.en.qui.que.quoi.dont.où.et.ou.mais.donc.or.ni.car.si.ne.pas.plus.moins.très.bien.mal.peu.beaucoup.trop.assez.aussi.comme.pour.par.avec.sans.dans.sur.sous.entre.vers.chez.contre.avant.après.pendant.depuis.selon.malgré.sauf.est.sont.était.être.avoir.fait.faire.dit.dire.peut.pouvoir.doit.devoir.veut.vouloir.sait.savoir.va.aller.vient.venir.tout.tous.toute.toutes.autre.autres.même.chaque.quel.quelle.quels.quelles.aucun.aucune.certain.certaine.plusieurs.quelque.quelques.tel.telle.tels.telles.cela.ceci.ça.celui.celle.ceux.celles.ici.voici.voilà.alors.ainsi.encore.déjà.jamais.toujours.souvent.parfois.rien.personne.chose.fois.jour.temps.part.cas.point.lieu.monde.cependant.néanmoins.pourtant.toutefois.quand.lorsque.puisque.parce.afin.puis.lors.notamment.surtout.seulement.vraiment.enfin.ensuite.ailleurs.là.ici.voici.voilà.dont.lequel.laquelle.lesquels.lesquelles`.split(`.`)),r=new Set(`public.private.protected.static.void.class.interface.abstract.final.const.let.var.function.return.if.else.for.while.do.switch.case.break.continue.try.catch.throw.throws.finally.new.this.self.super.import.export.from.package.module.require.include.using.namespace.struct.enum.trait.impl.fn.def.func.fun.val.mut.async.await.yield.lambda.extends.implements.override.virtual.sealed.data.object.companion.where.when.match.guard.defer.go.chan.select.type.alias.as.is.in.of.with.true.false.null.nil.none.undefined.println.printf.fmt.log.print.main.args.argv.init.setup.teardown.describe.test.expect.assert.before.after.not.and.or.delete.typeof.instanceof.readonly.keyof.infer.never.unknown.declare.satisfies.get.set.add.remove.update.create.find.fetch.load.save.put.post.patch.list.map.filter.reduce.sort.merge.parse.format.convert.transform.validate.check.handle.process.execute.start.stop.reset.clear.close.open.read.write.send.receive.emit.trigger.dispatch.subscribe.unsubscribe.listen.notify.register.unregister.bind.apply.call.invoke.callback.handler.listener.middleware.interceptor.resolver.provider.consumer.producer.builder.factory.adapter.wrapper.proxy.decorator.observer.visitor.strategy.command.controller.service.repository.dao.dto.entity.model.schema.config.context.state.store.action.reducer.selector.hook.ref.effect.memo.component.module.plugin.extension.util.utils.helper.helpers.common.shared.base.default.index.app.core.lib.src.test.spec.mock.stub.fixture.impl.internal.api.sdk.client.server.request.response.status.code.error.exception.message.result.data.value.key.name.label.title.description.item.element.node.child.parent.root.container.wrapper.layout.view.page.screen.panel.header.footer.sidebar.navbar.body.content.section.row.col.column.grid.flex.block.inline.span.div.input.output.param.params.arg.option.options.props.attr.attrs.field.fields.property.properties.method.methods.string.number.boolean.integer.float.double.long.short.byte.char.array.object.map.set.list.vector.queue.stack.hash.table.tree.graph.pair.tuple.optional.nullable.void.unit.any.bool.bytes.none.int.str.bool.all.each.every.some.many.single.multi.first.last.next.prev.previous.current.old.temp.tmp.new.top.bottom.left.right.center.middle.start.end.begin.min.max.count.total.sum.avg.size.length.width.height.depth.flag.num.idx.id.uid.uuid.num.str.val.obj.arr.fn.cb.ctx.req.res.err.msg.src.dst.evt.doc.db.io.fs.os.env.sys.http.https.url.uri.path.port.host.tcp.udp.ssl.tls.html.css.json.xml.yml.yaml.csv.sql.regex.utf.ascii.rgb.rgba.hex.px.em.rem.vh.vw.auto.inherit.initial.application.file.local.source.messages.logging.alerting.programmed.offset.offsets.zone.zoned.decimal.big.integer.constructor.mapper.captor.publisher.verify.subscriber.org.edr.ack.ref.ssr.ssg.csr.isr.mockito.junit.vitest.jest.mocha.rspec.pytest.cypress.playwright.captor.spy.given.then.verify.times.never.invocation.argumentcaptor.inorder.donothing.doreturn.ippon.springframework.jakarta.javax.todo.fixme.hack.note.deprecated.experimental.eslint.prettier.typescript.javascript.java.kotlin.python.golang.rust.csharp.swift.ruby.spring.boot.javax.jakarta.hibernate.lombok.gradle.maven.webpack.vite.react.angular.vue.svelte.nuxt.express.fastapi.flask.django.rails.fiber.gin.actix.tokio.asyncio.junit.jest.mocha.pytest.rspec.docker.kubernetes.aws.gcp.azure.terraform.ansible.nginx.apache.linux.nextjs.remix.astro.sveltekit.gatsby.nuxtjs.qwik.solid.vercel.netlify.cloudflare.supabase.firebase.mongodb.postgres.prisma.drizzle.typeorm.sequelize.mongoose.redis.neon.trpc.graphql.grpc.rest.openapi.swagger.zod.yup.valibot.tailwind.shadcn.radix.headless.chakra.mantine.antd.mui.tanstack.tanstackquery.zustand.jotai.recoil.redux.mobx.storybook.cypress.playwright.vitest.turbopack.turborepo.getserversideprops.getstaticprops.getstaticpaths.generatestaticparams.generatemetadata.serveraction.revalidate.notfound.redirect.permanentredirect.unstablecache.unstablenostore.cookies.headers.userouter.usepathname.usesearchparams.useparams.useformstate.useformstatus.useoptimistic.useserveraction.classname.onclick.onchange.onsubmit.onfocus.onblur.onkeydown.onkeyup.onmousedown.onmouseup.defaultvalue.htmlfor.tabindex.strokewidth.viewbox.fillopacity.strokeopacity.pathdata.children.fragment.portal.suspense.errorboundary.strictmode.createelement.createcontext.createref.forwardref.usestate.useeffect.useref.usecontext.usememo.usecallback.usereducer.useid.usetransition.usedeferredvalue.useimperativehandle.mutex.lock.thread.goroutine.coroutine.channel.buffer.stream.pipe.observable.promise.future.completable.deferred.disposable.lifecycle.scope.annotation.attribute.metadata.reflection.generic.template.macro.preprocessor.compiler.runtime.debug.release.production.development.staging.build.deploy.lint.coverage.report.the.and.for.are.but.not.you.all.this.that.with.have.from.they.will.been.can.has.was.its.our.their.more.also.when.what.about.which.would.into.than.then.each.just.over.after.such.here.some.were.very.only`.split(`.`));function i(e){return n.has(e)||r.has(e)||e.length<3||/^\d+$/.test(e)||/^[^a-z]/.test(e)}function a(e){return e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/[_\-./]+/g,` `).toLowerCase().trim().split(/\s+/).filter(e=>e.length>=3)}function o(e){return e.toLowerCase().split(/[^a-zàâäéèêëïîôùûü]+/).filter(e=>e.length>=3)}let s=[{value:`adoc`,cat:`prose`},{value:`asciidoc`,cat:`prose`},{value:`asm`,cat:`code`},{value:`astro`,cat:`code`},{value:`avsc`,cat:`config`},{value:`bash`,cat:`code`},{value:`bat`,cat:`code`},{value:`bicep`,cat:`config`},{value:`c`,cat:`code`},{value:`cc`,cat:`code`},{value:`cfg`,cat:`config`},{value:`cjs`,cat:`code`},{value:`clj`,cat:`code`},{value:`cljs`,cat:`code`},{value:`cmake`,cat:`code`},{value:`cmd`,cat:`code`},{value:`conf`,cat:`config`},{value:`cpp`,cat:`code`},{value:`cql`,cat:`code`},{value:`cs`,cat:`code`},{value:`cshtml`,cat:`code`},{value:`css`,cat:`config`},{value:`cxx`,cat:`code`},{value:`dart`,cat:`code`},{value:`env`,cat:`config`},{value:`erb`,cat:`code`},{value:`erl`,cat:`code`},{value:`ex`,cat:`code`},{value:`exs`,cat:`code`},{value:`fish`,cat:`code`},{value:`fs`,cat:`code`},{value:`fsx`,cat:`code`},{value:`go`,cat:`code`},{value:`gql`,cat:`code`},{value:`gradle`,cat:`code`},{value:`graphql`,cat:`code`},{value:`groovy`,cat:`code`},{value:`h`,cat:`code`},{value:`hcl`,cat:`config`},{value:`hpp`,cat:`code`},{value:`hs`,cat:`code`},{value:`html`,cat:`config`},{value:`ini`,cat:`config`},{value:`java`,cat:`code`},{value:`jl`,cat:`code`},{value:`js`,cat:`code`},{value:`json`,cat:`config`},{value:`jsx`,cat:`code`,jsx:!0},{value:`kt`,cat:`code`},{value:`less`,cat:`config`},{value:`lua`,cat:`code`},{value:`m`,cat:`code`},{value:`md`,cat:`prose`,def:!0},{value:`mdx`,cat:`prose`},{value:`mjs`,cat:`code`},{value:`mk`,cat:`code`},{value:`ml`,cat:`code`},{value:`mli`,cat:`code`},{value:`mm`,cat:`code`},{value:`nim`,cat:`code`},{value:`php`,cat:`code`},{value:`pl`,cat:`code`},{value:`prisma`,cat:`code`},{value:`properties`,cat:`config`},{value:`proto`,cat:`code`},{value:`ps1`,cat:`code`},{value:`py`,cat:`code`},{value:`r`,cat:`code`},{value:`razor`,cat:`code`},{value:`rb`,cat:`code`},{value:`rs`,cat:`code`},{value:`rst`,cat:`prose`},{value:`s`,cat:`code`},{value:`scala`,cat:`code`},{value:`scss`,cat:`config`},{value:`sh`,cat:`code`},{value:`sol`,cat:`code`},{value:`sql`,cat:`code`},{value:`styl`,cat:`config`},{value:`svelte`,cat:`code`},{value:`swift`,cat:`code`},{value:`tex`,cat:`prose`},{value:`tf`,cat:`config`},{value:`tfvars`,cat:`config`},{value:`thrift`,cat:`code`},{value:`toml`,cat:`config`},{value:`ts`,cat:`code`},{value:`tsx`,cat:`code`,jsx:!0},{value:`txt`,cat:`prose`},{value:`v`,cat:`code`},{value:`vb`,cat:`code`},{value:`vue`,cat:`code`},{value:`xml`,cat:`config`},{value:`yaml`,cat:`config`},{value:`yml`,cat:`config`},{value:`zig`,cat:`code`},{value:`zsh`,cat:`code`}],c=new Set(s.filter(e=>e.cat===`prose`).map(e=>e.value)),l=new Set(s.filter(e=>e.cat===`code`).map(e=>e.value)),u=new Set(s.filter(e=>e.cat===`config`).map(e=>e.value)),d=new Set(s.filter(e=>e.jsx).map(e=>e.value));function f(e,t){let n=[];if(c.has(t)){let t=e.replace(/^\s*(import|export\s+\{[^}]*\}|export\s+\*|package|require|#include|from\s+['"][^'"]+['"]\s*(import)?)\b.*/gm,``).replace(/```[\s\S]*?```/g,` `).replace(/`[^`\n]+`/g,` `).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/https?:\/\/\S+/g,` `).replace(/[#*_~>`|!\[\](){}=+\-]/g,` `);n.push(...o(t))}else l.has(t)?(d.has(t)&&(e=e.replace(/<\/?[A-Z][A-Za-z0-9.]*[^>]*>/g,` `),e=e.replace(/<\/?(div|span|main|section|article|aside|nav|header|footer|form|input|button|select|option|textarea|table|thead|tbody|tr|td|th|ul|ol|li|a|img|p|h[1-6]|label|figure|figcaption|picture|video|audio|canvas|svg|path|circle|rect|g|defs|use|link|meta|head|html|body|script|style|br|hr|strong|em|code|pre|blockquote|small|sub|sup)\b[^>]*>/gi,` `),e=e.replace(/\b(className|onClick|onChange|onSubmit|onFocus|onBlur|onKeyDown|onKeyUp|onMouseDown|onMouseUp|htmlFor|tabIndex|strokeWidth|viewBox|fillOpacity|strokeOpacity|defaultValue|placeholder|disabled|checked|readOnly|required|multiple|autoFocus|autoComplete|type|href|src|alt|width|height|style|key|ref)\s*=/g,` =`)),e=e.replace(/^\s*(import\s+[\w.*{},\s'"@/-]+;?|from\s+['"][^'"]+['"]\s*;?|package\s+[\w.]+;?|namespace\s+[\w.]+;?|using\s+[\w.]+;?|require\s*\(?\s*['"][^'"]+['"]\s*\)?;?)\s*$/gm,``),e.replace(/(?:\/\/|#(?!.*[{}[\]<>])| -- )\s*(.+)$/gm,(e,t)=>(n.push(...o(t)),e)),e.replace(/\/\*[\s\S]*?\*\//g,e=>(n.push(...o(e)),e)),e.replace(/"""[\s\S]*?"""|'''[\s\S]*?'''/g,e=>(n.push(...o(e)),e)),e.replace(/["'`]([A-Za-zÀ-ÿ][A-Za-zÀ-ÿ\s,.'éàèùâêîôûç]{3,})["'`]/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e))):u.has(t)&&(e.replace(/:\s*["']([^"']{3,})["']/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e)));return n.filter(e=>!i(e))}let p=F(``),m=F(``),h=F(1),g=F(``),_=F(!0),v=F(!1),y=F(L(s.map(e=>({value:e.value,label:`.`+e.value,checked:!!e.def}))));function b(){return H(y).filter(e=>e.checked).map(e=>e.value)}let x=P(()=>H(y).every(e=>e.checked)),S=F(null),C=F(null),w=F(0),T=F(null),E=F(L([])),D=F(L([])),ee=F(!1),O=F(``),k=F(0),A=F(L([]));function te(){localStorage.setItem(`wc-exts`,JSON.stringify(b()))}function ne(){let e=H(x);I(y,H(y).map(t=>({...t,checked:!e})),!0),te()}function re(){te()}function ie(){return new Set((H(m)||``).split(/[\n,]/).map(e=>e.trim()).filter(Boolean))}function ae(e){let t=ie();t.has(e)||(t.add(e),I(m,[...t].join(`, `),!0),localStorage.setItem(`wc-exclude`,H(m)),H(ue)&&_e(H(fe)),se())}function oe(){localStorage.setItem(`wc-exclude`,H(m)),H(ue)&&_e(H(fe)),se()}function se(){H(ee)&&H(O)&&je(H(O))}function ce(){H(S)&&Ae()}function le(){let e=localStorage.getItem(`wc-root`);e&&(I(p,e,!0),I(xe,e,!0));let t=localStorage.getItem(`wc-exclude`);t&&I(m,t,!0);let n=localStorage.getItem(`wc-exts`);if(n)try{let e=JSON.parse(n);I(y,H(y).map(t=>({...t,checked:e.includes(t.value)})),!0)}catch{}}let ue=F(!1),de=F(null),fe=F(``),pe=F(``),me=F(null),he=F(``);function ge(){I(ue,!H(ue)),H(ue)&&_e(H(fe)||H(p)||`/`)}async function _e(e){I(me,null),I(he,`Loading…`);try{let t=await fetch(`/api/browse?all=1&path=`+encodeURIComponent(e)).then(e=>e.json());I(fe,t.current,!0),I(de,t.parent,!0),I(pe,t.current,!0);let n=H(p).trim(),r=(e,t)=>n&&e.startsWith(n+`/`)?e.slice(n.length+1):t,i=ie(),a=(t.dirs||[]).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`dir`,name:e.name,path:e.path,entry:r(e.path,e.name)})),o=b(),s=(t.files||[]).filter(e=>o.some(t=>e.name.endsWith(`.`+t))).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`file`,name:e.name,entry:r(e.path,e.name)})),c=[...a,...s];I(me,c,!0),I(he,c.length?``:`Empty directory`,!0)}catch{I(me,[],!0),I(he,`Cannot read directory`)}}function ve(){H(de)&&_e(H(de))}let ye=F(!1),be=F(null),xe=F(``),Se=F(``),j=F(null),Ce=F(``);function M(){I(ye,!H(ye)),H(ye)&&we(H(xe)||H(p)||`/`)}async function we(e){I(j,null),I(Ce,`Loading…`);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());I(xe,t.current,!0),I(be,t.parent,!0),I(Se,t.current,!0),I(j,(t.dirs||[]).map(e=>({name:e.name,path:e.path})),!0),I(Ce,H(j).length?``:`No sub-folders`,!0)}catch{I(j,[],!0),I(Ce,`Cannot read directory`)}}function Te(){H(be)&&we(H(be))}function Ee(){I(p,H(xe),!0),localStorage.setItem(`wc-root`,H(xe)),I(ye,!1),I(m,``),localStorage.removeItem(`wc-exclude`),I(fe,H(xe),!0)}let De=F(null),Oe=F(null),ke=F(!1);function Ae(){if(!H(S)||!H(C))return;let e=Math.max(1,H(h)||1),t=[...H(S).entries()].sort((e,t)=>t[1]-e[1]),n=t.filter(([t])=>(H(C).get(t)||new Set).size>=e).slice(0,150);if(!n.length){let n=t.length;I(g,n?`${n} domain word(s) found but none appear in ${e}+ file(s). Lower the "Min files" threshold to 1.`:`No domain words extracted. Try adding more file extensions or a broader folder.`,!0),I(_,!0),I(ke,!1),I(v,!1);return}let r=[...H(S).keys()].filter(t=>(H(C).get(t)||new Set).size>=e).length;I(T,{scanned:H(w),unique:r,shown:n.length},!0);let i=n.slice(0,50),a=i[0][1];I(D,i.map(([e,t])=>({word:e,freq:t,pct:Math.round(t/a*100)})),!0),I(v,!0),I(_,!1);let o=document.documentElement.classList.contains(`dark`),s=o?[`#60a5fa`,`#34d399`,`#f9a8d4`,`#a78bfa`,`#fbbf24`,`#6ee7b7`,`#93c5fd`,`#fb923c`,`#4ade80`,`#f472b6`]:[`#1d4ed8`,`#047857`,`#7c3aed`,`#b45309`,`#be123c`,`#0369a1`,`#4338ca`,`#c2410c`,`#15803d`,`#9333ea`];requestAnimationFrame(()=>{if(!H(De)||!H(Oe))return;let e=H(De),t=H(Oe);e.width=Math.max(400,t.offsetWidth),e.height=Math.max(300,t.offsetHeight),e.style.width=e.width+`px`,e.style.height=e.height+`px`,I(ke,!0);let n=Math.sqrt(e.width*e.height/(800*500)),r=Math.min(220,Math.round(72*n)),c=i.map(([e,t])=>[e,Math.max(12,Math.round(r*t/a))]);window.WordCloud?.(e,{list:c,gridSize:Math.round(4*e.width/1024),fontFamily:`ui-sans-serif, system-ui, sans-serif`,color:()=>s[Math.floor(Math.random()*s.length)],backgroundColor:o?`#030712`:`#ffffff`,rotateRatio:.2,minSize:6,shrinkToFit:!0,click:e=>je(e[0])})})}function je(e){if(!H(C)||!H(S))return;let t=[...H(C).get(e)||[]].sort(),n=H(S).get(e)||0;I(O,e,!0),I(k,n,!0),I(A,t,!0),I(ee,!0)}function Me(){I(ee,!1)}async function Ne(){let e=H(p).trim();if(!e){I(g,`Please select a root folder first.`),I(_,!0);return}let t=b();if(!t.length){I(g,`Please select at least one extension.`),I(_,!0);return}I(ye,!1),I(v,!1),I(ee,!1),I(g,`Reading files…`),I(_,!0),I(ke,!1);try{let n=H(m).trim(),r=n?n.split(/[\n,]/).map(e=>e.trim()).filter(Boolean):[];localStorage.setItem(`wc-exclude`,n);let i=new URLSearchParams({path:e});t.forEach(e=>i.append(`ext`,e)),r.forEach(e=>i.append(`exclude`,e));let a=await fetch(`/api/wordcloud?`+i);if(!a.ok){I(g,`Error: `+((await a.json()).error||a.statusText));return}let{files:o,fileTexts:s}=await a.json();I(g,`Analyzing ${o} file(s)…`);let c=new Map,l=new Map,u=new Set;I(w,o,!0);for(let{path:e,text:t}of s){let n=(e.split(`.`).pop()||``).toLowerCase();n&&u.add(n);let r=f(t,n),i=new Set;for(let t of r)c.set(t,(c.get(t)||0)+1),i.has(t)||(i.add(t),l.has(t)||l.set(t,new Set),l.get(t).add(e))}I(S,c,!0),I(C,l,!0),I(E,[...u].sort().map(e=>`.`+e),!0),Ae()}catch(e){I(g,`Error: `+e.message)}}let Pe=!1;On(()=>{t.open&&!Pe?(Pe=!0,I(g,`Choose a root folder and click Launch.`),I(_,!0),I(ke,!1),I(v,!1),I(ee,!1),I(S,null),I(C,null),I(T,null),I(D,[],!0),I(ye,!1),I(ue,!1),I(h,1),le(),H(p)||fetch(`/api/config`).then(e=>e.json()).then(e=>{e.docsFolder&&(I(p,e.docsFolder,!0),I(xe,e.docsFolder,!0))}).catch(()=>{})):t.open||(Pe=!1)});var Fe=Ur(),Ie=z(Fe),Le=e=>{var n=A_(),r=R(n),i=R(r),a=R(i,!0);N(i);var o=B(i,2),s=R(o,!0);N(o),N(r);var c=B(r,2),l=R(c),u=R(l),d=R(u,!0);N(u);var f=B(u,2);Ei(f);var b=B(f,2),S=B(R(b)),C=R(S,!0);N(S),N(b);var w=B(b,2),te=R(w,!0);N(w),N(l);var ie=B(l,2),se=R(ie),le=R(se,!0);N(se);var fe=B(se,2);vn(fe);var xe=B(fe,2),Ae=B(R(xe)),Pe=R(Ae,!0);N(Ae),N(xe),N(ie);var Fe=B(ie,2),Ie=e=>{var t=__(),n=R(t),r=R(n),i=B(r,2),a=R(i,!0);N(i),N(n);var o=B(n,2),s=R(o),c=e=>{var t=p_(),n=R(t,!0);N(t),V(()=>K(n,H(he))),G(e,t)},l=e=>{var t=m_(),n=R(t,!0);N(t),V(()=>{hi(t,1,`px-3 py-3 text-xs ${H(he)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),K(n,H(he))}),G(e,t)},u=e=>{var t=Ur();J(z(t),17,()=>H(me),Yr,(e,t)=>{var n=Ur(),r=z(n),i=e=>{var n=h_(),r=R(n),i=B(R(r),2),a=R(i,!0);N(i),N(r);var o=B(r,2);N(n),V(()=>K(a,H(t).name)),U(`click`,r,()=>_e(H(t).path)),U(`click`,o,()=>ae(H(t).entry)),G(e,n)},a=e=>{var n=g_(),r=R(n),i=B(R(r),2),a=R(i,!0);N(i),N(r);var o=B(r,2);N(n),V(()=>K(a,H(t).name)),U(`click`,o,()=>ae(H(t).entry)),G(e,n)};q(r,e=>{H(t).kind===`dir`?e(i):e(a,-1)}),G(e,n)}),G(e,t)};q(s,e=>{H(me)===null?e(c):H(me).length===0?e(l,1):e(u,-1)}),N(o),N(t),V(()=>{r.disabled=!H(de),K(a,H(pe))}),U(`click`,r,ve),G(e,t)};q(Fe,e=>{H(ue)&&e(Ie)});var Le=B(Fe,2),Re=R(Le),ze=R(Re,!0);N(Re);var Be=B(Re,2),Ve=R(Be);Ei(Ve);var He=B(Ve);N(Be),J(B(Be,2),17,()=>H(y),e=>e.value,(e,t,n)=>{var r=v_(),i=R(r);Ei(i);var a=B(i);N(r),V(()=>K(a,` ${H(t).label??``}`)),U(`change`,i,re),Ni(i,()=>H(t).checked,e=>H(t).checked=e),G(e,r)}),N(Le);var Ue=B(Le,2),We=e=>{var t=__(),n=R(t),r=R(n),i=B(r,2),a=R(i,!0);N(i),N(n);var o=B(n,2),s=R(o),c=e=>{var t=p_(),n=R(t,!0);N(t),V(()=>K(n,H(Ce))),G(e,t)},l=e=>{var t=x_(),n=z(t),r=e=>{var t=m_(),n=R(t,!0);N(t),V(()=>{hi(t,1,`px-3 py-3 text-xs ${H(Ce)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),K(n,H(Ce))}),G(e,t)},i=e=>{var t=Ur();J(z(t),17,()=>H(j),Yr,(e,t)=>{var n=y_(),r=R(n),i=B(R(r),2),a=R(i,!0);N(i),N(r);var o=B(r,2);N(n),V(()=>K(a,H(t).name)),U(`click`,r,()=>we(H(t).path)),U(`click`,o,()=>ae(H(t).name)),G(e,n)}),G(e,t)};q(n,e=>{H(j).length===0?e(r):e(i,-1)});var a=B(n,2),o=e=>{var t=b_(),n=B(R(t)),r=R(n,!0);N(n),N(t),V(()=>K(r,H(Se))),U(`click`,t,Ee),G(e,t)};q(a,e=>{H(Ce)!==`Cannot read directory`&&e(o)}),G(e,t)};q(s,e=>{H(j)===null?e(c):e(l,-1)}),N(o),N(t),V(()=>{r.disabled=!H(be),K(a,H(Se))}),U(`click`,r,Te),G(e,t)};q(Ue,e=>{H(ye)&&e(We)}),N(c);var Ge=B(c,2),Ke=R(Ge),qe=e=>{var t=T_(),n=R(t),r=R(n),i=e=>{var t=C_(),n=z(t),r=R(n);N(n);var i=B(n,2),a=R(i);N(i);var o=B(i,2),s=R(o);N(o);var c=B(o,2),l=e=>{var t=S_(),n=R(t);N(t),V((e,r)=>{Y(t,`title`,e),K(n,`${H(E).length??``} extension${H(E).length>1?`s`:``} found (${r??``})`)},[()=>H(E).join(`, `),()=>H(E).join(`, `)]),G(e,t)};q(c,e=>{H(E).length&&e(l)}),V(()=>{K(r,`${H(T).scanned??``} file(s) scanned`),K(a,`${H(T).unique??``} unique domain words`),K(s,`${H(T).shown??``} shown`)}),G(e,t)};q(r,e=>{H(T)&&e(i)}),N(n);var a=B(n,2),o=R(a),s=R(o,!0);N(o);var c=B(o,2);Ei(c);var l=B(c,2),u=R(l,!0);N(l),N(a);var d=B(a,2),f=R(d,!0);N(d);var p=B(d,2);J(p,21,()=>H(D),Yr,(e,t,n)=>{var r=w_(),i=R(r);i.textContent=n+1;var a=B(i,2),o=R(a),s=R(o),c=R(s,!0);N(s);var l=B(s,2),u=R(l,!0);N(l),N(o);var d=B(o,2),f=R(d);N(d),N(a),N(r),V(()=>{K(c,H(t).word),K(u,H(t).freq),_i(f,`width:${H(t).pct??``}%`)}),U(`click`,r,()=>je(H(t).word)),G(e,r)}),N(p),N(t),V((e,t,n,r,i,a)=>{Y(o,`title`,e),K(s,t),Y(c,`title`,n),Y(l,`title`,r),K(u,i),K(f,a)},[()=>X(`wc.min_files_hint`),()=>X(`wc.min_files_label`),()=>X(`wc.min_files_hint`),()=>X(`wc.apply_hint`),()=>X(`wc.apply_btn`),()=>X(`wc.top_words`)]),Mi(c,()=>H(h),e=>I(h,e)),U(`click`,l,ce),G(e,t)};q(Ke,e=>{H(v)&&e(qe)});var Je=B(Ke,2),Ye=R(Je),Xe=e=>{var t=E_(),n=R(t,!0);N(t),V(()=>K(n,H(g))),G(e,t)};q(Ye,e=>{H(_)&&e(Xe)});var Ze=B(Ye,2);let Qe;Li(Ze,e=>I(De,e),()=>H(De)),N(Je),Li(Je,e=>I(Oe,e),()=>H(Oe));var $e=B(Je,2),et=e=>{var t=k_(),n=R(t),r=R(n),i=R(r);N(r);var a=B(r,2);N(n);var o=B(n,2),s=R(o,!0);N(o);var c=B(o,2),l=R(c),u=e=>{var t=Ur();J(z(t),17,()=>H(A),Yr,(e,t)=>{var n=D_(),r=R(n),i=R(r,!0);N(r);var a=B(r,2);N(n),V(()=>K(i,H(t))),U(`click`,a,()=>ae(H(t))),G(e,n)}),G(e,t)},d=e=>{G(e,O_())};q(l,e=>{H(A).length?e(u):e(d,-1)}),N(c),N(t),V(e=>{K(i,`${H(O)??``} ×${H(k)??``}`),K(s,e)},[()=>X(`wc.found_in`)]),U(`click`,a,Me),G(e,t)};q($e,e=>{H(ee)&&e(et)}),N(Ge),N(n),V((e,t,n,r,i,o,c,l,u,f)=>{K(a,e),K(s,t),K(d,n),K(C,r),K(te,i),K(le,o),Y(fe,`placeholder`,c),K(Pe,l),K(ze,u),Oi(Ve,H(x)),K(He,` ${f??``}`),Qe=hi(Ze,1,``,null,Qe,{hidden:!H(ke)})},[()=>X(`wc.title`),()=>X(`wc.close_btn`),()=>X(`wc.search_root_label`),()=>X(`wc.browse_btn`),()=>X(`wc.launch_btn`),()=>X(`wc.exclude_label`),()=>X(`wc.exclude_placeholder`),()=>X(`wc.browse_btn`),()=>X(`wc.extensions_label`),()=>X(`wc.all_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),Mi(f,()=>H(p),e=>I(p,e)),U(`click`,b,M),U(`click`,w,Ne),U(`input`,fe,oe),Mi(fe,()=>H(m),e=>I(m,e)),U(`click`,xe,ge),U(`change`,Ve,ne),G(e,n)};q(Ie,e=>{t.open&&e(Le)}),G(e,Fe),Ke()}Nr([`click`,`input`,`change`]);var M_=W(`<button class="ghost-button"><i class="fa-solid fa-cloud"></i></button> <button title="Toggle dark mode" class="ghost-button" aria-label="Toggle dark mode"> </button>`,1),N_=W(`<div class="relative hidden sm:block"><input type="search" class="w-56 pl-8 pr-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="absolute left-2.5 top-2 text-gray-400 text-sm pointer-events-none">🔍</span></div>`),P_=W(`<p class="p-8 text-red-500"> </p>`),F_=W(`<div class="h-full flex items-center justify-center p-8"><div class="max-w-md text-center"><div class="text-5xl mb-4 select-none" aria-hidden="true">📚</div> <h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-2"> </h2> <p class="text-sm text-gray-500 dark:text-gray-500"> </p> <p class="mt-4 text-xs text-gray-400 dark:text-gray-600 font-mono bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 inline-block"> </p> <p class="mt-2 text-xs text-gray-400"> </p></div></div>`),I_=W(`<div class="app-shell bg-gray-50 text-gray-900 dark:bg-gray-900 dark:text-gray-100"><!> <div class="flex overflow-hidden"><!> <main id="home-content-area" class="flex-1 overflow-y-auto"><!></main></div></div> <!> <!> <!> <!>`,1);function L_(e,t){Ge(t,!0);let n=F(!1),r=F(!1),i=F(!1),a=F(!1),o=F(null),s=F(!1),c=F(``),l=F(!1),u=F(`Living AI Documentation`),d=F(`YYYY_MM_DD_HH_mm_[Category]_title.md`),f=null;function p(){try{let e=localStorage.getItem(`ld-dark`);if(e!==null)return e===`true`}catch{}return window.matchMedia(`(prefers-color-scheme: dark)`).matches}function m(e){I(l,e,!0),document.documentElement.classList.toggle(`dark`,e)}function h(){m(!H(l));try{localStorage.setItem(`ld-dark`,String(H(l)))}catch{}}On(()=>{let e=document.getElementById(`hljs-dark`),t=document.getElementById(`hljs-light`);if(!e||!t)return;let n=Z.codeBlockLightTheme&&!H(l);e.disabled=n,t.disabled=!n,document.body.classList.toggle(`ld-code-light`,n)});function g(e){let t=e.trim();if(f&&clearTimeout(f),!t){Z.searchQuery=``,Z.searchResults=null;return}Z.searchQuery=t,Z.searchResults=Z.allDocs.filter(e=>e.title.toLowerCase().includes(t.toLowerCase())||e.category.toLowerCase().includes(t.toLowerCase())),f=window.setTimeout(async()=>{try{let e=await Nm(t);t===Z.searchQuery&&(Z.searchResults=e)}catch{}},350)}let _=F(L([]));function v(e){let t=H(_)[e];t&&(I(_,H(_).slice(0,e),!0),y(t.id,!1,`restore`))}async function y(e,t=!1,n=!1,r=null){if(n===!0&&Z.currentDocId&&Z.currentDocId!==e){let t=H(_).findIndex(t=>t.id===e);if(t!==-1)I(_,H(_).slice(0,t),!0);else{let e=Z.allDocs.find(e=>e.id===Z.currentDocId);I(_,[...H(_),{id:Z.currentDocId,title:e?e.title:Z.currentDocId}],!0)}}else n||I(_,[],!0);Z.currentDocId=e;let i=Z.allDocs.find(t=>t.id===e);if(i&&Z.revealDoc(i),!t){let t=new URL(location.href);t.searchParams.set(`doc`,e),t.hash=r?`#${r}`:``,history.pushState({docId:e,anchor:r||null},``,t)}I(s,!0),I(c,``);try{let t=await km(e);t.id=e,I(o,t,!0),document.title=t.title,requestAnimationFrame(()=>{let e=document.getElementById(`home-content-area`);if(r){let t=document.getElementById(r);t&&e&&(e.scrollTop+=t.getBoundingClientRect().top-e.getBoundingClientRect().top-80)}else e&&(e.scrollTop=0)})}catch(e){I(c,X(`doc.failed_to_load`)+(e instanceof Error?e.message:String(e)))}finally{I(s,!1)}}async function b(e){if(!H(o))return;let t=H(o).id,n=await fetch(`/api/documents/`+t,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:e})});if(!n.ok)throw Error(await n.text());let r=await km(t);r.id=t,I(o,r,!0);let i=e.match(/\]\(\s*\.?\/files\/[^)\s]+/g),a={...Z.fileAttachmentCounts};i&&i.length?a[t]=i.length:delete a[t],Z.fileAttachmentCounts=a}function x(e){let t=Z.allDocs.find(t=>t.id===e);if(!t)return null;let n=(t.folder||[]).join(`/`),r=e=>(e.folder||[]).join(`/`)===n,i=Z.hideCategories?Z.allDocs.filter(r).slice().sort((e,t)=>(e.filename||``).localeCompare(t.filename||``)):Z.allDocs.filter(e=>r(e)&&e.category===t.category),a=i.findIndex(t=>t.id===e);if(a===-1)return null;let o=i[a+1]??i[a-1];return o?o.id:null}async function S(){if(!H(o))return;let e=H(o).id;if(!(await fetch(`/api/documents/`+encodeURIComponent(e),{method:`DELETE`})).ok)return;let t=x(e);Z.allDocs=Z.allDocs.filter(t=>t.id!==e),Array.isArray(Z.searchResults)&&(Z.searchResults=Z.searchResults.filter(t=>t.id!==e));let n={...Z.annotationCounts};delete n[e],Z.annotationCounts=n;let r={...Z.fileAttachmentCounts};delete r[e],Z.fileAttachmentCounts=r,t?await y(t):(Z.currentDocId=null,I(o,null),history.pushState({},``,location.pathname))}async function C(){let[e,t]=await Promise.all([Dm(),Em()]);if(Z.allDocs=e,t.docsFolder)try{Z.allFolderPaths=await Om(t.docsFolder)}catch{Z.allFolderPaths=[]}let[n,r,i]=await Promise.all([Am(),jm(),Mm()]);Z.annotationCounts=n,Z.fileAttachmentCounts=r,Z.docStatuses=i}Vi(async()=>{m(p());let e=await Em();await la(e.language||`en`),e.title&&(document.title=e.title,I(u,e.title,!0)),e.filenamePattern&&I(d,e.filenamePattern+`.md`),Z.exclusiveFolderExpansion=!!e.exclusiveFolderExpansion,Z.exclusiveCategoryExpansion=!!e.exclusiveCategoryExpansion,Z.codeBlockMaxHeight=typeof e.codeBlockMaxHeight==`number`?e.codeBlockMaxHeight:400,Z.imageRoundedCorners=!!e.imageRoundedCorners,Z.imageCentered=!!e.imageCentered,Z.imageBorder=!!e.imageBorder,Z.codeBlockLightTheme=!!e.codeBlockLightTheme,Z.codeBlockMaxHeight>0&&document.documentElement.style.setProperty(`--ld-code-max-h`,Z.codeBlockMaxHeight+`px`),Z.expandedCategories.size===0&&(Z.expandedCategories=new Set([`General`])),await C();let t=new URLSearchParams(location.search).get(`doc`);if(t)y(t,!0,!1,location.hash?location.hash.slice(1):null);else{let e=Z.allDocs.find(e=>e.category===`General`)??Z.allDocs[0];e&&y(e.id,!0)}let n=e=>{let t=e.state?.docId||new URLSearchParams(location.search).get(`doc`),n=e.state?.anchor||(location.hash.length>1?location.hash.slice(1):null);t&&y(t,!0,!1,n)};window.addEventListener(`popstate`,n);let r=()=>{C()};return window.addEventListener(`ld:documents-changed`,r),()=>{window.removeEventListener(`popstate`,n),window.removeEventListener(`ld:documents-changed`,r)}});var w=I_(),T=z(w),E=R(T);Ja(E,{get title(){return H(u)},subtitle:``,actions:e=>{var t=M_(),n=z(t),r=B(n,2),i=R(r,!0);N(r),V((e,t)=>{Y(n,`title`,e),Y(n,`aria-label`,t),K(i,H(l)?`☀`:`☾`)},[()=>X(`nav.word_cloud`),()=>X(`nav.word_cloud`)]),U(`click`,n,()=>I(a,!0)),U(`click`,r,h),G(e,t)},children:(e,t)=>{var n=N_(),r=R(n);Ei(r),Pe(2),N(n),V(e=>{Y(r,`placeholder`,e),Di(r,Z.searchQuery)},[()=>X(`nav.search_placeholder`)]),U(`input`,r,e=>g(e.target.value)),G(e,n)},$$slots:{actions:!0,default:!0}});var D=B(E,2),ee=R(D);ah(ee,{onopen:e=>y(e),onsearch:g,onexport:()=>I(i,!0),onnewfolder:()=>I(n,!0),onnewdoc:()=>I(r,!0)});var O=B(ee,2),k=R(O),A=e=>{var t=Ur(),n=z(t),r=e=>{var t=P_(),n=R(t,!0);N(t),V(()=>K(n,H(c))),G(e,t)},i=e=>{Vg(e,{get doc(){return H(o)},get navHistory(){return H(_)},ongoback:v,onopen:(e,t)=>y(e,!1,!0,t),onsave:b,ondelete:S})};q(n,e=>{H(c)?e(r):e(i,-1)}),G(e,t)},te=e=>{var t=F_(),n=R(t),r=B(R(n),2),i=R(r,!0);N(r);var a=B(r,2),o=R(a,!0);N(a);var s=B(a,2),c=R(s,!0);N(s);var l=B(s,2),u=R(l,!0);N(l),N(n),N(t),V((e,t,n)=>{K(i,e),K(o,t),K(c,H(d)),K(u,n)},[()=>X(`welcome.title`),()=>X(`welcome.hint`),()=>X(`welcome.pattern_hint`)]),G(e,t)};q(k,e=>{H(o)?e(A):e(te,-1)}),N(O),N(D),N(T);var ne=B(T,2);Yg(ne,{get open(){return H(n)},onclose:()=>I(n,!1),onsuccess:C});var re=B(ne,2);i_(re,{get open(){return H(r)},onclose:()=>I(r,!1),onsuccess:async e=>{await C(),y(e)}});var ie=B(re,2);f_(ie,{get open(){return H(i)},onclose:()=>I(i,!1)}),j_(B(ie,2),{get open(){return H(a)},onclose:()=>I(a,!1)}),G(e,w),Ke()}Nr([`click`,`input`]);var R_=`modulepreload`,z_=function(e){return`/`+e},B_={},V_=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=z_(t,n),t=s(t),t in B_)return;B_[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:R_,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},H_=W(`<div class="flex flex-col h-screen overflow-hidden bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100"><header class="flex items-center gap-1 px-2 h-12 shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 shadow-sm z-10"><button class="tool-btn !w-auto px-2 text-xs font-medium text-gray-500 dark:text-gray-400"> </button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSidebar" class="tool-btn">☰</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnCopyDiagramId" class="tool-btn"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="8" height="9" rx="1.5"></rect><path d="M3 11V3a1 1 0 0 1 1-1h7"></path></svg></button> <button id="toolSelect" class="tool-btn tool-active"><svg width="11" height="13" viewBox="0 0 11 13" fill="currentColor" stroke="none"><path d="M1 1 L1 12 L4 9 L6.5 13 L8 12.2 L5.5 8.2 L10 8.2 Z"></path></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolBox" class="tool-btn"><svg width="15" height="10" viewBox="0 0 15 10" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="1" width="13" height="8" rx="1"></rect></svg></button> <button id="toolEllipse" class="tool-btn"><svg width="16" height="10" viewBox="0 0 16 10" fill="none" stroke="currentColor" stroke-width="1.5"><ellipse cx="8" cy="5" rx="7" ry="4"></ellipse></svg></button> <button id="toolDatabase" class="tool-btn"><svg width="12" height="16" viewBox="0 0 12 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><ellipse cx="6" cy="3" rx="5" ry="2"></ellipse><path d="M1 3v10c0 1.1 2.2 2 5 2s5-.9 5-2V3"></path><path d="M11 7.5c0 1.1-2.2 2-5 2s-5-.9-5-2"></path></svg></button> <button id="toolCircle" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="6.5" cy="6.5" r="5.5"></circle></svg></button> <button id="toolActor" class="tool-btn"><svg width="12" height="17" viewBox="0 0 12 17" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><circle cx="6" cy="3" r="2.2"></circle><line x1="6" y1="5.2" x2="6" y2="10"></line><line x1="1.5" y1="7.5" x2="10.5" y2="7.5"></line><line x1="6" y1="10" x2="2.5" y2="15"></line><line x1="6" y1="10" x2="9.5" y2="15"></line></svg></button> <button id="toolPostIt" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M1 1 H9 L12 4 V12 H1 Z"></path><path d="M9 1 V4 H12" stroke-opacity="0.5"></path></svg></button> <button id="toolTextFree" class="tool-btn" style="font-size:11px; font-weight:600;">T</button> <button id="toolImage" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" rx="1.5"></rect><circle cx="4.5" cy="4.5" r="1.2"></circle><path d="M1 9.5 L4 6.5 L6.5 9 L9 7 L13 10.5"></path></svg></button> <a href="/shape-editor" class="tool-btn">✦</a> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolArrow" class="tool-btn">→</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDelete" class="tool-btn"><svg width="11" height="11" viewBox="0 0 11 11" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><line x1="1" y1="1" x2="10" y2="10"></line><line x1="10" y1="1" x2="1" y2="10"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDiagramDefaults" class="tool-btn"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button> <button id="btnAlign" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4"><line x1="0.5" y1="7.5" x2="13.5" y2="7.5"></line><line x1="3.5" y1="0.5" x2="3.5" y2="13.5" stroke-dasharray="1.5 1.5"></line><line x1="10.5" y1="0.5" x2="10.5" y2="13.5" stroke-dasharray="1.5 1.5"></line></svg></button> <button id="btnGrid" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.2"><line x1="5" y1="1" x2="5" y2="13"></line><line x1="9" y1="1" x2="9" y2="13"></line><line x1="1" y1="5" x2="13" y2="5"></line><line x1="1" y1="9" x2="13" y2="9"></line><rect x="1" y="1" width="12" height="12" rx="1"></rect></svg></button> <button id="btnEdgeStraight" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="12" x2="12" y2="2"></line><polyline points="8,2 12,2 12,6"></polyline></svg></button> <button id="btnEvidenceMode" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 1.5 H8.5 L11 4 V12.5 H4 Z"></path><path d="M8.5 1.5 V4 H11"></path><path d="M1.5 5.5 H6.5"></path><path d="M1.5 8 H6.5"></path><path d="M1.5 10.5 H5"></path></svg></button> <button id="btnResizeMode" class="tool-btn active-tool"><svg id="icon-resize-corner" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="7,10 10,10 10,7"></polyline></svg> <svg id="icon-resize-center" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="hidden"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="4,6.5 4,4 6.5,4"></polyline><polyline points="10,7.5 10,10 7.5,10"></polyline><line x1="10" y1="4" x2="4" y2="10"></line><polyline points="7.5,4 10,4 10,6.5"></polyline><polyline points="4,7.5 4,10 6.5,10"></polyline></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <input id="diagramTitle" type="text" class="flex-1 min-w-0 px-2 py-1 text-sm bg-transparent border-0 focus:outline-none focus:ring-1 focus:ring-blue-500 rounded text-gray-700 dark:text-gray-300 placeholder:text-gray-400"/> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnZoomOut" class="tool-btn">−</button> <span id="zoomLevel" class="text-xs text-gray-500 dark:text-gray-400 w-10 text-center tabular-nums select-none">100%</span> <button id="btnZoomIn" class="tool-btn">+</button> <button id="btnZoomReset" class="tool-btn">⊡</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDark" class="tool-btn"><span id="darkIcon">☽</span></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDebug" class="hidden tool-btn text-xs font-mono">dbg</button> <div id="sepDebug" class="hidden w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnExportDrawio" class="tool-btn"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSave" disabled="" class="px-3 py-1.5 text-xs font-semibold rounded-lg bg-blue-600 hover:bg-blue-700 text-white disabled:opacity-40 disabled:cursor-not-allowed shrink-0 transition-colors"><span> </span></button></header> <div class="flex flex-1 overflow-hidden"><div id="sidebar" class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex flex-col overflow-hidden" style="transition: width 0.2s ease"><div class="flex items-center justify-between px-3 py-2 border-b border-gray-200 dark:border-gray-700 shrink-0"><span class="text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"> </span> <button id="btnNewDiagram" class="text-xs font-medium text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"> </button></div> <div id="diagramList" class="flex-1 overflow-y-auto py-1"></div></div> <div role="separator" aria-orientation="vertical"></div> <div class="relative flex-1 overflow-hidden bg-gray-50 dark:bg-gray-950"><div id="vis-canvas" class="w-full h-full"></div> <div id="customShapeBar" class="hidden"><div id="customShapeBarBody"></div></div> <div id="debugLayer"></div> <div id="evidenceLayer" class="hidden"></div> <div id="stampOverlay" style="position:absolute;inset:0;display:none;z-index:11;cursor:crosshair;"></div> <div id="selectionOverlay"><div id="rh-tl" class="resize-handle" style="top: -5px; left: -5px; cursor: nw-resize"></div> <div id="rh-tr" class="resize-handle" style="top: -5px; right: -5px; cursor: ne-resize"></div> <div id="rh-bl" class="resize-handle" style="bottom: -5px; left: -5px; cursor: sw-resize"></div> <div id="rh-br" class="resize-handle" style="bottom: -5px; right: -5px; cursor: se-resize"></div> <div id="rh-rotate">↻</div> <div id="rh-label-rotate" style="left: 0; top: -28px;"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(25,5,5)"><line x1="2.5" y1="3" x2="7.5" y2="3"></line><line x1="5" y1="3" x2="5" y2="8"></line></g></svg></div></div> <aside id="evidencePanel" class="hidden absolute top-0 right-0 bottom-0 w-80 max-w-[85vw] z-30 bg-gray-50 dark:bg-gray-900 border-l border-gray-200 dark:border-gray-700 shadow-xl flex flex-col"><div class="flex items-center justify-between gap-2 px-4 py-3 border-b border-gray-200 dark:border-gray-700"><h2 id="evidencePanelTitle" class="text-sm font-semibold text-gray-800 dark:text-gray-100"> </h2> <button id="btnEvidenceClose" class="tool-btn !w-7 !h-7">×</button></div> <div id="evidencePanelBody" class="flex-1 overflow-y-auto p-3 space-y-3"></div></aside> <div id="nodePanel" class="float-panel hidden"><button id="btnNodeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="nodePanelControls" class="contents"><button id="nodeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#f5f5f4;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <input id="nodeBgOpacity" type="range" min="0" max="100" step="5" value="100" class="w-16 h-1 accent-orange-500 cursor-pointer"/> <div class="panel-sep"></div> <button id="btnNodeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnNodeLink" class="tool-btn !w-6 !h-6"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 7.5a3.5 3.5 0 0 0 5 0l1.5-1.5a3.5 3.5 0 0 0-5-5L5 2.5"></path><path d="M8 5.5a3.5 3.5 0 0 0-5 0L1.5 7a3.5 3.5 0 0 0 5 5L8 10.5"></path></svg></button> <div class="panel-sep"></div> <button id="btnNodeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="nodeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">13</span> <button id="btnNodeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnAlignLeft" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="1" y1="5" x2="7" y2="5"></line><line x1="1" y1="8" x2="9" y2="8"></line></svg></button> <button id="btnAlignCenter" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="2.5" y1="5" x2="9.5" y2="5"></line><line x1="1.5" y1="8" x2="10.5" y2="8"></line></svg></button> <button id="btnAlignRight" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="5" y1="5" x2="11" y2="5"></line><line x1="3" y1="8" x2="11" y2="8"></line></svg></button> <div class="panel-sep"></div> <button id="btnValignTop" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="1.5" x2="9" y2="1.5" stroke-width="2"></line><line x1="1" y1="5" x2="8" y2="5" stroke-width="1.3"></line><line x1="1" y1="8.5" x2="6" y2="8.5" stroke-width="1.3"></line></svg></button> <button id="btnValignMiddle" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="2.5" x2="8" y2="2.5" stroke-width="1.3"></line><line x1="1" y1="6" x2="9" y2="6" stroke-width="2"></line><line x1="1" y1="9.5" x2="6" y2="9.5" stroke-width="1.3"></line></svg></button> <button id="btnValignBottom" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="3.5" x2="8" y2="3.5" stroke-width="1.3"></line><line x1="1" y1="7" x2="6" y2="7" stroke-width="1.3"></line><line x1="1" y1="10.5" x2="9" y2="10.5" stroke-width="2"></line></svg></button> <div class="panel-sep"></div> <div id="customShapeLabelPlacementControls" class="hidden"><button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="above">T↑</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="below">T↓</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="left">←T</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="right">T→</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="center">T□</button> <div class="panel-sep"></div></div> <button id="btnZOrderBack" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1"></rect><rect x="5" y="1" width="8" height="8" rx="1" stroke-opacity="0.35"></rect></svg></button> <button id="btnZOrderFront" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1" stroke-opacity="0.35"></rect><rect x="5" y="1" width="8" height="8" rx="1"></rect></svg></button> <div class="panel-sep"></div> <button id="btnStampColor" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M7 2 C7 2 3 6.5 3 9 a4 4 0 0 0 8 0 C11 6.5 7 2 7 2 Z" fill="currentColor" fill-opacity="0.25"></path></svg></button> <button id="btnStampFontSize" class="tool-btn !w-7 !h-6 font-mono text-xs font-bold">Aa</button> <button id="btnStampSize" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="6" height="6" rx="0.8" fill="currentColor" fill-opacity="0.25"></rect><path d="M10 2 L12 2 L12 4"></path><path d="M12 2 L9 5"></path><path d="M10 12 L12 12 L12 10"></path><path d="M12 12 L9 9"></path></svg></button> <div class="panel-sep"></div> <button id="btnRotateCCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↺</button> <button id="btnRotateCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↻</button> <div class="panel-sep"></div> <button id="btnCopyPng" class="tool-btn !h-6 px-1.5 font-mono text-xs font-semibold flex items-center gap-0.5"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="7" x2="5" y2="1"></line><polyline points="2,4 5,1 8,4"></polyline><line x1="1" y1="9" x2="9" y2="9"></line></svg> PNG</button> <div class="panel-sep"></div> <button id="btnGroup" class="tool-btn !w-8 !h-7"><svg width="22" height="14" viewBox="0 0 22 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="20.6" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="4" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="15" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <button id="btnUngroup" class="tool-btn !w-8 !h-7"><svg width="26" height="14" viewBox="0 0 26 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="3" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="16.3" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="19" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <div class="panel-sep"></div> <button id="btnSaveShapeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <div id="linkPanel" class="float-panel hidden" style="min-width:260px; flex-direction:column; align-items:stretch; gap:0.5rem; padding:0.75rem;"><div class="text-xs font-semibold text-gray-500 dark:text-gray-400 mb-1"> </div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeUrl" value="url" class="accent-orange-500"/> <span> </span></label> <div id="linkUrlRow"><input id="linkUrlInput" type="url" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeDiagram" value="diagram" class="accent-orange-500"/> <span> </span></label> <div id="linkDiagramRow" class="hidden"><select id="linkDiagramSelect" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"></select></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeNew" value="new" class="accent-orange-500"/> <span> </span></label> <div id="linkNewRow" class="hidden"><input id="linkNewName" type="text" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <div class="flex gap-1 mt-1"><button id="btnLinkSave" class="flex-1 text-xs bg-orange-500 hover:bg-orange-600 text-white rounded px-2 py-1"> </button> <button id="btnLinkRemove" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-red-50 dark:hover:bg-red-900/20 hover:text-red-600"> </button> <button id="btnLinkCancel" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-gray-100 dark:hover:bg-gray-700">✕</button></div></div> <div id="edgePanel" class="float-panel hidden"><button id="btnEdgeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="edgePanelControls" class="contents"><button id="edgeBtnNone" class="tool-btn !w-7 !h-6 font-mono text-xs">—</button> <button id="edgeBtnFrom" class="tool-btn !w-7 !h-6 text-xs">←</button> <button id="edgeBtnTo" class="tool-btn !w-7 !h-6 text-xs">→</button> <button id="edgeBtnBoth" class="tool-btn !w-8 !h-6 text-xs">←→</button> <div class="panel-sep"></div> <button id="edgeBtnSolid" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line></svg></button> <button id="edgeBtnDashed" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="4,3"></line></svg></button> <div class="panel-sep"></div> <button id="btnEdgeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="edgeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">11</span> <button id="btnEdgeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnEdgeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnEdgeLabelWidthReset" class="tool-btn !w-6 !h-6 text-xs">↔</button> <div class="panel-sep"></div> <button id="btnEdgeLabelRotateCCW" class="tool-btn !w-7 !h-6 text-sm">↺</button> <button id="btnEdgeLabelRotateCW" class="tool-btn !w-7 !h-6 text-sm">↻</button> <div class="panel-sep"></div> <button id="btnEdgeLabelOffsetLeft" class="tool-btn !w-6 !h-6 text-sm">←</button> <button id="btnEdgeLabelOffsetRight" class="tool-btn !w-6 !h-6 text-sm">→</button> <button id="btnEdgeLabelOffsetUp" class="tool-btn !w-6 !h-6 text-sm">↑</button> <button id="btnEdgeLabelOffsetDown" class="tool-btn !w-6 !h-6 text-sm">↓</button> <button id="btnEdgeLabelOffsetReset" class="tool-btn !w-6 !h-6 text-xs">⊙</button> <div class="panel-sep"></div> <button id="btnEdgeWidthDecrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W−</button> <button id="btnEdgeWidthIncrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W+</button> <div class="panel-sep"></div> <button id="edgeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#a8a29e;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <button id="btnEdgeClearPorts" class="tool-btn !w-8 !h-6 text-xs">⊗</button> <div class="panel-sep"></div> <button id="btnSaveEdgeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <textarea id="labelInput" class="hidden" rows="1"></textarea> <div id="emptyState" class="absolute inset-0 flex flex-col items-center justify-center text-gray-400 dark:text-gray-600 pointer-events-none select-none"><svg width="52" height="44" viewBox="0 0 52 44" fill="none" stroke="currentColor" stroke-width="1.5" class="mb-3 opacity-50"><rect x="2" y="4" width="18" height="12" rx="2"></rect><rect x="32" y="28" width="18" height="12" rx="2"></rect><line x1="20" y1="10" x2="32" y2="34" stroke-dasharray="4,3"></line><rect x="17" y="16" width="18" height="12" rx="2"></rect><line x1="26" y1="16" x2="26" y2="10" stroke-dasharray="4,3"></line></svg> <p class="text-sm"> </p></div></div></div> <div id="toastContainer"></div> <div id="imageNameModal" style="display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.5);" class="flex items-center justify-center"><div class="bg-white dark:bg-gray-800 rounded-xl shadow-2xl p-6 w-80 flex flex-col gap-3"><p class="text-sm font-semibold text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-400 dark:text-gray-500">Lettres, chiffres, <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">_</code> et <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">-</code> uniquement.
151
151
  Laisser vide pour un nom automatique.</p> <div class="flex items-center gap-1"><input id="imageNameInput" type="text" autocomplete="off" spellcheck="false" class="flex-1 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700
152
152
  text-gray-900 dark:text-gray-100 text-sm px-2 py-1 outline-none focus:ring-2 focus:ring-blue-400"/> <span class="text-xs text-gray-400 dark:text-gray-500 whitespace-nowrap">.png</span></div> <p id="imageNameError" class="text-xs text-red-500 hidden"> </p> <div class="flex gap-2 justify-end"><button id="imageNameCancel" class="px-3 py-1 text-xs rounded border border-gray-300 dark:border-gray-600
153
- text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"> </button> <button id="imageNameConfirm" class="px-3 py-1 text-xs rounded bg-blue-500 text-white hover:bg-blue-600"> </button></div></div></div></div>`);function U_(e,t){Ge(t,!0),Vi(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await la(t);let{initDiagram:r}=await V_(async()=>{let{initDiagram:e}=await import(`./main-wMSA95JC.js`);return{initDiagram:e}},[]);e=r();let i=document.getElementById(`sidebar`),a=parseInt(localStorage.getItem(n)||``,10);i&&Number.isFinite(a)&&(i.style.width=a+`px`)})(),()=>e?.()});let n=`ld-diagram-sidebar-w`,r=F(!1);function i(e){e.preventDefault();let t=document.getElementById(`sidebar`);if(!t)return;let i=e.clientX,a=t.getBoundingClientRect().width;I(r,!0),t.style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=Math.max(160,Math.min(480,a+e.clientX-i));t.style.width=n+`px`},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),document.body.style.cursor=``,document.body.style.userSelect=``,I(r,!1),t.style.transition=``;try{localStorage.setItem(n,String(parseInt(t.style.width,10)))}catch{}};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)}var a=H_(),o=R(a),s=R(o),c=R(s,!0);N(s);var l=B(s,4),u=B(l,4),d=B(u,2),f=B(d,4),p=B(f,2),m=B(p,2),h=B(m,2),g=B(h,2),_=B(g,2),v=B(_,2),y=B(v,2),b=B(y,2),x=B(b,4),S=B(x,4),C=B(S,4),w=B(C,2),T=B(w,2),E=B(T,2),D=B(E,2),ee=B(D,2),O=B(ee,4),k=B(O,4),A=B(k,4),te=B(A,2),ne=B(te,8),re=B(ne,4),ie=B(re,4),ae=R(ie),oe=R(ae,!0);N(ae),N(ie),N(o);var se=B(o,2),ce=R(se),le=R(ce),ue=R(le),de=R(ue,!0);N(ue);var fe=B(ue,2),pe=R(fe,!0);N(fe),N(le),Pe(2),N(ce);var me=B(ce,2),he=B(me,2),ge=B(R(he),10),_e=B(R(ge),8),ve=B(_e,2);N(ge);var ye=B(ge,2),be=R(ye),xe=R(be),Se=R(xe,!0);N(xe);var j=B(xe,2);N(be),Pe(2),N(ye);var Ce=B(ye,2),M=R(Ce),we=B(M,4),Te=R(we),Ee=B(Te,4),De=B(Ee,4),Oe=B(De,2),ke=B(Oe,4),Ae=B(ke,2),je=B(Ae,2),Me=B(je,4),Ne=B(Me,2),Fe=B(Ne,2),Ie=B(Fe,4),Le=B(Ie,2),Re=B(Le,2),ze=B(Re,4),Be=R(ze),Ve=B(Be,2),He=B(Ve,2),Ue=B(He,2),We=B(Ue,2);Pe(2),N(ze);var qe=B(ze,2),Je=B(qe,2),Ye=B(Je,4),Xe=B(Ye,2),Ze=B(Xe,2),Qe=B(Ze,4),$e=B(Qe,2),et=B($e,4),tt=B(et,4),nt=B(tt,2),rt=B(nt,4);N(we),N(Ce);var it=B(Ce,2),at=R(it),ot=R(at,!0);N(at);var st=B(at,2),ct=B(R(st),2),lt=R(ct,!0);N(ct),N(st);var ut=B(st,2),dt=R(ut);N(ut);var ft=B(ut,2),pt=B(R(ft),2),mt=R(pt,!0);N(pt),N(ft);var ht=B(ft,4),gt=B(R(ht),2),_t=R(gt,!0);N(gt),N(ht);var vt=B(ht,2),P=R(vt);N(vt);var yt=B(vt,2),bt=R(yt),xt=R(bt,!0);N(bt);var St=B(bt,2),Ct=R(St,!0);N(St),Pe(2),N(yt),N(it);var wt=B(it,2),Tt=R(wt),Et=B(Tt,4),Dt=R(Et),Ot=B(Dt,2),kt=B(Ot,2),At=B(kt,2),jt=B(At,4),Mt=B(jt,2),Nt=B(Mt,4),Pt=B(Nt,2),Ft=B(Pt,2),It=B(Ft,4),Lt=B(It,2),Rt=B(Lt,4),zt=B(Rt,2),Bt=B(zt,4),Vt=B(Bt,2),Ht=B(Vt,2),Ut=B(Ht,2),Wt=B(Ut,2),Gt=B(Wt,4),Kt=B(Gt,2),qt=B(Kt,4),Jt=B(qt,4),Yt=B(Jt,4);N(Et),N(wt);var Xt=B(wt,2),Zt=B(Xt,2),Qt=B(R(Zt),2),$t=R(Qt,!0);N(Qt),N(Zt),N(he),N(se);var en=B(se,4),tn=R(en),L=R(tn),nn=R(L,!0);N(L);var rn=B(L,4),an=R(rn);Pe(2),N(rn);var on=B(rn,2),sn=R(on,!0);N(on);var cn=B(on,2),ln=R(cn),un=R(ln,!0);N(ln);var dn=B(ln,2),fn=R(dn,!0);N(dn),N(cn),N(tn),N(en),N(a),V((e,t,n,i,a,o,s,ie,ae,se,ce,le,ue,fe,he,ge,ye,be,xe,Ce,we,N,Pe,ze,Ge,Ke,it,at,st,ct,ut,ft,pt,ht,gt,vt,yt,bt,St,wt,Et,F,Zt,I,Qt,en,tn,L,rn,on,cn,ln,dn,R,z,B,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,V,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir)=>{K(c,e),Y(l,`title`,t),Y(u,`title`,n),Y(d,`title`,i),Y(f,`title`,a),Y(p,`title`,o),Y(m,`title`,s),Y(h,`title`,ie),Y(g,`title`,ae),Y(_,`title`,se),Y(v,`title`,ce),Y(y,`title`,le),Y(b,`title`,ue),Y(x,`title`,fe),Y(S,`title`,he),Y(C,`title`,ge),Y(w,`title`,ye),Y(T,`title`,be),Y(E,`title`,xe),Y(D,`title`,Ce),Y(ee,`title`,we),Y(O,`placeholder`,N),Y(k,`title`,Pe),Y(A,`title`,ze),Y(te,`title`,Ge),Y(ne,`title`,Ke),Y(re,`title`,it),K(oe,at),K(de,st),K(pe,ct),hi(me,1,`w-1 shrink-0 cursor-col-resize select-none transition-colors ${H(r)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),Y(_e,`title`,ut),Y(ve,`title`,ft),K(Se,pt),Y(j,`title`,ht),Y(M,`title`,gt),Y(Te,`title`,vt),Y(Ee,`title`,yt),Y(De,`title`,bt),Y(Oe,`title`,St),Y(ke,`title`,wt),Y(Ae,`title`,Et),Y(je,`title`,F),Y(Me,`title`,Zt),Y(Ne,`title`,I),Y(Fe,`title`,Qt),Y(Ie,`title`,en),Y(Le,`title`,tn),Y(Re,`title`,L),Y(Be,`title`,rn),Y(Ve,`title`,on),Y(He,`title`,cn),Y(Ue,`title`,ln),Y(We,`title`,dn),Y(qe,`title`,R),Y(Je,`title`,z),Y(Ye,`title`,B),Y(Xe,`title`,pn),Y(Ze,`title`,mn),Y(Qe,`title`,hn),Y($e,`title`,gn),Y(et,`title`,_n),Y(tt,`title`,vn),Y(nt,`title`,yn),Y(rt,`title`,bn),K(ot,xn),K(lt,Sn),Y(dt,`placeholder`,Cn),K(mt,wn),K(_t,Tn),Y(P,`placeholder`,En),K(xt,Dn),K(Ct,On),Y(Tt,`title`,kn),Y(Dt,`title`,An),Y(Ot,`title`,jn),Y(kt,`title`,Mn),Y(At,`title`,Nn),Y(jt,`title`,Pn),Y(Mt,`title`,V),Y(Nt,`title`,Fn),Y(Pt,`title`,In),Y(Ft,`title`,Ln),Y(It,`title`,Rn),Y(Lt,`title`,zn),Y(Rt,`title`,Bn),Y(zt,`title`,Vn),Y(Bt,`title`,Hn),Y(Vt,`title`,Un),Y(Ht,`title`,Wn),Y(Ut,`title`,Gn),Y(Wt,`title`,Kn),Y(Gt,`title`,qn),Y(Kt,`title`,Jn),Y(qt,`title`,Yn),Y(Jt,`title`,Xn),Y(Yt,`title`,Zn),Y(Xt,`placeholder`,Qn),K($t,$n),K(nn,er),Y(an,`placeholder`,tr),K(sn,nr),K(un,rr),K(fn,ir)},[()=>X(`diagram.back_btn`),()=>X(`diagram.diagrams_list_title`),()=>X(`diagram.toolbar.copy_mcp_id`),()=>X(`diagram.toolbar.select`),()=>X(`diagram.toolbar.box`),()=>X(`diagram.toolbar.ellipse`),()=>X(`diagram.toolbar.database`),()=>X(`diagram.toolbar.circle`),()=>X(`diagram.toolbar.actor`),()=>X(`diagram.toolbar.postit`),()=>X(`diagram.toolbar.text_free`),()=>X(`diagram.toolbar.image`),()=>X(`diagram.toolbar.shape_editor`),()=>X(`diagram.toolbar.arrow`),()=>X(`diagram.toolbar.delete`),()=>X(`diagram.toolbar.defaults`),()=>X(`diagram.toolbar.align_guides`),()=>X(`diagram.toolbar.grid`),()=>X(`diagram.toolbar.edge_style`),()=>X(`diagram.toolbar.evidence_mode`),()=>X(`diagram.toolbar.resize_corner`),()=>X(`diagram.toolbar.title_placeholder`),()=>X(`diagram.toolbar.zoom_out`),()=>X(`diagram.toolbar.zoom_in`),()=>X(`diagram.toolbar.fit`),()=>X(`diagram.toolbar.debug`),()=>X(`diagram.toolbar.export_drawio`),()=>X(`diagram.toolbar.save`),()=>X(`diagram.sidebar.title`),()=>X(`diagram.sidebar.new_btn`),()=>X(`diagram.selection.rotate_shape`),()=>X(`diagram.selection.rotate_text`),()=>X(`diagram.evidence.panel_title`),()=>X(`diagram.evidence.close`),()=>X(`diagram.node_panel.lock`),()=>X(`diagram.node_panel.color`),()=>X(`diagram.node_panel.bg_opacity`),()=>X(`diagram.node_panel.edit_label`),()=>X(`diagram.node_panel.edit_link`),()=>X(`diagram.node_panel.font_decrease`),()=>X(`diagram.node_panel.font_size_value`),()=>X(`diagram.node_panel.font_increase`),()=>X(`diagram.node_panel.align_left`),()=>X(`diagram.node_panel.align_center`),()=>X(`diagram.node_panel.align_right`),()=>X(`diagram.node_panel.align_top`),()=>X(`diagram.node_panel.align_middle`),()=>X(`diagram.node_panel.align_bottom`),()=>X(`diagram.node_panel.custom_label_above`),()=>X(`diagram.node_panel.custom_label_below`),()=>X(`diagram.node_panel.custom_label_left`),()=>X(`diagram.node_panel.custom_label_right`),()=>X(`diagram.node_panel.custom_label_center`),()=>X(`diagram.node_panel.send_back`),()=>X(`diagram.node_panel.bring_front`),()=>X(`diagram.node_panel.stamp_color`),()=>X(`diagram.node_panel.stamp_font`),()=>X(`diagram.node_panel.stamp_size`),()=>X(`diagram.node_panel.rotate_ccw`),()=>X(`diagram.node_panel.rotate_cw`),()=>X(`diagram.node_panel.copy_png`),()=>X(`diagram.node_panel.group`),()=>X(`diagram.node_panel.ungroup`),()=>X(`diagram.node_panel.save_as_default`),()=>X(`diagram.link_panel.title`),()=>X(`diagram.link_panel.external`),()=>X(`diagram.link_panel.url_placeholder`),()=>X(`diagram.link_panel.existing_diagram`),()=>X(`diagram.link_panel.new_diagram`),()=>X(`diagram.link_panel.diagram_name_placeholder`),()=>X(`diagram.link_panel.save_btn`),()=>X(`diagram.link_panel.remove_btn`),()=>X(`diagram.edge_panel.lock`),()=>X(`diagram.edge_panel.no_arrow`),()=>X(`diagram.edge_panel.arrow_from`),()=>X(`diagram.edge_panel.arrow_to`),()=>X(`diagram.edge_panel.arrow_both`),()=>X(`diagram.edge_panel.solid`),()=>X(`diagram.edge_panel.dashed`),()=>X(`diagram.edge_panel.font_decrease`),()=>X(`diagram.edge_panel.font_size_value`),()=>X(`diagram.edge_panel.font_increase`),()=>X(`diagram.edge_panel.edit_label`),()=>X(`diagram.edge_panel.reset_label_width`),()=>X(`diagram.edge_panel.rotate_label_ccw`),()=>X(`diagram.edge_panel.rotate_label_cw`),()=>X(`diagram.edge_panel.offset_label_left`),()=>X(`diagram.edge_panel.offset_label_right`),()=>X(`diagram.edge_panel.offset_label_up`),()=>X(`diagram.edge_panel.offset_label_down`),()=>X(`diagram.edge_panel.offset_label_reset`),()=>X(`diagram.edge_panel.width_decrease`),()=>X(`diagram.edge_panel.width_increase`),()=>X(`diagram.edge_panel.color`),()=>X(`diagram.edge_panel.clear_ports`),()=>X(`diagram.edge_panel.save_as_default`),()=>X(`diagram.label_input.placeholder`),()=>X(`diagram.empty_state`),()=>X(`diagram.image_modal.title`),()=>X(`diagram.image_modal.placeholder`),()=>X(`diagram.image_modal.error_chars`),()=>X(`diagram.image_modal.cancel_btn`),()=>X(`diagram.image_modal.paste_btn`)]),U(`click`,s,()=>history.back()),U(`mousedown`,me,i),G(e,a),Ke()}Nr([`click`,`mousedown`]),He();var W_={network:null,nodes:null,edges:null,diagrams:[],currentDiagramId:null,currentTool:`select`,pendingShape:`box`,selectedNodeIds:[],selectedEdgeIds:[],alignGuides:!0,gridEnabled:!0,debugMode:!1,isDirty:!1,sidebarOpen:!0,editingNodeId:null,editingEdgeId:null,resizeDrag:null,rotateDrag:null,labelRotateDrag:null,activeStamp:null,stampTargetIds:[],clipboard:null,canonicalOrder:[],edgesStraight:!1,resizeSymmetric:!1,nodeColorOverrides:{},customShapeLibraries:[],customShapeDefs:new Map,edgeLabelCanvasPos:{},edgeLabelBBox:{},freeArrowFirstPoint:null,exportingPng:!1,evidenceMode:!1};function G_(){W_.isDirty=!0,document.getElementById(`btnSave`).disabled=!1}var K_=`custom-shape`,q_=`custom-shape:`,J_=[{id:`N`,x:.5,y:0},{id:`NE`,x:1,y:0},{id:`E`,x:1,y:.5},{id:`SE`,x:1,y:1},{id:`S`,x:.5,y:1},{id:`SW`,x:0,y:1},{id:`W`,x:0,y:.5},{id:`NW`,x:0,y:0}];function Y_(e){return typeof e==`string`&&e.startsWith(`custom-shape:`)}function X_(e){return Y_(e)?e.slice(13):null}function Z_(e){return e&&W_.customShapeDefs&&W_.customShapeDefs.get(e)||null}function Q_(e){let t=Z_(e);return[t&&t.width||65,t&&t.height||65]}function $_(e){let t=Z_(e);return t&&Array.isArray(t.anchors)&&t.anchors.length?t.anchors:J_}function ev(e){let t=Z_(e);return t&&[`center`,`below`,`above`,`right`,`left`].includes(t.labelPlacement)?t.labelPlacement:`below`}async function tv(){try{let e=await fetch(`/api/shape-libraries`);if(!e.ok)throw Error(`shape libraries unavailable`);let t=await e.json(),n=Array.isArray(t.libraries)?t.libraries:[];W_.customShapeLibraries=n,W_.customShapeDefs=new Map,n.forEach(e=>{(e.shapes||[]).forEach(e=>W_.customShapeDefs.set(e.id,e))})}catch{W_.customShapeLibraries=[],W_.customShapeDefs=new Map}}function nv(){let e=document.getElementById(`customShapeBar`),t=document.getElementById(`customShapeBarBody`);if(!e||!t)return;t.innerHTML=``;let n=(W_.customShapeLibraries||[]).flatMap(e=>(e.shapes||[]).filter(e=>e.showInDiagram!==!1).map(t=>({...t,libraryName:e.name})));e.classList.toggle(`hidden`,n.length===0),n.forEach(e=>{let n=document.createElement(`button`);n.type=`button`,n.className=`custom-shape-btn`,n.title=`${e.libraryName||``}${e.libraryName?` · `:``}${e.name}`,n.dataset.customShapeId=e.id;let r=document.createElement(`img`);r.src=e.imageSrc,r.alt=``,r.draggable=!1,n.appendChild(r),n.addEventListener(`click`,()=>{window.dispatchEvent(new CustomEvent(`diagram:setTool`,{detail:{tool:`addNode`,shape:`${q_}${e.id}`}}))}),t.appendChild(n)})}function rv(){let e={saveState:document.getElementById(`saveState`),librarySelect:document.getElementById(`librarySelect`),libraryName:document.getElementById(`libraryName`),shapeList:document.getElementById(`shapeList`),previewStage:document.getElementById(`previewStage`),previewImage:document.getElementById(`previewImage`),shapeName:document.getElementById(`shapeName`),imageFile:document.getElementById(`imageFile`),shapeWidth:document.getElementById(`shapeWidth`),shapeHeight:document.getElementById(`shapeHeight`),labelPlacement:document.getElementById(`labelPlacement`),shapeShowInDiagram:document.getElementById(`shapeShowInDiagram`),anchorList:document.getElementById(`anchorList`),anchorCount:document.getElementById(`anchorCount`)},t={libraries:[]},n=null,r=null,i=null,a=null,o=e=>`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,s=()=>t.libraries.find(e=>e.id===n)||null,c=()=>s()?.shapes.find(e=>e.id===r)||null,l=e=>Math.max(0,Math.min(1,e)),u=e=>[`below`,`above`,`right`,`left`,`center`].includes(e)?e:`below`,d=e=>String(e??``).replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]);function f(t){e.saveState.textContent=t,t&&setTimeout(()=>{e.saveState.textContent===t&&(e.saveState.textContent=``)},1800)}async function p(){t=await(await fetch(`/api/shape-libraries`)).json(),Array.isArray(t.libraries)||(t.libraries=[]),t.libraries.length||t.libraries.push({id:o(`lib`),name:`My shapes`,shapes:[]}),n=t.libraries[0].id,r=t.libraries[0].shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}async function m(){t=await(await fetch(`/api/shape-libraries`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json(),f(`Saved`)}function h(){return{id:o(`shape`),name:`New shape`,imageSrc:``,width:65,height:65,labelPlacement:`below`,showInDiagram:!0,anchors:structuredClone(J_)}}function g(){_(),v(),y()}function _(){e.librarySelect.innerHTML=``,t.libraries.forEach(t=>{let r=document.createElement(`option`);r.value=t.id,r.textContent=t.name,r.selected=t.id===n,e.librarySelect.appendChild(r)}),e.libraryName.value=s()?.name||``}function v(){let t=s();e.shapeList.innerHTML=``,(t?.shapes||[]).forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`shape-item w-full flex items-center gap-2 px-2 py-1.5 rounded text-sm text-left hover:bg-gray-100 ${t.id===r?`active`:``}`;let a=document.createElement(`img`);a.src=t.imageSrc,a.alt=``,a.className=`w-6 h-6 object-contain shrink-0`;let o=document.createElement(`span`);o.className=`truncate`,o.textContent=t.name,n.append(a,o),n.addEventListener(`click`,()=>{r=t.id,i=structuredClone(t),g()}),e.shapeList.appendChild(n)}),t?.shapes?.length||(e.shapeList.innerHTML=`<p class="text-xs text-gray-400 px-2 py-2">No shape yet.</p>`)}function y(){i||=h(),e.previewStage.style.aspectRatio=`${Math.max(16,Number(i.width)||65)} / ${Math.max(16,Number(i.height)||65)}`,e.previewImage.src=i.imageSrc||``,e.previewImage.style.display=i.imageSrc?`block`:`none`,e.shapeName.value=i.name||``,e.shapeWidth.value=i.width||65,e.shapeHeight.value=i.height||65,e.labelPlacement.value=u(i.labelPlacement),e.shapeShowInDiagram.checked=i.showInDiagram!==!1,b()}function b(){e.previewStage.querySelectorAll(`.anchor-dot`).forEach(e=>e.remove()),e.anchorList.innerHTML=``;let t=i.anchors||[];e.anchorCount.textContent=`${t.length} anchor${t.length>1?`s`:``}`,t.forEach((t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`anchor-dot`,r.style.left=`${t.x*100}%`,r.style.top=`${t.y*100}%`,r.dataset.anchorId=t.id,r.innerHTML=`<span>${t.id}</span>`,r.addEventListener(`pointerdown`,e=>{e.preventDefault(),a=t.id,r.setPointerCapture(e.pointerId)}),e.previewStage.appendChild(r);let o=document.createElement(`div`);o.className=`grid grid-cols-[4.5rem_1fr_1fr_2rem] gap-2 items-center`,o.innerHTML=`
153
+ text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"> </button> <button id="imageNameConfirm" class="px-3 py-1 text-xs rounded bg-blue-500 text-white hover:bg-blue-600"> </button></div></div></div></div>`);function U_(e,t){Ge(t,!0),Vi(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await la(t);let{initDiagram:r}=await V_(async()=>{let{initDiagram:e}=await import(`./main-DKE-EEaK.js`);return{initDiagram:e}},[]);e=r();let i=document.getElementById(`sidebar`),a=parseInt(localStorage.getItem(n)||``,10);i&&Number.isFinite(a)&&(i.style.width=a+`px`)})(),()=>e?.()});let n=`ld-diagram-sidebar-w`,r=F(!1);function i(e){e.preventDefault();let t=document.getElementById(`sidebar`);if(!t)return;let i=e.clientX,a=t.getBoundingClientRect().width;I(r,!0),t.style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=Math.max(160,Math.min(480,a+e.clientX-i));t.style.width=n+`px`},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),document.body.style.cursor=``,document.body.style.userSelect=``,I(r,!1),t.style.transition=``;try{localStorage.setItem(n,String(parseInt(t.style.width,10)))}catch{}};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)}var a=H_(),o=R(a),s=R(o),c=R(s,!0);N(s);var l=B(s,4),u=B(l,4),d=B(u,2),f=B(d,4),p=B(f,2),m=B(p,2),h=B(m,2),g=B(h,2),_=B(g,2),v=B(_,2),y=B(v,2),b=B(y,2),x=B(b,4),S=B(x,4),C=B(S,4),w=B(C,2),T=B(w,2),E=B(T,2),D=B(E,2),ee=B(D,2),O=B(ee,4),k=B(O,4),A=B(k,4),te=B(A,2),ne=B(te,8),re=B(ne,4),ie=B(re,4),ae=R(ie),oe=R(ae,!0);N(ae),N(ie),N(o);var se=B(o,2),ce=R(se),le=R(ce),ue=R(le),de=R(ue,!0);N(ue);var fe=B(ue,2),pe=R(fe,!0);N(fe),N(le),Pe(2),N(ce);var me=B(ce,2),he=B(me,2),ge=B(R(he),10),_e=B(R(ge),8),ve=B(_e,2);N(ge);var ye=B(ge,2),be=R(ye),xe=R(be),Se=R(xe,!0);N(xe);var j=B(xe,2);N(be),Pe(2),N(ye);var Ce=B(ye,2),M=R(Ce),we=B(M,4),Te=R(we),Ee=B(Te,4),De=B(Ee,4),Oe=B(De,2),ke=B(Oe,4),Ae=B(ke,2),je=B(Ae,2),Me=B(je,4),Ne=B(Me,2),Fe=B(Ne,2),Ie=B(Fe,4),Le=B(Ie,2),Re=B(Le,2),ze=B(Re,4),Be=R(ze),Ve=B(Be,2),He=B(Ve,2),Ue=B(He,2),We=B(Ue,2);Pe(2),N(ze);var qe=B(ze,2),Je=B(qe,2),Ye=B(Je,4),Xe=B(Ye,2),Ze=B(Xe,2),Qe=B(Ze,4),$e=B(Qe,2),et=B($e,4),tt=B(et,4),nt=B(tt,2),rt=B(nt,4);N(we),N(Ce);var it=B(Ce,2),at=R(it),ot=R(at,!0);N(at);var st=B(at,2),ct=B(R(st),2),lt=R(ct,!0);N(ct),N(st);var ut=B(st,2),dt=R(ut);N(ut);var ft=B(ut,2),pt=B(R(ft),2),mt=R(pt,!0);N(pt),N(ft);var ht=B(ft,4),gt=B(R(ht),2),_t=R(gt,!0);N(gt),N(ht);var vt=B(ht,2),P=R(vt);N(vt);var yt=B(vt,2),bt=R(yt),xt=R(bt,!0);N(bt);var St=B(bt,2),Ct=R(St,!0);N(St),Pe(2),N(yt),N(it);var wt=B(it,2),Tt=R(wt),Et=B(Tt,4),Dt=R(Et),Ot=B(Dt,2),kt=B(Ot,2),At=B(kt,2),jt=B(At,4),Mt=B(jt,2),Nt=B(Mt,4),Pt=B(Nt,2),Ft=B(Pt,2),It=B(Ft,4),Lt=B(It,2),Rt=B(Lt,4),zt=B(Rt,2),Bt=B(zt,4),Vt=B(Bt,2),Ht=B(Vt,2),Ut=B(Ht,2),Wt=B(Ut,2),Gt=B(Wt,4),Kt=B(Gt,2),qt=B(Kt,4),Jt=B(qt,4),Yt=B(Jt,4);N(Et),N(wt);var Xt=B(wt,2),Zt=B(Xt,2),Qt=B(R(Zt),2),$t=R(Qt,!0);N(Qt),N(Zt),N(he),N(se);var en=B(se,4),tn=R(en),L=R(tn),nn=R(L,!0);N(L);var rn=B(L,4),an=R(rn);Pe(2),N(rn);var on=B(rn,2),sn=R(on,!0);N(on);var cn=B(on,2),ln=R(cn),un=R(ln,!0);N(ln);var dn=B(ln,2),fn=R(dn,!0);N(dn),N(cn),N(tn),N(en),N(a),V((e,t,n,i,a,o,s,ie,ae,se,ce,le,ue,fe,he,ge,ye,be,xe,Ce,we,N,Pe,ze,Ge,Ke,it,at,st,ct,ut,ft,pt,ht,gt,vt,yt,bt,St,wt,Et,F,Zt,I,Qt,en,tn,L,rn,on,cn,ln,dn,R,z,B,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,V,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir)=>{K(c,e),Y(l,`title`,t),Y(u,`title`,n),Y(d,`title`,i),Y(f,`title`,a),Y(p,`title`,o),Y(m,`title`,s),Y(h,`title`,ie),Y(g,`title`,ae),Y(_,`title`,se),Y(v,`title`,ce),Y(y,`title`,le),Y(b,`title`,ue),Y(x,`title`,fe),Y(S,`title`,he),Y(C,`title`,ge),Y(w,`title`,ye),Y(T,`title`,be),Y(E,`title`,xe),Y(D,`title`,Ce),Y(ee,`title`,we),Y(O,`placeholder`,N),Y(k,`title`,Pe),Y(A,`title`,ze),Y(te,`title`,Ge),Y(ne,`title`,Ke),Y(re,`title`,it),K(oe,at),K(de,st),K(pe,ct),hi(me,1,`w-1 shrink-0 cursor-col-resize select-none transition-colors ${H(r)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),Y(_e,`title`,ut),Y(ve,`title`,ft),K(Se,pt),Y(j,`title`,ht),Y(M,`title`,gt),Y(Te,`title`,vt),Y(Ee,`title`,yt),Y(De,`title`,bt),Y(Oe,`title`,St),Y(ke,`title`,wt),Y(Ae,`title`,Et),Y(je,`title`,F),Y(Me,`title`,Zt),Y(Ne,`title`,I),Y(Fe,`title`,Qt),Y(Ie,`title`,en),Y(Le,`title`,tn),Y(Re,`title`,L),Y(Be,`title`,rn),Y(Ve,`title`,on),Y(He,`title`,cn),Y(Ue,`title`,ln),Y(We,`title`,dn),Y(qe,`title`,R),Y(Je,`title`,z),Y(Ye,`title`,B),Y(Xe,`title`,pn),Y(Ze,`title`,mn),Y(Qe,`title`,hn),Y($e,`title`,gn),Y(et,`title`,_n),Y(tt,`title`,vn),Y(nt,`title`,yn),Y(rt,`title`,bn),K(ot,xn),K(lt,Sn),Y(dt,`placeholder`,Cn),K(mt,wn),K(_t,Tn),Y(P,`placeholder`,En),K(xt,Dn),K(Ct,On),Y(Tt,`title`,kn),Y(Dt,`title`,An),Y(Ot,`title`,jn),Y(kt,`title`,Mn),Y(At,`title`,Nn),Y(jt,`title`,Pn),Y(Mt,`title`,V),Y(Nt,`title`,Fn),Y(Pt,`title`,In),Y(Ft,`title`,Ln),Y(It,`title`,Rn),Y(Lt,`title`,zn),Y(Rt,`title`,Bn),Y(zt,`title`,Vn),Y(Bt,`title`,Hn),Y(Vt,`title`,Un),Y(Ht,`title`,Wn),Y(Ut,`title`,Gn),Y(Wt,`title`,Kn),Y(Gt,`title`,qn),Y(Kt,`title`,Jn),Y(qt,`title`,Yn),Y(Jt,`title`,Xn),Y(Yt,`title`,Zn),Y(Xt,`placeholder`,Qn),K($t,$n),K(nn,er),Y(an,`placeholder`,tr),K(sn,nr),K(un,rr),K(fn,ir)},[()=>X(`diagram.back_btn`),()=>X(`diagram.diagrams_list_title`),()=>X(`diagram.toolbar.copy_mcp_id`),()=>X(`diagram.toolbar.select`),()=>X(`diagram.toolbar.box`),()=>X(`diagram.toolbar.ellipse`),()=>X(`diagram.toolbar.database`),()=>X(`diagram.toolbar.circle`),()=>X(`diagram.toolbar.actor`),()=>X(`diagram.toolbar.postit`),()=>X(`diagram.toolbar.text_free`),()=>X(`diagram.toolbar.image`),()=>X(`diagram.toolbar.shape_editor`),()=>X(`diagram.toolbar.arrow`),()=>X(`diagram.toolbar.delete`),()=>X(`diagram.toolbar.defaults`),()=>X(`diagram.toolbar.align_guides`),()=>X(`diagram.toolbar.grid`),()=>X(`diagram.toolbar.edge_style`),()=>X(`diagram.toolbar.evidence_mode`),()=>X(`diagram.toolbar.resize_corner`),()=>X(`diagram.toolbar.title_placeholder`),()=>X(`diagram.toolbar.zoom_out`),()=>X(`diagram.toolbar.zoom_in`),()=>X(`diagram.toolbar.fit`),()=>X(`diagram.toolbar.debug`),()=>X(`diagram.toolbar.export_drawio`),()=>X(`diagram.toolbar.save`),()=>X(`diagram.sidebar.title`),()=>X(`diagram.sidebar.new_btn`),()=>X(`diagram.selection.rotate_shape`),()=>X(`diagram.selection.rotate_text`),()=>X(`diagram.evidence.panel_title`),()=>X(`diagram.evidence.close`),()=>X(`diagram.node_panel.lock`),()=>X(`diagram.node_panel.color`),()=>X(`diagram.node_panel.bg_opacity`),()=>X(`diagram.node_panel.edit_label`),()=>X(`diagram.node_panel.edit_link`),()=>X(`diagram.node_panel.font_decrease`),()=>X(`diagram.node_panel.font_size_value`),()=>X(`diagram.node_panel.font_increase`),()=>X(`diagram.node_panel.align_left`),()=>X(`diagram.node_panel.align_center`),()=>X(`diagram.node_panel.align_right`),()=>X(`diagram.node_panel.align_top`),()=>X(`diagram.node_panel.align_middle`),()=>X(`diagram.node_panel.align_bottom`),()=>X(`diagram.node_panel.custom_label_above`),()=>X(`diagram.node_panel.custom_label_below`),()=>X(`diagram.node_panel.custom_label_left`),()=>X(`diagram.node_panel.custom_label_right`),()=>X(`diagram.node_panel.custom_label_center`),()=>X(`diagram.node_panel.send_back`),()=>X(`diagram.node_panel.bring_front`),()=>X(`diagram.node_panel.stamp_color`),()=>X(`diagram.node_panel.stamp_font`),()=>X(`diagram.node_panel.stamp_size`),()=>X(`diagram.node_panel.rotate_ccw`),()=>X(`diagram.node_panel.rotate_cw`),()=>X(`diagram.node_panel.copy_png`),()=>X(`diagram.node_panel.group`),()=>X(`diagram.node_panel.ungroup`),()=>X(`diagram.node_panel.save_as_default`),()=>X(`diagram.link_panel.title`),()=>X(`diagram.link_panel.external`),()=>X(`diagram.link_panel.url_placeholder`),()=>X(`diagram.link_panel.existing_diagram`),()=>X(`diagram.link_panel.new_diagram`),()=>X(`diagram.link_panel.diagram_name_placeholder`),()=>X(`diagram.link_panel.save_btn`),()=>X(`diagram.link_panel.remove_btn`),()=>X(`diagram.edge_panel.lock`),()=>X(`diagram.edge_panel.no_arrow`),()=>X(`diagram.edge_panel.arrow_from`),()=>X(`diagram.edge_panel.arrow_to`),()=>X(`diagram.edge_panel.arrow_both`),()=>X(`diagram.edge_panel.solid`),()=>X(`diagram.edge_panel.dashed`),()=>X(`diagram.edge_panel.font_decrease`),()=>X(`diagram.edge_panel.font_size_value`),()=>X(`diagram.edge_panel.font_increase`),()=>X(`diagram.edge_panel.edit_label`),()=>X(`diagram.edge_panel.reset_label_width`),()=>X(`diagram.edge_panel.rotate_label_ccw`),()=>X(`diagram.edge_panel.rotate_label_cw`),()=>X(`diagram.edge_panel.offset_label_left`),()=>X(`diagram.edge_panel.offset_label_right`),()=>X(`diagram.edge_panel.offset_label_up`),()=>X(`diagram.edge_panel.offset_label_down`),()=>X(`diagram.edge_panel.offset_label_reset`),()=>X(`diagram.edge_panel.width_decrease`),()=>X(`diagram.edge_panel.width_increase`),()=>X(`diagram.edge_panel.color`),()=>X(`diagram.edge_panel.clear_ports`),()=>X(`diagram.edge_panel.save_as_default`),()=>X(`diagram.label_input.placeholder`),()=>X(`diagram.empty_state`),()=>X(`diagram.image_modal.title`),()=>X(`diagram.image_modal.placeholder`),()=>X(`diagram.image_modal.error_chars`),()=>X(`diagram.image_modal.cancel_btn`),()=>X(`diagram.image_modal.paste_btn`)]),U(`click`,s,()=>history.back()),U(`mousedown`,me,i),G(e,a),Ke()}Nr([`click`,`mousedown`]),He();var W_={network:null,nodes:null,edges:null,diagrams:[],currentDiagramId:null,currentTool:`select`,pendingShape:`box`,selectedNodeIds:[],selectedEdgeIds:[],alignGuides:!0,gridEnabled:!0,debugMode:!1,isDirty:!1,sidebarOpen:!0,editingNodeId:null,editingEdgeId:null,resizeDrag:null,rotateDrag:null,labelRotateDrag:null,activeStamp:null,stampTargetIds:[],clipboard:null,canonicalOrder:[],edgesStraight:!1,resizeSymmetric:!1,nodeColorOverrides:{},customShapeLibraries:[],customShapeDefs:new Map,edgeLabelCanvasPos:{},edgeLabelBBox:{},freeArrowFirstPoint:null,exportingPng:!1,evidenceMode:!1};function G_(){W_.isDirty=!0,document.getElementById(`btnSave`).disabled=!1}var K_=`custom-shape`,q_=`custom-shape:`,J_=[{id:`N`,x:.5,y:0},{id:`NE`,x:1,y:0},{id:`E`,x:1,y:.5},{id:`SE`,x:1,y:1},{id:`S`,x:.5,y:1},{id:`SW`,x:0,y:1},{id:`W`,x:0,y:.5},{id:`NW`,x:0,y:0}];function Y_(e){return typeof e==`string`&&e.startsWith(`custom-shape:`)}function X_(e){return Y_(e)?e.slice(13):null}function Z_(e){return e&&W_.customShapeDefs&&W_.customShapeDefs.get(e)||null}function Q_(e){let t=Z_(e);return[t&&t.width||65,t&&t.height||65]}function $_(e){let t=Z_(e);return t&&Array.isArray(t.anchors)&&t.anchors.length?t.anchors:J_}function ev(e){let t=Z_(e);return t&&[`center`,`below`,`above`,`right`,`left`].includes(t.labelPlacement)?t.labelPlacement:`below`}async function tv(){try{let e=await fetch(`/api/shape-libraries`);if(!e.ok)throw Error(`shape libraries unavailable`);let t=await e.json(),n=Array.isArray(t.libraries)?t.libraries:[];W_.customShapeLibraries=n,W_.customShapeDefs=new Map,n.forEach(e=>{(e.shapes||[]).forEach(e=>W_.customShapeDefs.set(e.id,e))})}catch{W_.customShapeLibraries=[],W_.customShapeDefs=new Map}}function nv(){let e=document.getElementById(`customShapeBar`),t=document.getElementById(`customShapeBarBody`);if(!e||!t)return;t.innerHTML=``;let n=(W_.customShapeLibraries||[]).flatMap(e=>(e.shapes||[]).filter(e=>e.showInDiagram!==!1).map(t=>({...t,libraryName:e.name})));e.classList.toggle(`hidden`,n.length===0),n.forEach(e=>{let n=document.createElement(`button`);n.type=`button`,n.className=`custom-shape-btn`,n.title=`${e.libraryName||``}${e.libraryName?` · `:``}${e.name}`,n.dataset.customShapeId=e.id;let r=document.createElement(`img`);r.src=e.imageSrc,r.alt=``,r.draggable=!1,n.appendChild(r),n.addEventListener(`click`,()=>{window.dispatchEvent(new CustomEvent(`diagram:setTool`,{detail:{tool:`addNode`,shape:`${q_}${e.id}`}}))}),t.appendChild(n)})}function rv(){let e={saveState:document.getElementById(`saveState`),librarySelect:document.getElementById(`librarySelect`),libraryName:document.getElementById(`libraryName`),shapeList:document.getElementById(`shapeList`),previewStage:document.getElementById(`previewStage`),previewImage:document.getElementById(`previewImage`),shapeName:document.getElementById(`shapeName`),imageFile:document.getElementById(`imageFile`),shapeWidth:document.getElementById(`shapeWidth`),shapeHeight:document.getElementById(`shapeHeight`),labelPlacement:document.getElementById(`labelPlacement`),shapeShowInDiagram:document.getElementById(`shapeShowInDiagram`),anchorList:document.getElementById(`anchorList`),anchorCount:document.getElementById(`anchorCount`)},t={libraries:[]},n=null,r=null,i=null,a=null,o=e=>`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,s=()=>t.libraries.find(e=>e.id===n)||null,c=()=>s()?.shapes.find(e=>e.id===r)||null,l=e=>Math.max(0,Math.min(1,e)),u=e=>[`below`,`above`,`right`,`left`,`center`].includes(e)?e:`below`,d=e=>String(e??``).replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]);function f(t){e.saveState.textContent=t,t&&setTimeout(()=>{e.saveState.textContent===t&&(e.saveState.textContent=``)},1800)}async function p(){t=await(await fetch(`/api/shape-libraries`)).json(),Array.isArray(t.libraries)||(t.libraries=[]),t.libraries.length||t.libraries.push({id:o(`lib`),name:`My shapes`,shapes:[]}),n=t.libraries[0].id,r=t.libraries[0].shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}async function m(){t=await(await fetch(`/api/shape-libraries`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json(),f(`Saved`)}function h(){return{id:o(`shape`),name:`New shape`,imageSrc:``,width:65,height:65,labelPlacement:`below`,showInDiagram:!0,anchors:structuredClone(J_)}}function g(){_(),v(),y()}function _(){e.librarySelect.innerHTML=``,t.libraries.forEach(t=>{let r=document.createElement(`option`);r.value=t.id,r.textContent=t.name,r.selected=t.id===n,e.librarySelect.appendChild(r)}),e.libraryName.value=s()?.name||``}function v(){let t=s();e.shapeList.innerHTML=``,(t?.shapes||[]).forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`shape-item w-full flex items-center gap-2 px-2 py-1.5 rounded text-sm text-left hover:bg-gray-100 ${t.id===r?`active`:``}`;let a=document.createElement(`img`);a.src=t.imageSrc,a.alt=``,a.className=`w-6 h-6 object-contain shrink-0`;let o=document.createElement(`span`);o.className=`truncate`,o.textContent=t.name,n.append(a,o),n.addEventListener(`click`,()=>{r=t.id,i=structuredClone(t),g()}),e.shapeList.appendChild(n)}),t?.shapes?.length||(e.shapeList.innerHTML=`<p class="text-xs text-gray-400 px-2 py-2">No shape yet.</p>`)}function y(){i||=h(),e.previewStage.style.aspectRatio=`${Math.max(16,Number(i.width)||65)} / ${Math.max(16,Number(i.height)||65)}`,e.previewImage.src=i.imageSrc||``,e.previewImage.style.display=i.imageSrc?`block`:`none`,e.shapeName.value=i.name||``,e.shapeWidth.value=i.width||65,e.shapeHeight.value=i.height||65,e.labelPlacement.value=u(i.labelPlacement),e.shapeShowInDiagram.checked=i.showInDiagram!==!1,b()}function b(){e.previewStage.querySelectorAll(`.anchor-dot`).forEach(e=>e.remove()),e.anchorList.innerHTML=``;let t=i.anchors||[];e.anchorCount.textContent=`${t.length} anchor${t.length>1?`s`:``}`,t.forEach((t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`anchor-dot`,r.style.left=`${t.x*100}%`,r.style.top=`${t.y*100}%`,r.dataset.anchorId=t.id,r.innerHTML=`<span>${t.id}</span>`,r.addEventListener(`pointerdown`,e=>{e.preventDefault(),a=t.id,r.setPointerCapture(e.pointerId)}),e.previewStage.appendChild(r);let o=document.createElement(`div`);o.className=`grid grid-cols-[4.5rem_1fr_1fr_2rem] gap-2 items-center`,o.innerHTML=`
154
154
  <input class="field !h-7 text-xs" value="${d(t.id)}">
155
155
  <input class="field !h-7 text-xs" type="number" min="0" max="100" step="1" value="${Math.round(t.x*100)}">
156
156
  <input class="field !h-7 text-xs" type="number" min="0" max="100" step="1" value="${Math.round(t.y*100)}">
@@ -0,0 +1 @@
1
+ *,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:#1118271a;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-gray{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:#1118271a;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-2\.5{left:.625rem}.right-0{right:0}.right-4{right:1rem}.right-\[-2px\]{right:-2px}.top-0{top:0}.top-14{top:3.5rem}.top-2{top:.5rem}.top-4{top:1rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[80\]{z-index:80}.col-span-2{grid-column:span 2/span 2}.m-0{margin:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.list-item{display:list-item}.hidden{display:none}.\!h-6{height:1.5rem!important}.\!h-7{height:1.75rem!important}.h-1{height:.25rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[calc\(100vh-3rem\)\]{height:calc(100vh - 3rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-16{max-height:4rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-\[70vh\]{min-height:70vh}.min-h-\[76px\]{min-height:76px}.min-h-full{min-height:100%}.\!w-6{width:1.5rem!important}.\!w-7{width:1.75rem!important}.\!w-8{width:2rem!important}.\!w-auto{width:auto!important}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-44{min-width:11rem}.min-w-\[1\.25rem\]{min-width:1.25rem}.min-w-\[160px\]{min-width:160px}.min-w-\[2\.25rem\]{min-width:2.25rem}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[85vw\]{max-width:85vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[17rem_1fr\]{grid-template-columns:17rem 1fr}.grid-cols-\[4\.5rem_1fr_1fr_2rem\]{grid-template-columns:4.5rem 1fr 1fr 2rem}.grid-cols-\[minmax\(20rem\,34rem\)_minmax\(20rem\,1fr\)\]{grid-template-columns:minmax(20rem,34rem) minmax(20rem,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.divide-yellow-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(254 249 195/var(--tw-divide-opacity,1))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-cyan-200{--tw-border-opacity:1;border-color:rgb(165 243 252/var(--tw-border-opacity,1))}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.border-green-700{--tw-border-opacity:1;border-color:rgb(21 128 61/var(--tw-border-opacity,1))}.border-indigo-200{--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity,1))}.border-orange-600{--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.border-pink-200{--tw-border-opacity:1;border-color:rgb(251 207 232/var(--tw-border-opacity,1))}.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.border-sky-500{--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity,1))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-teal-200{--tw-border-opacity:1;border-color:rgb(153 246 228/var(--tw-border-opacity,1))}.border-violet-200{--tw-border-opacity:1;border-color:rgb(221 214 254/var(--tw-border-opacity,1))}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.border-yellow-300{--tw-border-opacity:1;border-color:rgb(253 224 71/var(--tw-border-opacity,1))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/55{background-color:#3b82f68c}.bg-blue-500\/60{background-color:#3b82f699}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-cyan-50{--tw-bg-opacity:1;background-color:rgb(236 254 255/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-pink-50{--tw-bg-opacity:1;background-color:rgb(253 242 248/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity,1))}.bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-400{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.bg-teal-50{--tw-bg-opacity:1;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.bg-transparent{background-color:#0000}.bg-violet-100{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity,1))}.bg-violet-50{--tw-bg-opacity:1;background-color:rgb(245 243 255/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/80{background-color:#fffc}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-0{padding-left:0!important;padding-right:0!important}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-orange-900{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity,1))}.text-pink-700{--tw-text-opacity:1;color:rgb(190 24 93/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-sky-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-sky-900{--tw-text-opacity:1;color:rgb(12 74 110/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-teal-700{--tw-text-opacity:1;color:rgb(15 118 110/var(--tw-text-opacity,1))}.text-violet-600{--tw-text-opacity:1;color:rgb(124 58 237/var(--tw-text-opacity,1))}.text-violet-700{--tw-text-opacity:1;color:rgb(109 40 217/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.accent-orange-500{accent-color:#f97316}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-amber-400{--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.ring-gray-400{--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity,1))}.ring-green-400{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.ring-purple-400{--tw-ring-opacity:1;--tw-ring-color:rgb(192 132 252/var(--tw-ring-opacity,1))}.ring-red-400{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.ring-transparent{--tw-ring-color:transparent}.ring-offset-2{--tw-ring-offset-width:2px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.dark\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.hover\:border-amber-300:hover{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:border-blue-400:hover{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.hover\:border-cyan-300:hover{--tw-border-opacity:1;border-color:rgb(103 232 249/var(--tw-border-opacity,1))}.hover\:border-emerald-300:hover{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:border-green-400:hover{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.hover\:border-indigo-300:hover{--tw-border-opacity:1;border-color:rgb(165 180 252/var(--tw-border-opacity,1))}.hover\:border-orange-300:hover{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity,1))}.hover\:border-orange-400:hover{--tw-border-opacity:1;border-color:rgb(251 146 60/var(--tw-border-opacity,1))}.hover\:border-pink-300:hover{--tw-border-opacity:1;border-color:rgb(249 168 212/var(--tw-border-opacity,1))}.hover\:border-red-300:hover{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.hover\:border-sky-300:hover{--tw-border-opacity:1;border-color:rgb(125 211 252/var(--tw-border-opacity,1))}.hover\:border-slate-400:hover{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.hover\:border-teal-300:hover{--tw-border-opacity:1;border-color:rgb(94 234 212/var(--tw-border-opacity,1))}.hover\:border-violet-300:hover{--tw-border-opacity:1;border-color:rgb(196 181 253/var(--tw-border-opacity,1))}.hover\:border-yellow-400:hover{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.hover\:bg-amber-100:hover{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-blue-500\/35:hover{background-color:#3b82f659}.hover\:bg-blue-500\/40:hover{background-color:#3b82f666}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-cyan-100:hover{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.hover\:bg-emerald-100:hover{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:bg-orange-100:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.hover\:bg-orange-200:hover{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity,1))}.hover\:bg-orange-600:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-pink-100:hover{--tw-bg-opacity:1;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-sky-100:hover{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-teal-100:hover{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.hover\:bg-violet-100:hover{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity,1))}.hover\:bg-yellow-100:hover{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.hover\:bg-yellow-200:hover{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}.hover\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-950:hover{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:ring-amber-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}.hover\:ring-blue-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.hover\:ring-gray-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity,1))}.hover\:ring-green-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.hover\:ring-purple-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(192 132 252/var(--tw-ring-opacity,1))}.hover\:ring-red-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus\:ring-blue-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-orange-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(251 146 60/var(--tw-ring-opacity,1))}.focus\:ring-yellow-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(250 204 21/var(--tw-ring-opacity,1))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:#0000}.group:hover .group-hover\:flex{display:flex}.group:hover .group-hover\:opacity-100{opacity:1}.prose-headings\:scroll-mt-4 :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){scroll-margin-top:1rem}.prose-headings\:font-semibold :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:600}.prose-h1\:text-\[2\.1875rem\] :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1875rem}.prose-h2\:text-\[1\.8125rem\] :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.8125rem}.prose-h3\:text-\[1\.5rem\] :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5rem}.prose-h4\:text-\[1\.25rem\] :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25rem}.prose-a\:text-blue-600 :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.prose-code\:before\:content-none :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-code\:after\:content-none :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{--tw-content:none;content:var(--tw-content)}.prose-pre\:rounded-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.5rem}.prose-pre\:border :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-width:1px}.prose-pre\:border-gray-200 :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.prose-pre\:border-gray-700 :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.prose-pre\:bg-\[\#0d1117\] :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-bg-opacity:1;background-color:rgb(13 17 23/var(--tw-bg-opacity,1))}.prose-pre\:bg-\[\#f6f8fa\] :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-bg-opacity:1;background-color:rgb(246 248 250/var(--tw-bg-opacity,1))}.prose-pre\:text-gray-800 :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.dark\:divide-gray-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(31 41 55/var(--tw-divide-opacity,1))}.dark\:divide-yellow-900\/40:is(.dark *)>:not([hidden])~:not([hidden]){border-color:#713f1266}.dark\:border-amber-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(146 64 14/var(--tw-border-opacity,1))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-cyan-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(21 94 117/var(--tw-border-opacity,1))}.dark\:border-emerald-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(6 95 70/var(--tw-border-opacity,1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.dark\:border-green-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(21 128 61/var(--tw-border-opacity,1))}.dark\:border-indigo-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 48 163/var(--tw-border-opacity,1))}.dark\:border-orange-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(194 65 12/var(--tw-border-opacity,1))}.dark\:border-orange-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.dark\:border-pink-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(157 23 77/var(--tw-border-opacity,1))}.dark\:border-red-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-sky-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.dark\:border-teal-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(17 94 89/var(--tw-border-opacity,1))}.dark\:border-violet-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(91 33 182/var(--tw-border-opacity,1))}.dark\:border-yellow-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(202 138 4/var(--tw-border-opacity,1))}.dark\:border-yellow-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-900\/40:is(.dark *){background-color:#78350f66}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-blue-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-900\/40:is(.dark *){background-color:#1e3a8a66}.dark\:bg-blue-900\/50:is(.dark *){background-color:#1e3a8a80}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-cyan-950\/40:is(.dark *){background-color:#08334466}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-800\/80:is(.dark *){background-color:#1f2937cc}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.dark\:bg-green-900\/40:is(.dark *){background-color:#14532d66}.dark\:bg-green-900\/50:is(.dark *){background-color:#14532d80}.dark\:bg-indigo-950\/40:is(.dark *){background-color:#1e1b4b66}.dark\:bg-orange-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.dark\:bg-orange-900\/50:is(.dark *){background-color:#7c2d1280}.dark\:bg-orange-950\/40:is(.dark *){background-color:#43140766}.dark\:bg-pink-950\/40:is(.dark *){background-color:#50072466}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-900\/40:is(.dark *){background-color:#7f1d1d66}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-sky-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.dark\:bg-sky-950\/40:is(.dark *){background-color:#082f4966}.dark\:bg-slate-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-teal-950\/40:is(.dark *){background-color:#042f2e66}.dark\:bg-violet-900\/40:is(.dark *){background-color:#4c1d9566}.dark\:bg-violet-950\/40:is(.dark *){background-color:#2e106566}.dark\:bg-yellow-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.dark\:bg-yellow-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.dark\:bg-yellow-800\/50:is(.dark *){background-color:#854d0e80}.dark\:bg-yellow-900\/20:is(.dark *){background-color:#713f1233}.dark\:bg-yellow-900\/40:is(.dark *){background-color:#713f1266}.dark\:bg-yellow-900\/50:is(.dark *){background-color:#713f1280}.dark\:bg-yellow-900\/80:is(.dark *){background-color:#713f12cc}.dark\:bg-yellow-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(66 32 6/var(--tw-bg-opacity,1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.dark\:text-blue-100:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-cyan-300:is(.dark *){--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity,1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-50:is(.dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-green-100:is(.dark *){--tw-text-opacity:1;color:rgb(220 252 231/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-pink-300:is(.dark *){--tw-text-opacity:1;color:rgb(249 168 212/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity,1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity:1;color:rgb(94 234 212/var(--tw-text-opacity,1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity,1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.dark\:hover\:border-amber-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(180 83 9/var(--tw-border-opacity,1))}.dark\:hover\:border-blue-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.dark\:hover\:border-blue-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:hover\:border-cyan-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(14 116 144/var(--tw-border-opacity,1))}.dark\:hover\:border-emerald-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity,1))}.dark\:hover\:border-gray-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:hover\:border-green-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.dark\:hover\:border-indigo-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(67 56 202/var(--tw-border-opacity,1))}.dark\:hover\:border-orange-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.dark\:hover\:border-orange-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(194 65 12/var(--tw-border-opacity,1))}.dark\:hover\:border-pink-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(190 24 93/var(--tw-border-opacity,1))}.dark\:hover\:border-red-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.dark\:hover\:border-sky-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(3 105 161/var(--tw-border-opacity,1))}.dark\:hover\:border-slate-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.dark\:hover\:border-teal-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(15 118 110/var(--tw-border-opacity,1))}.dark\:hover\:border-violet-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(109 40 217/var(--tw-border-opacity,1))}.dark\:hover\:border-yellow-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(202 138 4/var(--tw-border-opacity,1))}.dark\:hover\:bg-amber-900\/50:hover:is(.dark *){background-color:#78350f80}.dark\:hover\:bg-blue-800\/60:hover:is(.dark *){background-color:#1e40af99}.dark\:hover\:bg-blue-900\/20:hover:is(.dark *){background-color:#1e3a8a33}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#1e3a8a4d}.dark\:hover\:bg-blue-900\/50:hover:is(.dark *){background-color:#1e3a8a80}.dark\:hover\:bg-blue-950\/30:hover:is(.dark *){background-color:#1725544d}.dark\:hover\:bg-cyan-900\/50:hover:is(.dark *){background-color:#164e6380}.dark\:hover\:bg-emerald-900\/50:hover:is(.dark *){background-color:#064e3b80}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800\/50:hover:is(.dark *){background-color:#1f293780}.dark\:hover\:bg-gray-800\/60:hover:is(.dark *){background-color:#1f293799}.dark\:hover\:bg-green-800\/60:hover:is(.dark *){background-color:#16653499}.dark\:hover\:bg-indigo-900\/50:hover:is(.dark *){background-color:#312e8180}.dark\:hover\:bg-orange-800\/60:hover:is(.dark *){background-color:#9a341299}.dark\:hover\:bg-orange-900\/50:hover:is(.dark *){background-color:#7c2d1280}.dark\:hover\:bg-pink-900\/50:hover:is(.dark *){background-color:#83184380}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-900\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\:hover\:bg-red-900\/40:hover:is(.dark *){background-color:#7f1d1d66}.dark\:hover\:bg-red-900\/50:hover:is(.dark *){background-color:#7f1d1d80}.dark\:hover\:bg-sky-900\/50:hover:is(.dark *){background-color:#0c4a6e80}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:hover\:bg-teal-900\/50:hover:is(.dark *){background-color:#134e4a80}.dark\:hover\:bg-violet-900\/50:hover:is(.dark *){background-color:#4c1d9580}.dark\:hover\:bg-yellow-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.dark\:hover\:bg-yellow-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(133 77 14/var(--tw-bg-opacity,1))}.dark\:hover\:bg-yellow-800\/60:hover:is(.dark *){background-color:#854d0e99}.dark\:hover\:bg-yellow-900\/30:hover:is(.dark *){background-color:#713f124d}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:prose-a\:text-blue-400 :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:prose-pre\:border-gray-700 :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)):is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:prose-pre\:bg-\[\#0d1117\] :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)):is(.dark *){--tw-bg-opacity:1;background-color:rgb(13 17 23/var(--tw-bg-opacity,1))}.dark\:prose-pre\:text-gray-100 :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)):is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}@media (width>=640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-80{width:20rem}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=768px){.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width>=1024px){.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}}@media (width>=1280px){.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}}.\[\&_img\]\:mx-auto img{margin-left:auto;margin-right:auto}.\[\&_img\]\:block img{display:block}.\[\&_img\]\:rounded-xl img{border-radius:.75rem}.\[\&_img\]\:\[box-shadow\:0_0_0_1px_rgba\(0\,0\,0\,0\.10\)\,0_4px_12px_rgba\(0\,0\,0\,0\.04\)\] img{box-shadow:0 0 0 1px #0000001a,0 4px 12px #0000000a}.dark\:\[\&_img\]\:\[box-shadow\:0_0_0_1px_rgba\(255\,255\,255\,0\.08\)\,0_4px_12px_rgba\(255\,255\,255\,0\.25\)\] img:is(.dark *){box-shadow:0 0 0 1px #ffffff14,0 4px 12px #ffffff40}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--ink:#17202a;--muted:#667085;--line:#d9dee7;--line-strong:#b8c0cc;--panel:#fff;--panel-soft:#f8fafc;--accent:#276ef1;--accent-strong:#174ea6;--accent-soft:#e8f0ff;--green:#047857;--green-soft:#dcfce7;--red:#b42318;--red-soft:#fee4e2;--shadow:0 18px 60px #10182824;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 24px;display:flex}.dark .topbar{color:#f3f4f6;background:#111827eb;border-bottom-color:#ffffff1a}.dark .brand-mark{background:#1f2937;border-color:#fff3}.dark .brand-lockup p{color:#9ca3af}.dark .ghost-button{color:#e5e7eb;background:0 0;border-color:#ffffff1f}.dark .ghost-button:hover{background:#ffffff0f}.brand-lockup,.status-row,.panel-title-row,.panel-actions,.panel-kicker{align-items:center;display:flex}.brand-lockup{gap:12px;min-width:0}.brand-mark{border:1px solid var(--line-strong);color:#fff;letter-spacing:0;background:#111827;border-radius:10px;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}h1,p{margin:0}h1{letter-spacing:0;font-size:15px;font-weight:760}.brand-lockup p{color:var(--muted);margin-top:2px;font-size:12px}.status-row{gap:10px}.status-pill,.panel-kicker span{letter-spacing:0;border-radius:999px;font-size:12px;font-weight:700}.status-pill{border:1px solid var(--line);background:var(--panel-soft);color:#344054;padding:7px 10px}.status-pill.is-live{background:var(--green-soft);color:var(--green);border-color:#86efac}.status-pill.is-fallback{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.workspace-shell{min-height:0;position:relative}.workspace-canvas{cursor:grab;touch-action:none;background:#f8fafc;width:100%;height:100%;transition:filter .18s;display:block}.workspace-canvas.is-panning{cursor:grabbing}.tool-button,.ghost-button,.icon-button,.primary-button,.secondary-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff}.tool-button{border-radius:16px;place-items:center;width:52px;height:52px;font-size:25px;font-weight:700;display:grid;box-shadow:0 10px 30px #1018281a}.tool-button.primary{color:#fff;background:#111827;border-color:#111827}.ghost-button{border-radius:9px;align-items:center;height:34px;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.config-surface{color:#f1f5f9;--panel-ink:#f1f5f9;--panel-muted:#94a3b8;--panel-line:#ffffff1a;--panel-field-bg:#ffffff0d;--panel-field-bg-focus:#ffffff14;background:#111827;border:1px solid #ffffff14;border-radius:28px;flex-direction:column;width:min(780px,max(540px,50vw));max-width:calc(100vw - 48px);height:calc(100vh - 118px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 24px 80px #0006}.config-surface[hidden]{display:none}.panel-kicker{flex-shrink:0;justify-content:space-between;margin-bottom:18px}.panel-kicker span{padding:6px 9px}#nodeTypeBadge{color:#93c5fd;background:#60a5fa26}#nodeHealthBadge{background:var(--green-soft);color:var(--green)}.panel-title-row{flex-shrink:0;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.panel-title-row>div{flex:auto;min-width:0}.eyebrow,.field span{color:var(--panel-muted,#475467);font-size:12px;font-weight:720;display:block}.title-input{width:100%;min-width:0;color:var(--panel-ink,#101828);letter-spacing:0;background:0 0;border:0;outline:0;margin-top:6px;font-size:24px;font-weight:780}.icon-button{border-radius:10px;place-items:center;width:36px;height:36px;font-size:20px;line-height:1;display:grid}.icon-button.danger{color:#fca5a5;background:#ef444433;border-color:#ef444466}.icon-button.close{color:#fde047;background:#eab30826;border-color:#eab30866}.form-grid{flex-shrink:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.field{min-width:0}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid var(--panel-line,var(--line));background:var(--panel-field-bg,#fff);width:100%;color:var(--panel-ink,var(--ink));border-radius:12px;outline:0;margin-top:7px}.field input,.field select{height:42px;padding:0 12px}.field textarea{resize:none;min-height:84px;padding:10px 12px;line-height:1.45}.checkbox-field{align-items:center;gap:10px;min-height:42px;display:flex}.checkbox-field input{accent-color:#2563eb;width:18px;height:18px;margin-top:0}.checkbox-field span{color:var(--panel-ink,var(--ink));font-size:13px;font-weight:760}.field input:focus,.field select:focus,.field textarea:focus,.title-input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa26}.field input[readonly]{border-color:var(--panel-line,#d0d5dd);color:var(--panel-muted,#475467);background:#ffffff08;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:12px}.field select:disabled,.icon-button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.contents{display:contents}.contents[hidden]{display:none}.model-field-row{flex-direction:column;display:flex}.model-select-wrap{align-items:center;gap:6px;margin-top:7px;display:flex}.model-select-wrap select{flex:1;margin-top:0}.model-select-wrap .icon-button{border:1px solid var(--line);width:36px;height:42px;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.model-select-wrap .icon-button:hover{background:#f0f4ff}@keyframes spin{to{transform:rotate(360deg)}}.model-select-wrap .icon-button.loading{pointer-events:none;opacity:.7;animation:.7s linear infinite spin;display:inline-block}.panel-actions{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:18px}.panel-actions-left,.panel-actions-right{align-items:center;gap:8px;display:flex}.test-feedback{color:#475467;min-height:18px;margin:10px 0 0;font-size:12px;font-weight:650;line-height:1.4}.agent-section{flex:none;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:16px;display:grid}.agent-section[hidden]{display:none}#nodeSystemPrompt{resize:vertical;min-height:180px}#nodeUserInputDescription{resize:vertical;min-height:104px}.mcp-inventory{border-top:1px solid var(--panel-line,var(--line));margin-top:18px;padding-top:16px}.inventory-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.inventory-header span{color:var(--panel-ink,#344054);font-size:13px;font-weight:760}.inventory-header strong{color:#93c5fd;background:#60a5fa26;border-radius:999px;padding:5px 8px;font-size:11px}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.inventory-grid article{border:1px solid var(--panel-line,var(--line));background:#ffffff0a;border-radius:14px;min-width:0;padding:12px}.inventory-grid h2{color:#e2e8f0;margin:0 0 8px;font-size:13px;font-weight:800}.inventory-grid ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.inventory-grid li{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;background:#ffffff0f;border-radius:8px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:11px;overflow:hidden}.primary-button,.secondary-button,.danger-button{border-radius:11px;height:40px;padding:0 16px;font-size:13px;font-weight:760}.primary-button{border-color:var(--accent);background:var(--accent);color:#fff}.secondary-button{border-color:var(--panel-line,var(--line));background:var(--panel-field-bg,var(--panel-soft));color:var(--panel-ink,var(--ink))}.danger-button{color:#fff;cursor:pointer;background:#d92d20;border:1px solid #d92d20}.confirm-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a47;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-overlay[hidden]{display:none}.confirm-dialog{background:#fff;border:1px solid #fecdcae6;border-radius:20px;width:min(440px,100vw - 48px);padding:22px;animation:.16s ease-out both confirm-in;box-shadow:0 24px 80px #1018283d}.agent-run-dialog{background:#fff;border:1px solid #bfdbfee6;border-radius:20px;width:min(760px,100vw - 48px);max-height:min(82vh,760px);padding:22px;animation:.16s ease-out both confirm-in;overflow-y:auto;box-shadow:0 24px 80px #1018283d}.agent-run-input-field{margin-top:18px;display:block}.agent-run-result{color:#101828;word-break:break-word;background:#f8fafc;border:1px solid #d0d5dd;border-radius:14px;max-height:360px;margin-top:16px;padding:14px;font-size:13px;line-height:1.55;overflow-y:auto}.agent-run-result[hidden]{display:none}.agent-run-result[data-state=loading]{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.agent-run-result[data-state=success]{background:#f8fafc;border-color:#bbf7d0}.agent-run-result[data-state=error]{color:#991b1b;background:#fef2f2;border-color:#fecaca}.agent-run-event{color:#344054;grid-template-columns:12px 1fr;gap:10px;padding:8px 0;display:grid}.agent-run-event+.agent-run-event{border-top:1px solid #94a3b838}.agent-run-event-dot{background:#64748b;border-radius:999px;width:9px;height:9px;margin-top:7px}.agent-run-result[data-state=loading] .agent-run-event:last-of-type .agent-run-event-dot{background:#2563eb;animation:.9s ease-in-out infinite pulse-dot}.agent-run-event-tool-call .agent-run-event-dot{background:#7c3aed}.agent-run-event-tool-result .agent-run-event-dot,.agent-run-event-final .agent-run-event-dot{background:#16a34a}.agent-run-event-fallback .agent-run-event-dot{background:#f59e0b}.agent-run-event-error .agent-run-event-dot{background:#dc2626}.agent-run-event-title{color:#101828;margin:0;font-weight:760}.agent-run-event-meta{color:#667085;margin:2px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.agent-run-final{border-top:1px solid #16a34a47;margin-top:14px;padding-top:14px}.agent-run-final h3{color:#14532d;margin:0 0 8px;font-size:13px}.agent-run-final pre{white-space:pre-wrap;word-break:break-word;max-height:260px;margin:0;font-family:inherit;overflow:auto}.confirm-kicker{color:var(--red);margin:0 0 6px;font-size:12px;font-weight:800}.confirm-dialog h2{color:#101828;margin:0;font-size:19px;font-weight:820}.confirm-message{color:#475467;margin:10px 0 0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.workspace-toast-stack{z-index:1200;flex-direction:column;align-items:flex-end;gap:12px;max-width:min(420px,100vw - 48px);display:flex;position:fixed;bottom:24px;right:24px}.workspace-toast-stack[hidden]{display:none}.workspace-toast{border:1px solid var(--line);background:var(--panel);width:min(360px,100vw - 48px);color:var(--ink);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;animation:.18s ease-out both toast-in;display:flex;box-shadow:0 8px 32px #10182824}.toast-icon{background:var(--green);color:#fff;border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.workspace-toast[data-state=error] .toast-icon{background:var(--red);color:#fff}.workspace-toast[data-state=loading] .toast-icon{border:2px solid var(--accent);color:#0000;background:0 0;border-top-color:#0000;animation:.8s linear infinite spin}.workspace-toast-body{flex:1;min-width:0}.workspace-toast-message{color:var(--muted);word-break:break-word;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.8em;margin:2px 0 0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.workspace-toast-link{color:var(--accent);margin-top:4px;font-size:12px;text-decoration:underline;display:inline-block}.workspace-toast-close{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:18px;line-height:1}.fallback-panel-host{z-index:6;width:min(780px,max(540px,50vw - 24px));max-width:calc(100vw - 48px);position:absolute;top:24px;bottom:24px;right:24px}.fallback-panel-host:not([hidden]){animation:.22s ease-out both panel-in}.fallback-panel-host .config-surface{width:100%;height:100%}@media (width<=900px){.app-shell{grid-template-rows:88px minmax(0,1fr)}.topbar{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.config-surface{width:min(420px,100vw - 32px);padding:18px}.fallback-panel-host{width:auto;inset:auto 16px 16px}.inventory-grid{grid-template-columns:1fr}}@keyframes panel-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes confirm-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.58;transform:scale(1.45)}}.admin-scroll{height:100%;overflow-y:auto}.admin-form{display:contents}.save-bar{z-index:10;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0}.save-bar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:720px;margin:0 auto;padding:12px 24px;display:flex}.save-bar-title{color:var(--ink);margin:0;font-size:16px;font-weight:700}.save-bar-desc{color:var(--muted);margin:2px 0 0;font-size:12px}.save-bar-actions{flex-shrink:0;align-items:center;gap:16px;display:flex}.save-msg{font-size:13px}.save-msg--ok{color:var(--green)}.save-msg--error{color:var(--red)}.admin-sections{flex-direction:column;gap:24px;max-width:720px;margin:0 auto;padding:24px 24px 40px;display:flex}.config-section{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.config-section-header{border-bottom:1px solid var(--line);padding:16px 24px}.config-section-title{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.config-section-desc{color:var(--muted);margin:4px 0 0 28px;font-size:12px}.config-section-body{flex-direction:column;gap:16px;padding:16px 24px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.field-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px;padding-bottom:8px;display:grid}.info-item dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.info-item dd{color:var(--ink);word-break:break-all;margin:2px 0 0;font-family:monospace;font-size:12px}.field-label{color:var(--ink);font-size:13px;font-weight:500}.field-hint{color:var(--muted);margin:0;font-size:12px}.field-input{border:1px solid var(--line-strong);background:var(--panel-soft);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input--mono{font-family:monospace;font-size:12px}.llm-host-add{align-items:stretch;gap:8px;display:flex}.llm-host-add .field-input{flex:1}.llm-host-btn{border:1px solid var(--line-strong);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;flex:none;padding:8px 14px;font-size:13px;transition:opacity .15s}.llm-host-btn:hover{opacity:.88}.llm-host-list{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.llm-host-chip{border:1px solid var(--line-strong);background:var(--panel-soft);border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 12px;display:inline-flex}.llm-host-chip__url{color:var(--ink);font-family:monospace;font-size:12px}.llm-host-chip__remove{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:background .15s,color .15s;display:inline-flex}.llm-host-chip__remove:hover{background:var(--accent-soft);color:var(--accent)}.checkbox-label{cursor:pointer;color:var(--ink);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);border-radius:4px;flex-shrink:0}.checkbox-hint{margin-left:26px}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-strong)}.btn-sm{padding:6px 12px;font-size:12px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.link-btn:disabled{opacity:.35;pointer-events:none}.pattern-preview{background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;padding:12px}.pattern-preview-title{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:11px;font-weight:700}.pattern-rows{flex-direction:column;gap:8px;margin-top:8px;display:flex}.pattern-row{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.pattern-filename{color:var(--muted);word-break:break-all;margin:0 0 6px;font-family:monospace;font-size:11px}.pattern-cols{grid-template-columns:repeat(3,1fr);gap:8px;font-size:12px;display:grid}.pattern-col-label{color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.pattern-value--date{color:var(--green)}.pattern-value--none{color:var(--muted)}.pattern-value--cat{color:var(--accent)}.pattern-value--title{color:var(--ink)}.file-browser{border:1px solid var(--line);border-radius:8px;overflow:hidden}.file-browser-toolbar{background:var(--panel-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 12px;display:flex}.file-browser-path{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.file-browser-list{max-height:208px;overflow-y:auto}.browser-msg{color:var(--muted);text-align:center;margin:0;padding:12px;font-size:12px}.browser-msg--error{color:var(--red)}.browser-row{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;display:flex}.browser-row:last-child{border-bottom:none}.browser-row:hover{background:var(--panel-soft)}.browser-row--dir{color:var(--ink)}.browser-row--file{cursor:default;justify-content:space-between}.browser-row-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.badge-added{color:var(--green);flex-shrink:0;font-size:11px}.extra-files-list{flex-direction:column;gap:4px;display:flex}.extra-file-row{background:var(--panel-soft);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.extra-file-arrows{flex-direction:column;gap:0;display:flex}.extra-file-arrows button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.2}.extra-file-arrows button:disabled{opacity:.25;pointer-events:none}.extra-file-path{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.remove-btn{color:var(--red);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:12px}.palette-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.swatches{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.swatch-wrap{width:32px;height:32px;position:relative}.swatch{pointer-events:none;border:3px solid;border-radius:50%;width:32px;height:32px}.swatch-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.edge-swatch-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.edge-swatch{border:2px solid #00000026;border-radius:50%;width:26px;height:26px}.remove-swatch-btn{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;line-height:1}.add-color-row{align-items:center;gap:8px;margin-top:12px;display:flex}.color-input{cursor:pointer;border:1px solid var(--line-strong);background:0 0;border-radius:6px;width:32px;height:32px;padding:0}.license-card{border:1px solid var(--accent-soft);border-radius:16px;overflow:hidden}.license-banner{background:linear-gradient(90deg,#276ef1,#4f8ef7,#6366f1);align-items:center;gap:16px;padding:20px 24px;display:flex}.license-icon{font-size:28px}.license-title{color:#fff;margin:0;font-size:15px;font-weight:700}.license-subtitle{color:#fffc;margin:4px 0 0;font-size:12px}.license-body{background:var(--panel);padding:20px 24px}.license-body p{color:var(--ink);margin:0 0 16px;font-size:13px}.license-links{flex-wrap:wrap;gap:12px;display:flex}.license-btn{color:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.license-btn svg{flex-shrink:0;width:16px;height:16px}.license-btn:hover{opacity:.85}.license-btn--linkedin{background:#0a66c2}.license-btn--npm{background:#cb3837}.agents-backdrop.svelte-f11yds{z-index:9998;position:fixed;inset:0}.agents-dropdown.svelte-f11yds{z-index:9999;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:220px;max-width:320px;padding:6px;display:flex;position:fixed;box-shadow:0 8px 24px #0000001f}.agents-dropdown-empty.svelte-f11yds{color:var(--muted);margin:0;padding:10px 12px;font-size:13px;font-style:italic}.agents-group.svelte-f11yds{flex-direction:column;display:flex}.agents-group.svelte-f11yds+.agents-group:where(.svelte-f11yds){border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.agents-group-toggle.svelte-f11yds{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:6px 10px 4px;font-family:inherit;display:flex}.agents-group-toggle.svelte-f11yds:hover{background:var(--panel-soft)}.agents-group-label.svelte-f11yds{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px;font-weight:700}.agents-group-chevron.svelte-f11yds{color:var(--muted);font-size:14px;line-height:1;transition:transform .15s;transform:rotate(0)}.agents-group-chevron--open.svelte-f11yds{transform:rotate(90deg)}.agents-item.svelte-f11yds{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.agents-item.svelte-f11yds:hover:not(:disabled){background:var(--accent-soft)}.agents-item--disabled.svelte-f11yds{opacity:.45;cursor:not-allowed}.agents-item-name.svelte-f11yds{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.agents-item-badge.svelte-f11yds{background:var(--panel-soft);color:var(--muted);border-radius:20px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:600}.agents-item-badge--input.svelte-f11yds{background:var(--accent-soft);color:var(--accent)}.agents-modal-overlay.svelte-f11yds{z-index:9999}:root[data-blueprint]{--bg:#0f172a;--ink:#f1f5f9;--muted:#94a3b8;--line:#ffffff1a;--accent:#3b82f6;--accent-soft:#3b82f626;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0}.app-shell{grid-template-rows:64px minmax(0,1fr);width:100vw;height:100vh;display:grid}[data-blueprint] .topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aeb}.brand-lockup{align-items:center;gap:12px;min-width:0;display:flex}[data-blueprint] .brand-mark{color:#fff;background:#1e293b;border-color:#fff3}.brand-lockup h1{letter-spacing:0;margin:0;font-size:14px;font-weight:760}.brand-lockup p{color:var(--muted);margin:2px 0 0;font-size:11px}.topbar-right{align-items:center;gap:8px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.breadcrumb-item{cursor:pointer;color:var(--accent);white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;transition:opacity .15s}.breadcrumb-item:hover{opacity:.75}.breadcrumb-item.current{color:var(--ink);cursor:default;font-weight:700}.breadcrumb-sep{opacity:.4;font-size:11px}.ghost-button{border:1px solid var(--line);height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:9px;align-items:center;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}[data-blueprint] .ghost-button:hover{background:#ffffff0f}.workspace-shell{position:relative;overflow:hidden}canvas{cursor:default;width:100%;height:100%}canvas.is-panning{cursor:grabbing}.rail{z-index:5;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px}.tool-button:disabled{opacity:.35;cursor:not-allowed}.cluster-overlays{pointer-events:none;z-index:4;position:absolute;inset:0}.cluster-tag{pointer-events:auto;align-items:center;gap:2px;display:flex;position:absolute;transform:translateY(-50%)}.cluster-tag-label,.cluster-tag-input{color:#ede9fe;white-space:normal;overflow-wrap:anywhere;cursor:pointer;background:#7c3aedd9;border:1px solid #a78bfa;border-radius:6px;max-width:220px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.3}.cluster-tag-input{cursor:text;outline:none}.cluster-tag-del,.cluster-tag-add,.cluster-tag-remove{color:#ede9fe;cursor:pointer;background:#7c3aedd9;border:1px solid #a78bfa;border-radius:6px;place-items:center;width:18px;height:18px;font-size:13px;line-height:1;display:grid}.cluster-tag-del:hover{background:#dc2626;border-color:#ef4444}.cluster-tag-add:hover{background:#16a34a;border-color:#22c55e}.cluster-tag-remove:hover{background:#d97706;border-color:#f59e0b}[data-blueprint] .tool-button{background:#1e293b;box-shadow:0 8px 24px #0000004d}[data-blueprint] .tool-button:hover{background:#273549}[data-blueprint] .tool-button.active{color:#60a5fa;background:#3b82f633;border-color:#3b82f6}.file-explorer{border-left:1px solid var(--line);z-index:10;background:#0f172a;flex-direction:column;width:50%;animation:.2s ease-out both slide-in;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.explorer-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.explorer-path{color:#93c5fd;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.explorer-close{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;place-items:center;font-size:18px;transition:background .15s;display:grid}.explorer-close:hover{color:var(--ink);background:#ffffff0f}.explorer-top{flex:1;min-height:0;overflow-y:auto}.explorer-divider{background:var(--line);flex-shrink:0;height:1px}.explorer-bottom{flex:1;min-height:0;overflow-y:auto}.explorer-list{padding:8px 0}.explorer-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 20px;font-size:13px;transition:background .1s;display:flex}.explorer-item:hover{background:#ffffff0a}.explorer-item.is-folder{color:#93c5fd;font-weight:600}.explorer-item.is-file{color:#94a3b8}.explorer-breadcrumb{flex:1;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex;overflow:hidden}.explorer-breadcrumb-item{color:#60a5fa;cursor:pointer;white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.explorer-breadcrumb-item:hover{text-decoration:underline}.explorer-breadcrumb-item.current{color:#f1f5f9;cursor:default}.explorer-breadcrumb-item.current:hover{text-decoration:none}.explorer-breadcrumb-sep{color:#475569;font-size:11px}.file-preview{height:100%;padding:16px}.file-preview-placeholder{color:#475569;margin:0;padding-top:8px;font-size:13px}.file-preview pre{white-space:pre-wrap;word-break:break-all;margin:0;font-size:12px;line-height:1.6}.file-preview .hljs{background:0 0;padding:0}.file-preview .hljs-ln{border-collapse:collapse;font-size:12px;line-height:1.6}.file-preview .hljs-ln td{padding:0}.file-preview .hljs-ln-numbers{-webkit-user-select:none;user-select:none;text-align:right;color:#3d4f6b;vertical-align:top;border-right:1px solid #1e3a5f;min-width:36px;padding-left:4px!important;padding-right:16px!important}.file-preview .hljs-ln-code{padding-left:16px!important}.file-preview img{-o-object-fit:contain;object-fit:contain;border-radius:8px;max-width:100%;max-height:300px}.file-preview video{border-radius:8px;max-width:100%}.file-preview-binary,.file-preview-truncated{border-radius:6px;margin-top:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.file-preview-binary{color:#fca5a5;background:#ef444426}.file-preview-truncated{color:#fde047;background:#eab30826}.file-preview-name{color:#94a3b8;margin:0 0 10px;font-size:12px;font-weight:700}.explorer-section-label{color:#475569;text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px 4px;font-size:11px;font-weight:700;display:flex}.explorer-section-label.with-action{padding-right:16px}.explorer-copy-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #94a3b82e;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.explorer-copy-btn:hover{color:#93c5fd;background:#60a5fa1a;border-color:#60a5fa73}.explorer-copy-btn.copied{color:#34d399;border-color:#34d39973}.empty-state{color:var(--muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;inset:0}.empty-state p{margin:0}.bpadr-overlay{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#94a3b84d;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.bpadr-modal{color:#1e293b;background:#f9fafb;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;width:min(1100px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 32px 80px #0000004d}.bpadr-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.bpadr-title-row{align-items:center;gap:8px;min-width:0;display:flex}.bpadr-title{color:#0f172a;min-width:0;margin:0;font-size:16px;font-weight:760}.bpadr-title code{color:#0f172a;background:#e2e8f0;border-radius:6px;margin-left:6px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.95em;font-weight:700;display:inline-block}.bpadr-copy-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,color .15s;display:inline-flex}.bpadr-copy-btn:hover{color:#2563eb;background:#f8fafc}.bpadr-copy-btn.copied{color:#16a34a}.bpadr-header-actions{align-items:center;gap:8px;display:flex}.bpadr-icon-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;place-items:center;width:32px;height:32px;font-size:16px;transition:background .15s;display:grid}.bpadr-icon-btn:hover{color:#0f172a;background:#f1f5f9}.bpadr-read{flex:1;padding:24px;overflow-y:auto}.bpadr-prose{width:100%;max-width:none!important}#bpadrRendered hr{opacity:1!important;border-color:#d1d5db!important}#bpadrRendered :not(pre)>code{color:#1f2937;background-color:#e5e7eb;border-radius:.25rem;padding:.1em .3em;font-size:.875em;font-weight:500}#bpadrRendered table{border-collapse:collapse;border:none}#bpadrRendered table th,#bpadrRendered table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}#bpadrRendered table thead th{border-bottom-color:#d1d5db}#bpadrRendered table thead,#bpadrRendered table tbody tr{border:none}.bpadr-form{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow-y:auto}.bpadr-field{flex-direction:column;gap:6px;display:flex}.bpadr-field label{color:#64748b;font-size:12px;font-weight:700}.bpadr-field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.bpadr-field-grow{flex:1;min-height:0}.bpadr-field-grow .bpadr-textarea{flex:1;min-height:200px}.bpadr-input,.bpadr-textarea{color:#1e293b;resize:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.bpadr-input:focus,.bpadr-textarea:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.bpadr-input[readonly]{color:#2563eb;cursor:default;background:#eff6ff;border-color:#bfdbfe}.bpadr-textarea{min-height:180px;line-height:1.6}.bpadr-footer{flex-shrink:0;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.bpadr-doc-footer{border-top:1px solid #e2e8f0;align-items:center;padding:12px 24px 16px}.bpadr-btn-ghost{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;height:36px;padding:0 14px;font-size:13px;font-weight:700}.bpadr-btn-ghost:hover{color:#1e293b;background:#f1f5f9}.bpadr-btn-primary{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:9px;height:36px;padding:0 16px;font-size:13px;font-weight:700}.bpadr-btn-primary:hover{background:#2563eb}.bpadr-folder-confirm{flex-direction:column;gap:8px;padding:32px 24px;display:flex}.bpadr-folder-confirm p{color:#1e293b;margin:0;font-size:14px}.bpadr-folder-confirm strong{color:#2563eb}.bpadr-muted{color:#64748b!important;font-size:13px!important}.files-page.svelte-4q2lov{max-width:720px;margin:0 auto;padding:32px 24px}.files-msg.svelte-4q2lov{color:var(--muted);text-align:center;padding:48px 0;font-size:14px}.files-msg--error.svelte-4q2lov{color:var(--red)}.files-msg--empty.svelte-4q2lov{font-style:italic}.files-list.svelte-4q2lov{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.files-row.svelte-4q2lov{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 20px;display:flex}.files-row.svelte-4q2lov:last-child{border-bottom:none}.files-icon.svelte-4q2lov{flex-shrink:0;font-size:18px}.files-info.svelte-4q2lov{flex:1;min-width:0}.files-name.svelte-4q2lov{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;text-decoration:none;display:block;overflow:hidden}.files-name.svelte-4q2lov:hover{color:var(--accent);text-decoration:underline}.files-meta.svelte-4q2lov{color:var(--muted);margin-top:2px;font-size:12px}.files-row-error.svelte-4q2lov{color:var(--red);margin:4px 0 0;font-size:12px}.files-actions.svelte-4q2lov{flex-shrink:0;gap:8px;display:flex}.files-btn.svelte-4q2lov{border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink);cursor:pointer;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:12px;transition:background .15s}.files-btn.svelte-4q2lov:hover{background:var(--accent-soft);border-color:var(--accent)}.files-btn.svelte-4q2lov:disabled{opacity:.5;pointer-events:none}.files-btn--danger.svelte-4q2lov{border-color:var(--red-soft);color:var(--red)}.files-btn--danger.svelte-4q2lov:hover{background:var(--red-soft);border-color:var(--red)}.section-card.svelte-e5jhdq{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.section-header.svelte-e5jhdq{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-e5jhdq{color:var(--ink);font-size:13px;font-weight:600}.header-actions.svelte-e5jhdq{align-items:center;gap:8px;display:flex}.count-label.svelte-e5jhdq{color:var(--muted);font-size:12px}.instruction-list.svelte-e5jhdq{flex-direction:column;gap:8px;display:flex}.instruction-row.svelte-e5jhdq{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.instruction-info.svelte-e5jhdq{min-width:0}.instruction-path.svelte-e5jhdq{word-break:break-all;color:var(--accent);font-family:monospace;font-size:11px;text-decoration:none}.instruction-path.svelte-e5jhdq:hover{text-decoration:underline}.instruction-meta.svelte-e5jhdq{color:var(--muted);margin-top:2px;font-size:11px}.instruction-actions.svelte-e5jhdq{flex-shrink:0;align-items:center;gap:12px;display:flex}.status-ok.svelte-e5jhdq{color:var(--green);font-size:12px;font-weight:600}.status-missing.svelte-e5jhdq{color:var(--red);font-size:12px;font-weight:600}.empty-msg.svelte-e5jhdq{color:var(--muted);margin:0;font-size:13px}.rules-layout.svelte-1r3tey2{grid-template-columns:minmax(0,1fr) 22rem;align-items:start;gap:16px;display:grid}@media (width<=900px){.rules-layout.svelte-1r3tey2{grid-template-columns:1fr}}.section-card.svelte-1r3tey2{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.aside-card.svelte-1r3tey2{gap:10px}.section-header.svelte-1r3tey2{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1r3tey2{color:var(--ink);font-size:13px;font-weight:600}.rules-folder.svelte-1r3tey2{color:var(--muted);font-family:monospace;font-size:11px}.rule-list.svelte-1r3tey2{flex-direction:column;gap:8px;display:flex}.rule-row.svelte-1r3tey2{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.rule-top.svelte-1r3tey2{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.rule-title-wrap.svelte-1r3tey2{min-width:0}.rule-title.svelte-1r3tey2{margin:0;font-size:13px;font-weight:600}.rule-link.svelte-1r3tey2{color:var(--accent);text-decoration:none}.rule-link.svelte-1r3tey2:hover{text-decoration:underline}.rule-path.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px;text-decoration:none;display:block}.rule-path.svelte-1r3tey2:hover{color:var(--accent)}.severity-badge.svelte-1r3tey2{background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.rule-desc.svelte-1r3tey2{color:var(--muted);margin:0 0 6px;font-size:13px}.rule-tags.svelte-1r3tey2{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.tag.svelte-1r3tey2{color:var(--accent);font-size:11px}.rule-applies.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px}.empty-msg.svelte-1r3tey2{color:var(--muted);margin:0;font-size:13px}.section-card.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.section-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1ui2b6s{color:var(--ink);font-size:13px;font-weight:600}.section-desc.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-info-grid.svelte-1ui2b6s{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mcp-info-cell.svelte-1ui2b6s{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.mcp-info-cell.wide.svelte-1ui2b6s{grid-column:1/-1}.mcp-info-label.svelte-1ui2b6s{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.mcp-info-value.svelte-1ui2b6s{color:var(--ink);margin-top:3px;font-size:12px;font-weight:600}.mcp-info-value.ok.svelte-1ui2b6s{color:var(--green)}.mcp-info-value.err.svelte-1ui2b6s{color:var(--red)}.mcp-info-value.mono.svelte-1ui2b6s{font-family:monospace;font-weight:400}.mcp-info-value.break.svelte-1ui2b6s{word-break:break-all}.subsection-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.subsection-title.svelte-1ui2b6s{color:var(--muted);font-size:12px;font-weight:600}.subsection-actions.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.count-label.svelte-1ui2b6s{color:var(--muted);font-size:11px}.mcp-items.svelte-1ui2b6s{flex-direction:column;gap:6px;display:flex}.mcp-detail.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:8px 12px}.mcp-summary.svelte-1ui2b6s{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;font-family:monospace;font-size:12px;font-weight:600;list-style:none}.mcp-summary.svelte-1ui2b6s::-webkit-details-marker{display:none}.mcp-desc.svelte-1ui2b6s{color:var(--muted);white-space:pre-wrap;margin:8px 0 0;font-size:12px;line-height:1.5}.mcp-schema-wrap.svelte-1ui2b6s{margin-top:10px}.mcp-schema-title.svelte-1ui2b6s{color:var(--muted);margin:0 0 4px;font-size:11px;font-weight:600}.mcp-schema-pre.svelte-1ui2b6s{background:var(--panel);border:1px solid var(--line);max-height:200px;color:var(--ink);white-space:pre;border-radius:6px;padding:8px;font-size:11px;overflow:auto}.mcp-args-list.svelte-1ui2b6s{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mcp-arg-item.svelte-1ui2b6s{border:1px solid var(--line);border-radius:6px;padding:6px 8px}.mcp-arg-name-row.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.mcp-arg-name.svelte-1ui2b6s{color:var(--ink);font-family:monospace;font-size:12px;font-weight:600}.mcp-arg-req.svelte-1ui2b6s{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:11px}.mcp-arg-desc.svelte-1ui2b6s{color:var(--muted);margin:4px 0 0;font-size:11px}.mcp-run-area.svelte-1ui2b6s{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.mcp-run-label.svelte-1ui2b6s{color:var(--muted);font-size:11px;font-weight:600}.mcp-textarea.svelte-1ui2b6s{resize:vertical;font-family:monospace;font-size:11px}.mcp-run-footer.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;display:flex}.mcp-error-text.svelte-1ui2b6s{color:var(--red);font-size:11px}.mcp-result.svelte-1ui2b6s{font-size:11px}.empty-msg.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-running{color:var(--muted);font-style:italic}.mcp-saved-label{color:var(--muted);margin-bottom:4px;font-size:11px}.mcp-saved-link{background:var(--green-soft);color:var(--green);border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-family:monospace;font-size:11px;font-weight:600;text-decoration:none;display:inline-flex}.mcp-saved-link:hover{opacity:.8}.mcp-error-pre{white-space:pre-wrap;word-break:break-word;border:1px solid var(--red-soft);background:var(--red-soft);max-height:200px;color:var(--red);border-radius:6px;padding:8px;font-size:11px;line-height:1.5;overflow:auto}.context-scroll.svelte-rpj1e5{height:100%;overflow-y:auto}.context-inner.svelte-rpj1e5{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;padding:24px 24px 48px;display:flex}.page-intro.svelte-rpj1e5{flex-direction:column;gap:4px;display:flex}.page-title.svelte-rpj1e5{color:var(--ink);margin:0;font-size:18px;font-weight:700}.page-desc.svelte-rpj1e5{color:var(--muted);margin:0;font-size:13px}.status-text.svelte-rpj1e5{color:var(--muted);margin:0;font-size:12px;font-style:italic}.ld-inline-snippet-target{cursor:context-menu}.prose img[class*=ld-image-width-]{max-width:100%;height:auto}.prose img.ld-image-width-full{width:100%}.prose img.ld-image-width-three-quarters{width:75%}.prose img.ld-image-width-two-thirds{width:66.6667%}.prose img.ld-image-width-half{width:50%}.prose img.ld-image-width-third{width:33.3333%}.prose img.ld-image-width-quarter{width:25%}.prose img[class*=ld-image-align-]{display:block}.prose img.ld-image-align-left{margin-left:0!important;margin-right:auto!important}.prose img.ld-image-align-center{margin-left:auto!important;margin-right:auto!important}.prose img.ld-image-align-right{margin-left:auto!important;margin-right:0!important}.prose pre[class*=ld-code-width-],.prose .mermaid[class*=ld-mermaid-width-]{max-width:100%}.prose pre.ld-code-width-full,.prose .mermaid.ld-mermaid-width-full{width:100%}.prose pre.ld-code-width-three-quarters,.prose .mermaid.ld-mermaid-width-three-quarters{width:75%}.prose pre.ld-code-width-two-thirds,.prose .mermaid.ld-mermaid-width-two-thirds{width:66.6667%}.prose pre.ld-code-width-half,.prose .mermaid.ld-mermaid-width-half{width:50%}.prose pre.ld-code-width-third,.prose .mermaid.ld-mermaid-width-third{width:33.3333%}.prose pre.ld-code-width-quarter,.prose .mermaid.ld-mermaid-width-quarter{width:25%}.prose pre[class*=ld-code-align-],.prose .mermaid[class*=ld-mermaid-align-]{display:block}.prose pre.ld-code-align-left,.prose .mermaid.ld-mermaid-align-left{margin-left:0!important;margin-right:auto!important}.prose pre.ld-code-align-center,.prose .mermaid.ld-mermaid-align-center{margin-left:auto!important;margin-right:auto!important}.prose pre.ld-code-align-right,.prose .mermaid.ld-mermaid-align-right{margin-left:auto!important;margin-right:0!important}.prose .mermaid[class*=ld-mermaid-width-] svg{width:100%;max-width:100%;height:auto}.ld-table-editor table.ld-table-edit-table{--tbl-accent:#d1d5db;--tbl-accent-soft:#e5e7eb;--tbl-accent-stripe:#f3f4f6;--tbl-accent-text:#111827;border-collapse:collapse;border:none}.dark .ld-table-editor table.ld-table-edit-table{--tbl-accent:#4b5563;--tbl-accent-soft:#374151;--tbl-accent-stripe:#1f2937;--tbl-accent-text:#f3f4f6}.ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}.ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}.ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}.ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}.ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark .ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark .ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark .ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark .ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark .ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.ld-table-editor table.ld-table-edit-table td{border:none;border-bottom:1px solid var(--tbl-accent-soft);background:#fff;padding:0}.dark .ld-table-editor table.ld-table-edit-table td{background:#030712}.ld-table-editor table.ld-table-edit-table tr:first-child td{border-bottom-color:var(--tbl-accent);color:var(--tbl-accent-text)}.ld-table-editor table.ld-table-edit-table[class*=table-color-] tr:first-child td{background:var(--tbl-accent-soft)}.ld-table-editor table.ld-table-edit-table .ld-table-edit-input{color:inherit;padding:.75rem;font-size:.875rem}.ld-table-editor table.ld-table-edit-table.table-style-compact .ld-table-edit-input{padding:.25rem .5rem;font-size:.8rem;line-height:1.35}.ld-table-editor table.ld-table-edit-table.table-style-striped tr:not(:first-child):nth-child(odd) td{background:var(--tbl-accent-stripe)}.ld-table-editor table.ld-table-edit-table.table-border-bordered,.ld-table-editor table.ld-table-edit-table.table-border-bordered td{border:1px solid var(--tbl-accent)}.category-docs{transition:max-height .2s,opacity .2s}.category-docs.collapsed{opacity:0;max-height:0;overflow:hidden}.category-docs.expanded{opacity:1;max-height:9999px}.category-docs.no-transition{transition:none!important}.prose pre{position:relative}.ld-code-copy{z-index:2;color:#d1d5db;cursor:pointer;opacity:0;background:#ffffff14;border:1px solid #ffffff26;border-radius:.375rem;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;line-height:1;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;top:.4rem;right:.5rem}.prose pre:hover .ld-code-copy,.ld-code-copy:focus-visible,.ld-code-copy.ld-copied{opacity:1}.ld-code-copy:hover{background:#fff3}.ld-code-copy.ld-copied{color:#86efac;background:#22c55e40;border-color:#22c55e66}table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.prose table[class*=table-color-] thead th{background-color:var(--tbl-accent-soft);color:var(--tbl-accent-text)}.prose table{border-collapse:collapse;border:none}.prose table th,.prose table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}.prose table thead th{border-bottom-color:#d1d5db}.dark .prose table th,.dark .prose table td{border-bottom-color:#374151}.prose table[class*=table-color-] th,.prose table[class*=table-color-] td{border-bottom-color:var(--tbl-accent-soft)}.prose table[class*=table-color-] thead th{border-bottom-color:var(--tbl-accent)}.prose table thead,.prose table tbody tr{border:none}.prose table.table-style-compact{font-size:.85em;line-height:1.35}.prose table.table-style-compact th,.prose table.table-style-compact td{padding:.2rem .5rem}.prose table.table-style-striped{border-collapse:collapse}.prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#f3f4f6)}.dark .prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#374151)}.prose table.table-border-bordered{border-collapse:collapse}.prose table.table-border-bordered,.prose table.table-border-bordered th,.prose table.table-border-bordered td{border:1px solid var(--tbl-accent,#d1d5db)}.dark .prose table.table-border-bordered,.dark .prose table.table-border-bordered th,.dark .prose table.table-border-bordered td{border-color:var(--tbl-accent,#4b5563)}.prose table.table-border-borderless th,.prose table.table-border-borderless td{border-top:none!important;border-left:none!important;border-right:none!important}pre.ld-collapsible{max-height:var(--ld-code-max-h,400px);position:relative;overflow:hidden}pre.ld-collapsible.ld-expanded{max-height:none;overflow:auto}pre.ld-collapsible:not(.ld-expanded):after{content:"";pointer-events:none;background:linear-gradient(#282c3400 0%,#282c34d9 100%);height:64px;position:absolute;bottom:0;left:0;right:0}.ld-code-toggle{z-index:1;color:#e5e7eb;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:.375rem;padding:.15rem .6rem;font-size:.75rem;font-weight:500;transition:background .15s;position:absolute;bottom:.4rem;right:.5rem}.ld-code-toggle:hover{background:#ffffff38}.color-swatch-btn.selected-swatch,.color-text-swatch-btn.selected-text-swatch{outline-offset:2px;outline:2px solid;box-shadow:0 0 0 3px #00000026}.ld-toc-aside{border-left:1px solid #e5e7eb}.dark .ld-toc-aside{border-left-color:#374151}.doc-item.active{color:#3b82f6;background-color:#3b82f61f;font-weight:600}.dark .doc-item.active{color:#60a5fa;background-color:#60a5fa26}.dark .prose{color:#d1d5db}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:#f9fafb}.dark .prose a{color:#60a5fa}.dark .prose strong{color:#f3f4f6}.prose code:not(pre code){color:#111827;background:#e5e7eb;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose code:not(pre code){color:#f87171;background:#4b5563;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose blockquote{color:#9ca3af;border-color:#4b5563}.prose blockquote p:first-of-type:before,.prose blockquote p:last-of-type:after{content:none}.prose blockquote.ld-callout{--callout-accent:#9ca3af;--callout-bg:#f9fafb;--callout-title-color:#374151;--callout-icon-color:#6b7280;border:none;border-left:4px solid var(--callout-accent);background:var(--callout-bg);color:inherit;border-radius:0 .5rem .5rem 0;margin-left:0;margin-right:0;padding:1rem 1.25rem;font-style:normal}.prose blockquote.ld-callout p{color:inherit;margin-top:.4em;margin-bottom:.4em}.prose blockquote.ld-callout p:first-of-type{margin-top:0}.prose blockquote.ld-callout p:last-of-type{margin-bottom:0}.ld-callout-header{color:var(--callout-title-color);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.05em;font-weight:700;line-height:1.3;display:flex}.ld-callout-icon{color:var(--callout-icon-color);flex-shrink:0;align-items:center;margin-right:.15rem;display:inline-flex;transform:scale(1.35)}.ld-callout-icon-inline{vertical-align:middle;margin-top:-.1em;margin-right:.4rem;transform:scale(1.2)}.prose blockquote.ld-callout-info,.prose blockquote.ld-callout-note{--callout-accent:#3b82f6;--callout-bg:#eff6ff;--callout-title-color:#1e3a8a;--callout-icon-color:#3b82f6}.prose blockquote.ld-callout-success,.prose blockquote.ld-callout-tip{--callout-accent:#22c55e;--callout-bg:#f0fdf4;--callout-title-color:#14532d;--callout-icon-color:#22c55e}.prose blockquote.ld-callout-warning,.prose blockquote.ld-callout-caution{--callout-accent:#f59e0b;--callout-bg:#fffbeb;--callout-title-color:#78350f;--callout-icon-color:#f59e0b}.prose blockquote.ld-callout-error,.prose blockquote.ld-callout-danger{--callout-accent:#ef4444;--callout-bg:#fef2f2;--callout-title-color:#7f1d1d;--callout-icon-color:#ef4444}.dark .prose blockquote.ld-callout{--callout-bg:#3741514d;--callout-title-color:#e5e7eb;--callout-icon-color:#9ca3af}.dark .prose blockquote.ld-callout-info,.dark .prose blockquote.ld-callout-note{--callout-accent:#60a5fa;--callout-bg:#1e3a8a33;--callout-title-color:#bfdbfe;--callout-icon-color:#60a5fa}.dark .prose blockquote.ld-callout-success,.dark .prose blockquote.ld-callout-tip{--callout-accent:#4ade80;--callout-bg:#14532d33;--callout-title-color:#bbf7d0;--callout-icon-color:#4ade80}.dark .prose blockquote.ld-callout-warning,.dark .prose blockquote.ld-callout-caution{--callout-accent:#fbbf24;--callout-bg:#78350f33;--callout-title-color:#fed7aa;--callout-icon-color:#fbbf24}.dark .prose blockquote.ld-callout-error,.dark .prose blockquote.ld-callout-danger{--callout-accent:#f87171;--callout-bg:#7f1d1d33;--callout-title-color:#fecaca;--callout-icon-color:#f87171}.prose img{margin-top:0;margin-bottom:0}.prose p>img:only-child,.prose p>a:only-child>img{margin-top:1em;margin-bottom:1em}.prose hr{border-color:#d1d5db;margin-top:2em;margin-bottom:2em}mark.ld-local-mark{color:inherit;background:#bae6fd;border-radius:2px;padding:0 1px}mark.ld-local-mark.ld-local-active{color:#fff;background:#0284c7}.dark mark.ld-local-mark{color:#e0f2fe;background:#075985}.dark mark.ld-local-mark.ld-local-active{color:#082f49;background:#0ea5e9}.ld-local-item-active{background:#0ea5e91f}.prose a.ld-file-attachment,a.ld-file-attachment{color:#5b21b6;background:#ede9fe;border:1px solid #ddd6fe;border-radius:.375rem;align-items:center;gap:.35em;padding:.1em .55em;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.prose a.ld-file-attachment:hover,a.ld-file-attachment:hover{background:#ddd6fe;border-color:#c4b5fd}.dark .prose a.ld-file-attachment,.dark a.ld-file-attachment{color:#c4b5fd;background:#8b5cf62e;border-color:#8b5cf64d}.dark .prose a.ld-file-attachment:hover,.dark a.ld-file-attachment:hover{background:#8b5cf647;border-color:#8b5cf673}a.ld-file-attachment .ld-file-icon{opacity:.85;font-size:.85em}.dark .prose hr{border-color:#374151}.dark .prose table th{color:#f9fafb;background:#1f2937}.dark .prose table td{border-color:#374151}.dark .prose table tr:nth-child(2n){background:#111827}@media print{#sidebar,#header{display:none!important}#content-area{margin:0!important}.no-print{display:none!important}.prose{max-width:100%!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:#4b5563}mark{color:inherit;background:#fef08a;border-radius:2px;padding:0 2px}mark.match-active{color:#fff;background:#f97316}.dark mark{color:#fef9c3;background:#713f12}.dark mark.match-active{color:#fff;background:#ea580c}html:not(.dark) body.ld-code-light #home-content-area{background:#fff}html:not(.dark) body.ld-code-light .ld-code-copy{color:#6b7280;background:#0000000a;border:1px solid #0000001a}html:not(.dark) body.ld-code-light .prose pre:hover .ld-code-copy,html:not(.dark) body.ld-code-light .ld-code-copy:focus-visible,html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{opacity:1}html:not(.dark) body.ld-code-light .ld-code-copy:hover{color:#111827;background:#00000014;border-color:#0000002e}html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{color:#15803d;background:#22c55e1f;border-color:#22c55e59}html:not(.dark) body.ld-code-light pre.ld-collapsible:not(.ld-expanded):after{background:linear-gradient(#f6f8fa00 0%,#f6f8faeb 100%)}html:not(.dark) body.ld-code-light .ld-code-toggle{color:#374151;background:#0000000d;border:1px solid #0000001f}html:not(.dark) body.ld-code-light .ld-code-toggle:hover{background:#0000001a}.ld-compare{border:1px solid #e5e7eb;border-radius:.5rem;grid-template-columns:1fr 1fr;margin:1.5rem 0;font-size:.92em;display:grid;overflow:hidden}.dark .ld-compare{border-color:#374151}.ld-compare-source,.ld-compare-render{padding:1rem 1.25rem;position:relative}.ld-compare-source:before,.ld-compare-render:before{text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;font-size:.68rem;font-weight:700;display:block}.ld-compare-source:before{content:"Syntaxe";color:#6b7280}.ld-compare-render:before{content:"Rendu";color:#6b7280}.ld-compare-source{background-color:#f9fafb;border-right:1px solid #e5e7eb}.dark .ld-compare-source{background-color:#111827;border-right-color:#374151}.ld-compare-render{background-color:#fff}.dark .ld-compare-render{background-color:#111827}.ld-compare-render>:first-child{margin-top:0}.ld-compare-render>:last-child{margin-bottom:0}.ld-compare-source>pre{border-radius:.25rem;margin:0;font-size:.85em;background-color:#fff!important}.dark .ld-compare-source>pre{background-color:#111827!important}@media (width<=640px){.ld-compare{grid-template-columns:1fr}.ld-compare-source{border-bottom:1px solid #e5e7eb;border-right:none}.dark .ld-compare-source{border-bottom-color:#374151}}.tts-active{background-color:#facc1559;border-radius:3px}#vis-canvas>div{border:none!important}.tool-btn{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;transition:background-color .15s,color .15s;display:flex}.dark .tool-btn{color:#9ca3af}.tool-btn:hover{background:#f3f4f6}.dark .tool-btn:hover{background:#1f2937}.tool-active{color:#ea580c!important;background:#fff7ed!important}.dark .tool-active{color:#fb923c!important;background:#7c2d124d!important}#vis-canvas.cursor-crosshair canvas{cursor:crosshair!important}.float-panel{z-index:10;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;padding:.375rem .5rem;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.dark .float-panel{background:#1f2937;border-color:#374151}.float-panel.hidden{display:none!important}.panel-sep{background:#e5e7eb;flex-shrink:0;width:1px;height:1rem;margin:0 .125rem}.dark .panel-sep{background:#374151}#customShapeLabelPlacementControls{display:contents}#customShapeLabelPlacementControls.hidden{display:none}.edge-btn-active{color:#ea580c!important;background:#fff7ed!important}.dark .edge-btn-active{color:#fb923c!important;background:#7c2d124d!important}#labelInput{z-index:20;text-align:center;color:#1f2937;resize:none;background:#fffffff2;border:2px solid #3b82f6;border-radius:.5rem;outline:none;min-width:80px;min-height:28px;padding:4px 8px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;line-height:1.4;position:absolute;overflow:hidden;box-shadow:0 4px 16px #00000026}.dark #labelInput{color:#f3f4f6;background:#111827f2}#labelInput.hidden{display:none}#debugLayer{pointer-events:none;z-index:12;position:absolute;inset:0;overflow:hidden}.debug-box{pointer-events:auto;white-space:pre;-webkit-user-select:text;user-select:text;cursor:text;color:#c2410c;background:#ffffffe6;border:1px solid #f97316;border-radius:3px;padding:3px 6px;font:10px/1.4 monospace;position:absolute}.dark .debug-box{color:#fbbf24;background:#000000c7}#selectionOverlay{pointer-events:none;z-index:15;box-sizing:border-box;border:2px dashed #f97316;border-radius:3px;display:none;position:absolute}.resize-handle{pointer-events:all;z-index:1;background:#fff;border:2px solid #f97316;border-radius:2px;width:10px;height:10px;position:absolute}.dark .resize-handle{background:#374151}#rh-rotate{pointer-events:all;z-index:1;cursor:grab;color:#f97316;background:#fff;border:2px solid #f97316;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-rotate:active{cursor:grabbing}.dark #rh-rotate{background:#374151}#rh-label-rotate{pointer-events:all;z-index:1;cursor:grab;color:#6366f1;background:#fff;border:2px solid #6366f1;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-label-rotate:active{cursor:grabbing}.dark #rh-label-rotate{background:#374151}#toastContainer{z-index:1000;pointer-events:none;flex-direction:column-reverse;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.ld-toast{pointer-events:all;cursor:pointer;opacity:0;color:#fafaf9;background:#1c1917;border:1px solid #292524;border-radius:.5rem;padding:.6rem 1rem;font-size:.8rem;font-weight:500;transition:opacity .2s,transform .2s;transform:translateY(.5rem);box-shadow:0 4px 16px #0000002e}.dark .ld-toast{color:#1c1917;background:#fafaf9;border-color:#e7e5e4}.ld-toast--error{color:#fef2f2;background:#7f1d1d;border-color:#991b1b}.ld-toast--visible{opacity:1;transform:translateY(0)}#evidenceLayer{pointer-events:none;z-index:18;position:absolute;inset:0;overflow:hidden}#evidenceLayer.hidden{display:none}.evidence-marker{color:#0369a1;pointer-events:auto;background:#e0f2fe;border:1px solid #0284c7;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.7rem;font-weight:700;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0284c747}.dark .evidence-marker{color:#e0f2fe;background:#082f49;border-color:#38bdf8}#customShapeBar{z-index:9;background:#fffffff5;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;max-width:min(42rem,100% - 1.5rem);padding:.35rem;display:flex;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 4px 12px #0000001a}.dark #customShapeBar{background:#1f2937f5;border-color:#374151}#customShapeBar.hidden{display:none}#customShapeBarBody{scrollbar-width:thin;gap:.25rem;display:flex;overflow-x:auto}.custom-shape-btn{background:0 0;border:1px solid #0000;border-radius:.375rem;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.custom-shape-btn:hover{background:#f3f4f6}.dark .custom-shape-btn:hover{background:#111827}.custom-shape-btn img{-o-object-fit:contain;object-fit:contain;pointer-events:none;max-width:1.7rem;max-height:1.7rem}.ld-shape-editor .btn{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;justify-content:center;align-items:center;height:2rem;padding:0 .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.ld-shape-editor .btn:hover{background:#f3f4f6}.ld-shape-editor .btn-primary{color:#fff;background:#2563eb;border-color:#2563eb}.ld-shape-editor .btn-primary:hover{background:#1d4ed8}.ld-shape-editor .btn-danger{color:#b91c1c;border-color:#fecaca}.ld-shape-editor .btn-danger:hover{background:#fef2f2}.ld-shape-editor .field{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;height:2rem;padding:0 .5rem;font-size:.875rem}.ld-shape-editor .shape-item.active{color:#1d4ed8;background:#eff6ff}.ld-shape-editor #previewStage{aspect-ratio:1;background-color:#0000;background-image:linear-gradient(45deg,#f9fafb 25%,#0000 25%),linear-gradient(-45deg,#f9fafb 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f9fafb 75%),linear-gradient(-45deg,#0000 75%,#f9fafb 75%);background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0;background-repeat:repeat,repeat,repeat,repeat;background-size:1.25rem 1.25rem;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #d1d5db;border-radius:.5rem;width:min(34rem,100%);position:relative;overflow:hidden}.ld-shape-editor #previewImage{-o-object-fit:fill;object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ld-shape-editor .anchor-dot{cursor:grab;background:#f97316;border:2px solid #fff;border-radius:999px;width:.9rem;height:.9rem;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000059}.ld-shape-editor .anchor-dot:active{cursor:grabbing}.ld-shape-editor .anchor-dot span{color:#374151;white-space:nowrap;background:#ffffffe6;border-radius:3px;padding:1px 3px;font:10px/1 system-ui,sans-serif;position:absolute;top:calc(100% + .2rem);left:50%;transform:translate(-50%)}.sk-add-bar.svelte-lo2xyl{gap:8px;margin-bottom:12px;display:flex}.sk-add-bar.svelte-lo2xyl input:where(.svelte-lo2xyl){border:1px solid var(--line);background:var(--panel-soft);min-width:0;color:var(--ink);border-radius:8px;flex:1;padding:8px 10px;font-family:inherit;font-size:13px}.sk-add-bar.svelte-lo2xyl select:where(.svelte-lo2xyl){text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);background:var(--panel-soft);color:var(--ink);border-radius:8px;padding:8px;font-family:inherit;font-size:12px}.sk-add-bar.svelte-lo2xyl input:where(.svelte-lo2xyl):focus,.sk-add-bar.svelte-lo2xyl select:where(.svelte-lo2xyl):focus{border-color:var(--accent);outline:none}.sk-add-btn.svelte-lo2xyl{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;width:36px;font-size:18px;line-height:1}.sk-add-btn.svelte-lo2xyl:hover{background:var(--accent-strong)}.sk-filters.svelte-lo2xyl{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.sk-filters.svelte-lo2xyl button:where(.svelte-lo2xyl){border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:11px}.sk-filters.svelte-lo2xyl button.active:where(.svelte-lo2xyl){background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.sk-tasks.svelte-lo2xyl{flex-direction:column;gap:8px;display:flex}.sk-task.svelte-lo2xyl{border:1px solid var(--sk-border);background:var(--sk-bg);color:var(--sk-color);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.sk-task--urgent.svelte-lo2xyl{--sk-color:#e11d48;--sk-border:#fda4af;--sk-bg:#ffe4e6d9;--sk-tag-bg:#ffcdd3e6;--sk-tag-fg:#be123c}.sk-task--normal.svelte-lo2xyl{--sk-color:#16a34a;--sk-border:#bbf7d0;--sk-bg:#dcfce7d9;--sk-tag-bg:#bbf7d0e6;--sk-tag-fg:#15803d}.sk-task--later.svelte-lo2xyl{--sk-color:#78716c;--sk-border:#d6d3d1;--sk-bg:#e7e5e4d9;--sk-tag-bg:#d6d3d1e6;--sk-tag-fg:#57534e}.sk-check.svelte-lo2xyl{border:2px solid var(--sk-color);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:transform .15s;position:relative}.sk-check.svelte-lo2xyl:hover{transform:scale(1.1)}.sk-check.checked.svelte-lo2xyl{background:var(--sk-color);border-color:var(--sk-color)}.sk-check.checked.svelte-lo2xyl:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;inset:0}.sk-task-text.svelte-lo2xyl{min-width:0;color:inherit;word-break:break-word;flex:1;font-size:13px}.sk-task.done.svelte-lo2xyl{opacity:.5}.sk-task.done.svelte-lo2xyl .sk-task-text:where(.svelte-lo2xyl){text-decoration:line-through}.sk-task-tag.svelte-lo2xyl{text-transform:uppercase;letter-spacing:.08em;background:var(--sk-tag-bg);color:var(--sk-tag-fg);border-radius:5px;flex-shrink:0;padding:3px 8px;font-size:10px}.sk-task-del.svelte-lo2xyl{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:12px}.sk-task-del.svelte-lo2xyl:hover{color:var(--red)}.sk-empty.svelte-lo2xyl{color:var(--muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.sk-modal-backdrop.svelte-1rcj86{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sk-modal.svelte-1rcj86{background:var(--panel);border:1px solid var(--line);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:14px;padding:22px 24px}.sk-modal-title.svelte-1rcj86{color:var(--ink);margin:0 0 16px;font-size:15px;font-weight:600}.sk-modal-body.svelte-1rcj86 label{color:var(--muted);margin:12px 0 4px;font-size:12px;font-weight:500;display:block}.sk-modal-body.svelte-1rcj86 input,.sk-modal-body.svelte-1rcj86 select,.sk-modal-body.svelte-1rcj86 textarea{border:1px solid var(--line);background:var(--panel-soft);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}.sk-modal-body.svelte-1rcj86 textarea{resize:vertical;min-height:110px;font-family:SF Mono,Consolas,monospace}.sk-modal-body.svelte-1rcj86 input:focus,.sk-modal-body.svelte-1rcj86 select:focus,.sk-modal-body.svelte-1rcj86 textarea:focus{border-color:var(--accent);outline:none}.sk-modal-actions.svelte-1rcj86{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.sk-btn.svelte-1rcj86{border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink);cursor:pointer;border-radius:8px;padding:7px 16px;font-family:inherit;font-size:12px}.sk-btn.svelte-1rcj86:hover{background:var(--accent-soft)}.sk-btn--primary.svelte-1rcj86{background:var(--accent);border-color:var(--accent);color:#fff}.sk-btn--primary.svelte-1rcj86:hover{background:var(--accent-strong)}.sk-btn--danger.svelte-1rcj86{background:var(--red);border-color:var(--red)}.sk-btn--danger.svelte-1rcj86:hover{background:var(--red);opacity:.9}.sk-toolbar.svelte-hpbata{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.sk-tool.svelte-hpbata{border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);cursor:pointer;border-radius:8px;padding:5px 11px;font-family:inherit;font-size:11px}.sk-tool.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-tool--add.svelte-hpbata{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.sk-notes.svelte-hpbata{flex-direction:column;gap:12px;display:flex}.sk-note.svelte-hpbata{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.sk-note-head.svelte-hpbata{background:var(--sk-theme-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 14px;display:flex}.sk-note.collapsed.svelte-hpbata .sk-note-head:where(.svelte-hpbata){border-bottom:none}.sk-note-head.svelte-hpbata h3:where(.svelte-hpbata){color:var(--sk-theme-ink);flex:1;margin:0;font-size:13px;font-weight:600}.sk-note-actions.svelte-hpbata{gap:4px;display:none}.sk-notes.edit-mode.svelte-hpbata .sk-note-actions:where(.svelte-hpbata){display:flex}.sk-toggle.svelte-hpbata{color:var(--muted);cursor:pointer;background:0 0;border:none;transition:transform .15s;display:flex}.sk-note.svelte-hpbata:not(.collapsed) .sk-toggle:where(.svelte-hpbata){transform:rotate(180deg)}.sk-note-body.svelte-hpbata{padding:12px 14px}.sk-note.collapsed.svelte-hpbata .sk-note-body:where(.svelte-hpbata){display:none}.sk-bloc.svelte-hpbata{align-items:flex-start;gap:8px;display:flex}.sk-bloc-content.svelte-hpbata{min-width:0;color:var(--ink);flex:1;font-size:13px}.sk-bloc-content.svelte-hpbata p{margin:6px 0}.sk-bloc-content.svelte-hpbata strong{color:var(--ink);margin:10px 0 4px;display:block}.sk-bloc-content.svelte-hpbata ul{margin:6px 0;padding-left:18px}.sk-bloc-content.svelte-hpbata li{margin:2px 0}.sk-pre-wrap.svelte-hpbata{margin:6px 0;position:relative}.sk-pre-wrap.svelte-hpbata pre{background:var(--panel-soft);border:1px solid var(--line);white-space:pre;border-radius:8px;margin:0;padding:10px 12px;font-family:SF Mono,Consolas,monospace;font-size:12px;overflow-x:auto}.sk-copy.svelte-hpbata{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:6px;padding:2px 8px;font-size:10px;position:absolute;top:6px;right:6px}.sk-copy.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-table-wrap.svelte-hpbata{margin:6px 0;overflow-x:auto}.sk-table-wrap.svelte-hpbata table{border-collapse:collapse;width:100%;font-size:12px}.sk-table-wrap.svelte-hpbata th,.sk-table-wrap.svelte-hpbata td{border:1px solid var(--line);text-align:left;padding:5px 8px}.sk-table-wrap.svelte-hpbata th{background:var(--panel-soft);font-weight:600}.sk-bloc-actions.svelte-hpbata{flex-shrink:0;gap:4px;display:none}.sk-notes.edit-mode.svelte-hpbata .sk-bloc-actions:where(.svelte-hpbata){display:flex}.sk-note-foot.svelte-hpbata{margin-top:8px;display:none}.sk-notes.edit-mode.svelte-hpbata .sk-note-foot:where(.svelte-hpbata){display:block}.sk-add-bloc.svelte-hpbata{border:1px dashed var(--line-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:5px 11px;font-family:inherit;font-size:11px}.sk-add-bloc.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-mini.svelte-hpbata{border:1px solid var(--line);background:var(--panel);cursor:pointer;width:22px;height:22px;color:var(--muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.sk-mini.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-mini--del.svelte-hpbata:hover{border-color:var(--red);color:var(--red)}.sk-empty.svelte-hpbata{color:var(--muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.sk-toolbar.svelte-1j811iq{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.sk-tool.svelte-1j811iq{border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);cursor:pointer;border-radius:8px;padding:5px 11px;font-family:inherit;font-size:11px}.sk-tool.svelte-1j811iq:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-tool--add.svelte-1j811iq{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.sk-cats.svelte-1j811iq{flex-direction:column;gap:12px;display:flex}.sk-cat.svelte-1j811iq{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.sk-cat-head.svelte-1j811iq{background:var(--sk-theme-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 14px;display:flex}.sk-cat.collapsed.svelte-1j811iq .sk-cat-head:where(.svelte-1j811iq){border-bottom:none}.sk-cat-head.svelte-1j811iq h3:where(.svelte-1j811iq){color:var(--sk-theme-ink);flex:1;margin:0;font-size:13px;font-weight:600}.sk-cat-actions.svelte-1j811iq{gap:4px;display:none}.sk-cats.edit-mode.svelte-1j811iq .sk-cat-actions:where(.svelte-1j811iq){display:flex}.sk-toggle.svelte-1j811iq{color:var(--muted);cursor:pointer;background:0 0;border:none;transition:transform .15s;display:flex}.sk-cat.svelte-1j811iq:not(.collapsed) .sk-toggle:where(.svelte-1j811iq){transform:rotate(180deg)}.sk-links.svelte-1j811iq{flex-direction:column;display:flex}.sk-cat.collapsed.svelte-1j811iq .sk-links:where(.svelte-1j811iq){display:none}.sk-link.svelte-1j811iq{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:8px;padding:9px 14px;text-decoration:none;display:flex}.sk-link.svelte-1j811iq:last-child{border-bottom:none}.sk-link.svelte-1j811iq:hover{background:var(--panel-soft)}.sk-link-text.svelte-1j811iq{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.sk-link-name.svelte-1j811iq{font-weight:500}.sk-link-desc.svelte-1j811iq{color:var(--muted)}.sk-arrow.svelte-1j811iq{color:var(--muted);flex-shrink:0;font-size:12px}.sk-link-actions.svelte-1j811iq{flex-shrink:0;gap:4px;display:none}.sk-cats.edit-mode.svelte-1j811iq .sk-link-actions:where(.svelte-1j811iq){display:flex}.sk-mini.svelte-1j811iq{border:1px solid var(--line);background:var(--panel);cursor:pointer;width:22px;height:22px;color:var(--muted);border-radius:6px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.sk-mini.svelte-1j811iq:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-mini--del.svelte-1j811iq:hover{border-color:var(--red);color:var(--red)}.sk-empty.svelte-1j811iq{color:var(--muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.sk-loading.svelte-ha6eja{text-align:center;color:var(--muted);padding:48px 0;font-size:14px}.sk-root.svelte-ha6eja{background:var(--bg);grid-template-rows:minmax(0,1fr)}.sk-menu-trigger.svelte-ha6eja{z-index:90;height:10px;position:fixed;top:0;left:0;right:0}.sk-menu-drawer.svelte-ha6eja{z-index:100;box-shadow:var(--shadow);transition:transform .28s;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.sk-menu-drawer.revealed.svelte-ha6eja{transform:translateY(0)}.sk-menu-drawer.svelte-ha6eja .topbar{height:72px}.sk-filters button,.sk-tool,.sk-add-bloc,.sk-copy,.sk-task-tag{text-transform:uppercase;letter-spacing:.06em}.sk-grid.svelte-ha6eja{height:100%;min-height:0;display:flex}.sk-col.svelte-ha6eja{border-right:1px solid var(--line);flex:1 1 0;min-width:0;padding:28px 36px 80px;overflow-y:auto}.sk-col.svelte-ha6eja:last-child{border-right:none}.sk-inner.svelte-ha6eja{max-width:520px;margin:0 auto}@media (width<=1024px){.sk-grid.svelte-ha6eja{flex-direction:column;gap:16px;height:100%;padding:20px;overflow-y:auto}.sk-col.svelte-ha6eja{border:1px solid var(--line);border-right:1px solid var(--line);background:var(--panel);border-radius:16px;flex:none;width:100%;max-width:720px;margin:0 auto;padding:24px;overflow:visible}}.sk-panel-head{margin-bottom:36px}.sk-panel-title{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:2.2rem;font-weight:700;line-height:1}.sk-accent{color:#f97316}.sk-panel-sub{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:8px 0 0;font-family:Cascadia Code,SF Mono,Consolas,monospace;font-size:.7rem}.sk-note-head h3,.sk-cat-head h3{letter-spacing:.1em;text-transform:uppercase;font-family:Cascadia Code,SF Mono,Consolas,monospace;font-size:.72rem}.t-green{--sk-theme-soft:#dcfce7;--sk-theme-ink:#047857}.t-violet{--sk-theme-soft:#ede9fe;--sk-theme-ink:#6d28d9}.t-amber{--sk-theme-soft:#fef3c7;--sk-theme-ink:#b45309}.t-sky{--sk-theme-soft:#e0f2fe;--sk-theme-ink:#0369a1}.t-rose{--sk-theme-soft:#ffe4e6;--sk-theme-ink:#be123c}.t-teal{--sk-theme-soft:#ccfbf1;--sk-theme-ink:#0f766e}.dark .t-green{--sk-theme-soft:#0478572e;--sk-theme-ink:#6ee7b7}.dark .t-violet{--sk-theme-soft:#6d28d938;--sk-theme-ink:#c4b5fd}.dark .t-amber{--sk-theme-soft:#b4530933;--sk-theme-ink:#fcd34d}.dark .t-sky{--sk-theme-soft:#0369a138;--sk-theme-ink:#7dd3fc}.dark .t-rose{--sk-theme-soft:#be123c33;--sk-theme-ink:#fda4af}.dark .t-teal{--sk-theme-soft:#0f766e38;--sk-theme-ink:#5eead4}html.dark .sk-root.svelte-ha6eja{--bg:#0f172a;--ink:#f1f5f9;--muted:#94a3b8;--line:#ffffff1a;--line-strong:#ffffff2e;--panel:#1e293b;--panel-soft:#ffffff0d;--accent:#60a5fa;--accent-strong:#93c5fd;--accent-soft:#60a5fa29;--green:#34d399;--red:#f87171;--shadow:0 18px 60px #00000080;color:var(--ink)}
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./index-B7a9qTDi.js";var p={select:`toolSelect`,"addNode:box":`toolBox`,"addNode:ellipse":`toolEllipse`,"addNode:database":`toolDatabase`,"addNode:circle":`toolCircle`,"addNode:actor":`toolActor`,"addNode:post-it":`toolPostIt`,"addNode:text-free":`toolTextFree`,"addNode:image":`toolImage`,addEdge:`toolArrow`},m={"c-gray":{bg:`#f5f5f4`,border:`#a8a29e`,font:`#292524`,hbg:`#e7e5e4`,hborder:`#78716c`},"c-blue":{bg:`#dbeafe`,border:`#3b82f6`,font:`#1e40af`,hbg:`#bfdbfe`,hborder:`#2563eb`},"c-green":{bg:`#dcfce7`,border:`#22c55e`,font:`#166534`,hbg:`#bbf7d0`,hborder:`#16a34a`},"c-amber":{bg:`#fef9c3`,border:`#f59e0b`,font:`#78350f`,hbg:`#fef08a`,hborder:`#d97706`},"c-rose":{bg:`#ffe4e6`,border:`#f43f5e`,font:`#881337`,hbg:`#fecdd3`,hborder:`#e11d48`},"c-purple":{bg:`#ede9fe`,border:`#8b5cf6`,font:`#4c1d95`,hbg:`#ddd6fe`,hborder:`#7c3aed`},"c-teal":{bg:`#ccfbf1`,border:`#14b8a6`,font:`#134e4a`,hbg:`#99f6e4`,hborder:`#0d9488`},"c-orange":{bg:`#ffedd5`,border:`#f97316`,font:`#7c2d12`,hbg:`#fed7aa`,hborder:`#ea580c`},"c-cyan":{bg:`#cffafe`,border:`#06b6d4`,font:`#164e63`,hbg:`#a5f3fc`,hborder:`#0891b2`},"c-indigo":{bg:`#e0e7ff`,border:`#6366f1`,font:`#312e81`,hbg:`#c7d2fe`,hborder:`#4f46e5`},"c-pink":{bg:`#fce7f3`,border:`#ec4899`,font:`#831843`,hbg:`#fbcfe8`,hborder:`#db2777`},"c-lime":{bg:`#ecfccb`,border:`#84cc16`,font:`#365314`,hbg:`#d9f99d`,hborder:`#65a30d`},"c-red":{bg:`#fee2e2`,border:`#ef4444`,font:`#7f1d1d`,hbg:`#fecaca`,hborder:`#dc2626`},"c-sky":{bg:`#e0f2fe`,border:`#0ea5e9`,font:`#0c4a6e`,hbg:`#bae6fd`,hborder:`#0284c7`},"c-slate":{bg:`#f1f5f9`,border:`#64748b`,font:`#0f172a`,hbg:`#e2e8f0`,hborder:`#475569`}},h=[`c-gray`,`c-slate`,`c-blue`,`c-sky`,`c-cyan`,`c-teal`,`c-green`,`c-lime`,`c-amber`,`c-orange`,`c-red`,`c-rose`,`c-pink`,`c-purple`,`c-indigo`],g=[`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],_={"c-gray":.667,"c-slate":.488,"c-blue":.645,"c-sky":.518,"c-cyan":.473,"c-teal":.448,"c-green":.489,"c-lime":.496,"c-amber":.57,"c-orange":.578,"c-red":.64,"c-rose":.636,"c-pink":.638,"c-purple":.694,"c-indigo":.71};function v(e,t=.6){let n=parseInt(e.slice(1,3),16)/255,r=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=a-o,l=0,u=0;c>0&&(u=s>.5?c/(2-a-o):c/(a+o),l=a===n?((r-i)/c+(r<i?6:0))/6:a===r?((i-n)/c+2)/6:((n-r)/c+4)/6);function d(e,t,n){let r,i,a;if(t===0)r=i=a=n;else{let o=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return`#`+[r,i,a].map(e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`)).join(``)}let f=s*t,p=s*.93,m=f*.89;return{bg:e,border:d(l,u,f),font:s>.5?`#292524`:`#fafaf9`,hbg:d(l,u,Math.min(s,p)),hborder:d(l,u,Math.min(f,m))}}function y(e){return n.nodeColorOverrides[e]||m[e]||m[`c-gray`]}function b(e,t){return typeof e!=`string`||e.charAt(0)!==`#`||e.length!==7?e:`rgba(${parseInt(e.slice(1,3),16)},${parseInt(e.slice(3,5),16)},${parseInt(e.slice(5,7),16)},${t})`}function x(e,t,r,i){let a=n.nodes&&n.nodes.get(t);if(!a||!a.nodeLink)return;let o=r/2-7,s=i/2-7;e.save(),e.fillStyle=a.nodeLink.type===`url`?`#3b82f6`:`#f97316`,e.strokeStyle=`#fff`,e.lineWidth=1,e.beginPath(),e.arc(o,s,7,0,Math.PI*2),e.fill(),e.stroke(),e.strokeStyle=`#fff`,e.lineWidth=1.2,e.lineCap=`round`,e.beginPath(),e.moveTo(o-1.5,s+1.5),e.lineTo(o+1.5,s-1.5),e.moveTo(o-2.5,s-.5),e.lineTo(o-.5,s-2.5),e.moveTo(o+.5,s+2.5),e.lineTo(o+2.5,s+.5),e.stroke(),e.restore()}function S(e,t,n){if(!t)return[``];let r=t.split(` `),i=[],a=``;for(let t of r){let r=a?a+` `+t:t;a&&e.measureText(r).width>n?(i.push(a),a=t):a=r}return a&&i.push(a),i.length?i:[``]}function C(e,t,n,r,i,a,o,s,c){if(!t)return;e.save(),e.font=`${n}px system-ui,-apple-system,sans-serif`,e.fillStyle=r,e.textBaseline=`middle`;let l=0;i===`left`?(e.textAlign=`left`,l=o?-o/2+8:-40):i===`right`?(e.textAlign=`right`,l=o?o/2-8:40):(e.textAlign=`center`,l=0);let u=o?o-16:1/0,d=String(t).split(`
1
+ import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./index-CLBMF6y7.js";var p={select:`toolSelect`,"addNode:box":`toolBox`,"addNode:ellipse":`toolEllipse`,"addNode:database":`toolDatabase`,"addNode:circle":`toolCircle`,"addNode:actor":`toolActor`,"addNode:post-it":`toolPostIt`,"addNode:text-free":`toolTextFree`,"addNode:image":`toolImage`,addEdge:`toolArrow`},m={"c-gray":{bg:`#f5f5f4`,border:`#a8a29e`,font:`#292524`,hbg:`#e7e5e4`,hborder:`#78716c`},"c-blue":{bg:`#dbeafe`,border:`#3b82f6`,font:`#1e40af`,hbg:`#bfdbfe`,hborder:`#2563eb`},"c-green":{bg:`#dcfce7`,border:`#22c55e`,font:`#166534`,hbg:`#bbf7d0`,hborder:`#16a34a`},"c-amber":{bg:`#fef9c3`,border:`#f59e0b`,font:`#78350f`,hbg:`#fef08a`,hborder:`#d97706`},"c-rose":{bg:`#ffe4e6`,border:`#f43f5e`,font:`#881337`,hbg:`#fecdd3`,hborder:`#e11d48`},"c-purple":{bg:`#ede9fe`,border:`#8b5cf6`,font:`#4c1d95`,hbg:`#ddd6fe`,hborder:`#7c3aed`},"c-teal":{bg:`#ccfbf1`,border:`#14b8a6`,font:`#134e4a`,hbg:`#99f6e4`,hborder:`#0d9488`},"c-orange":{bg:`#ffedd5`,border:`#f97316`,font:`#7c2d12`,hbg:`#fed7aa`,hborder:`#ea580c`},"c-cyan":{bg:`#cffafe`,border:`#06b6d4`,font:`#164e63`,hbg:`#a5f3fc`,hborder:`#0891b2`},"c-indigo":{bg:`#e0e7ff`,border:`#6366f1`,font:`#312e81`,hbg:`#c7d2fe`,hborder:`#4f46e5`},"c-pink":{bg:`#fce7f3`,border:`#ec4899`,font:`#831843`,hbg:`#fbcfe8`,hborder:`#db2777`},"c-lime":{bg:`#ecfccb`,border:`#84cc16`,font:`#365314`,hbg:`#d9f99d`,hborder:`#65a30d`},"c-red":{bg:`#fee2e2`,border:`#ef4444`,font:`#7f1d1d`,hbg:`#fecaca`,hborder:`#dc2626`},"c-sky":{bg:`#e0f2fe`,border:`#0ea5e9`,font:`#0c4a6e`,hbg:`#bae6fd`,hborder:`#0284c7`},"c-slate":{bg:`#f1f5f9`,border:`#64748b`,font:`#0f172a`,hbg:`#e2e8f0`,hborder:`#475569`}},h=[`c-gray`,`c-slate`,`c-blue`,`c-sky`,`c-cyan`,`c-teal`,`c-green`,`c-lime`,`c-amber`,`c-orange`,`c-red`,`c-rose`,`c-pink`,`c-purple`,`c-indigo`],g=[`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],_={"c-gray":.667,"c-slate":.488,"c-blue":.645,"c-sky":.518,"c-cyan":.473,"c-teal":.448,"c-green":.489,"c-lime":.496,"c-amber":.57,"c-orange":.578,"c-red":.64,"c-rose":.636,"c-pink":.638,"c-purple":.694,"c-indigo":.71};function v(e,t=.6){let n=parseInt(e.slice(1,3),16)/255,r=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=a-o,l=0,u=0;c>0&&(u=s>.5?c/(2-a-o):c/(a+o),l=a===n?((r-i)/c+(r<i?6:0))/6:a===r?((i-n)/c+2)/6:((n-r)/c+4)/6);function d(e,t,n){let r,i,a;if(t===0)r=i=a=n;else{let o=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return`#`+[r,i,a].map(e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`)).join(``)}let f=s*t,p=s*.93,m=f*.89;return{bg:e,border:d(l,u,f),font:s>.5?`#292524`:`#fafaf9`,hbg:d(l,u,Math.min(s,p)),hborder:d(l,u,Math.min(f,m))}}function y(e){return n.nodeColorOverrides[e]||m[e]||m[`c-gray`]}function b(e,t){return typeof e!=`string`||e.charAt(0)!==`#`||e.length!==7?e:`rgba(${parseInt(e.slice(1,3),16)},${parseInt(e.slice(3,5),16)},${parseInt(e.slice(5,7),16)},${t})`}function x(e,t,r,i){let a=n.nodes&&n.nodes.get(t);if(!a||!a.nodeLink)return;let o=r/2-7,s=i/2-7;e.save(),e.fillStyle=a.nodeLink.type===`url`?`#3b82f6`:`#f97316`,e.strokeStyle=`#fff`,e.lineWidth=1,e.beginPath(),e.arc(o,s,7,0,Math.PI*2),e.fill(),e.stroke(),e.strokeStyle=`#fff`,e.lineWidth=1.2,e.lineCap=`round`,e.beginPath(),e.moveTo(o-1.5,s+1.5),e.lineTo(o+1.5,s-1.5),e.moveTo(o-2.5,s-.5),e.lineTo(o-.5,s-2.5),e.moveTo(o+.5,s+2.5),e.lineTo(o+2.5,s+.5),e.stroke(),e.restore()}function S(e,t,n){if(!t)return[``];let r=t.split(` `),i=[],a=``;for(let t of r){let r=a?a+` `+t:t;a&&e.measureText(r).width>n?(i.push(a),a=t):a=r}return a&&i.push(a),i.length?i:[``]}function C(e,t,n,r,i,a,o,s,c){if(!t)return;e.save(),e.font=`${n}px system-ui,-apple-system,sans-serif`,e.fillStyle=r,e.textBaseline=`middle`;let l=0;i===`left`?(e.textAlign=`left`,l=o?-o/2+8:-40):i===`right`?(e.textAlign=`right`,l=o?o/2-8:40):(e.textAlign=`center`,l=0);let u=o?o-16:1/0,d=String(t).split(`
2
2
  `).flatMap(t=>S(e,t,u)),f=n*1.3,p;p=o&&s?a===`top`?-(s/2-n/2-8):a===`bottom`?s/2-n/2-8-(d.length-1)*f:-((d.length-1)*f)/2:-((d.length-1)*f)/2,c&&e.rotate(c),d.forEach((t,n)=>e.fillText(t,l,p+n*f)),e.restore()}function w(e,t,n,r,i,a){a=Math.min(a,r/2,i/2),e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath()}function T(e,t,r,i){let a=n.nodes&&n.nodes.get(e),o=a&&a.colorKey||i||`c-gray`,s=a&&a.bgOpacity,c=typeof s==`number`?Math.max(0,Math.min(1,s)):1,l=y(o),u=c<1?{...l,bg:b(l.bg,c),hbg:b(l.hbg,c)}:l;return{W:a&&a.nodeWidth||t,H:a&&a.nodeHeight||r,rotation:a&&a.rotation||0,labelRotation:a&&a.labelRotation||0,textAlign:a&&a.textAlign||`center`,textValign:a&&a.textValign||`middle`,fontSize:a&&a.fontSize||13,bgOpacity:c,colorKey:o,c:u}}function ee(e){return e?String(e).split(`
3
3
  `):[]}function E(e){return[`center`,`below`,`above`,`right`,`left`].includes(e)?e:null}function te(e){return[`above`,`below`,`right`,`left`].includes(e)}function D(e,t,n){let r=`${t}px system-ui,-apple-system,sans-serif`;if(n){let t=n.font;n.font=r;let i=n.measureText(e).width;return n.font=t,i}return typeof document>`u`?String(e).length*t*.58:(D._ctx||=document.createElement(`canvas`).getContext(`2d`),D._ctx.font=r,D._ctx.measureText(e).width)}function ne(t,n,r){let i=e(t&&t.customShapeId),a=t&&t.nodeWidth||i&&i.width||65,o=t&&t.nodeHeight||i&&i.height||65,s=E(t&&t.labelPlacement)||E(i&&i.labelPlacement)||`below`,c=t&&t.fontSize||13,l=ee(n),u=c*1.3;if(!l.length||!te(s))return{placement:s,lines:l,lineH:u,imageOffsetX:0,imageOffsetY:0,labelBlockW:0,labelBlockH:0,totalW:a,totalH:o};let d=Math.max(...l.map(e=>D(e,c,r)))+16,f=l.length*u+8,p=s===`left`||s===`right`,m=p?a+d:Math.max(a,d),h=p?Math.max(o,f):o+f;return{placement:s,lines:l,lineH:u,imageOffsetX:s===`right`?-d/2:s===`left`?d/2:0,imageOffsetY:s===`below`?-f/2:s===`above`?f/2:0,labelBlockW:d,labelBlockH:f,totalW:m,totalH:h}}function re(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,100,40,e);return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,w(t,-s/2,-c/2,s,c,4),t.fill(),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function ie(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,110,50,e);return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,t.beginPath(),t.ellipse(0,0,s/2,c/2,0,0,Math.PI*2),t.fill(),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function ae(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,rotation:c,labelRotation:l,textAlign:u,textValign:d,fontSize:f,c:p}=T(i,55,55,e),m=s/2;return{drawNode(){t.save(),t.translate(n,r),t.rotate(c),t.strokeStyle=a.selected?`#f97316`:p.border,t.fillStyle=a.selected?p.hbg:p.bg,t.lineWidth=1.5,t.beginPath(),t.arc(0,0,m,0,Math.PI*2),t.fill(),t.stroke(),C(t,o,f,p.font,u,d,s,s,l),x(t,i,s,s),t.restore()},nodeDimensions:{width:s,height:s}}}}function oe(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,50,70,e),h=s/2,g=Math.max(c*.12,6),_=-c/2+g,v=c/2-g;return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,t.fillRect(-h,_,s,v-_),t.beginPath(),t.ellipse(0,v,h,g,0,0,Math.PI*2),t.fill(),t.stroke(),t.beginPath(),t.moveTo(-h,_),t.lineTo(-h,v),t.moveTo(h,_),t.lineTo(h,v),t.stroke(),t.beginPath(),t.ellipse(0,_,h,g,0,0,Math.PI*2),t.fill(),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function se(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,120,100,e||`c-amber`),h=Math.min(s,c)*.18;return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,t.beginPath(),t.moveTo(-s/2,-c/2),t.lineTo(s/2-h,-c/2),t.lineTo(s/2,-c/2+h),t.lineTo(s/2,c/2),t.lineTo(-s/2,c/2),t.closePath(),t.fill(),t.stroke(),t.globalAlpha=.3,t.fillStyle=m.border,t.beginPath(),t.moveTo(s/2-h,-c/2),t.lineTo(s/2,-c/2+h),t.lineTo(s/2-h,-c/2+h),t.closePath(),t.fill(),t.globalAlpha=1,t.beginPath(),t.moveTo(s/2-h,-c/2),t.lineTo(s/2-h,-c/2+h),t.lineTo(s/2,-c/2+h),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function ce(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,80,30,e);return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),(a.selected||a.hover)&&(t.strokeStyle=`#f97316`,t.lineWidth=1,t.setLineDash([4,3]),w(t,-s/2,-c/2,s,c,3),t.stroke(),t.setLineDash([])),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}var le=30,ue=52;function de(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,fontSize:d,c:f}=T(i,le,ue,e),p=s/le,m=c/ue;return{drawNode(){if(t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:f.border,t.fillStyle=a.selected?f.hbg:f.bg,t.lineWidth=2,t.lineCap=`round`,t.beginPath(),t.arc(0,-20*m,8*m,0,Math.PI*2),t.fill(),t.stroke(),t.beginPath(),t.moveTo(0,-12*m),t.lineTo(0,8*m),t.stroke(),t.beginPath(),t.moveTo(-13*p,0*m),t.lineTo(13*p,0*m),t.stroke(),t.beginPath(),t.moveTo(0,8*m),t.lineTo(-10*p,24*m),t.stroke(),t.beginPath(),t.moveTo(0,8*m),t.lineTo(10*p,24*m),t.stroke(),o){t.save(),u&&t.rotate(u),t.font=`${d}px system-ui,-apple-system,sans-serif`,t.fillStyle=f.font,t.textAlign=`center`,t.textBaseline=`top`;let e=String(o).split(`
4
4
  `),n=d*1.3,r=24*m+4;e.forEach((e,i)=>t.fillText(e,0,r+i*n)),t.restore()}x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}var fe=new Map;function pe(e,t){if(!e)return null;let n=fe.get(e);if(n===`loading`||n===`error`)return null;if(n)return n;fe.set(e,`loading`);let r=new Image;return r.onload=()=>{fe.set(e,r),t&&t()},r.onerror=()=>{fe.set(e,`error`)},r.src=e,null}function me(e){return function({ctx:t,x:r,y:i,id:a,state:o,label:s}){let{W:c,H:l,rotation:u,labelRotation:d,textAlign:f,textValign:p,fontSize:m,c:h}=T(a,160,120,e||`c-gray`),g=n.nodes&&n.nodes.get(a),_=g&&g.imageSrc,v=pe(_,()=>n.network&&n.network.redraw());return{drawNode(){if(t.save(),t.translate(r,i),t.rotate(u),t.strokeStyle=o.selected?`#f97316`:h.border,t.lineWidth=o.selected?2:1,w(t,-c/2,-l/2,c,l,4),t.stroke(),v?(t.save(),w(t,-c/2,-l/2,c,l,4),t.clip(),t.drawImage(v,-c/2,-l/2,c,l),t.restore()):(t.fillStyle=o.selected?h.hbg:h.bg,w(t,-c/2,-l/2,c,l,4),t.fill(),t.fillStyle=h.border,t.font=`${Math.round(Math.min(c,l)*.25)}px system-ui`,t.textAlign=`center`,t.textBaseline=`middle`,t.fillText(_?`…`:`🖼`,0,0)),s){let e=String(s).split(`
@@ -4,10 +4,6 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Living Documentation</title>
7
- <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
8
- <script>
9
- tailwind.config = { darkMode: "class", theme: { extend: {} } };
10
- </script>
11
7
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
12
8
  <script src="/wordcloud2.js"></script>
13
9
  <script src="https://unpkg.com/vis-network@9.1.9/standalone/umd/vis-network.min.js"></script>
@@ -15,8 +11,8 @@
15
11
  <link id="hljs-light" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css" disabled />
16
12
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
17
13
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
18
- <script type="module" crossorigin src="/assets/index-B7a9qTDi.js"></script>
19
- <link rel="stylesheet" crossorigin href="/assets/index-DxdcDsGV.css">
14
+ <script type="module" crossorigin src="/assets/index-CLBMF6y7.js"></script>
15
+ <link rel="stylesheet" crossorigin href="/assets/index-DtyEM7ex.css">
20
16
  </head>
21
17
  <body>
22
18
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "living-ai-documentation",
3
- "version": "3.23.0",
3
+ "version": "3.26.0",
4
4
  "packageManager": "npm@10.8.2",
5
5
  "description": "Local Markdown documentation hub with a built-in MCP server — coding agents create ADRs, draw diagrams and detect drift while you code.",
6
6
  "main": "dist/src/server.js",
@@ -68,13 +68,17 @@
68
68
  "devDependencies": {
69
69
  "@playwright/test": "^1.59.1",
70
70
  "@sveltejs/vite-plugin-svelte": "^7.1.2",
71
+ "@tailwindcss/typography": "^0.5.20",
71
72
  "@types/archiver": "^7.0.0",
72
73
  "@types/express": "^5.0.6",
73
74
  "@types/node": "^25.6.0",
75
+ "autoprefixer": "^10.5.2",
74
76
  "c8": "^11.0.0",
75
77
  "nodemon": "^3.1.14",
78
+ "postcss": "^8.5.16",
76
79
  "svelte": "^5.56.1",
77
80
  "svelte-check": "^4.5.0",
81
+ "tailwindcss": "^3.4.19",
78
82
  "ts-node": "^10.9.2",
79
83
  "typescript": "^6.0.3",
80
84
  "vite": "^8.0.16"
@@ -1 +0,0 @@
1
- :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--ink:#17202a;--muted:#667085;--line:#d9dee7;--line-strong:#b8c0cc;--panel:#fff;--panel-soft:#f8fafc;--accent:#276ef1;--accent-strong:#174ea6;--accent-soft:#e8f0ff;--green:#047857;--green-soft:#dcfce7;--red:#b42318;--red-soft:#fee4e2;--shadow:0 18px 60px #10182824;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 24px;display:flex}.dark .topbar{color:#f3f4f6;background:#111827eb;border-bottom-color:#ffffff1a}.dark .brand-mark{background:#1f2937;border-color:#fff3}.dark .brand-lockup p{color:#9ca3af}.dark .ghost-button{color:#e5e7eb;background:0 0;border-color:#ffffff1f}.dark .ghost-button:hover{background:#ffffff0f}.brand-lockup,.status-row,.panel-title-row,.panel-actions,.panel-kicker{align-items:center;display:flex}.brand-lockup{gap:12px;min-width:0}.brand-mark{border:1px solid var(--line-strong);color:#fff;letter-spacing:0;background:#111827;border-radius:10px;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}h1,p{margin:0}h1{letter-spacing:0;font-size:15px;font-weight:760}.brand-lockup p{color:var(--muted);margin-top:2px;font-size:12px}.status-row{gap:10px}.status-pill,.panel-kicker span{letter-spacing:0;border-radius:999px;font-size:12px;font-weight:700}.status-pill{border:1px solid var(--line);background:var(--panel-soft);color:#344054;padding:7px 10px}.status-pill.is-live{background:var(--green-soft);color:var(--green);border-color:#86efac}.status-pill.is-fallback{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.workspace-shell{min-height:0;position:relative}.workspace-canvas{cursor:grab;touch-action:none;background:#f8fafc;width:100%;height:100%;transition:filter .18s;display:block}.workspace-canvas.is-panning{cursor:grabbing}.tool-button,.ghost-button,.icon-button,.primary-button,.secondary-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff}.tool-button{border-radius:16px;place-items:center;width:52px;height:52px;font-size:25px;font-weight:700;display:grid;box-shadow:0 10px 30px #1018281a}.tool-button.primary{color:#fff;background:#111827;border-color:#111827}.ghost-button{border-radius:9px;align-items:center;height:34px;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.config-surface{color:#f1f5f9;--panel-ink:#f1f5f9;--panel-muted:#94a3b8;--panel-line:#ffffff1a;--panel-field-bg:#ffffff0d;--panel-field-bg-focus:#ffffff14;background:#111827;border:1px solid #ffffff14;border-radius:28px;flex-direction:column;width:min(780px,max(540px,50vw));max-width:calc(100vw - 48px);height:calc(100vh - 118px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 24px 80px #0006}.config-surface[hidden]{display:none}.panel-kicker{flex-shrink:0;justify-content:space-between;margin-bottom:18px}.panel-kicker span{padding:6px 9px}#nodeTypeBadge{color:#93c5fd;background:#60a5fa26}#nodeHealthBadge{background:var(--green-soft);color:var(--green)}.panel-title-row{flex-shrink:0;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.panel-title-row>div{flex:auto;min-width:0}.eyebrow,.field span{color:var(--panel-muted,#475467);font-size:12px;font-weight:720;display:block}.title-input{width:100%;min-width:0;color:var(--panel-ink,#101828);letter-spacing:0;background:0 0;border:0;outline:0;margin-top:6px;font-size:24px;font-weight:780}.icon-button{border-radius:10px;place-items:center;width:36px;height:36px;font-size:20px;line-height:1;display:grid}.icon-button.danger{color:#fca5a5;background:#ef444433;border-color:#ef444466}.icon-button.close{color:#fde047;background:#eab30826;border-color:#eab30866}.form-grid{flex-shrink:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.field{min-width:0}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid var(--panel-line,var(--line));background:var(--panel-field-bg,#fff);width:100%;color:var(--panel-ink,var(--ink));border-radius:12px;outline:0;margin-top:7px}.field input,.field select{height:42px;padding:0 12px}.field textarea{resize:none;min-height:84px;padding:10px 12px;line-height:1.45}.checkbox-field{align-items:center;gap:10px;min-height:42px;display:flex}.checkbox-field input{accent-color:#2563eb;width:18px;height:18px;margin-top:0}.checkbox-field span{color:var(--panel-ink,var(--ink));font-size:13px;font-weight:760}.field input:focus,.field select:focus,.field textarea:focus,.title-input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa26}.field input[readonly]{border-color:var(--panel-line,#d0d5dd);color:var(--panel-muted,#475467);background:#ffffff08;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:12px}.field select:disabled,.icon-button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.contents{display:contents}.contents[hidden]{display:none}.model-field-row{flex-direction:column;display:flex}.model-select-wrap{align-items:center;gap:6px;margin-top:7px;display:flex}.model-select-wrap select{flex:1;margin-top:0}.model-select-wrap .icon-button{border:1px solid var(--line);width:36px;height:42px;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.model-select-wrap .icon-button:hover{background:#f0f4ff}@keyframes spin{to{transform:rotate(360deg)}}.model-select-wrap .icon-button.loading{pointer-events:none;opacity:.7;animation:.7s linear infinite spin;display:inline-block}.panel-actions{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:18px}.panel-actions-left,.panel-actions-right{align-items:center;gap:8px;display:flex}.test-feedback{color:#475467;min-height:18px;margin:10px 0 0;font-size:12px;font-weight:650;line-height:1.4}.agent-section{flex:none;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:16px;display:grid}.agent-section[hidden]{display:none}#nodeSystemPrompt{resize:vertical;min-height:180px}#nodeUserInputDescription{resize:vertical;min-height:104px}.mcp-inventory{border-top:1px solid var(--panel-line,var(--line));margin-top:18px;padding-top:16px}.inventory-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.inventory-header span{color:var(--panel-ink,#344054);font-size:13px;font-weight:760}.inventory-header strong{color:#93c5fd;background:#60a5fa26;border-radius:999px;padding:5px 8px;font-size:11px}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.inventory-grid article{border:1px solid var(--panel-line,var(--line));background:#ffffff0a;border-radius:14px;min-width:0;padding:12px}.inventory-grid h2{color:#e2e8f0;margin:0 0 8px;font-size:13px;font-weight:800}.inventory-grid ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.inventory-grid li{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;background:#ffffff0f;border-radius:8px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:11px;overflow:hidden}.primary-button,.secondary-button,.danger-button{border-radius:11px;height:40px;padding:0 16px;font-size:13px;font-weight:760}.primary-button{border-color:var(--accent);background:var(--accent);color:#fff}.secondary-button{border-color:var(--panel-line,var(--line));background:var(--panel-field-bg,var(--panel-soft));color:var(--panel-ink,var(--ink))}.danger-button{color:#fff;cursor:pointer;background:#d92d20;border:1px solid #d92d20}.confirm-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a47;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-overlay[hidden]{display:none}.confirm-dialog{background:#fff;border:1px solid #fecdcae6;border-radius:20px;width:min(440px,100vw - 48px);padding:22px;animation:.16s ease-out both confirm-in;box-shadow:0 24px 80px #1018283d}.agent-run-dialog{background:#fff;border:1px solid #bfdbfee6;border-radius:20px;width:min(760px,100vw - 48px);max-height:min(82vh,760px);padding:22px;animation:.16s ease-out both confirm-in;overflow-y:auto;box-shadow:0 24px 80px #1018283d}.agent-run-input-field{margin-top:18px;display:block}.agent-run-result{color:#101828;word-break:break-word;background:#f8fafc;border:1px solid #d0d5dd;border-radius:14px;max-height:360px;margin-top:16px;padding:14px;font-size:13px;line-height:1.55;overflow-y:auto}.agent-run-result[hidden]{display:none}.agent-run-result[data-state=loading]{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.agent-run-result[data-state=success]{background:#f8fafc;border-color:#bbf7d0}.agent-run-result[data-state=error]{color:#991b1b;background:#fef2f2;border-color:#fecaca}.agent-run-event{color:#344054;grid-template-columns:12px 1fr;gap:10px;padding:8px 0;display:grid}.agent-run-event+.agent-run-event{border-top:1px solid #94a3b838}.agent-run-event-dot{background:#64748b;border-radius:999px;width:9px;height:9px;margin-top:7px}.agent-run-result[data-state=loading] .agent-run-event:last-of-type .agent-run-event-dot{background:#2563eb;animation:.9s ease-in-out infinite pulse-dot}.agent-run-event-tool-call .agent-run-event-dot{background:#7c3aed}.agent-run-event-tool-result .agent-run-event-dot,.agent-run-event-final .agent-run-event-dot{background:#16a34a}.agent-run-event-fallback .agent-run-event-dot{background:#f59e0b}.agent-run-event-error .agent-run-event-dot{background:#dc2626}.agent-run-event-title{color:#101828;margin:0;font-weight:760}.agent-run-event-meta{color:#667085;margin:2px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.agent-run-final{border-top:1px solid #16a34a47;margin-top:14px;padding-top:14px}.agent-run-final h3{color:#14532d;margin:0 0 8px;font-size:13px}.agent-run-final pre{white-space:pre-wrap;word-break:break-word;max-height:260px;margin:0;font-family:inherit;overflow:auto}.confirm-kicker{color:var(--red);margin:0 0 6px;font-size:12px;font-weight:800}.confirm-dialog h2{color:#101828;margin:0;font-size:19px;font-weight:820}.confirm-message{color:#475467;margin:10px 0 0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.workspace-toast-stack{z-index:1200;flex-direction:column;align-items:flex-end;gap:12px;max-width:min(420px,100vw - 48px);display:flex;position:fixed;bottom:24px;right:24px}.workspace-toast-stack[hidden]{display:none}.workspace-toast{border:1px solid var(--line);background:var(--panel);width:min(360px,100vw - 48px);color:var(--ink);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;animation:.18s ease-out both toast-in;display:flex;box-shadow:0 8px 32px #10182824}.toast-icon{background:var(--green);color:#fff;border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.workspace-toast[data-state=error] .toast-icon{background:var(--red);color:#fff}.workspace-toast[data-state=loading] .toast-icon{border:2px solid var(--accent);color:#0000;background:0 0;border-top-color:#0000;animation:.8s linear infinite spin}.workspace-toast-body{flex:1;min-width:0}.workspace-toast-message{color:var(--muted);word-break:break-word;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.8em;margin:2px 0 0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.workspace-toast-link{color:var(--accent);margin-top:4px;font-size:12px;text-decoration:underline;display:inline-block}.workspace-toast-close{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:18px;line-height:1}.fallback-panel-host{z-index:6;width:min(780px,max(540px,50vw - 24px));max-width:calc(100vw - 48px);position:absolute;top:24px;bottom:24px;right:24px}.fallback-panel-host:not([hidden]){animation:.22s ease-out both panel-in}.fallback-panel-host .config-surface{width:100%;height:100%}@media (width<=900px){.app-shell{grid-template-rows:88px minmax(0,1fr)}.topbar{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.config-surface{width:min(420px,100vw - 32px);padding:18px}.fallback-panel-host{width:auto;inset:auto 16px 16px}.inventory-grid{grid-template-columns:1fr}}@keyframes panel-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes confirm-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.58;transform:scale(1.45)}}.admin-scroll{height:100%;overflow-y:auto}.admin-form{display:contents}.save-bar{z-index:10;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0}.save-bar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:720px;margin:0 auto;padding:12px 24px;display:flex}.save-bar-title{color:var(--ink);margin:0;font-size:16px;font-weight:700}.save-bar-desc{color:var(--muted);margin:2px 0 0;font-size:12px}.save-bar-actions{flex-shrink:0;align-items:center;gap:16px;display:flex}.save-msg{font-size:13px}.save-msg--ok{color:var(--green)}.save-msg--error{color:var(--red)}.admin-sections{flex-direction:column;gap:24px;max-width:720px;margin:0 auto;padding:24px 24px 40px;display:flex}.config-section{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.config-section-header{border-bottom:1px solid var(--line);padding:16px 24px}.config-section-title{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.config-section-desc{color:var(--muted);margin:4px 0 0 28px;font-size:12px}.config-section-body{flex-direction:column;gap:16px;padding:16px 24px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.field-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px;padding-bottom:8px;display:grid}.info-item dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.info-item dd{color:var(--ink);word-break:break-all;margin:2px 0 0;font-family:monospace;font-size:12px}.field-label{color:var(--ink);font-size:13px;font-weight:500}.field-hint{color:var(--muted);margin:0;font-size:12px}.field-input{border:1px solid var(--line-strong);background:var(--panel-soft);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input--mono{font-family:monospace;font-size:12px}.llm-host-add{align-items:stretch;gap:8px;display:flex}.llm-host-add .field-input{flex:1}.llm-host-btn{border:1px solid var(--line-strong);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;flex:none;padding:8px 14px;font-size:13px;transition:opacity .15s}.llm-host-btn:hover{opacity:.88}.llm-host-list{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.llm-host-chip{border:1px solid var(--line-strong);background:var(--panel-soft);border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 12px;display:inline-flex}.llm-host-chip__url{color:var(--ink);font-family:monospace;font-size:12px}.llm-host-chip__remove{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:background .15s,color .15s;display:inline-flex}.llm-host-chip__remove:hover{background:var(--accent-soft);color:var(--accent)}.checkbox-label{cursor:pointer;color:var(--ink);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);border-radius:4px;flex-shrink:0}.checkbox-hint{margin-left:26px}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-strong)}.btn-sm{padding:6px 12px;font-size:12px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.link-btn:disabled{opacity:.35;pointer-events:none}.pattern-preview{background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;padding:12px}.pattern-preview-title{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:11px;font-weight:700}.pattern-rows{flex-direction:column;gap:8px;margin-top:8px;display:flex}.pattern-row{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.pattern-filename{color:var(--muted);word-break:break-all;margin:0 0 6px;font-family:monospace;font-size:11px}.pattern-cols{grid-template-columns:repeat(3,1fr);gap:8px;font-size:12px;display:grid}.pattern-col-label{color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.pattern-value--date{color:var(--green)}.pattern-value--none{color:var(--muted)}.pattern-value--cat{color:var(--accent)}.pattern-value--title{color:var(--ink)}.file-browser{border:1px solid var(--line);border-radius:8px;overflow:hidden}.file-browser-toolbar{background:var(--panel-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 12px;display:flex}.file-browser-path{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.file-browser-list{max-height:208px;overflow-y:auto}.browser-msg{color:var(--muted);text-align:center;margin:0;padding:12px;font-size:12px}.browser-msg--error{color:var(--red)}.browser-row{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;display:flex}.browser-row:last-child{border-bottom:none}.browser-row:hover{background:var(--panel-soft)}.browser-row--dir{color:var(--ink)}.browser-row--file{cursor:default;justify-content:space-between}.browser-row-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.badge-added{color:var(--green);flex-shrink:0;font-size:11px}.extra-files-list{flex-direction:column;gap:4px;display:flex}.extra-file-row{background:var(--panel-soft);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.extra-file-arrows{flex-direction:column;gap:0;display:flex}.extra-file-arrows button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.2}.extra-file-arrows button:disabled{opacity:.25;pointer-events:none}.extra-file-path{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.remove-btn{color:var(--red);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:12px}.palette-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.swatches{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.swatch-wrap{width:32px;height:32px;position:relative}.swatch{pointer-events:none;border:3px solid;border-radius:50%;width:32px;height:32px}.swatch-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.edge-swatch-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.edge-swatch{border:2px solid #00000026;border-radius:50%;width:26px;height:26px}.remove-swatch-btn{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;line-height:1}.add-color-row{align-items:center;gap:8px;margin-top:12px;display:flex}.color-input{cursor:pointer;border:1px solid var(--line-strong);background:0 0;border-radius:6px;width:32px;height:32px;padding:0}.license-card{border:1px solid var(--accent-soft);border-radius:16px;overflow:hidden}.license-banner{background:linear-gradient(90deg,#276ef1,#4f8ef7,#6366f1);align-items:center;gap:16px;padding:20px 24px;display:flex}.license-icon{font-size:28px}.license-title{color:#fff;margin:0;font-size:15px;font-weight:700}.license-subtitle{color:#fffc;margin:4px 0 0;font-size:12px}.license-body{background:var(--panel);padding:20px 24px}.license-body p{color:var(--ink);margin:0 0 16px;font-size:13px}.license-links{flex-wrap:wrap;gap:12px;display:flex}.license-btn{color:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.license-btn svg{flex-shrink:0;width:16px;height:16px}.license-btn:hover{opacity:.85}.license-btn--linkedin{background:#0a66c2}.license-btn--npm{background:#cb3837}.agents-backdrop.svelte-f11yds{z-index:9998;position:fixed;inset:0}.agents-dropdown.svelte-f11yds{z-index:9999;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:220px;max-width:320px;padding:6px;display:flex;position:fixed;box-shadow:0 8px 24px #0000001f}.agents-dropdown-empty.svelte-f11yds{color:var(--muted);margin:0;padding:10px 12px;font-size:13px;font-style:italic}.agents-group.svelte-f11yds{flex-direction:column;display:flex}.agents-group.svelte-f11yds+.agents-group:where(.svelte-f11yds){border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.agents-group-toggle.svelte-f11yds{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:6px 10px 4px;font-family:inherit;display:flex}.agents-group-toggle.svelte-f11yds:hover{background:var(--panel-soft)}.agents-group-label.svelte-f11yds{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px;font-weight:700}.agents-group-chevron.svelte-f11yds{color:var(--muted);font-size:14px;line-height:1;transition:transform .15s;transform:rotate(0)}.agents-group-chevron--open.svelte-f11yds{transform:rotate(90deg)}.agents-item.svelte-f11yds{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.agents-item.svelte-f11yds:hover:not(:disabled){background:var(--accent-soft)}.agents-item--disabled.svelte-f11yds{opacity:.45;cursor:not-allowed}.agents-item-name.svelte-f11yds{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.agents-item-badge.svelte-f11yds{background:var(--panel-soft);color:var(--muted);border-radius:20px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:600}.agents-item-badge--input.svelte-f11yds{background:var(--accent-soft);color:var(--accent)}.agents-modal-overlay.svelte-f11yds{z-index:9999}:root[data-blueprint]{--bg:#0f172a;--ink:#f1f5f9;--muted:#94a3b8;--line:#ffffff1a;--accent:#3b82f6;--accent-soft:#3b82f626;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0}.app-shell{grid-template-rows:64px minmax(0,1fr);width:100vw;height:100vh;display:grid}[data-blueprint] .topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aeb}.brand-lockup{align-items:center;gap:12px;min-width:0;display:flex}[data-blueprint] .brand-mark{color:#fff;background:#1e293b;border-color:#fff3}.brand-lockup h1{letter-spacing:0;margin:0;font-size:14px;font-weight:760}.brand-lockup p{color:var(--muted);margin:2px 0 0;font-size:11px}.topbar-right{align-items:center;gap:8px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.breadcrumb-item{cursor:pointer;color:var(--accent);white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;transition:opacity .15s}.breadcrumb-item:hover{opacity:.75}.breadcrumb-item.current{color:var(--ink);cursor:default;font-weight:700}.breadcrumb-sep{opacity:.4;font-size:11px}.ghost-button{border:1px solid var(--line);height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:9px;align-items:center;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}[data-blueprint] .ghost-button:hover{background:#ffffff0f}.workspace-shell{position:relative;overflow:hidden}canvas{cursor:default;width:100%;height:100%}canvas.is-panning{cursor:grabbing}.rail{z-index:5;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px}.tool-button:disabled{opacity:.35;cursor:not-allowed}.cluster-overlays{pointer-events:none;z-index:4;position:absolute;inset:0}.cluster-tag{pointer-events:auto;align-items:center;gap:2px;display:flex;position:absolute;transform:translateY(-50%)}.cluster-tag-label,.cluster-tag-input{color:#ede9fe;white-space:normal;overflow-wrap:anywhere;cursor:pointer;background:#7c3aedd9;border:1px solid #a78bfa;border-radius:6px;max-width:220px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.3}.cluster-tag-input{cursor:text;outline:none}.cluster-tag-del,.cluster-tag-add,.cluster-tag-remove{color:#ede9fe;cursor:pointer;background:#7c3aedd9;border:1px solid #a78bfa;border-radius:6px;place-items:center;width:18px;height:18px;font-size:13px;line-height:1;display:grid}.cluster-tag-del:hover{background:#dc2626;border-color:#ef4444}.cluster-tag-add:hover{background:#16a34a;border-color:#22c55e}.cluster-tag-remove:hover{background:#d97706;border-color:#f59e0b}[data-blueprint] .tool-button{background:#1e293b;box-shadow:0 8px 24px #0000004d}[data-blueprint] .tool-button:hover{background:#273549}[data-blueprint] .tool-button.active{color:#60a5fa;background:#3b82f633;border-color:#3b82f6}.file-explorer{border-left:1px solid var(--line);z-index:10;background:#0f172a;flex-direction:column;width:50%;animation:.2s ease-out both slide-in;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.explorer-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.explorer-path{color:#93c5fd;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.explorer-close{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;place-items:center;font-size:18px;transition:background .15s;display:grid}.explorer-close:hover{color:var(--ink);background:#ffffff0f}.explorer-top{flex:1;min-height:0;overflow-y:auto}.explorer-divider{background:var(--line);flex-shrink:0;height:1px}.explorer-bottom{flex:1;min-height:0;overflow-y:auto}.explorer-list{padding:8px 0}.explorer-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 20px;font-size:13px;transition:background .1s;display:flex}.explorer-item:hover{background:#ffffff0a}.explorer-item.is-folder{color:#93c5fd;font-weight:600}.explorer-item.is-file{color:#94a3b8}.explorer-breadcrumb{flex:1;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex;overflow:hidden}.explorer-breadcrumb-item{color:#60a5fa;cursor:pointer;white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.explorer-breadcrumb-item:hover{text-decoration:underline}.explorer-breadcrumb-item.current{color:#f1f5f9;cursor:default}.explorer-breadcrumb-item.current:hover{text-decoration:none}.explorer-breadcrumb-sep{color:#475569;font-size:11px}.file-preview{height:100%;padding:16px}.file-preview-placeholder{color:#475569;margin:0;padding-top:8px;font-size:13px}.file-preview pre{white-space:pre-wrap;word-break:break-all;margin:0;font-size:12px;line-height:1.6}.file-preview .hljs{background:0 0;padding:0}.file-preview .hljs-ln{border-collapse:collapse;font-size:12px;line-height:1.6}.file-preview .hljs-ln td{padding:0}.file-preview .hljs-ln-numbers{-webkit-user-select:none;user-select:none;text-align:right;color:#3d4f6b;vertical-align:top;border-right:1px solid #1e3a5f;min-width:36px;padding-left:4px!important;padding-right:16px!important}.file-preview .hljs-ln-code{padding-left:16px!important}.file-preview img{object-fit:contain;border-radius:8px;max-width:100%;max-height:300px}.file-preview video{border-radius:8px;max-width:100%}.file-preview-binary,.file-preview-truncated{border-radius:6px;margin-top:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.file-preview-binary{color:#fca5a5;background:#ef444426}.file-preview-truncated{color:#fde047;background:#eab30826}.file-preview-name{color:#94a3b8;margin:0 0 10px;font-size:12px;font-weight:700}.explorer-section-label{color:#475569;text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px 4px;font-size:11px;font-weight:700;display:flex}.explorer-section-label.with-action{padding-right:16px}.explorer-copy-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #94a3b82e;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.explorer-copy-btn:hover{color:#93c5fd;background:#60a5fa1a;border-color:#60a5fa73}.explorer-copy-btn.copied{color:#34d399;border-color:#34d39973}.empty-state{color:var(--muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;inset:0}.empty-state p{margin:0}.bpadr-overlay{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#94a3b84d;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.bpadr-modal{color:#1e293b;background:#f9fafb;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;width:min(1100px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 32px 80px #0000004d}.bpadr-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.bpadr-title-row{align-items:center;gap:8px;min-width:0;display:flex}.bpadr-title{color:#0f172a;min-width:0;margin:0;font-size:16px;font-weight:760}.bpadr-title code{color:#0f172a;background:#e2e8f0;border-radius:6px;margin-left:6px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.95em;font-weight:700;display:inline-block}.bpadr-copy-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,color .15s;display:inline-flex}.bpadr-copy-btn:hover{color:#2563eb;background:#f8fafc}.bpadr-copy-btn.copied{color:#16a34a}.bpadr-header-actions{align-items:center;gap:8px;display:flex}.bpadr-icon-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;place-items:center;width:32px;height:32px;font-size:16px;transition:background .15s;display:grid}.bpadr-icon-btn:hover{color:#0f172a;background:#f1f5f9}.bpadr-read{flex:1;padding:24px;overflow-y:auto}.bpadr-prose{width:100%;max-width:none!important}#bpadrRendered hr{opacity:1!important;border-color:#d1d5db!important}#bpadrRendered :not(pre)>code{color:#1f2937;background-color:#e5e7eb;border-radius:.25rem;padding:.1em .3em;font-size:.875em;font-weight:500}#bpadrRendered table{border-collapse:collapse;border:none}#bpadrRendered table th,#bpadrRendered table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}#bpadrRendered table thead th{border-bottom-color:#d1d5db}#bpadrRendered table thead,#bpadrRendered table tbody tr{border:none}.bpadr-form{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow-y:auto}.bpadr-field{flex-direction:column;gap:6px;display:flex}.bpadr-field label{color:#64748b;font-size:12px;font-weight:700}.bpadr-field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.bpadr-field-grow{flex:1;min-height:0}.bpadr-field-grow .bpadr-textarea{flex:1;min-height:200px}.bpadr-input,.bpadr-textarea{color:#1e293b;resize:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.bpadr-input:focus,.bpadr-textarea:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.bpadr-input[readonly]{color:#2563eb;cursor:default;background:#eff6ff;border-color:#bfdbfe}.bpadr-textarea{min-height:180px;line-height:1.6}.bpadr-footer{flex-shrink:0;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.bpadr-doc-footer{border-top:1px solid #e2e8f0;align-items:center;padding:12px 24px 16px}.bpadr-btn-ghost{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;height:36px;padding:0 14px;font-size:13px;font-weight:700}.bpadr-btn-ghost:hover{color:#1e293b;background:#f1f5f9}.bpadr-btn-primary{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:9px;height:36px;padding:0 16px;font-size:13px;font-weight:700}.bpadr-btn-primary:hover{background:#2563eb}.bpadr-folder-confirm{flex-direction:column;gap:8px;padding:32px 24px;display:flex}.bpadr-folder-confirm p{color:#1e293b;margin:0;font-size:14px}.bpadr-folder-confirm strong{color:#2563eb}.bpadr-muted{color:#64748b!important;font-size:13px!important}.files-page.svelte-4q2lov{max-width:720px;margin:0 auto;padding:32px 24px}.files-msg.svelte-4q2lov{color:var(--muted);text-align:center;padding:48px 0;font-size:14px}.files-msg--error.svelte-4q2lov{color:var(--red)}.files-msg--empty.svelte-4q2lov{font-style:italic}.files-list.svelte-4q2lov{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.files-row.svelte-4q2lov{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 20px;display:flex}.files-row.svelte-4q2lov:last-child{border-bottom:none}.files-icon.svelte-4q2lov{flex-shrink:0;font-size:18px}.files-info.svelte-4q2lov{flex:1;min-width:0}.files-name.svelte-4q2lov{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;text-decoration:none;display:block;overflow:hidden}.files-name.svelte-4q2lov:hover{color:var(--accent);text-decoration:underline}.files-meta.svelte-4q2lov{color:var(--muted);margin-top:2px;font-size:12px}.files-row-error.svelte-4q2lov{color:var(--red);margin:4px 0 0;font-size:12px}.files-actions.svelte-4q2lov{flex-shrink:0;gap:8px;display:flex}.files-btn.svelte-4q2lov{border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink);cursor:pointer;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:12px;transition:background .15s}.files-btn.svelte-4q2lov:hover{background:var(--accent-soft);border-color:var(--accent)}.files-btn.svelte-4q2lov:disabled{opacity:.5;pointer-events:none}.files-btn--danger.svelte-4q2lov{border-color:var(--red-soft);color:var(--red)}.files-btn--danger.svelte-4q2lov:hover{background:var(--red-soft);border-color:var(--red)}.section-card.svelte-e5jhdq{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.section-header.svelte-e5jhdq{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-e5jhdq{color:var(--ink);font-size:13px;font-weight:600}.header-actions.svelte-e5jhdq{align-items:center;gap:8px;display:flex}.count-label.svelte-e5jhdq{color:var(--muted);font-size:12px}.instruction-list.svelte-e5jhdq{flex-direction:column;gap:8px;display:flex}.instruction-row.svelte-e5jhdq{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.instruction-info.svelte-e5jhdq{min-width:0}.instruction-path.svelte-e5jhdq{word-break:break-all;color:var(--accent);font-family:monospace;font-size:11px;text-decoration:none}.instruction-path.svelte-e5jhdq:hover{text-decoration:underline}.instruction-meta.svelte-e5jhdq{color:var(--muted);margin-top:2px;font-size:11px}.instruction-actions.svelte-e5jhdq{flex-shrink:0;align-items:center;gap:12px;display:flex}.status-ok.svelte-e5jhdq{color:var(--green);font-size:12px;font-weight:600}.status-missing.svelte-e5jhdq{color:var(--red);font-size:12px;font-weight:600}.empty-msg.svelte-e5jhdq{color:var(--muted);margin:0;font-size:13px}.rules-layout.svelte-1r3tey2{grid-template-columns:minmax(0,1fr) 22rem;align-items:start;gap:16px;display:grid}@media (width<=900px){.rules-layout.svelte-1r3tey2{grid-template-columns:1fr}}.section-card.svelte-1r3tey2{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.aside-card.svelte-1r3tey2{gap:10px}.section-header.svelte-1r3tey2{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1r3tey2{color:var(--ink);font-size:13px;font-weight:600}.rules-folder.svelte-1r3tey2{color:var(--muted);font-family:monospace;font-size:11px}.rule-list.svelte-1r3tey2{flex-direction:column;gap:8px;display:flex}.rule-row.svelte-1r3tey2{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.rule-top.svelte-1r3tey2{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.rule-title-wrap.svelte-1r3tey2{min-width:0}.rule-title.svelte-1r3tey2{margin:0;font-size:13px;font-weight:600}.rule-link.svelte-1r3tey2{color:var(--accent);text-decoration:none}.rule-link.svelte-1r3tey2:hover{text-decoration:underline}.rule-path.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px;text-decoration:none;display:block}.rule-path.svelte-1r3tey2:hover{color:var(--accent)}.severity-badge.svelte-1r3tey2{background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.rule-desc.svelte-1r3tey2{color:var(--muted);margin:0 0 6px;font-size:13px}.rule-tags.svelte-1r3tey2{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.tag.svelte-1r3tey2{color:var(--accent);font-size:11px}.rule-applies.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px}.empty-msg.svelte-1r3tey2{color:var(--muted);margin:0;font-size:13px}.section-card.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.section-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1ui2b6s{color:var(--ink);font-size:13px;font-weight:600}.section-desc.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-info-grid.svelte-1ui2b6s{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mcp-info-cell.svelte-1ui2b6s{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.mcp-info-cell.wide.svelte-1ui2b6s{grid-column:1/-1}.mcp-info-label.svelte-1ui2b6s{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.mcp-info-value.svelte-1ui2b6s{color:var(--ink);margin-top:3px;font-size:12px;font-weight:600}.mcp-info-value.ok.svelte-1ui2b6s{color:var(--green)}.mcp-info-value.err.svelte-1ui2b6s{color:var(--red)}.mcp-info-value.mono.svelte-1ui2b6s{font-family:monospace;font-weight:400}.mcp-info-value.break.svelte-1ui2b6s{word-break:break-all}.subsection-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.subsection-title.svelte-1ui2b6s{color:var(--muted);font-size:12px;font-weight:600}.subsection-actions.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.count-label.svelte-1ui2b6s{color:var(--muted);font-size:11px}.mcp-items.svelte-1ui2b6s{flex-direction:column;gap:6px;display:flex}.mcp-detail.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:8px 12px}.mcp-summary.svelte-1ui2b6s{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;font-family:monospace;font-size:12px;font-weight:600;list-style:none}.mcp-summary.svelte-1ui2b6s::-webkit-details-marker{display:none}.mcp-desc.svelte-1ui2b6s{color:var(--muted);white-space:pre-wrap;margin:8px 0 0;font-size:12px;line-height:1.5}.mcp-schema-wrap.svelte-1ui2b6s{margin-top:10px}.mcp-schema-title.svelte-1ui2b6s{color:var(--muted);margin:0 0 4px;font-size:11px;font-weight:600}.mcp-schema-pre.svelte-1ui2b6s{background:var(--panel);border:1px solid var(--line);max-height:200px;color:var(--ink);white-space:pre;border-radius:6px;padding:8px;font-size:11px;overflow:auto}.mcp-args-list.svelte-1ui2b6s{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mcp-arg-item.svelte-1ui2b6s{border:1px solid var(--line);border-radius:6px;padding:6px 8px}.mcp-arg-name-row.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.mcp-arg-name.svelte-1ui2b6s{color:var(--ink);font-family:monospace;font-size:12px;font-weight:600}.mcp-arg-req.svelte-1ui2b6s{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:11px}.mcp-arg-desc.svelte-1ui2b6s{color:var(--muted);margin:4px 0 0;font-size:11px}.mcp-run-area.svelte-1ui2b6s{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.mcp-run-label.svelte-1ui2b6s{color:var(--muted);font-size:11px;font-weight:600}.mcp-textarea.svelte-1ui2b6s{resize:vertical;font-family:monospace;font-size:11px}.mcp-run-footer.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;display:flex}.mcp-error-text.svelte-1ui2b6s{color:var(--red);font-size:11px}.mcp-result.svelte-1ui2b6s{font-size:11px}.empty-msg.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-running{color:var(--muted);font-style:italic}.mcp-saved-label{color:var(--muted);margin-bottom:4px;font-size:11px}.mcp-saved-link{background:var(--green-soft);color:var(--green);border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-family:monospace;font-size:11px;font-weight:600;text-decoration:none;display:inline-flex}.mcp-saved-link:hover{opacity:.8}.mcp-error-pre{white-space:pre-wrap;word-break:break-word;border:1px solid var(--red-soft);background:var(--red-soft);max-height:200px;color:var(--red);border-radius:6px;padding:8px;font-size:11px;line-height:1.5;overflow:auto}.context-scroll.svelte-rpj1e5{height:100%;overflow-y:auto}.context-inner.svelte-rpj1e5{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;padding:24px 24px 48px;display:flex}.page-intro.svelte-rpj1e5{flex-direction:column;gap:4px;display:flex}.page-title.svelte-rpj1e5{color:var(--ink);margin:0;font-size:18px;font-weight:700}.page-desc.svelte-rpj1e5{color:var(--muted);margin:0;font-size:13px}.status-text.svelte-rpj1e5{color:var(--muted);margin:0;font-size:12px;font-style:italic}.ld-inline-snippet-target{cursor:context-menu}.prose img[class*=ld-image-width-]{max-width:100%;height:auto}.prose img.ld-image-width-full{width:100%}.prose img.ld-image-width-three-quarters{width:75%}.prose img.ld-image-width-two-thirds{width:66.6667%}.prose img.ld-image-width-half{width:50%}.prose img.ld-image-width-third{width:33.3333%}.prose img.ld-image-width-quarter{width:25%}.prose img[class*=ld-image-align-]{display:block}.prose img.ld-image-align-left{margin-left:0!important;margin-right:auto!important}.prose img.ld-image-align-center{margin-left:auto!important;margin-right:auto!important}.prose img.ld-image-align-right{margin-left:auto!important;margin-right:0!important}.prose pre[class*=ld-code-width-],.prose .mermaid[class*=ld-mermaid-width-]{max-width:100%}.prose pre.ld-code-width-full,.prose .mermaid.ld-mermaid-width-full{width:100%}.prose pre.ld-code-width-three-quarters,.prose .mermaid.ld-mermaid-width-three-quarters{width:75%}.prose pre.ld-code-width-two-thirds,.prose .mermaid.ld-mermaid-width-two-thirds{width:66.6667%}.prose pre.ld-code-width-half,.prose .mermaid.ld-mermaid-width-half{width:50%}.prose pre.ld-code-width-third,.prose .mermaid.ld-mermaid-width-third{width:33.3333%}.prose pre.ld-code-width-quarter,.prose .mermaid.ld-mermaid-width-quarter{width:25%}.prose pre[class*=ld-code-align-],.prose .mermaid[class*=ld-mermaid-align-]{display:block}.prose pre.ld-code-align-left,.prose .mermaid.ld-mermaid-align-left{margin-left:0!important;margin-right:auto!important}.prose pre.ld-code-align-center,.prose .mermaid.ld-mermaid-align-center{margin-left:auto!important;margin-right:auto!important}.prose pre.ld-code-align-right,.prose .mermaid.ld-mermaid-align-right{margin-left:auto!important;margin-right:0!important}.prose .mermaid[class*=ld-mermaid-width-] svg{width:100%;max-width:100%;height:auto}.ld-table-editor table.ld-table-edit-table{--tbl-accent:#d1d5db;--tbl-accent-soft:#e5e7eb;--tbl-accent-stripe:#f3f4f6;--tbl-accent-text:#111827;border-collapse:collapse;border:none}.dark .ld-table-editor table.ld-table-edit-table{--tbl-accent:#4b5563;--tbl-accent-soft:#374151;--tbl-accent-stripe:#1f2937;--tbl-accent-text:#f3f4f6}.ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}.ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}.ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}.ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}.ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark .ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark .ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark .ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark .ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark .ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.ld-table-editor table.ld-table-edit-table td{border:none;border-bottom:1px solid var(--tbl-accent-soft);background:#fff;padding:0}.dark .ld-table-editor table.ld-table-edit-table td{background:#030712}.ld-table-editor table.ld-table-edit-table tr:first-child td{border-bottom-color:var(--tbl-accent);color:var(--tbl-accent-text)}.ld-table-editor table.ld-table-edit-table[class*=table-color-] tr:first-child td{background:var(--tbl-accent-soft)}.ld-table-editor table.ld-table-edit-table .ld-table-edit-input{color:inherit;padding:.75rem;font-size:.875rem}.ld-table-editor table.ld-table-edit-table.table-style-compact .ld-table-edit-input{padding:.25rem .5rem;font-size:.8rem;line-height:1.35}.ld-table-editor table.ld-table-edit-table.table-style-striped tr:not(:first-child):nth-child(odd) td{background:var(--tbl-accent-stripe)}.ld-table-editor table.ld-table-edit-table.table-border-bordered,.ld-table-editor table.ld-table-edit-table.table-border-bordered td{border:1px solid var(--tbl-accent)}.category-docs{transition:max-height .2s,opacity .2s}.category-docs.collapsed{opacity:0;max-height:0;overflow:hidden}.category-docs.expanded{opacity:1;max-height:9999px}.category-docs.no-transition{transition:none!important}.prose pre{position:relative}.ld-code-copy{z-index:2;color:#d1d5db;cursor:pointer;opacity:0;background:#ffffff14;border:1px solid #ffffff26;border-radius:.375rem;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;line-height:1;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;top:.4rem;right:.5rem}.prose pre:hover .ld-code-copy,.ld-code-copy:focus-visible,.ld-code-copy.ld-copied{opacity:1}.ld-code-copy:hover{background:#fff3}.ld-code-copy.ld-copied{color:#86efac;background:#22c55e40;border-color:#22c55e66}table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.prose table[class*=table-color-] thead th{background-color:var(--tbl-accent-soft);color:var(--tbl-accent-text)}.prose table{border-collapse:collapse;border:none}.prose table th,.prose table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}.prose table thead th{border-bottom-color:#d1d5db}.dark .prose table th,.dark .prose table td{border-bottom-color:#374151}.prose table[class*=table-color-] th,.prose table[class*=table-color-] td{border-bottom-color:var(--tbl-accent-soft)}.prose table[class*=table-color-] thead th{border-bottom-color:var(--tbl-accent)}.prose table thead,.prose table tbody tr{border:none}.prose table.table-style-compact{font-size:.85em;line-height:1.35}.prose table.table-style-compact th,.prose table.table-style-compact td{padding:.2rem .5rem}.prose table.table-style-striped{border-collapse:collapse}.prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#f3f4f6)}.dark .prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#374151)}.prose table.table-border-bordered{border-collapse:collapse}.prose table.table-border-bordered,.prose table.table-border-bordered th,.prose table.table-border-bordered td{border:1px solid var(--tbl-accent,#d1d5db)}.dark .prose table.table-border-bordered,.dark .prose table.table-border-bordered th,.dark .prose table.table-border-bordered td{border-color:var(--tbl-accent,#4b5563)}.prose table.table-border-borderless th,.prose table.table-border-borderless td{border-top:none!important;border-left:none!important;border-right:none!important}pre.ld-collapsible{max-height:var(--ld-code-max-h,400px);position:relative;overflow:hidden}pre.ld-collapsible.ld-expanded{max-height:none;overflow:auto}pre.ld-collapsible:not(.ld-expanded):after{content:"";pointer-events:none;background:linear-gradient(#282c3400 0%,#282c34d9 100%);height:64px;position:absolute;bottom:0;left:0;right:0}.ld-code-toggle{z-index:1;color:#e5e7eb;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:.375rem;padding:.15rem .6rem;font-size:.75rem;font-weight:500;transition:background .15s;position:absolute;bottom:.4rem;right:.5rem}.ld-code-toggle:hover{background:#ffffff38}.color-swatch-btn.selected-swatch,.color-text-swatch-btn.selected-text-swatch{outline-offset:2px;outline:2px solid;box-shadow:0 0 0 3px #00000026}.ld-toc-aside{border-left:1px solid #e5e7eb}.dark .ld-toc-aside{border-left-color:#374151}.doc-item.active{color:#3b82f6;background-color:#3b82f61f;font-weight:600}.dark .doc-item.active{color:#60a5fa;background-color:#60a5fa26}.dark .prose{color:#d1d5db}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:#f9fafb}.dark .prose a{color:#60a5fa}.dark .prose strong{color:#f3f4f6}.prose code:not(pre code){color:#111827;background:#e5e7eb;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose code:not(pre code){color:#f87171;background:#4b5563;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose blockquote{color:#9ca3af;border-color:#4b5563}.prose blockquote p:first-of-type:before,.prose blockquote p:last-of-type:after{content:none}.prose blockquote.ld-callout{--callout-accent:#9ca3af;--callout-bg:#f9fafb;--callout-title-color:#374151;--callout-icon-color:#6b7280;border:none;border-left:4px solid var(--callout-accent);background:var(--callout-bg);color:inherit;border-radius:0 .5rem .5rem 0;margin-left:0;margin-right:0;padding:1rem 1.25rem;font-style:normal}.prose blockquote.ld-callout p{color:inherit;margin-top:.4em;margin-bottom:.4em}.prose blockquote.ld-callout p:first-of-type{margin-top:0}.prose blockquote.ld-callout p:last-of-type{margin-bottom:0}.ld-callout-header{color:var(--callout-title-color);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.05em;font-weight:700;line-height:1.3;display:flex}.ld-callout-icon{color:var(--callout-icon-color);flex-shrink:0;align-items:center;margin-right:.15rem;display:inline-flex;transform:scale(1.35)}.ld-callout-icon-inline{vertical-align:middle;margin-top:-.1em;margin-right:.4rem;transform:scale(1.2)}.prose blockquote.ld-callout-info,.prose blockquote.ld-callout-note{--callout-accent:#3b82f6;--callout-bg:#eff6ff;--callout-title-color:#1e3a8a;--callout-icon-color:#3b82f6}.prose blockquote.ld-callout-success,.prose blockquote.ld-callout-tip{--callout-accent:#22c55e;--callout-bg:#f0fdf4;--callout-title-color:#14532d;--callout-icon-color:#22c55e}.prose blockquote.ld-callout-warning,.prose blockquote.ld-callout-caution{--callout-accent:#f59e0b;--callout-bg:#fffbeb;--callout-title-color:#78350f;--callout-icon-color:#f59e0b}.prose blockquote.ld-callout-error,.prose blockquote.ld-callout-danger{--callout-accent:#ef4444;--callout-bg:#fef2f2;--callout-title-color:#7f1d1d;--callout-icon-color:#ef4444}.dark .prose blockquote.ld-callout{--callout-bg:#3741514d;--callout-title-color:#e5e7eb;--callout-icon-color:#9ca3af}.dark .prose blockquote.ld-callout-info,.dark .prose blockquote.ld-callout-note{--callout-accent:#60a5fa;--callout-bg:#1e3a8a33;--callout-title-color:#bfdbfe;--callout-icon-color:#60a5fa}.dark .prose blockquote.ld-callout-success,.dark .prose blockquote.ld-callout-tip{--callout-accent:#4ade80;--callout-bg:#14532d33;--callout-title-color:#bbf7d0;--callout-icon-color:#4ade80}.dark .prose blockquote.ld-callout-warning,.dark .prose blockquote.ld-callout-caution{--callout-accent:#fbbf24;--callout-bg:#78350f33;--callout-title-color:#fed7aa;--callout-icon-color:#fbbf24}.dark .prose blockquote.ld-callout-error,.dark .prose blockquote.ld-callout-danger{--callout-accent:#f87171;--callout-bg:#7f1d1d33;--callout-title-color:#fecaca;--callout-icon-color:#f87171}.prose img{margin-top:0;margin-bottom:0}.prose p>img:only-child,.prose p>a:only-child>img{margin-top:1em;margin-bottom:1em}.prose hr{border-color:#d1d5db;margin-top:2em;margin-bottom:2em}mark.ld-local-mark{color:inherit;background:#bae6fd;border-radius:2px;padding:0 1px}mark.ld-local-mark.ld-local-active{color:#fff;background:#0284c7}.dark mark.ld-local-mark{color:#e0f2fe;background:#075985}.dark mark.ld-local-mark.ld-local-active{color:#082f49;background:#0ea5e9}.ld-local-item-active{background:#0ea5e91f}.prose a.ld-file-attachment,a.ld-file-attachment{color:#5b21b6;background:#ede9fe;border:1px solid #ddd6fe;border-radius:.375rem;align-items:center;gap:.35em;padding:.1em .55em;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.prose a.ld-file-attachment:hover,a.ld-file-attachment:hover{background:#ddd6fe;border-color:#c4b5fd}.dark .prose a.ld-file-attachment,.dark a.ld-file-attachment{color:#c4b5fd;background:#8b5cf62e;border-color:#8b5cf64d}.dark .prose a.ld-file-attachment:hover,.dark a.ld-file-attachment:hover{background:#8b5cf647;border-color:#8b5cf673}a.ld-file-attachment .ld-file-icon{opacity:.85;font-size:.85em}.dark .prose hr{border-color:#374151}.dark .prose table th{color:#f9fafb;background:#1f2937}.dark .prose table td{border-color:#374151}.dark .prose table tr:nth-child(2n){background:#111827}@media print{#sidebar,#header{display:none!important}#content-area{margin:0!important}.no-print{display:none!important}.prose{max-width:100%!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:#4b5563}mark{color:inherit;background:#fef08a;border-radius:2px;padding:0 2px}mark.match-active{color:#fff;background:#f97316}.dark mark{color:#fef9c3;background:#713f12}.dark mark.match-active{color:#fff;background:#ea580c}html:not(.dark) body.ld-code-light #home-content-area{background:#fff}html:not(.dark) body.ld-code-light .ld-code-copy{color:#6b7280;background:#0000000a;border:1px solid #0000001a}html:not(.dark) body.ld-code-light .prose pre:hover .ld-code-copy,html:not(.dark) body.ld-code-light .ld-code-copy:focus-visible,html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{opacity:1}html:not(.dark) body.ld-code-light .ld-code-copy:hover{color:#111827;background:#00000014;border-color:#0000002e}html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{color:#15803d;background:#22c55e1f;border-color:#22c55e59}html:not(.dark) body.ld-code-light pre.ld-collapsible:not(.ld-expanded):after{background:linear-gradient(#f6f8fa00 0%,#f6f8faeb 100%)}html:not(.dark) body.ld-code-light .ld-code-toggle{color:#374151;background:#0000000d;border:1px solid #0000001f}html:not(.dark) body.ld-code-light .ld-code-toggle:hover{background:#0000001a}.ld-compare{border:1px solid #e5e7eb;border-radius:.5rem;grid-template-columns:1fr 1fr;margin:1.5rem 0;font-size:.92em;display:grid;overflow:hidden}.dark .ld-compare{border-color:#374151}.ld-compare-source,.ld-compare-render{padding:1rem 1.25rem;position:relative}.ld-compare-source:before,.ld-compare-render:before{text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;font-size:.68rem;font-weight:700;display:block}.ld-compare-source:before{content:"Syntaxe";color:#6b7280}.ld-compare-render:before{content:"Rendu";color:#6b7280}.ld-compare-source{background-color:#f9fafb;border-right:1px solid #e5e7eb}.dark .ld-compare-source{background-color:#111827;border-right-color:#374151}.ld-compare-render{background-color:#fff}.dark .ld-compare-render{background-color:#111827}.ld-compare-render>:first-child{margin-top:0}.ld-compare-render>:last-child{margin-bottom:0}.ld-compare-source>pre{border-radius:.25rem;margin:0;font-size:.85em;background-color:#fff!important}.dark .ld-compare-source>pre{background-color:#111827!important}@media (width<=640px){.ld-compare{grid-template-columns:1fr}.ld-compare-source{border-bottom:1px solid #e5e7eb;border-right:none}.dark .ld-compare-source{border-bottom-color:#374151}}.tts-active{background-color:#facc1559;border-radius:3px}#vis-canvas>div{border:none!important}.tool-btn{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;transition:background-color .15s,color .15s;display:flex}.dark .tool-btn{color:#9ca3af}.tool-btn:hover{background:#f3f4f6}.dark .tool-btn:hover{background:#1f2937}.tool-active{color:#ea580c!important;background:#fff7ed!important}.dark .tool-active{color:#fb923c!important;background:#7c2d124d!important}#vis-canvas.cursor-crosshair canvas{cursor:crosshair!important}.float-panel{z-index:10;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;padding:.375rem .5rem;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.dark .float-panel{background:#1f2937;border-color:#374151}.float-panel.hidden{display:none!important}.panel-sep{background:#e5e7eb;flex-shrink:0;width:1px;height:1rem;margin:0 .125rem}.dark .panel-sep{background:#374151}#customShapeLabelPlacementControls{display:contents}#customShapeLabelPlacementControls.hidden{display:none}.edge-btn-active{color:#ea580c!important;background:#fff7ed!important}.dark .edge-btn-active{color:#fb923c!important;background:#7c2d124d!important}#labelInput{z-index:20;text-align:center;color:#1f2937;resize:none;background:#fffffff2;border:2px solid #3b82f6;border-radius:.5rem;outline:none;min-width:80px;min-height:28px;padding:4px 8px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;line-height:1.4;position:absolute;overflow:hidden;box-shadow:0 4px 16px #00000026}.dark #labelInput{color:#f3f4f6;background:#111827f2}#labelInput.hidden{display:none}#debugLayer{pointer-events:none;z-index:12;position:absolute;inset:0;overflow:hidden}.debug-box{pointer-events:auto;white-space:pre;-webkit-user-select:text;user-select:text;cursor:text;color:#c2410c;background:#ffffffe6;border:1px solid #f97316;border-radius:3px;padding:3px 6px;font:10px/1.4 monospace;position:absolute}.dark .debug-box{color:#fbbf24;background:#000000c7}#selectionOverlay{pointer-events:none;z-index:15;box-sizing:border-box;border:2px dashed #f97316;border-radius:3px;display:none;position:absolute}.resize-handle{pointer-events:all;z-index:1;background:#fff;border:2px solid #f97316;border-radius:2px;width:10px;height:10px;position:absolute}.dark .resize-handle{background:#374151}#rh-rotate{pointer-events:all;z-index:1;cursor:grab;color:#f97316;background:#fff;border:2px solid #f97316;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-rotate:active{cursor:grabbing}.dark #rh-rotate{background:#374151}#rh-label-rotate{pointer-events:all;z-index:1;cursor:grab;color:#6366f1;background:#fff;border:2px solid #6366f1;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-label-rotate:active{cursor:grabbing}.dark #rh-label-rotate{background:#374151}#toastContainer{z-index:1000;pointer-events:none;flex-direction:column-reverse;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.ld-toast{pointer-events:all;cursor:pointer;opacity:0;color:#fafaf9;background:#1c1917;border:1px solid #292524;border-radius:.5rem;padding:.6rem 1rem;font-size:.8rem;font-weight:500;transition:opacity .2s,transform .2s;transform:translateY(.5rem);box-shadow:0 4px 16px #0000002e}.dark .ld-toast{color:#1c1917;background:#fafaf9;border-color:#e7e5e4}.ld-toast--error{color:#fef2f2;background:#7f1d1d;border-color:#991b1b}.ld-toast--visible{opacity:1;transform:translateY(0)}#evidenceLayer{pointer-events:none;z-index:18;position:absolute;inset:0;overflow:hidden}#evidenceLayer.hidden{display:none}.evidence-marker{color:#0369a1;pointer-events:auto;background:#e0f2fe;border:1px solid #0284c7;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.7rem;font-weight:700;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0284c747}.dark .evidence-marker{color:#e0f2fe;background:#082f49;border-color:#38bdf8}#customShapeBar{z-index:9;background:#fffffff5;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;max-width:min(42rem,100% - 1.5rem);padding:.35rem;display:flex;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 4px 12px #0000001a}.dark #customShapeBar{background:#1f2937f5;border-color:#374151}#customShapeBar.hidden{display:none}#customShapeBarBody{scrollbar-width:thin;gap:.25rem;display:flex;overflow-x:auto}.custom-shape-btn{background:0 0;border:1px solid #0000;border-radius:.375rem;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.custom-shape-btn:hover{background:#f3f4f6}.dark .custom-shape-btn:hover{background:#111827}.custom-shape-btn img{object-fit:contain;pointer-events:none;max-width:1.7rem;max-height:1.7rem}.ld-shape-editor .btn{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;justify-content:center;align-items:center;height:2rem;padding:0 .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.ld-shape-editor .btn:hover{background:#f3f4f6}.ld-shape-editor .btn-primary{color:#fff;background:#2563eb;border-color:#2563eb}.ld-shape-editor .btn-primary:hover{background:#1d4ed8}.ld-shape-editor .btn-danger{color:#b91c1c;border-color:#fecaca}.ld-shape-editor .btn-danger:hover{background:#fef2f2}.ld-shape-editor .field{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;height:2rem;padding:0 .5rem;font-size:.875rem}.ld-shape-editor .shape-item.active{color:#1d4ed8;background:#eff6ff}.ld-shape-editor #previewStage{aspect-ratio:1;background-color:#0000;background-image:linear-gradient(45deg,#f9fafb 25%,#0000 25%),linear-gradient(-45deg,#f9fafb 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f9fafb 75%),linear-gradient(-45deg,#0000 75%,#f9fafb 75%);background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0;background-repeat:repeat,repeat,repeat,repeat;background-size:1.25rem 1.25rem;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #d1d5db;border-radius:.5rem;width:min(34rem,100%);position:relative;overflow:hidden}.ld-shape-editor #previewImage{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ld-shape-editor .anchor-dot{cursor:grab;background:#f97316;border:2px solid #fff;border-radius:999px;width:.9rem;height:.9rem;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000059}.ld-shape-editor .anchor-dot:active{cursor:grabbing}.ld-shape-editor .anchor-dot span{color:#374151;white-space:nowrap;background:#ffffffe6;border-radius:3px;padding:1px 3px;font:10px/1 system-ui,sans-serif;position:absolute;top:calc(100% + .2rem);left:50%;transform:translate(-50%)}.sk-add-bar.svelte-lo2xyl{gap:8px;margin-bottom:12px;display:flex}.sk-add-bar.svelte-lo2xyl input:where(.svelte-lo2xyl){border:1px solid var(--line);background:var(--panel-soft);min-width:0;color:var(--ink);border-radius:8px;flex:1;padding:8px 10px;font-family:inherit;font-size:13px}.sk-add-bar.svelte-lo2xyl select:where(.svelte-lo2xyl){text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);background:var(--panel-soft);color:var(--ink);border-radius:8px;padding:8px;font-family:inherit;font-size:12px}.sk-add-bar.svelte-lo2xyl input:where(.svelte-lo2xyl):focus,.sk-add-bar.svelte-lo2xyl select:where(.svelte-lo2xyl):focus{border-color:var(--accent);outline:none}.sk-add-btn.svelte-lo2xyl{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;width:36px;font-size:18px;line-height:1}.sk-add-btn.svelte-lo2xyl:hover{background:var(--accent-strong)}.sk-filters.svelte-lo2xyl{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.sk-filters.svelte-lo2xyl button:where(.svelte-lo2xyl){border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:11px}.sk-filters.svelte-lo2xyl button.active:where(.svelte-lo2xyl){background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.sk-tasks.svelte-lo2xyl{flex-direction:column;gap:8px;display:flex}.sk-task.svelte-lo2xyl{border:1px solid var(--sk-border);background:var(--sk-bg);color:var(--sk-color);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.sk-task--urgent.svelte-lo2xyl{--sk-color:#e11d48;--sk-border:#fda4af;--sk-bg:#ffe4e6d9;--sk-tag-bg:#ffcdd3e6;--sk-tag-fg:#be123c}.sk-task--normal.svelte-lo2xyl{--sk-color:#16a34a;--sk-border:#bbf7d0;--sk-bg:#dcfce7d9;--sk-tag-bg:#bbf7d0e6;--sk-tag-fg:#15803d}.sk-task--later.svelte-lo2xyl{--sk-color:#78716c;--sk-border:#d6d3d1;--sk-bg:#e7e5e4d9;--sk-tag-bg:#d6d3d1e6;--sk-tag-fg:#57534e}.sk-check.svelte-lo2xyl{border:2px solid var(--sk-color);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:transform .15s;position:relative}.sk-check.svelte-lo2xyl:hover{transform:scale(1.1)}.sk-check.checked.svelte-lo2xyl{background:var(--sk-color);border-color:var(--sk-color)}.sk-check.checked.svelte-lo2xyl:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;inset:0}.sk-task-text.svelte-lo2xyl{min-width:0;color:inherit;word-break:break-word;flex:1;font-size:13px}.sk-task.done.svelte-lo2xyl{opacity:.5}.sk-task.done.svelte-lo2xyl .sk-task-text:where(.svelte-lo2xyl){text-decoration:line-through}.sk-task-tag.svelte-lo2xyl{text-transform:uppercase;letter-spacing:.08em;background:var(--sk-tag-bg);color:var(--sk-tag-fg);border-radius:5px;flex-shrink:0;padding:3px 8px;font-size:10px}.sk-task-del.svelte-lo2xyl{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:12px}.sk-task-del.svelte-lo2xyl:hover{color:var(--red)}.sk-empty.svelte-lo2xyl{color:var(--muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.sk-modal-backdrop.svelte-1rcj86{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sk-modal.svelte-1rcj86{background:var(--panel);border:1px solid var(--line);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:14px;padding:22px 24px}.sk-modal-title.svelte-1rcj86{color:var(--ink);margin:0 0 16px;font-size:15px;font-weight:600}.sk-modal-body.svelte-1rcj86 label{color:var(--muted);margin:12px 0 4px;font-size:12px;font-weight:500;display:block}.sk-modal-body.svelte-1rcj86 input,.sk-modal-body.svelte-1rcj86 select,.sk-modal-body.svelte-1rcj86 textarea{border:1px solid var(--line);background:var(--panel-soft);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}.sk-modal-body.svelte-1rcj86 textarea{resize:vertical;min-height:110px;font-family:SF Mono,Consolas,monospace}.sk-modal-body.svelte-1rcj86 input:focus,.sk-modal-body.svelte-1rcj86 select:focus,.sk-modal-body.svelte-1rcj86 textarea:focus{border-color:var(--accent);outline:none}.sk-modal-actions.svelte-1rcj86{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.sk-btn.svelte-1rcj86{border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink);cursor:pointer;border-radius:8px;padding:7px 16px;font-family:inherit;font-size:12px}.sk-btn.svelte-1rcj86:hover{background:var(--accent-soft)}.sk-btn--primary.svelte-1rcj86{background:var(--accent);border-color:var(--accent);color:#fff}.sk-btn--primary.svelte-1rcj86:hover{background:var(--accent-strong)}.sk-btn--danger.svelte-1rcj86{background:var(--red);border-color:var(--red)}.sk-btn--danger.svelte-1rcj86:hover{background:var(--red);opacity:.9}.sk-toolbar.svelte-hpbata{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.sk-tool.svelte-hpbata{border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);cursor:pointer;border-radius:8px;padding:5px 11px;font-family:inherit;font-size:11px}.sk-tool.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-tool--add.svelte-hpbata{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.sk-notes.svelte-hpbata{flex-direction:column;gap:12px;display:flex}.sk-note.svelte-hpbata{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.sk-note-head.svelte-hpbata{background:var(--sk-theme-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 14px;display:flex}.sk-note.collapsed.svelte-hpbata .sk-note-head:where(.svelte-hpbata){border-bottom:none}.sk-note-head.svelte-hpbata h3:where(.svelte-hpbata){color:var(--sk-theme-ink);flex:1;margin:0;font-size:13px;font-weight:600}.sk-note-actions.svelte-hpbata{gap:4px;display:none}.sk-notes.edit-mode.svelte-hpbata .sk-note-actions:where(.svelte-hpbata){display:flex}.sk-toggle.svelte-hpbata{color:var(--muted);cursor:pointer;background:0 0;border:none;transition:transform .15s;display:flex}.sk-note.svelte-hpbata:not(.collapsed) .sk-toggle:where(.svelte-hpbata){transform:rotate(180deg)}.sk-note-body.svelte-hpbata{padding:12px 14px}.sk-note.collapsed.svelte-hpbata .sk-note-body:where(.svelte-hpbata){display:none}.sk-bloc.svelte-hpbata{align-items:flex-start;gap:8px;display:flex}.sk-bloc-content.svelte-hpbata{min-width:0;color:var(--ink);flex:1;font-size:13px}.sk-bloc-content.svelte-hpbata p{margin:6px 0}.sk-bloc-content.svelte-hpbata strong{color:var(--ink);margin:10px 0 4px;display:block}.sk-bloc-content.svelte-hpbata ul{margin:6px 0;padding-left:18px}.sk-bloc-content.svelte-hpbata li{margin:2px 0}.sk-pre-wrap.svelte-hpbata{margin:6px 0;position:relative}.sk-pre-wrap.svelte-hpbata pre{background:var(--panel-soft);border:1px solid var(--line);white-space:pre;border-radius:8px;margin:0;padding:10px 12px;font-family:SF Mono,Consolas,monospace;font-size:12px;overflow-x:auto}.sk-copy.svelte-hpbata{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:6px;padding:2px 8px;font-size:10px;position:absolute;top:6px;right:6px}.sk-copy.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-table-wrap.svelte-hpbata{margin:6px 0;overflow-x:auto}.sk-table-wrap.svelte-hpbata table{border-collapse:collapse;width:100%;font-size:12px}.sk-table-wrap.svelte-hpbata th,.sk-table-wrap.svelte-hpbata td{border:1px solid var(--line);text-align:left;padding:5px 8px}.sk-table-wrap.svelte-hpbata th{background:var(--panel-soft);font-weight:600}.sk-bloc-actions.svelte-hpbata{flex-shrink:0;gap:4px;display:none}.sk-notes.edit-mode.svelte-hpbata .sk-bloc-actions:where(.svelte-hpbata){display:flex}.sk-note-foot.svelte-hpbata{margin-top:8px;display:none}.sk-notes.edit-mode.svelte-hpbata .sk-note-foot:where(.svelte-hpbata){display:block}.sk-add-bloc.svelte-hpbata{border:1px dashed var(--line-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:5px 11px;font-family:inherit;font-size:11px}.sk-add-bloc.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-mini.svelte-hpbata{border:1px solid var(--line);background:var(--panel);cursor:pointer;width:22px;height:22px;color:var(--muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.sk-mini.svelte-hpbata:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-mini--del.svelte-hpbata:hover{border-color:var(--red);color:var(--red)}.sk-empty.svelte-hpbata{color:var(--muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.sk-toolbar.svelte-1j811iq{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.sk-tool.svelte-1j811iq{border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);cursor:pointer;border-radius:8px;padding:5px 11px;font-family:inherit;font-size:11px}.sk-tool.svelte-1j811iq:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-tool--add.svelte-1j811iq{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.sk-cats.svelte-1j811iq{flex-direction:column;gap:12px;display:flex}.sk-cat.svelte-1j811iq{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.sk-cat-head.svelte-1j811iq{background:var(--sk-theme-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 14px;display:flex}.sk-cat.collapsed.svelte-1j811iq .sk-cat-head:where(.svelte-1j811iq){border-bottom:none}.sk-cat-head.svelte-1j811iq h3:where(.svelte-1j811iq){color:var(--sk-theme-ink);flex:1;margin:0;font-size:13px;font-weight:600}.sk-cat-actions.svelte-1j811iq{gap:4px;display:none}.sk-cats.edit-mode.svelte-1j811iq .sk-cat-actions:where(.svelte-1j811iq){display:flex}.sk-toggle.svelte-1j811iq{color:var(--muted);cursor:pointer;background:0 0;border:none;transition:transform .15s;display:flex}.sk-cat.svelte-1j811iq:not(.collapsed) .sk-toggle:where(.svelte-1j811iq){transform:rotate(180deg)}.sk-links.svelte-1j811iq{flex-direction:column;display:flex}.sk-cat.collapsed.svelte-1j811iq .sk-links:where(.svelte-1j811iq){display:none}.sk-link.svelte-1j811iq{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:8px;padding:9px 14px;text-decoration:none;display:flex}.sk-link.svelte-1j811iq:last-child{border-bottom:none}.sk-link.svelte-1j811iq:hover{background:var(--panel-soft)}.sk-link-text.svelte-1j811iq{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.sk-link-name.svelte-1j811iq{font-weight:500}.sk-link-desc.svelte-1j811iq{color:var(--muted)}.sk-arrow.svelte-1j811iq{color:var(--muted);flex-shrink:0;font-size:12px}.sk-link-actions.svelte-1j811iq{flex-shrink:0;gap:4px;display:none}.sk-cats.edit-mode.svelte-1j811iq .sk-link-actions:where(.svelte-1j811iq){display:flex}.sk-mini.svelte-1j811iq{border:1px solid var(--line);background:var(--panel);cursor:pointer;width:22px;height:22px;color:var(--muted);border-radius:6px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.sk-mini.svelte-1j811iq:hover{border-color:var(--accent);color:var(--accent-strong)}.sk-mini--del.svelte-1j811iq:hover{border-color:var(--red);color:var(--red)}.sk-empty.svelte-1j811iq{color:var(--muted);text-align:center;padding:24px 0;font-size:13px;font-style:italic}.sk-loading.svelte-ha6eja{text-align:center;color:var(--muted);padding:48px 0;font-size:14px}.sk-root.svelte-ha6eja{background:var(--bg);grid-template-rows:minmax(0,1fr)}.sk-menu-trigger.svelte-ha6eja{z-index:90;height:10px;position:fixed;top:0;left:0;right:0}.sk-menu-drawer.svelte-ha6eja{z-index:100;box-shadow:var(--shadow);transition:transform .28s;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.sk-menu-drawer.revealed.svelte-ha6eja{transform:translateY(0)}.sk-menu-drawer.svelte-ha6eja .topbar{height:72px}.sk-filters button,.sk-tool,.sk-add-bloc,.sk-copy,.sk-task-tag{text-transform:uppercase;letter-spacing:.06em}.sk-grid.svelte-ha6eja{height:100%;min-height:0;display:flex}.sk-col.svelte-ha6eja{border-right:1px solid var(--line);flex:1 1 0;min-width:0;padding:28px 36px 80px;overflow-y:auto}.sk-col.svelte-ha6eja:last-child{border-right:none}.sk-inner.svelte-ha6eja{max-width:520px;margin:0 auto}@media (width<=1024px){.sk-grid.svelte-ha6eja{flex-direction:column;gap:16px;height:100%;padding:20px;overflow-y:auto}.sk-col.svelte-ha6eja{border:1px solid var(--line);border-right:1px solid var(--line);background:var(--panel);border-radius:16px;flex:none;width:100%;max-width:720px;margin:0 auto;padding:24px;overflow:visible}}.sk-panel-head{margin-bottom:36px}.sk-panel-title{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:2.2rem;font-weight:700;line-height:1}.sk-accent{color:#f97316}.sk-panel-sub{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:8px 0 0;font-family:Cascadia Code,SF Mono,Consolas,monospace;font-size:.7rem}.sk-note-head h3,.sk-cat-head h3{letter-spacing:.1em;text-transform:uppercase;font-family:Cascadia Code,SF Mono,Consolas,monospace;font-size:.72rem}.t-green{--sk-theme-soft:#dcfce7;--sk-theme-ink:#047857}.t-violet{--sk-theme-soft:#ede9fe;--sk-theme-ink:#6d28d9}.t-amber{--sk-theme-soft:#fef3c7;--sk-theme-ink:#b45309}.t-sky{--sk-theme-soft:#e0f2fe;--sk-theme-ink:#0369a1}.t-rose{--sk-theme-soft:#ffe4e6;--sk-theme-ink:#be123c}.t-teal{--sk-theme-soft:#ccfbf1;--sk-theme-ink:#0f766e}.dark .t-green{--sk-theme-soft:#0478572e;--sk-theme-ink:#6ee7b7}.dark .t-violet{--sk-theme-soft:#6d28d938;--sk-theme-ink:#c4b5fd}.dark .t-amber{--sk-theme-soft:#b4530933;--sk-theme-ink:#fcd34d}.dark .t-sky{--sk-theme-soft:#0369a138;--sk-theme-ink:#7dd3fc}.dark .t-rose{--sk-theme-soft:#be123c33;--sk-theme-ink:#fda4af}.dark .t-teal{--sk-theme-soft:#0f766e38;--sk-theme-ink:#5eead4}html.dark .sk-root.svelte-ha6eja{--bg:#0f172a;--ink:#f1f5f9;--muted:#94a3b8;--line:#ffffff1a;--line-strong:#ffffff2e;--panel:#1e293b;--panel-soft:#ffffff0d;--accent:#60a5fa;--accent-strong:#93c5fd;--accent-soft:#60a5fa29;--green:#34d399;--red:#f87171;--shadow:0 18px 60px #00000080;color:var(--ink)}