var Ws=Object.defineProperty;var si=e=>{throw TypeError(e)};var Zs=(e,t,n)=>t in e?Ws(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var gt=(e,t,n)=>Zs(e,typeof t!="symbol"?t+"":t,n),va=(e,t,n)=>t.has(e)||si("Cannot "+n);var f=(e,t,n)=>(va(e,t,"read from private field"),n?n.call(e):t.get(e)),q=(e,t,n)=>t.has(e)?si("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),G=(e,t,n,r)=>(va(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),J=(e,t,n)=>(va(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const c of o.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var Ei,Ai;const oi=(Ai=(Ei=globalThis.process)==null?void 0:Ei.env)==null?void 0:Ai.NODE_ENV,C=oi&&!oi.toLowerCase().startsWith("prod");var Ka=Array.isArray,Ys=Array.prototype.indexOf,pn=Array.prototype.includes,oa=Array.from,Mn=Object.defineProperty,Yn=Object.getOwnPropertyDescriptor,Qs=Object.getOwnPropertyDescriptors,Js=Object.prototype,Xs=Array.prototype,Ri=Object.getPrototypeOf,li=Object.isExtensible;const Tn=()=>{};function zi(e){for(var t=0;t<e.length;t++)e[t]()}function Ii(){var e,t,n=new Promise((r,i)=>{e=r,t=i});return{promise:n,resolve:e,reject:t}}const et=2,Sr=4,la=8,Oi=1<<24,Nt=16,Kt=32,gn=64,ka=128,Et=512,Ke=1024,We=2048,Yt=4096,dt=8192,Gt=16384,lr=32768,ci=1<<25,rr=65536,Cr=1<<17,$s=1<<18,cr=1<<19,eo=1<<20,Zt=1<<25,hn=65536,Er=1<<21,Rn=1<<22,fn=1<<23,yr=Symbol("$state"),to=Symbol(""),Fi=Symbol("proxy path"),Hr=Symbol("attributes"),Pa=Symbol("class"),Sa=Symbol("style"),mr=Symbol("text"),no=Symbol("hmr anchor"),ca=new class extends Error{constructor(){super(...arguments);gt(this,"name","StaleReactionError");gt(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var ji;const ro=!!((ji=globalThis.document)!=null&&ji.contentType)&&globalThis.document.contentType.includes("xml");function ao(e){if(C){const t=new Error(`invariant_violation
An invariant violation occurred, meaning Svelte's internal assumptions were flawed. This is a bug in Svelte, not your app — please open an issue at https://github.com/sveltejs/svelte, citing the following message: "${e}"
https://svelte.dev/e/invariant_violation`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/invariant_violation")}function io(){if(C){const e=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/async_derived_orphan")}function so(){if(C){const e=new Error(`derived_references_self
A derived value cannot reference itself recursively
https://svelte.dev/e/derived_references_self`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/derived_references_self")}function Mi(e,t,n){if(C){const r=new Error(`each_key_duplicate
${n?`Keyed each block has duplicate key \`${n}\` at indexes ${e} and ${t}`:`Keyed each block has duplicate key at indexes ${e} and ${t}`}
https://svelte.dev/e/each_key_duplicate`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/each_key_duplicate")}function oo(e,t,n){if(C){const r=new Error(`each_key_volatile
Keyed each block has key that is not idempotent — the key for item at index ${e} was \`${t}\` but is now \`${n}\`. Keys must be the same each time for a given item
https://svelte.dev/e/each_key_volatile`);throw r.name="Svelte error",r}else throw new Error("https://svelte.dev/e/each_key_volatile")}function lo(e){if(C){const t=new Error(`effect_in_teardown
\`${e}\` cannot be used inside an effect cleanup function
https://svelte.dev/e/effect_in_teardown`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_in_teardown")}function co(){if(C){const e=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function uo(e){if(C){const t=new Error(`effect_orphan
\`${e}\` can only be used inside an effect (e.g. during component initialisation)
https://svelte.dev/e/effect_orphan`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_orphan")}function po(){if(C){const e=new Error(`effect_update_depth_exceeded
Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state
https://svelte.dev/e/effect_update_depth_exceeded`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function fo(e){if(C){const t=new Error(`rune_outside_svelte
The \`${e}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files
https://svelte.dev/e/rune_outside_svelte`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/rune_outside_svelte")}function vo(){if(C){const e=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function go(){if(C){const e=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ho(){if(C){const e=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function mo(){if(C){const e=new Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const bo=1,_o=2,Ni=4,xo=8,yo=16,wo=1,ko=2,qe=Symbol("uninitialized"),Po=Symbol("filename"),Gi="http://www.w3.org/1999/xhtml";var Or="font-weight: bold",Fr="font-weight: normal";function So(e){C?console.warn(`%c[svelte] await_reactivity_loss
%cDetected reactivity loss when reading \`${e}\`. This happens when state is read in an async function after an earlier \`await\`
https://svelte.dev/e/await_reactivity_loss`,Or,Fr):console.warn("https://svelte.dev/e/await_reactivity_loss")}function Co(){C?console.warn(`%c[svelte] derived_inert
%cReading a derived belonging to a now-destroyed effect may result in stale values
https://svelte.dev/e/derived_inert`,Or,Fr):console.warn("https://svelte.dev/e/derived_inert")}function Eo(){C?console.warn("%c[svelte] select_multiple_invalid_value\n%cThe `value` property of a `<select multiple>` element should be an array, but it received a non-array value. The selection will be kept as is.\nhttps://svelte.dev/e/select_multiple_invalid_value",Or,Fr):console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ga(e){C?console.warn(`%c[svelte] state_proxy_equality_mismatch
%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${e}\` will produce unexpected results
https://svelte.dev/e/state_proxy_equality_mismatch`,Or,Fr):console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Ao(){C?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",Or,Fr):console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function qi(e){return e===this.v}function Ki(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Bi(e){return!Ki(e,this.v)}let jo=!1;function zt(e,t){return e.label=t,Li(e.v,t),e}function Li(e,t){var n;return(n=e==null?void 0:e[Fi])==null||n.call(e,t),e}function Hi(e){const t=new Error,n=Do();return n.length===0?null:(n.unshift(`
`),Mn(t,"stack",{value:n.join(`
`)}),Mn(t,"name",{value:e}),t)}function Do(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
`),r=[];for(let i=0;i<n.length;i++){const o=n[i],c=o.replaceAll("\\","/");if(o.trim()!=="Error"){if(o.includes("validate_each_keys"))return[];c.includes("svelte/src/internal")||c.includes("node_modules/.vite")||r.push(o)}}return r}function To(e,t){if(!C)throw new Error("invariant(...) was not guarded by if (DEV)");e||ao(t)}let Ue=null;function ar(e){Ue=e}let Ar=null;function Qr(e){Ar=e}let Mr=null;function di(e){Mr=e}function Qt(e,t=!1,n){Ue={p:Ue,i:!1,c:null,e:null,s:e,x:null,r:W,l:null},C&&(Ue.function=n,Mr=n)}function Jt(e){var t=Ue,n=t.e;if(n!==null){t.e=null;for(var r of n)fs(r)}return t.i=!0,Ue=t.p,C&&(Mr=(Ue==null?void 0:Ue.function)??null),{}}function Vi(){return!0}let Wn=[];function Ro(){var e=Wn;Wn=[],zi(e)}function zn(e){if(Wn.length===0){var t=Wn;queueMicrotask(()=>{t===Wn&&Ro()})}Wn.push(e)}const Ca=new WeakMap;function Ui(e){var t=W;if(t===null)return H.f|=fn,e;if(C&&e instanceof Error&&!Ca.has(e)&&Ca.set(e,zo(e,t)),(t.f&lr)===0&&(t.f&Sr)===0)throw C&&!t.parent&&e instanceof Error&&Wi(e),e;un(e,t)}function un(e,t){for(;t!==null;){if((t.f&ka)!==0){if((t.f&lr)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw C&&e instanceof Error&&Wi(e),e}function zo(e,t){var c,p,d;const n=Yn(e,"message");if(!(n&&!n.configurable)){for(var r=Za?"  ":"	",i=`
${r}in ${((c=t.fn)==null?void 0:c.name)||"<unknown>"}`,o=t.ctx;o!==null;)i+=`
${r}in ${(p=o.function)==null?void 0:p[Po].split("/").pop()}`,o=o.p;return{message:e.message+`
${i}
`,stack:(d=e.stack)==null?void 0:d.split(`
`).filter(m=>!m.includes("svelte/src/internal")).join(`
`)}}}function Wi(e){const t=Ca.get(e);t&&(Mn(e,"message",{value:t.message}),Mn(e,"stack",{value:t.stack}))}const Io=-7169;function Ee(e,t){e.f=e.f&Io|t}function Ba(e){(e.f&Et)!==0||e.deps===null?Ee(e,Ke):Ee(e,Yt)}function Zi(e){if(e!==null)for(const t of e)(t.f&et)===0||(t.f&hn)===0||(t.f^=hn,Zi(t.deps))}function Yi(e,t,n){(e.f&We)!==0?t.add(e):(e.f&Yt)!==0&&n.add(e),Zi(e.deps),Ee(e,Ke)}function Qi(e,t,n){if(e==null)return t(void 0),n&&n(void 0),Tn;const r=Ps(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const Hn=[];function Oo(e,t){return{subscribe:da(e,t).subscribe}}function da(e,t=Tn){let n=null;const r=new Set;function i(p){if(Ki(e,p)&&(e=p,n)){const d=!Hn.length;for(const m of r)m[1](),Hn.push(m,e);if(d){for(let m=0;m<Hn.length;m+=2)Hn[m][0](Hn[m+1]);Hn.length=0}}}function o(p){i(p(e))}function c(p,d=Tn){const m=[p,d];return r.add(m),r.size===1&&(n=t(i,o)||Tn),p(e),()=>{r.delete(m),r.size===0&&n&&(n(),n=null)}}return{set:i,update:o,subscribe:c}}function Fo(e,t,n){const r=!Array.isArray(e),i=r?[e]:e;if(!i.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const o=t.length<2;return Oo(n,(c,p)=>{let d=!1;const m=[];let b=0,g=Tn;const v=()=>{if(b)return;g();const y=t(r?m[0]:m,c,p);o?c(y):g=typeof y=="function"?y:Tn},w=i.map((y,k)=>Qi(y,h=>{m[k]=h,b&=~(1<<k),d&&v()},()=>{b|=1<<k}));return d=!0,v(),function(){zi(w),g(),d=!1}})}function ui(e){let t;return Qi(e,n=>t=n)(),t}let ha=null,Vn=null,F=null,wr=null,$e=null,Ea=null,ma=!1,Zn=null,Vr=null;var pi=0,ba=new Set;let Mo=1;var Qn,ln,Cn,Jn,Xn,En,$n,tn,er,lt,Dr,nn,It,Vt,tr,cn,le,Aa,br,ja,Ji,Xi,Un,No,_r;const aa=class aa{constructor(){q(this,le);gt(this,"id",Mo++);q(this,Qn,!1);gt(this,"linked",!0);q(this,ln,null);q(this,Cn,null);gt(this,"async_deriveds",new Map);gt(this,"current",new Map);gt(this,"previous",new Map);q(this,Jn,new Set);q(this,Xn,new Set);q(this,En,new Set);q(this,$n,0);q(this,tn,new Map);q(this,er,null);q(this,lt,[]);q(this,Dr,[]);q(this,nn,new Set);q(this,It,new Set);q(this,Vt,new Map);q(this,tr,new Set);gt(this,"is_fork",!1);q(this,cn,!1);Vn===null?ha=Vn=this:(G(Vn,Cn,this),G(this,ln,Vn)),Vn=this}skip_effect(t){f(this,Vt).has(t)||f(this,Vt).set(t,{d:[],m:[]}),f(this,tr).delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=f(this,Vt).get(t);if(r){f(this,Vt).delete(t);for(var i of r.d)Ee(i,We),n(i);for(i of r.m)Ee(i,Yt),n(i)}f(this,tr).add(t)}capture(t,n,r=!1){t.v!==qe&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&fn)===0&&(this.current.set(t,[n,r]),$e==null||$e.set(t,n)),this.is_fork||(t.v=n)}activate(){F=this}deactivate(){F=null,$e=null}flush(){try{C&&ba.clear(),ma=!0,F=this,J(this,le,br).call(this)}finally{if(pi=0,Ea=null,Zn=null,Vr=null,ma=!1,F=null,$e=null,In.clear(),C)for(const t of ba)t.updated=null}}discard(){var t;for(const n of f(this,Xn))n(this);f(this,Xn).clear(),f(this,En).clear(),J(this,le,_r).call(this),(t=f(this,er))==null||t.resolve()}register_created_effect(t){f(this,Dr).push(t)}increment(t,n){if(G(this,$n,f(this,$n)+1),t){let r=f(this,tn).get(n)??0;f(this,tn).set(n,r+1)}}decrement(t,n){if(G(this,$n,f(this,$n)-1),t){let r=f(this,tn).get(n)??0;r===1?f(this,tn).delete(n):f(this,tn).set(n,r-1)}f(this,cn)||(G(this,cn,!0),zn(()=>{G(this,cn,!1),this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)f(this,nn).add(r);for(const r of n)f(this,It).add(r);t.clear(),n.clear()}oncommit(t){f(this,Jn).add(t)}ondiscard(t){f(this,Xn).add(t)}on_fork_commit(t){f(this,En).add(t)}run_fork_commit_callbacks(){for(const t of f(this,En))t(this);f(this,En).clear()}settled(){return(f(this,er)??G(this,er,Ii())).promise}static ensure(){if(F===null){const t=F=new aa;ma||zn(()=>{f(t,Qn)||t.flush()})}return F}apply(){{$e=null;return}}schedule(t){var i;if(Ea=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Sr|la|Oi))!==0&&(t.f&lr)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Zn!==null&&n===W&&(H===null||(H.f&et)===0))return;if((r&(gn|Kt))!==0){if((r&Ke)===0)return;n.f^=Ke}}f(this,lt).push(n)}};Qn=new WeakMap,ln=new WeakMap,Cn=new WeakMap,Jn=new WeakMap,Xn=new WeakMap,En=new WeakMap,$n=new WeakMap,tn=new WeakMap,er=new WeakMap,lt=new WeakMap,Dr=new WeakMap,nn=new WeakMap,It=new WeakMap,Vt=new WeakMap,tr=new WeakMap,cn=new WeakMap,le=new WeakSet,Aa=function(){if(this.is_fork)return!0;for(const r of f(this,tn).keys()){for(var t=r,n=!1;t.parent!==null;){if(f(this,Vt).has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1},br=function(){var d,m,b,g;if(G(this,Qn,!0),pi++>1e3&&(J(this,le,_r).call(this),Go()),C)for(const v of this.current.keys())ba.add(v);for(const v of f(this,nn))f(this,It).delete(v),Ee(v,We),this.schedule(v);for(const v of f(this,It))Ee(v,Yt),this.schedule(v);const t=f(this,lt);G(this,lt,[]),this.apply();var n=Zn=[],r=[],i=Vr=[];for(const v of t)try{J(this,le,ja).call(this,v,n,r)}catch(w){throw ts(v),J(this,le,Aa).call(this)||this.discard(),w}if(F=null,i.length>0){var o=aa.ensure();for(const v of i)o.schedule(v)}if(Zn=null,Vr=null,J(this,le,Aa).call(this)){J(this,le,Un).call(this,r),J(this,le,Un).call(this,n);for(const[v,w]of f(this,Vt))es(v,w);i.length>0&&J(d=F,le,br).call(d);return}const c=J(this,le,Ji).call(this);if(c){J(this,le,Un).call(this,r),J(this,le,Un).call(this,n),J(m=c,le,Xi).call(m,this);return}f(this,nn).clear(),f(this,It).clear();for(const v of f(this,Jn))v(this);f(this,Jn).clear(),wr=this,fi(r),fi(n),wr=null,(b=f(this,er))==null||b.resolve();var p=F;if(f(this,$n)===0&&(f(this,lt).length===0||p!==null)&&J(this,le,_r).call(this),f(this,lt).length>0)if(p!==null){const v=p;f(v,lt).push(...f(this,lt).filter(w=>!f(v,lt).includes(w)))}else p=this;p!==null&&J(g=p,le,br).call(g)},ja=function(t,n,r){t.f^=Ke;for(var i=t.first;i!==null;){var o=i.f,c=(o&(Kt|gn))!==0,p=c&&(o&Ke)!==0,d=p||(o&dt)!==0||f(this,Vt).has(i);if(!d&&i.fn!==null){c?i.f^=Ke:(o&Sr)!==0?n.push(i):Gr(i)&&((o&Nt)!==0&&f(this,It).add(i),or(i));var m=i.first;if(m!==null){i=m;continue}}for(;i!==null;){var b=i.next;if(b!==null){i=b;break}i=i.parent}}},Ji=function(){for(var t=f(this,ln);t!==null;){if(!t.is_fork){for(const[n,[,r]]of this.current)if(t.current.has(n)&&!r)return t}t=f(t,ln)}return null},Xi=function(t){var r;for(const[i,o]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,o);for(const[i,o]of t.async_deriveds){const c=this.async_deriveds.get(i);c&&o.promise.then(c.resolve).catch(c.reject)}this.transfer_effects(f(t,nn),f(t,It));const n=i=>{var o=i.reactions;if(o!==null)for(const d of o){var c=d.f;if((c&et)!==0)n(d);else{var p=d;c&(Rn|Nt)&&!this.async_deriveds.has(p)&&(f(this,It).delete(p),Ee(p,We),this.schedule(p))}}};for(const i of this.current.keys())n(i);this.oncommit(()=>t.discard()),J(r=t,le,_r).call(r),F=this,J(this,le,br).call(this)},Un=function(t){for(var n=0;n<t.length;n+=1)Yi(t[n],f(this,nn),f(this,It))},No=function(){var b;for(let g=ha;g!==null;g=f(g,Cn)){var t=g.id<this.id,n=[];for(const[v,[w,y]]of this.current){if(g.current.has(v)){var r=g.current.get(v)[0];if(t&&w!==r)g.current.set(v,[w,y]);else continue}n.push(v)}if(t)for(const[v,w]of this.async_deriveds){const y=g.async_deriveds.get(v);y&&w.promise.then(y.resolve).catch(y.reject)}if(f(g,Qn)){var i=[...g.current.keys()].filter(v=>!g.current.get(v)[1]&&!this.current.has(v));if(i.length===0)t&&g.discard();else if(n.length>0){if(C&&!f(g,cn)&&To(f(g,lt).length===0,"Batch has scheduled roots"),t)for(const v of f(this,tr))g.unskip_effect(v,w=>{var y;(w.f&(Nt|Rn))!==0?g.schedule(w):J(y=g,le,Un).call(y,[w])});g.activate();var o=new Set,c=new Map;for(var p of n)$i(p,i,o,c);c=new Map;var d=[...g.current].filter(([v,w])=>{const y=this.current.get(v);return y?y[0]!==w[0]||y[1]!==w[1]:!0}).map(([v])=>v);if(d.length>0)for(const v of f(this,Dr))(v.f&(Gt|dt|Cr))===0&&La(v,d,c)&&((v.f&(Rn|Nt))!==0?(Ee(v,We),g.schedule(v)):f(g,nn).add(v));if(f(g,lt).length>0&&!f(g,cn)){g.apply();for(var m of f(g,lt))J(b=g,le,ja).call(b,m,[],[]);G(g,lt,[])}g.deactivate()}}}},_r=function(){if(this.linked){var t=f(this,ln),n=f(this,Cn);t===null?ha=n:G(t,Cn,n),n===null?Vn=t:G(n,ln,t),this.linked=!1}};let Nn=aa;function Go(){if(C){var e=new Map;for(const n of F.current.keys())for(const[r,i]of n.updated??[]){var t=e.get(r);t||(t={error:i.error,count:0},e.set(r,t)),t.count+=i.count}for(const n of e.values())n.error&&console.error(n.error)}try{po()}catch(n){C&&Mn(n,"stack",{value:""}),un(n,Ea)}}let Rt=null;function fi(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(Gt|dt))===0&&Gr(r)&&(Rt=new Set,or(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&gs(r),(Rt==null?void 0:Rt.size)>0)){In.clear();for(const i of Rt){if((i.f&(Gt|dt))!==0)continue;const o=[i];let c=i.parent;for(;c!==null;)Rt.has(c)&&(Rt.delete(c),o.push(c)),c=c.parent;for(let p=o.length-1;p>=0;p--){const d=o[p];(d.f&(Gt|dt))===0&&or(d)}}Rt.clear()}}Rt=null}}function $i(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const i of e.reactions){const o=i.f;(o&et)!==0?$i(i,t,n,r):(o&(Rn|Nt))!==0&&(o&We)===0&&La(i,t,r)&&(Ee(i,We),Ha(i))}}function La(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(pn.call(t,i))return!0;if((i.f&et)!==0&&La(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Ha(e){F.schedule(e)}function es(e,t){if(!((e.f&Kt)!==0&&(e.f&Ke)!==0)){(e.f&We)!==0?t.d.push(e):(e.f&Yt)!==0&&t.m.push(e),Ee(e,Ke);for(var n=e.first;n!==null;)es(n,t),n=n.next}}function ts(e){Ee(e,Ke);for(var t=e.first;t!==null;)ts(t),t=t.next}function qo(e){let t=0,n=Gn(0),r;return C&&zt(n,"createSubscriber version"),()=>{Ya()&&(s(n),fl(()=>(t===0&&(r=Ps(()=>e(()=>kr(n)))),t+=1,()=>{zn(()=>{t-=1,t===0&&(r==null||r(),r=void 0,kr(n))})})))}}var Ko=rr|cr;function Bo(e,t,n,r){new Lo(e,t,n,r)}var yt,qa,wt,An,pt,kt,ct,ht,rn,jn,dn,nr,Tr,Rr,Ut,ia,Ae,Ho,Vo,Uo,Da,Ur,Wr,Ta,Ra;class Lo{constructor(t,n,r,i){q(this,Ae);gt(this,"parent");gt(this,"is_pending",!1);gt(this,"transform_error");q(this,yt);q(this,qa,null);q(this,wt);q(this,An);q(this,pt);q(this,kt,null);q(this,ct,null);q(this,ht,null);q(this,rn,null);q(this,jn,0);q(this,dn,0);q(this,nr,!1);q(this,Tr,new Set);q(this,Rr,new Set);q(this,Ut,null);q(this,ia,qo(()=>(G(this,Ut,Gn(f(this,jn))),C&&zt(f(this,Ut),"$effect.pending()"),()=>{G(this,Ut,null)})));var o;G(this,yt,t),G(this,wt,n),G(this,An,c=>{var p=W;p.b=this,p.f|=ka,r(c)}),this.parent=W.b,this.transform_error=i??((o=this.parent)==null?void 0:o.transform_error)??(c=>c),G(this,pt,Qa(()=>{J(this,Ae,Da).call(this)},Ko))}defer_effect(t){Yi(t,f(this,Tr),f(this,Rr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!f(this,wt).pending}update_pending_count(t,n){J(this,Ae,Ta).call(this,t,n),G(this,jn,f(this,jn)+t),!(!f(this,Ut)||f(this,nr))&&(G(this,nr,!0),zn(()=>{G(this,nr,!1),f(this,Ut)&&sr(f(this,Ut),f(this,jn))}))}get_effect_pending(){return f(this,ia).call(this),s(f(this,Ut))}error(t){if(!f(this,wt).onerror&&!f(this,wt).failed)throw t;F!=null&&F.is_fork?(f(this,kt)&&F.skip_effect(f(this,kt)),f(this,ct)&&F.skip_effect(f(this,ct)),f(this,ht)&&F.skip_effect(f(this,ht)),F.on_fork_commit(()=>{J(this,Ae,Ra).call(this,t)})):J(this,Ae,Ra).call(this,t)}}yt=new WeakMap,qa=new WeakMap,wt=new WeakMap,An=new WeakMap,pt=new WeakMap,kt=new WeakMap,ct=new WeakMap,ht=new WeakMap,rn=new WeakMap,jn=new WeakMap,dn=new WeakMap,nr=new WeakMap,Tr=new WeakMap,Rr=new WeakMap,Ut=new WeakMap,ia=new WeakMap,Ae=new WeakSet,Ho=function(){try{G(this,kt,Pt(()=>f(this,An).call(this,f(this,yt))))}catch(t){this.error(t)}},Vo=function(t){const n=f(this,wt).failed;n&&G(this,ht,Pt(()=>{n(f(this,yt),()=>t,()=>()=>{})}))},Uo=function(){const t=f(this,wt).pending;t&&(this.is_pending=!0,G(this,ct,Pt(()=>t(f(this,yt)))),zn(()=>{var n=G(this,rn,document.createDocumentFragment()),r=vn();n.append(r),G(this,kt,J(this,Ae,Wr).call(this,()=>Pt(()=>f(this,An).call(this,r)))),f(this,dn)===0&&(f(this,yt).before(n),G(this,rn,null),On(f(this,ct),()=>{G(this,ct,null)}),J(this,Ae,Ur).call(this,F))}))},Da=function(){try{if(this.is_pending=this.has_pending_snippet(),G(this,dn,0),G(this,jn,0),G(this,kt,Pt(()=>{f(this,An).call(this,f(this,yt))})),f(this,dn)>0){var t=G(this,rn,document.createDocumentFragment());Xa(f(this,kt),t);const n=f(this,wt).pending;G(this,ct,Pt(()=>n(f(this,yt))))}else J(this,Ae,Ur).call(this,F)}catch(n){this.error(n)}},Ur=function(t){this.is_pending=!1,t.transfer_effects(f(this,Tr),f(this,Rr))},Wr=function(t){var n=W,r=H,i=Ue;qt(f(this,pt)),jt(f(this,pt)),ar(f(this,pt).ctx);try{return Nn.ensure(),t()}catch(o){return Ui(o),null}finally{qt(n),jt(r),ar(i)}},Ta=function(t,n){var r;if(!this.has_pending_snippet()){this.parent&&J(r=this.parent,Ae,Ta).call(r,t,n);return}G(this,dn,f(this,dn)+t),f(this,dn)===0&&(J(this,Ae,Ur).call(this,n),f(this,ct)&&On(f(this,ct),()=>{G(this,ct,null)}),f(this,rn)&&(f(this,yt).before(f(this,rn)),G(this,rn,null)))},Ra=function(t){f(this,kt)&&(ft(f(this,kt)),G(this,kt,null)),f(this,ct)&&(ft(f(this,ct)),G(this,ct,null)),f(this,ht)&&(ft(f(this,ht)),G(this,ht,null));var n=f(this,wt).onerror;let r=f(this,wt).failed;var i=!1,o=!1;const c=()=>{if(i){Ao();return}i=!0,o&&mo(),f(this,ht)!==null&&On(f(this,ht),()=>{G(this,ht,null)}),J(this,Ae,Wr).call(this,()=>{J(this,Ae,Da).call(this)})},p=d=>{try{o=!0,n==null||n(d,c),o=!1}catch(m){un(m,f(this,pt)&&f(this,pt).parent)}r&&G(this,ht,J(this,Ae,Wr).call(this,()=>{try{return Pt(()=>{var m=W;m.b=this,m.f|=ka,r(f(this,yt),()=>d,()=>c)})}catch(m){return un(m,f(this,pt).parent),null}}))};zn(()=>{var d;try{d=this.transform_error(t)}catch(m){un(m,f(this,pt)&&f(this,pt).parent);return}d!==null&&typeof d=="object"&&typeof d.then=="function"?d.then(p,m=>un(m,f(this,pt)&&f(this,pt).parent)):p(d)})};function Wo(e,t,n,r){const i=Va;var o=e.filter(v=>!v.settled);if(n.length===0&&o.length===0){r(t.map(i));return}var c=W,p=Zo(),d=o.length===1?o[0].promise:o.length>1?Promise.all(o.map(v=>v.promise)):null;function m(v){if((c.f&Gt)===0){p();try{r(v)}catch(w){un(w,c)}Jr()}}var b=ns();if(n.length===0){d.then(()=>m(t.map(i))).finally(b);return}function g(){Promise.all(n.map(v=>Qo(v))).then(v=>m([...t.map(i),...v])).catch(v=>un(v,c)).finally(b)}d?d.then(()=>{p(),g(),Jr()}):g()}function Zo(){var e=W,t=H,n=Ue,r=F;if(C)var i=Ar;return function(c=!0){qt(e),jt(t),ar(n),c&&(e.f&Gt)===0&&(r==null||r.activate(),r==null||r.apply()),C&&(rs(null),Qr(i))}}function Jr(e=!0){qt(null),jt(null),ar(null),e&&(F==null||F.deactivate()),C&&(rs(null),Qr(null))}function ns(){var e=W,t=e.b,n=F,r=!!(t!=null&&t.is_rendered());return t==null||t.update_pending_count(1,n),n.increment(r,e),()=>{t==null||t.update_pending_count(-1,n),n.decrement(r,e)}}let St=null;function rs(e){St=e}const Yo=new Set;function Va(e){var t=et|We;return W!==null&&(W.f|=cr),{ctx:Ue,deps:null,effects:null,equals:qi,f:t,fn:e,reactions:null,rv:0,v:qe,wv:0,parent:W,ac:null}}const Kr=Symbol("obsolete");function Qo(e,t,n){let r=W;r===null&&io();var i=void 0,o=Gn(qe);C&&(o.label=e.toString());var c=!H,p=new Set;return pl(()=>{var w,y;var d=W;C&&(St={effect:d,effect_deps:new Set,warned:!1});var m=Ii();i=m.promise;try{Promise.resolve(e()).then(m.resolve,k=>{k!==ca&&m.reject(k)}).finally(Jr)}catch(k){m.reject(k),Jr()}if(C){if(St){if(d.deps!==null)for(let k=0;k<ut;k+=1)St.effect_deps.add(d.deps[k]);if(Xe!==null)for(let k=0;k<Xe.length;k+=1)St.effect_deps.add(Xe[k])}St=null}var b=F;if(c){if((d.f&lr)!==0)var g=ns();if((w=r.b)!=null&&w.is_rendered())(y=b.async_deriveds.get(d))==null||y.reject(Kr);else for(const k of p.values())k.reject(Kr);p.add(m),b.async_deriveds.set(d,m)}const v=(k,h=void 0)=>{C&&(St=null),g==null||g(),p.delete(m),h!==Kr&&(b.activate(),h?(o.f|=fn,sr(o,h)):((o.f&fn)!==0&&(o.f^=fn),sr(o,k)),b.deactivate())};m.promise.then(v,k=>v(null,k||"unknown"))}),ps(()=>{for(const d of p)d.reject(Kr)}),C&&(o.f|=Rn),new Promise(d=>{function m(b){function g(){b===i?d(o):m(i)}b.then(g,g)}m(i)})}function te(e){const t=Va(e);return bs(t),t}function Jo(e){const t=Va(e);return t.equals=Bi,t}function vi(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)ft(t[n])}}let _a=[];function Ua(e){var t,n=W,r=e.parent;if(!mn&&r!==null&&e.v!==qe&&(r.f&(Gt|dt))!==0)return Co(),e.v;if(qt(r),C){let i=ir;gi(new Set);try{pn.call(_a,e)&&so(),_a.push(e),e.f&=~hn,vi(e),t=Ia(e)}finally{qt(n),gi(i),_a.pop()}}else try{e.f&=~hn,vi(e),t=Ia(e)}finally{qt(n)}return t}function as(e){var t=Ua(e);if(!e.equals(t)&&(e.wv=xs(),(!(F!=null&&F.is_fork)||e.deps===null)&&(F!==null?(F.capture(e,t,!0),wr==null||wr.capture(e,t,!0)):e.v=t,e.deps===null))){Ee(e,Ke);return}mn||($e!==null?(Ya()||F!=null&&F.is_fork)&&$e.set(e,t):Ba(e))}function Xo(e){var t,n;if(e.effects!==null)for(const r of e.effects)(r.teardown||r.ac)&&((t=r.teardown)==null||t.call(r),(n=r.ac)==null||n.abort(ca),r.fn!==null&&(r.teardown=Tn),r.ac=null,jr(r,0),Ja(r))}function is(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&or(t)}let ir=new Set;const In=new Map;function gi(e){ir=e}let Wa=!1;function $o(){Wa=!0}function Gn(e,t){var n={f:0,v:e,reactions:null,equals:qi,rv:0,wv:0};return n}function Ve(e,t){const n=Gn(e);return bs(n),n}function el(e,t=!1,n=!0){const r=Gn(e);return t||(r.equals=Bi),r}function ae(e,t,n=!1){H!==null&&(!Ct||(H.f&Cr)!==0)&&Vi()&&(H.f&(et|Nt|Rn|Cr))!==0&&(At===null||!pn.call(At,e))&&ho();let r=n?Ft(t):t;return C&&Li(r,e.label),sr(e,r,Vr)}function sr(e,t,n=null){var i;if(!e.equals(t)){In.set(e,mn?t:e.v);var r=Nn.ensure();if(r.capture(e,t),C){if(W!==null){e.updated??(e.updated=new Map);const o=(((i=e.updated.get(""))==null?void 0:i.count)??0)+1;if(e.updated.set("",{error:null,count:o}),o>5){const c=Hi("updated at");if(c!==null){let p=e.updated.get(c.stack);p||(p={error:c,count:0},e.updated.set(c.stack,p)),p.count++}}}W!==null&&(e.set_during_effect=!0)}if((e.f&et)!==0){const o=e;(e.f&We)!==0&&Ua(o),$e===null&&Ba(o)}e.wv=xs(),os(e,We,n),W!==null&&(W.f&Ke)!==0&&(W.f&(Kt|gn))===0&&(xt===null?hl([e]):xt.push(e)),!r.is_fork&&ir.size>0&&!Wa&&ss()}return t}function ss(){Wa=!1;for(const e of ir){(e.f&Ke)!==0&&Ee(e,Yt);let t;try{t=Gr(e)}catch{t=!0}t&&or(e)}ir.clear()}function kr(e){ae(e,e.v+1)}function os(e,t,n){var r=e.reactions;if(r!==null)for(var i=r.length,o=0;o<i;o++){var c=r[o],p=c.f,d=(p&We)===0;if(d&&Ee(c,t),(p&Cr)!==0)ir.add(c);else if((p&et)!==0){var m=c;$e==null||$e.delete(m),(p&hn)===0&&(p&Et&&(W===null||(W.f&Er)===0)&&(c.f|=hn),os(m,Yt,n))}else if(d){var b=c;(p&Nt)!==0&&Rt!==null&&Rt.add(b),n!==null?n.push(b):Ha(b)}}}const tl=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Ft(e){if(typeof e!="object"||e===null||yr in e)return e;const t=Ri(e);if(t!==Js&&t!==Xs)return e;var n=new Map,r=Ka(e),i=Ve(0),o=Fn,c=b=>{if(Fn===o)return b();var g=H,v=Fn;jt(null),bi(o);var w=b();return jt(g),bi(v),w};r&&(n.set("length",Ve(e.length)),C&&(e=al(e)));var p="";let d=!1;function m(b){if(!d){d=!0,p=b,zt(i,`${p} version`);for(const[g,v]of n)zt(v,kn(p,g));d=!1}}return new Proxy(e,{defineProperty(b,g,v){(!("value"in v)||v.configurable===!1||v.enumerable===!1||v.writable===!1)&&vo();var w=n.get(g);return w===void 0?c(()=>{var y=Ve(v.value);return n.set(g,y),C&&typeof g=="string"&&zt(y,kn(p,g)),y}):ae(w,v.value,!0),!0},deleteProperty(b,g){var v=n.get(g);if(v===void 0){if(g in b){const w=c(()=>Ve(qe));n.set(g,w),kr(i),C&&zt(w,kn(p,g))}}else ae(v,qe),kr(i);return!0},get(b,g,v){var h;if(g===yr)return e;if(C&&g===Fi)return m;var w=n.get(g),y=g in b;if(w===void 0&&(!y||(h=Yn(b,g))!=null&&h.writable)&&(w=c(()=>{var x=Ft(y?b[g]:qe),P=Ve(x);return C&&zt(P,kn(p,g)),P}),n.set(g,w)),w!==void 0){var k=s(w);return k===qe?void 0:k}return Reflect.get(b,g,v)},getOwnPropertyDescriptor(b,g){var v=Reflect.getOwnPropertyDescriptor(b,g);if(v&&"value"in v){var w=n.get(g);w&&(v.value=s(w))}else if(v===void 0){var y=n.get(g),k=y==null?void 0:y.v;if(y!==void 0&&k!==qe)return{enumerable:!0,configurable:!0,value:k,writable:!0}}return v},has(b,g){var k;if(g===yr)return!0;var v=n.get(g),w=v!==void 0&&v.v!==qe||Reflect.has(b,g);if(v!==void 0||W!==null&&(!w||(k=Yn(b,g))!=null&&k.writable)){v===void 0&&(v=c(()=>{var h=w?Ft(b[g]):qe,x=Ve(h);return C&&zt(x,kn(p,g)),x}),n.set(g,v));var y=s(v);if(y===qe)return!1}return w},set(b,g,v,w){var M;var y=n.get(g),k=g in b;if(r&&g==="length")for(var h=v;h<y.v;h+=1){var x=n.get(h+"");x!==void 0?ae(x,qe):h in b&&(x=c(()=>Ve(qe)),n.set(h+"",x),C&&zt(x,kn(p,h)))}if(y===void 0)(!k||(M=Yn(b,g))!=null&&M.writable)&&(y=c(()=>Ve(void 0)),C&&zt(y,kn(p,g)),ae(y,Ft(v)),n.set(g,y));else{k=y.v!==qe;var P=c(()=>Ft(v));ae(y,P)}var E=Reflect.getOwnPropertyDescriptor(b,g);if(E!=null&&E.set&&E.set.call(w,v),!k){if(r&&typeof g=="string"){var z=n.get("length"),R=Number(g);Number.isInteger(R)&&R>=z.v&&ae(z,R+1)}kr(i)}return!0},ownKeys(b){s(i);var g=Reflect.ownKeys(b).filter(y=>{var k=n.get(y);return k===void 0||k.v!==qe});for(var[v,w]of n)w.v!==qe&&!(v in b)&&g.push(v);return g},setPrototypeOf(){go()}})}function kn(e,t){return typeof t=="symbol"?`${e}[Symbol(${t.description??""})]`:tl.test(t)?`${e}.${t}`:/^\d+$/.test(t)?`${e}[${t}]`:`${e}['${t}']`}function Pr(e){try{if(e!==null&&typeof e=="object"&&yr in e)return e[yr]}catch{}return e}function nl(e,t){return Object.is(Pr(e),Pr(t))}const rl=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function al(e){return new Proxy(e,{get(t,n,r){var i=Reflect.get(t,n,r);return rl.has(n)?function(...o){$o();var c=i.apply(this,o);return ss(),c}:i}})}function il(){const e=Array.prototype,t=Array.__svelte_cleanup;t&&t();const{indexOf:n,lastIndexOf:r,includes:i}=e;e.indexOf=function(o,c){const p=n.call(this,o,c);if(p===-1){for(let d=c??0;d<this.length;d+=1)if(Pr(this[d])===o){ga("array.indexOf(...)");break}}return p},e.lastIndexOf=function(o,c){const p=r.call(this,o,c??this.length-1);if(p===-1){for(let d=0;d<=(c??this.length-1);d+=1)if(Pr(this[d])===o){ga("array.lastIndexOf(...)");break}}return p},e.includes=function(o,c){const p=i.call(this,o,c);if(!p){for(let d=0;d<this.length;d+=1)if(Pr(this[d])===o){ga("array.includes(...)");break}}return p},Array.__svelte_cleanup=()=>{e.indexOf=n,e.lastIndexOf=r,e.includes=i}}var hi,Za,ls,cs;function sl(){if(hi===void 0){hi=window,Za=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;ls=Yn(t,"firstChild").get,cs=Yn(t,"nextSibling").get,li(e)&&(e[Pa]=void 0,e[Hr]=null,e[Sa]=void 0,e.__e=void 0),li(n)&&(n[mr]=void 0),C&&(e.__svelte_meta=null,il())}}function vn(e=""){return document.createTextNode(e)}function Xr(e){return ls.call(e)}function Nr(e){return cs.call(e)}function a(e,t){return Xr(e)}function za(e,t=!1){{var n=Xr(e);return n instanceof Comment&&n.data===""?Nr(n):n}}function l(e,t=1,n=!1){let r=e;for(;t--;)r=Nr(r);return r}function ol(e){e.textContent=""}function ds(){return!1}function ll(e,t,n){return document.createElementNS(Gi,e,void 0)}function us(e){var t=H,n=W;jt(null),qt(null);try{return e()}finally{jt(t),qt(n)}}function cl(e){W===null&&(H===null&&uo(e),co()),mn&&lo(e)}function dl(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function bn(e,t){var n=W;if(C)for(;n!==null&&(n.f&Cr)!==0;)n=n.parent;n!==null&&(n.f&dt)!==0&&(e|=dt);var r={ctx:Ue,deps:null,nodes:null,f:e|We|Et,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};C&&(r.component_function=Mr),F==null||F.register_created_effect(r);var i=r;if((e&Sr)!==0)Zn!==null?Zn.push(r):Nn.ensure().schedule(r);else if(t!==null){try{or(r)}catch(c){throw ft(r),c}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&cr)===0&&(i=i.first,(e&Nt)!==0&&(e&rr)!==0&&i!==null&&(i.f|=rr))}if(i!==null&&(i.parent=n,n!==null&&dl(i,n),H!==null&&(H.f&et)!==0&&(e&gn)===0)){var o=H;(o.effects??(o.effects=[])).push(i)}return r}function Ya(){return H!==null&&!Ct}function ps(e){const t=bn(la,null);return Ee(t,Ke),t.teardown=e,t}function vr(e){cl("$effect"),C&&Mn(e,"name",{value:"$effect"});var t=W.f,n=!H&&(t&Kt)!==0&&Ue!==null&&!Ue.i;if(n){var r=Ue;(r.e??(r.e=[])).push(e)}else return fs(e)}function fs(e){return bn(Sr|eo,e)}function ul(e){Nn.ensure();const t=bn(gn|cr,e);return(n={})=>new Promise(r=>{n.outro?On(t,()=>{ft(t),r(void 0)}):(ft(t),r(void 0))})}function pl(e){return bn(Rn|cr,e)}function fl(e,t=0){return bn(la|t,e)}function T(e,t=[],n=[],r=[]){Wo(r,t,n,i=>{bn(la,()=>e(...i.map(s)))})}function Qa(e,t=0){var n=bn(Nt|t,e);return C&&(n.dev_stack=Ar),n}function Pt(e){return bn(Kt|cr,e)}function vs(e){var t=e.teardown;if(t!==null){const n=mn,r=H;mi(!0),jt(null);try{t.call(null)}finally{mi(n),jt(r)}}}function Ja(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const i=n.ac;i!==null&&us(()=>{i.abort(ca)});var r=n.next;(n.f&gn)!==0?n.parent=null:ft(n,t),n=r}}function vl(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&Kt)===0&&ft(t),t=n}}function ft(e,t=!0){var n=!1;(t||(e.f&$s)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(gl(e.nodes.start,e.nodes.end),n=!0),Ee(e,ci),Ja(e,t&&!n),jr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)o.stop();vs(e),e.f^=ci,e.f|=Gt;var i=e.parent;i!==null&&i.first!==null&&gs(e),C&&(e.component_function=null),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function gl(e,t){for(;e!==null;){var n=e===t?null:Nr(e);e.remove(),e=n}}function gs(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function On(e,t,n=!0){var r=[];hs(e,r,!0);var i=()=>{n&&ft(e),t&&t()},o=r.length;if(o>0){var c=()=>--o||i();for(var p of r)p.out(c)}else i()}function hs(e,t,n){if((e.f&dt)===0){e.f^=dt;var r=e.nodes&&e.nodes.t;if(r!==null)for(const p of r)(p.is_global||n)&&t.push(p);for(var i=e.first;i!==null;){var o=i.next;if((i.f&gn)===0){var c=(i.f&rr)!==0||(i.f&Kt)!==0&&(e.f&Nt)!==0;hs(i,t,c?n:!1)}i=o}}}function $r(e){ms(e,!0)}function ms(e,t){if((e.f&dt)!==0){e.f^=dt,(e.f&Ke)===0&&(Ee(e,We),Nn.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&rr)!==0||(n.f&Kt)!==0;ms(n,i?t:!1),n=r}var o=e.nodes&&e.nodes.t;if(o!==null)for(const c of o)(c.is_global||t)&&c.in()}}function Xa(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:Nr(n);t.append(n),n=i}}let Zr=!1,mn=!1;function mi(e){mn=e}let H=null,Ct=!1;function jt(e){H=e}let W=null;function qt(e){W=e}let At=null;function bs(e){H!==null&&(At===null?At=[e]:At.push(e))}let Xe=null,ut=0,xt=null;function hl(e){xt=e}let _s=1,Pn=0,Fn=Pn;function bi(e){Fn=e}function xs(){return++_s}function Gr(e){var t=e.f;if((t&We)!==0)return!0;if(t&et&&(e.f&=~hn),(t&Yt)!==0){for(var n=e.deps,r=n.length,i=0;i<r;i++){var o=n[i];if(Gr(o)&&as(o),o.wv>e.wv)return!0}(t&Et)!==0&&$e===null&&Ee(e,Ke)}return!1}function ys(e,t,n=!0){var r=e.reactions;if(r!==null&&!(At!==null&&pn.call(At,e)))for(var i=0;i<r.length;i++){var o=r[i];(o.f&et)!==0?ys(o,t,!1):t===o&&(n?Ee(o,We):(o.f&Ke)!==0&&Ee(o,Yt),Ha(o))}}function Ia(e){var k;var t=Xe,n=ut,r=xt,i=H,o=At,c=Ue,p=Ct,d=Fn,m=e.f;Xe=null,ut=0,xt=null,H=(m&(Kt|gn))===0?e:null,At=null,ar(e.ctx),Ct=!1,Fn=++Pn,e.ac!==null&&(us(()=>{e.ac.abort(ca)}),e.ac=null);try{e.f|=Er;var b=e.fn,g=b();e.f|=lr;var v=e.deps,w=F==null?void 0:F.is_fork;if(Xe!==null){var y;if(w||jr(e,ut),v!==null&&ut>0)for(v.length=ut+Xe.length,y=0;y<Xe.length;y++)v[ut+y]=Xe[y];else e.deps=v=Xe;if(Ya()&&(e.f&Et)!==0)for(y=ut;y<v.length;y++)((k=v[y]).reactions??(k.reactions=[])).push(e)}else!w&&v!==null&&ut<v.length&&(jr(e,ut),v.length=ut);if(Vi()&&xt!==null&&!Ct&&v!==null&&(e.f&(et|Yt|We))===0)for(y=0;y<xt.length;y++)ys(xt[y],e);if(i!==null&&i!==e){if(Pn++,i.deps!==null)for(let h=0;h<n;h+=1)i.deps[h].rv=Pn;if(t!==null)for(const h of t)h.rv=Pn;xt!==null&&(r===null?r=xt:r.push(...xt))}return(e.f&fn)!==0&&(e.f^=fn),g}catch(h){return Ui(h)}finally{e.f^=Er,Xe=t,ut=n,xt=r,H=i,At=o,ar(c),Ct=p,Fn=d}}function ml(e,t){let n=t.reactions;if(n!==null){var r=Ys.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&(t.f&et)!==0&&(Xe===null||!pn.call(Xe,t))){var o=t;(o.f&Et)!==0&&(o.f^=Et,o.f&=~hn),o.v!==qe&&Ba(o),Xo(o),jr(o,0)}}function jr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ml(e,n[r])}function or(e){var t=e.f;if((t&Gt)===0){Ee(e,Ke);var n=W,r=Zr;if(W=e,Zr=!0,C){var i=Mr;di(e.component_function);var o=Ar;Qr(e.dev_stack??Ar)}try{(t&(Nt|Oi))!==0?vl(e):Ja(e),vs(e);var c=Ia(e);e.teardown=typeof c=="function"?c:null,e.wv=_s;var p;C&&jo&&(e.f&We)!==0&&e.deps}finally{Zr=r,W=n,C&&(di(i),Qr(o))}}}function s(e){var t=e.f,n=(t&et)!==0;if(H!==null&&!Ct){var r=W!==null&&(W.f&Gt)!==0;if(!r&&(At===null||!pn.call(At,e))){var i=H.deps;if((H.f&Er)!==0)e.rv<Pn&&(e.rv=Pn,Xe===null&&i!==null&&i[ut]===e?ut++:Xe===null?Xe=[e]:Xe.push(e));else{H.deps??(H.deps=[]),pn.call(H.deps,e)||H.deps.push(e);var o=e.reactions;o===null?e.reactions=[H]:pn.call(o,H)||o.push(H)}}}if(C){if(!Ct&&St&&!St.warned&&(St.effect.f&Er)===0&&!St.effect_deps.has(e)){St.warned=!0,So(e.label);var c=Hi("traced at");c&&console.warn(c)}Yo.delete(e)}if(mn&&In.has(e))return In.get(e);if(n){var p=e;if(mn){var d=p.v;return((p.f&Ke)===0&&p.reactions!==null||ks(p))&&(d=Ua(p)),In.set(p,d),d}var m=(p.f&Et)===0&&!Ct&&H!==null&&(Zr||(H.f&Et)!==0),b=(p.f&lr)===0;Gr(p)&&(m&&(p.f|=Et),as(p)),m&&!b&&(is(p),ws(p))}if($e!=null&&$e.has(e))return $e.get(e);if((e.f&fn)!==0)throw e.v;return e.v}function ws(e){if(e.f|=Et,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&et)!==0&&(t.f&Et)===0&&(is(t),ws(t))}function ks(e){if(e.v===qe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(In.has(t)||(t.f&et)!==0&&ks(t))return!0;return!1}function Ps(e){var t=Ct;try{return Ct=!0,e()}finally{Ct=t}}const bl=["touchstart","touchmove"];function _l(e){return bl.includes(e)}const Sn=Symbol("events"),Ss=new Set,Oa=new Set;function oe(e,t,n){(t[Sn]??(t[Sn]={}))[e]=n}function _n(e){for(var t=0;t<e.length;t++)Ss.add(e[t]);for(var n of Oa)n(e)}let _i=null;function xi(e){var k,h;var t=this,n=t.ownerDocument,r=e.type,i=((k=e.composedPath)==null?void 0:k.call(e))||[],o=i[0]||e.target;_i=e;var c=0,p=_i===e&&e[Sn];if(p){var d=i.indexOf(p);if(d!==-1&&(t===document||t===window)){e[Sn]=t;return}var m=i.indexOf(t);if(m===-1)return;d<=m&&(c=d)}if(o=i[c]||e.target,o!==t){Mn(e,"currentTarget",{configurable:!0,get(){return o||n}});var b=H,g=W;jt(null),qt(null);try{for(var v,w=[];o!==null&&o!==t;){try{var y=(h=o[Sn])==null?void 0:h[r];y!=null&&(!o.disabled||e.target===o)&&y.call(o,e)}catch(x){v?w.push(x):v=x}if(e.cancelBubble)break;c++,o=c<i.length?i[c]:null}if(v){for(let x of w)queueMicrotask(()=>{throw x});throw v}}finally{e[Sn]=t,delete e.currentTarget,jt(b),qt(g)}}}var Di;const xa=((Di=globalThis==null?void 0:globalThis.window)==null?void 0:Di.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function xl(e){return(xa==null?void 0:xa.createHTML(e))??e}function yl(e){var t=ll("template");return t.innerHTML=xl(e.replaceAll("<!>","<!---->")),t.content}function Fa(e,t){var n=W;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function j(e,t){var n=(t&wo)!==0,r=(t&ko)!==0,i,o=!e.startsWith("<!>");return()=>{i===void 0&&(i=yl(o?e:"<!>"+e),n||(i=Xr(i)));var c=r||Za?document.importNode(i,!0):i.cloneNode(!0);if(n){var p=Xr(c),d=c.lastChild;Fa(p,d)}else Fa(c,c);return c}}function Cs(e=""){{var t=vn(e+"");return Fa(t,t),t}}function A(e,t){e!==null&&e.before(t)}function u(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e[mr]??(e[mr]=e.nodeValue))&&(e[mr]=n,e.nodeValue=`${n}`)}function wl(e,t){return kl(e,t)}const Br=new Map;function kl(e,{target:t,anchor:n,props:r={},events:i,context:o,intro:c=!0,transformError:p}){sl();var d=void 0,m=ul(()=>{var b=n??t.appendChild(vn());Bo(b,{pending:()=>{}},w=>{Qt({});var y=Ue;o&&(y.c=o),i&&(r.$$events=i),d=e(w,r)||{},Jt()},p);var g=new Set,v=w=>{for(var y=0;y<w.length;y++){var k=w[y];if(!g.has(k)){g.add(k);var h=_l(k);for(const E of[t,document]){var x=Br.get(E);x===void 0&&(x=new Map,Br.set(E,x));var P=x.get(k);P===void 0?(E.addEventListener(k,xi,{passive:h}),x.set(k,1)):x.set(k,P+1)}}}};return v(oa(Ss)),Oa.add(v),()=>{var h;for(var w of g)for(const x of[t,document]){var y=Br.get(x),k=y.get(w);--k==0?(x.removeEventListener(w,xi),y.delete(w),y.size===0&&Br.delete(x)):y.set(w,k)}Oa.delete(v),b!==n&&((h=b.parentNode)==null||h.removeChild(b))}});return Pl.set(d,m),d}let Pl=new WeakMap;var Ot,Wt,mt,Dn,zr,Ir,sa;class Sl{constructor(t,n=!0){gt(this,"anchor");q(this,Ot,new Map);q(this,Wt,new Map);q(this,mt,new Map);q(this,Dn,new Set);q(this,zr,!0);q(this,Ir,t=>{if(f(this,Ot).has(t)){var n=f(this,Ot).get(t),r=f(this,Wt).get(n);if(r)$r(r),f(this,Dn).delete(n);else{var i=f(this,mt).get(n);i&&($r(i.effect),f(this,Wt).set(n,i.effect),f(this,mt).delete(n),C&&(i.fragment.lastChild[no]=this.anchor),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[o,c]of f(this,Ot)){if(f(this,Ot).delete(o),o===t)break;const p=f(this,mt).get(c);p&&(ft(p.effect),f(this,mt).delete(c))}for(const[o,c]of f(this,Wt)){if(o===n||f(this,Dn).has(o))continue;const p=()=>{if(Array.from(f(this,Ot).values()).includes(o)){var m=document.createDocumentFragment();Xa(c,m),m.append(vn()),f(this,mt).set(o,{effect:c,fragment:m})}else ft(c);f(this,Dn).delete(o),f(this,Wt).delete(o)};f(this,zr)||!r?(f(this,Dn).add(o),On(c,p,!1)):p()}}});q(this,sa,t=>{f(this,Ot).delete(t);const n=Array.from(f(this,Ot).values());for(const[r,i]of f(this,mt))n.includes(r)||(ft(i.effect),f(this,mt).delete(r))});this.anchor=t,G(this,zr,n)}ensure(t,n){var r=F,i=ds();if(n&&!f(this,Wt).has(t)&&!f(this,mt).has(t))if(i){var o=document.createDocumentFragment(),c=vn();o.append(c),f(this,mt).set(t,{effect:Pt(()=>n(c)),fragment:o})}else f(this,Wt).set(t,Pt(()=>n(this.anchor)));if(f(this,Ot).set(r,t),i){for(const[p,d]of f(this,Wt))p===t?r.unskip_effect(d):r.skip_effect(d);for(const[p,d]of f(this,mt))p===t?r.unskip_effect(d.effect):r.skip_effect(d.effect);r.oncommit(f(this,Ir)),r.ondiscard(f(this,sa))}else f(this,Ir).call(this,r)}}Ot=new WeakMap,Wt=new WeakMap,mt=new WeakMap,Dn=new WeakMap,zr=new WeakMap,Ir=new WeakMap,sa=new WeakMap;function Se(e,t,n=!1){var r=new Sl(e),i=n?rr:0;function o(c,p){r.ensure(c,p)}Qa(()=>{var c=!1;t((p,d=0)=>{c=!0,o(d,p)}),c||o(-1,null)},i)}function _e(e,t){return t}function Cl(e,t,n){for(var r=[],i=t.length,o,c=t.length,p=0;p<i;p++){let g=t[p];On(g,()=>{if(o){if(o.pending.delete(g),o.done.add(g),o.pending.size===0){var v=e.outrogroups;Ma(e,oa(o.done)),v.delete(o),v.size===0&&(e.outrogroups=null)}}else c-=1},!1)}if(c===0){var d=r.length===0&&n!==null;if(d){var m=n,b=m.parentNode;ol(b),b.append(m),e.items.clear()}Ma(e,t,!d)}else o={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(o)}function Ma(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const c of e.pending.values())for(const p of c)r.add(e.items.get(p).e)}for(var i=0;i<t.length;i++){var o=t[i];if(r!=null&&r.has(o)){o.f|=Zt;const c=document.createDocumentFragment();Xa(o,c)}else ft(t[i],n)}}var yi;function xe(e,t,n,r,i,o=null){var c=e,p=new Map,d=(t&Ni)!==0;if(d){var m=e;c=m.appendChild(vn())}var b=null,g=Jo(()=>{var E=n();return Ka(E)?E:E==null?[]:oa(E)});C&&zt(g,"{#each ...}");var v,w=new Map,y=!0;function k(E){(P.effect.f&Gt)===0&&(P.pending.delete(E),P.fallback=b,El(P,v,c,t,r),b!==null&&(v.length===0?(b.f&Zt)===0?$r(b):(b.f^=Zt,xr(b,null,c)):On(b,()=>{b=null})))}function h(E){P.pending.delete(E)}var x=Qa(()=>{v=s(g);for(var E=v.length,z=new Set,R=F,M=ds(),N=0;N<E;N+=1){var Z=v[N],X=r(Z,N);if(C){var ce=r(Z,N);X!==ce&&oo(String(N),String(X),String(ce))}var D=y?null:p.get(X);D?(D.v&&sr(D.v,Z),D.i&&sr(D.i,N),M&&R.unskip_effect(D.e)):(D=Al(p,y?c:yi??(yi=vn()),Z,X,N,i,t,n),y||(D.e.f|=Zt),p.set(X,D)),z.add(X)}if(E===0&&o&&!b&&(y?b=Pt(()=>o(c)):(b=Pt(()=>o(yi??(yi=vn()))),b.f|=Zt)),E>z.size&&(C?jl(v,r):Mi("","","")),!y)if(w.set(R,z),M){for(const[Y,L]of p)z.has(Y)||R.skip_effect(L.e);R.oncommit(k),R.ondiscard(h)}else k(R);s(g)}),P={effect:x,items:p,pending:w,outrogroups:null,fallback:b};y=!1}function gr(e){for(;e!==null&&(e.f&Kt)===0;)e=e.next;return e}function El(e,t,n,r,i){var ce,D,Y,L,B,ge,ue,de,Pe;var o=(r&xo)!==0,c=t.length,p=e.items,d=gr(e.effect.first),m,b=null,g,v=[],w=[],y,k,h,x;if(o)for(x=0;x<c;x+=1)y=t[x],k=i(y,x),h=p.get(k).e,(h.f&Zt)===0&&((D=(ce=h.nodes)==null?void 0:ce.a)==null||D.measure(),(g??(g=new Set)).add(h));for(x=0;x<c;x+=1){if(y=t[x],k=i(y,x),h=p.get(k).e,e.outrogroups!==null)for(const $ of e.outrogroups)$.pending.delete(h),$.done.delete(h);if((h.f&dt)!==0&&($r(h),o&&((L=(Y=h.nodes)==null?void 0:Y.a)==null||L.unfix(),(g??(g=new Set)).delete(h))),(h.f&Zt)!==0)if(h.f^=Zt,h===d)xr(h,null,n);else{var P=b?b.next:d;h===e.effect.last&&(e.effect.last=h.prev),h.prev&&(h.prev.next=h.next),h.next&&(h.next.prev=h.prev),on(e,b,h),on(e,h,P),xr(h,P,n),b=h,v=[],w=[],d=gr(b.next);continue}if(h!==d){if(m!==void 0&&m.has(h)){if(v.length<w.length){var E=w[0],z;b=E.prev;var R=v[0],M=v[v.length-1];for(z=0;z<v.length;z+=1)xr(v[z],E,n);for(z=0;z<w.length;z+=1)m.delete(w[z]);on(e,R.prev,M.next),on(e,b,R),on(e,M,E),d=E,b=M,x-=1,v=[],w=[]}else m.delete(h),xr(h,d,n),on(e,h.prev,h.next),on(e,h,b===null?e.effect.first:b.next),on(e,b,h),b=h;continue}for(v=[],w=[];d!==null&&d!==h;)(m??(m=new Set)).add(d),w.push(d),d=gr(d.next);if(d===null)continue}(h.f&Zt)===0&&v.push(h),b=h,d=gr(h.next)}if(e.outrogroups!==null){for(const $ of e.outrogroups)$.pending.size===0&&(Ma(e,oa($.done)),(B=e.outrogroups)==null||B.delete($));e.outrogroups.size===0&&(e.outrogroups=null)}if(d!==null||m!==void 0){var N=[];if(m!==void 0)for(h of m)(h.f&dt)===0&&N.push(h);for(;d!==null;)(d.f&dt)===0&&d!==e.fallback&&N.push(d),d=gr(d.next);var Z=N.length;if(Z>0){var X=(r&Ni)!==0&&c===0?n:null;if(o){for(x=0;x<Z;x+=1)(ue=(ge=N[x].nodes)==null?void 0:ge.a)==null||ue.measure();for(x=0;x<Z;x+=1)(Pe=(de=N[x].nodes)==null?void 0:de.a)==null||Pe.fix()}Cl(e,N,X)}}o&&zn(()=>{var $,je;if(g!==void 0)for(h of g)(je=($=h.nodes)==null?void 0:$.a)==null||je.apply()})}function Al(e,t,n,r,i,o,c,p){var d=(c&bo)!==0?(c&yo)===0?el(n,!1,!1):Gn(n):null,m=(c&_o)!==0?Gn(i):null;return C&&d&&(d.trace=()=>{p()[(m==null?void 0:m.v)??i]}),{v:d,i:m,e:Pt(()=>(o(t,d??n,m??i,p),()=>{e.delete(r)}))}}function xr(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,o=t&&(t.f&Zt)===0?t.nodes.start:n;r!==null;){var c=Nr(r);if(o.before(r),r===i)return;r=c}}function on(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function jl(e,t){const n=new Map,r=e.length;for(let i=0;i<r;i++){const o=t(e[i],i);if(n.has(o)){const c=String(n.get(o)),p=String(i);let d=String(o);d.startsWith("[object ")&&(d=null),Mi(c,p,d)}n.set(o,i)}}function Dl(e,t,n){var r=e==null?"":""+e;return r===""?null:r}function Tl(e,t){return e==null?null:String(e)}function ve(e,t,n,r,i,o){var c=e[Pa];if(c!==n||c===void 0){var p=Dl(n);p==null?e.removeAttribute("class"):e.className=p,e[Pa]=n}return o}function Mt(e,t,n,r){var i=e[Sa];if(i!==t){var o=Tl(t);o==null?e.removeAttribute("style"):e.style.cssText=o,e[Sa]=t}return r}function Es(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Ka(t))return Eo();for(var r of e.options)r.selected=t.includes(wi(r));return}for(r of e.options){var i=wi(r);if(nl(i,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Rl(e){var t=new MutationObserver(()=>{Es(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ps(()=>{t.disconnect()})}function wi(e){return"__value"in e?e.__value:e.value}const zl=Symbol("is custom element"),Il=Symbol("is html"),Ol=ro?"progress":"PROGRESS";function Fl(e,t){var n=As(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Ol)||(e.value=t??"")}function ea(e,t,n,r){var i=As(e);i[t]!==(i[t]=n)&&(t==="loading"&&(e[to]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Ml(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function As(e){return e[Hr]??(e[Hr]={[zl]:e.nodeName.includes("-"),[Il]:e.namespaceURI===Gi})}var ki=new Map;function Ml(e){var t=e.getAttribute("is")||e.nodeName,n=ki.get(t);if(n)return n;ki.set(t,n=[]);for(var r,i=e,o=Element.prototype;o!==i;){r=Qs(i);for(var c in r)r[c].set&&c!=="innerHTML"&&c!=="textContent"&&c!=="innerText"&&n.push(c);i=Ri(i)}return n}function ya(e,t,n,r){var i=r,o=!0,c=()=>(o&&(o=!1,i=r),i),p;p=e[t],p===void 0&&r!==void 0&&(p=c());var d;return d=()=>{var m=e[t];return m===void 0?c():(o=!0,m)},d}if(C){let e=function(t){if(!(t in globalThis)){let n;Object.defineProperty(globalThis,t,{configurable:!0,get:()=>{if(n!==void 0)return n;fo(t)},set:r=>{n=r}})}};var jd=e;e("$state"),e("$effect"),e("$derived"),e("$inspect"),e("$props"),e("$bindable")}const Nl="5";var Ti;typeof window<"u"&&((Ti=window.__svelte??(window.__svelte={})).v??(Ti.v=new Set)).add(Nl);const js={"agent.book-architect":"Structural design & outline planning","agent.chapter-writer":"Chapter draft generation","agent.continuity-editor":"Cross-chapter consistency checks","agent.cover-designer":"Cover design & brand identity","agent.marketing-expert":"Book description & marketing copy","agent.scene-generator":"Scene generation & expansion","agent.style-doctor":"Style consistency & AI-slop detection","app.autoRefresh":"Auto-refresh 5s","app.backToLive":"Back to live data","app.clickHint":"Click any command or chapter to copy","app.clickHintShort":"Tap to copy","app.copied":"Copied to clipboard","app.exampleBanner":"Viewing sample data — this is not your real project.","app.exampleMode":"Example Mode","app.generated":"Generated","app.hoursAgo":"{n}h ago","app.justNow":"just now","app.loading":"Loading...","app.minutesAgo":"{n}m ago","app.noData":"No project data","app.noDataCmd":"/book-status","app.noDataHint":"Run /book-status in your Claude Code session to generate dashboard data.","app.noProject":"No book projects.","app.noProjectSidebar":"No project","app.refresh":"Refresh","app.refreshFailed":"Refresh failed","app.retrying":"Retrying...","app.sampleData":"Showing sample data (status.json failed: {error})","app.selectProject":"Select a project","app.stale":"Data is {n} min old · run /book-status to update","app.viewExample":"View example →","chStatus.draft":"Draft","chStatus.edit":"Done","chStatus.wait":"Wait","cmd.draft.desc":"Write chapter drafts","cmd.draft.label":"Draft","cmd.draft.long":"Write chapter drafts — supports full / specific chapters / continuation","cmd.edit.desc":"5-stage editing pipeline","cmd.edit.label":"Edit","cmd.edit.long":"Edit drafts through 5-stage editing pipeline","cmd.editChapter":"/book-edit {file} — edit this chapter","cmd.genre-creator.desc":"Create a custom genre","cmd.genre-creator.label":"Genre Creator","cmd.genre-creator.long":"Define a custom genre with its own structure, agents, and workflow","cmd.ideation.desc":"Explore concepts & validate ideas","cmd.ideation.label":"Ideation","cmd.ideation.long":"Explore concepts, run market gap analysis, and validate your book idea","cmd.init.desc":"Initialize new book project","cmd.init.label":"Init","cmd.init.long":"Initialize directory structure & templates for new book project","cmd.outline.desc":"Generate & validate outline","cmd.outline.label":"Outline","cmd.outline.long":"Generate & validate outline from PRD & source materials","cmd.publish.desc":"Package EPUB · PDF · MOBI","cmd.publish.label":"Publish","cmd.publish.long":"Package for publishing — EPUB, PDF, metadata, title candidates","cmd.redraft":"/book-draft {file} — rewrite this chapter","cmd.redraftWait":"/book-draft {file} — draft this chapter","cmd.status.desc":"Progress dashboard","cmd.status.label":"Status","cmd.status.long":"Current status and progress dashboard","drafts.file":"File","drafts.lines":"Lines","drafts.progress":"Overall Progress","drafts.status":"Status","drafts.title":"Title","drafts.total":"Total","drafts.wordOf":"/ {n} words","drafts.words":"Words","edits.inPipeline":"{n} chapters in editing pipeline","edit.stage.assessment":"Assessment","edit.stage.developmental":"Developmental","edit.stage.lineEdit":"Line Edit","edit.stage.copyEdit":"Copy Edit","edit.stage.proofread":"Proofread","edits.stageProgress":"Chapter Edit Stages","help.agents":"Agent Reference","help.allGenres":"All genres","help.customGenre":"Custom genre — uses default workflow. See CONTRIBUTING.md to add genre-specific templates.","help.genreWorkflow":"Genre Workflow","help.keyFeatures":"Key Features","help.phase":"Phase {n}","help.utility":"Utility","help.pipelineOverview":"Pipeline Overview","help.pipelineTip":"Each phase builds on the previous. Run phases in order for best results. Phase commands can be re-run at any time.","help.qs.draft":"Write chapter drafts in parallel","help.qs.edit":"Run 5-stage editing pipeline","help.qs.ideation":"Explore concepts and validate ideas","help.qs.init":"Set up project directory and templates","help.qs.outline":"Generate genre-specific structure","help.qs.publish":"Package final output","help.quickStart":"Quick Start","help.skills":"Skill Reference","help.structure":"Structure Template","help.subtitle":"Genre-specific workflows, available agents, and skill reference for your project.","help.title":"Help & Reference","phase.drafting":"Drafting","phase.editing":"Editing","phase.ideation":"Ideation","phase.onboarding":"Onboarding","phase.outlining":"Outlining","phase.publishing":"Publishing","nav.drafts":"Drafts","nav.edits":"Edits","nav.help":"Help","nav.outline":"Outline","nav.overview":"Overview","nav.publish":"Publish","nav.settings":"Settings","nav.status":"Status","outline.addChapter":"Add Chapter","outline.noChapters":"No chapters","outline.noChaptersHint":"Run /book-outline to generate an outline","outline.syncPRD":"Sync PRD","outline.wordOf":"/ {n} words","outline.words":"words","overview.chapterOf":"/ {n} chapters","overview.chapters":"Chapters","overview.commands":"Quick Commands","overview.currentPhase":"Current Phase","overview.pipeline":"Writing Pipeline","overview.updated":"Updated","overview.wordOf":"/ {n} target","overview.words":"Word Count","publish.check.allDrafts":"All chapters drafted","publish.check.editingDone":"Editing pipeline complete","publish.check.editingPhaseDone":"Editing phase complete","publish.check.outlineDone":"Outlining phase complete","publish.check.wordTarget":"Word target reached","publish.checklist":"Publish Readiness Checklist","publish.download":"Download","publish.ready":"Ready","publish.pending":"Pending","publish.filesReady":"{ready} / {total} files ready","publish.fmt.epub":"eBook standard format","publish.fmt.md":"Markdown source","publish.fmt.mobi":"Kindle format","publish.fmt.pdf":"For print & distribution","publish.fmt.txt":"Plain text","settings.font":"Font","settings.accentColor":"Accent Color","settings.customColor":"Custom color","settings.resetColor":"Reset","settings.agents":"Registered Agents","settings.commands":"Available Commands","settings.completedChapters":"Completed Chapters","settings.currentPhase":"Current Phase","settings.fieldGenre":"Genre","settings.fieldLanguage":"Language","settings.fieldPath":"Path","settings.fieldTitle":"Title","settings.fieldUpdated":"Last Updated","settings.phaseStatus":"Phase Status","settings.projectInfo":"Project Info","settings.targetWords":"Word Target","settings.targets":"Targets","settings.totalChapters":"Total Chapters","status.complete":"Complete","status.currentTask":"Current Task","status.idle":"Idle","status.lastRun":"Last run","status.noAgents":"No agent data","status.noAgentsHint":"Add an agents array to status.json","status.running":"Running","status.pending":"Pending","view.drafts":"Drafts","view.edits":"Editing Pipeline","view.help":"Help & Reference","view.outline":"Outline","view.overview":"Overview","view.publish":"Publish","view.settings":"Settings","view.status":"Agent Status","genre.fiction.name":"Fiction","genre.fiction.structure":"Save the Cat! 15-Beat / 3-Act Structure","genre.fiction.h1":"Scene generation","genre.fiction.h2":"Beat sheet validation","genre.fiction.h3":"Character arcs","genre.fiction.tip":"Start with /book-ideation to develop your premise, then /book-outline for the beat sheet.","genre.nonfiction.name":"Non-Fiction","genre.nonfiction.structure":"Problem → Principles → Practice → Advanced","genre.nonfiction.h1":"Evidence-based structure","genre.nonfiction.h2":"Research integration","genre.nonfiction.h3":"Case studies","genre.nonfiction.tip":"Gather source materials in sources/ before running /book-outline.","genre.technical.name":"Technical","genre.technical.structure":"Intro (15%) → Foundations (25%) → Practice (30%) → Advanced (20%) → Reference (10%)","genre.technical.h1":"Code examples","genre.technical.h2":"Progressive difficulty","genre.technical.h3":"Hands-on exercises","genre.technical.tip":"Place code samples in sources/ and reference them during drafting.","genre.screenplay.name":"Screenplay","genre.screenplay.structure":"3-Act (110pp) + 8-Sequence Method","genre.screenplay.h1":"Scene-by-scene breakdown","genre.screenplay.h2":"Dialogue focus","genre.screenplay.h3":"Visual storytelling","genre.screenplay.tip":"Use /book-ideation to develop the logline before outlining.","genre.poetry.name":"Poetry","genre.poetry.structure":"Collection Arc: Opening → Center → Resolution","genre.poetry.h1":"Thematic grouping","genre.poetry.h2":"Rhythm & meter validation","genre.poetry.h3":"Collection flow","genre.poetry.tip":"Individual poems go in drafts/ — the outline defines collection structure.","genre.game.name":"Game Narrative","genre.game.structure":"Critical Path (60%) + Side Quests (30%) + Hidden (10%)","genre.game.h1":"Branching dialogue","genre.game.h2":"World-building","genre.game.h3":"Player agency","genre.game.tip":"Define major branches in PRD.md before running /book-outline.","genre.academic.name":"Academic","genre.academic.structure":"IMRAD: Introduction → Methods → Results → Discussion","genre.academic.h1":"Citation management","genre.academic.h2":"Methodology validation","genre.academic.h3":"Peer review prep","genre.academic.tip":"Place research papers in sources/ for citation during drafting."},Gl={"agent.book-architect":"구조 설계 및 목차 계획 전담 에이전트","agent.chapter-writer":"챕터별 초안 생성 전담 에이전트","agent.continuity-editor":"챕터 간 일관성·연속성 검사 에이전트","agent.cover-designer":"표지 디자인 및 브랜드 아이덴티티 에이전트","agent.marketing-expert":"책 소개문 및 마케팅 카피 작성 에이전트","agent.scene-generator":"씬 생성 및 확장 전담 에이전트 (픽션 전용)","agent.style-doctor":"문체 일관성 및 AI 상투어 감지 에이전트","app.autoRefresh":"5초 자동 새로고침","app.backToLive":"실시간 데이터로 돌아가기","app.clickHint":"명령어나 챕터를 클릭하면 클립보드에 복사됩니다","app.clickHintShort":"탭하면 복사","app.copied":"클립보드에 복사됨","app.exampleBanner":"샘플 데이터를 표시 중입니다 — 실제 프로젝트 데이터가 아닙니다.","app.exampleMode":"예제 모드","app.generated":"생성됨","app.hoursAgo":"{n}시간 전","app.justNow":"방금","app.loading":"로딩 중...","app.minutesAgo":"{n}분 전","app.noData":"프로젝트 데이터 없음","app.noDataCmd":"/book-status","app.noDataHint":"Claude Code 세션에서 /book-status를 실행하면 대시보드 데이터가 생성됩니다.","app.noProject":"책 프로젝트가 없습니다.","app.noProjectSidebar":"프로젝트 없음","app.refresh":"새로고침","app.refreshFailed":"새로고침 실패","app.retrying":"재시도 중...","app.sampleData":"샘플 데이터 표시 중 (status.json 로드 실패: {error})","app.selectProject":"프로젝트를 선택하세요","app.stale":"{n}분 전 데이터 · /book-status를 실행해 업데이트하세요","app.viewExample":"예제 보기 →","chStatus.draft":"초안","chStatus.edit":"편집 완료","chStatus.wait":"대기","cmd.draft.desc":"챕터 초안 작성","cmd.draft.label":"초안","cmd.draft.long":"챕터 초안 작성 — 전체 / 특정 챕터 / 이어쓰기 지원","cmd.edit.desc":"5단계 편집 파이프라인","cmd.edit.label":"편집","cmd.edit.long":"5단계 편집 파이프라인으로 초안을 다듬습니다","cmd.editChapter":"/book-edit {file} — 이 챕터 편집","cmd.genre-creator.desc":"커스텀 장르 생성","cmd.genre-creator.label":"장르 생성기","cmd.genre-creator.long":"새로운 장르를 정의하고 전용 구조·에이전트·워크플로를 설정합니다","cmd.ideation.desc":"컨셉 탐색 및 아이디어 검증","cmd.ideation.label":"아이디어","cmd.ideation.long":"컨셉 탐색, 시장 공백 분석, 책 아이디어 검증을 진행합니다","cmd.init.desc":"새 책 프로젝트 초기화","cmd.init.label":"초기화","cmd.init.long":"새 책 프로젝트의 디렉토리 구조와 템플릿을 초기화합니다","cmd.outline.desc":"목차 생성 및 검증","cmd.outline.label":"목차","cmd.outline.long":"PRD와 소스 자료를 바탕으로 목차를 생성하고 검증합니다","cmd.publish.desc":"EPUB · PDF · MOBI 패키징","cmd.publish.label":"출판","cmd.publish.long":"출판용 패키징 — EPUB, PDF, 메타데이터, 제목 후보 생성","cmd.redraft":"/book-draft {file} — 이 챕터 다시 작성","cmd.redraftWait":"/book-draft {file} — 이 챕터 초안 작성","cmd.status.desc":"진행률 대시보드","cmd.status.label":"상태","cmd.status.long":"현재 작업 상태와 진행률을 대시보드로 확인합니다","drafts.file":"파일","drafts.lines":"줄 수","drafts.progress":"전체 진행률","drafts.status":"상태","drafts.title":"제목","drafts.total":"합계","drafts.wordOf":"/ {n} 단어","drafts.words":"단어 수","edits.inPipeline":"{n}개 챕터 편집 진행 중","edit.stage.assessment":"평가","edit.stage.developmental":"발달 편집","edit.stage.lineEdit":"라인 편집","edit.stage.copyEdit":"교정","edit.stage.proofread":"교열","edits.stageProgress":"챕터별 편집 단계","help.agents":"에이전트 레퍼런스","help.allGenres":"전체 장르","help.customGenre":"커스텀 장르 — 기본 워크플로를 사용합니다. 장르별 템플릿 추가는 CONTRIBUTING.md를 참고하세요.","help.genreWorkflow":"장르별 워크플로","help.keyFeatures":"주요 기능","help.pipelineOverview":"파이프라인 개요","help.phase":"{n}단계","help.utility":"유틸리티","help.pipelineTip":"각 단계는 이전 단계를 기반으로 합니다. 순서대로 실행하면 최상의 결과를 얻을 수 있습니다. 단계 명령은 언제든 재실행 가능합니다.","help.qs.draft":"챕터 초안 병렬 작성","help.qs.edit":"5단계 편집 파이프라인 실행","help.qs.ideation":"컨셉 탐색 및 아이디어 검증","help.qs.init":"프로젝트 디렉토리와 템플릿 설정","help.qs.outline":"장르별 구조 생성","help.qs.publish":"최종 결과물 패키징","help.quickStart":"빠른 시작","help.skills":"스킬 레퍼런스","help.structure":"구조 템플릿","help.subtitle":"장르별 워크플로, 사용 가능한 에이전트, 스킬 레퍼런스를 제공합니다.","help.title":"도움말 & 레퍼런스","nav.drafts":"초안","nav.edits":"편집","nav.help":"도움말","nav.outline":"목차","nav.overview":"개요","nav.publish":"출판","nav.settings":"설정","nav.status":"에이전트","outline.addChapter":"챕터 추가","outline.noChapters":"챕터가 없습니다","outline.noChaptersHint":"/book-outline을 실행해 목차를 생성하세요","outline.syncPRD":"PRD 동기화","outline.wordOf":"/ {n} 단어","outline.words":"단어","overview.chapterOf":"/ {n} 챕터","overview.chapters":"챕터","overview.commands":"빠른 실행","overview.currentPhase":"현재 단계","overview.pipeline":"집필 파이프라인","overview.updated":"업데이트","overview.wordOf":"/ {n} 목표","overview.words":"단어 수","phase.drafting":"초안 작성","phase.editing":"편집","phase.ideation":"아이디어","phase.onboarding":"온보딩","phase.outlining":"목차 구성","phase.publishing":"출판","publish.check.allDrafts":"모든 챕터 초안 완료","publish.check.editingDone":"편집 파이프라인 완료","publish.check.editingPhaseDone":"편집 단계 완료","publish.check.outlineDone":"목차 구성 완료","publish.check.wordTarget":"목표 단어 수 달성","publish.checklist":"출판 준비 체크리스트","publish.download":"다운로드","publish.ready":"준비 완료","publish.pending":"대기 중","publish.filesReady":"{ready} / {total} 파일 준비됨","publish.fmt.epub":"전자책 표준 포맷","publish.fmt.md":"Markdown 소스","publish.fmt.mobi":"Kindle 포맷","publish.fmt.pdf":"인쇄 및 배포용","publish.fmt.txt":"텍스트 파일","settings.font":"폰트","settings.accentColor":"액센트 색상","settings.customColor":"직접 선택","settings.resetColor":"초기화","settings.agents":"등록된 에이전트","settings.commands":"사용 가능한 명령어","settings.completedChapters":"완료된 챕터","settings.currentPhase":"현재 단계","settings.fieldGenre":"장르","settings.fieldLanguage":"언어","settings.fieldPath":"경로","settings.fieldTitle":"제목","settings.fieldUpdated":"마지막 업데이트","settings.phaseStatus":"단계별 진행 상태","settings.projectInfo":"프로젝트 정보","settings.targetWords":"목표 단어 수","settings.targets":"목표","settings.totalChapters":"총 챕터 수","status.complete":"완료","status.currentTask":"현재 작업","status.idle":"대기 중","status.lastRun":"마지막 실행","status.noAgents":"에이전트 데이터가 없습니다","status.noAgentsHint":"status.json에 agents 배열을 추가하세요","status.running":"실행 중","status.pending":"대기 중","view.drafts":"초안","view.edits":"편집 파이프라인","view.help":"도움말 & 레퍼런스","view.outline":"목차","view.overview":"개요","view.publish":"출판","view.settings":"설정","view.status":"에이전트 상태","genre.fiction.name":"픽션","genre.fiction.structure":"Save the Cat! 15비트 / 3막 구조","genre.fiction.h1":"씬 생성","genre.fiction.h2":"비트 시트 검증","genre.fiction.h3":"캐릭터 아크","genre.fiction.tip":"/book-ideation으로 전제를 개발한 뒤 /book-outline으로 비트 시트를 작성하세요.","genre.nonfiction.name":"논픽션","genre.nonfiction.structure":"문제 → 원칙 → 실천 → 심화","genre.nonfiction.h1":"근거 기반 구조","genre.nonfiction.h2":"리서치 통합","genre.nonfiction.h3":"사례 연구","genre.nonfiction.tip":"/book-outline을 실행하기 전에 sources/에 자료를 모아두세요.","genre.technical.name":"기술서","genre.technical.structure":"도입 (15%) → 기초 (25%) → 실습 (30%) → 심화 (20%) → 참고 (10%)","genre.technical.h1":"코드 예시","genre.technical.h2":"점진적 난이도","genre.technical.h3":"실습 예제","genre.technical.tip":"코드 샘플을 sources/에 넣고 초안 작성 시 참조하세요.","genre.screenplay.name":"시나리오","genre.screenplay.structure":"3막 (110pp) + 8시퀀스 방식","genre.screenplay.h1":"씬별 분해","genre.screenplay.h2":"대사 중심","genre.screenplay.h3":"시각적 스토리텔링","genre.screenplay.tip":"/book-ideation으로 로그라인을 먼저 개발하고 목차를 구성하세요.","genre.poetry.name":"시","genre.poetry.structure":"시집 흐름: 도입 → 중심 → 마무리","genre.poetry.h1":"주제별 묶음","genre.poetry.h2":"운율 & 리듬 검증","genre.poetry.h3":"시집 흐름","genre.poetry.tip":"개별 시는 drafts/에 — 목차는 시집 전체 구조를 정의합니다.","genre.game.name":"게임 시나리오","genre.game.structure":"메인 경로 (60%) + 사이드 퀘스트 (30%) + 히든 (10%)","genre.game.h1":"분기 대화","genre.game.h2":"세계관 구축","genre.game.h3":"플레이어 선택","genre.game.tip":"/book-outline 전에 PRD.md에 주요 분기를 정의하세요.","genre.academic.name":"학술","genre.academic.structure":"IMRAD: 서론 → 방법 → 결과 → 논의","genre.academic.h1":"인용 관리","genre.academic.h2":"방법론 검증","genre.academic.h3":"동료 심사 준비","genre.academic.tip":"초안 작성 시 인용을 위해 연구 자료를 sources/에 넣어두세요."},ql={"agent.book-architect":"構造設計と目次計画を担当するエージェント","agent.chapter-writer":"章ごとの下書き生成を担当するエージェント","agent.continuity-editor":"章間の整合性・連続性を検査するエージェント","agent.cover-designer":"表紙デザインとブランドアイデンティティを担当するエージェント","agent.marketing-expert":"本の紹介文とマーケティングコピーを作成するエージェント","agent.scene-generator":"シーン生成・拡張を担当するエージェント（フィクション専用）","agent.style-doctor":"文体の一貫性とAI定型表現を検出するエージェント","app.autoRefresh":"5秒自動更新","app.backToLive":"ライブデータに戻る","app.clickHint":"コマンドや章をクリックするとクリップボードにコピーされます","app.clickHintShort":"タップしてコピー","app.copied":"クリップボードにコピーしました","app.exampleBanner":"サンプルデータを表示中 — 実際のプロジェクトデータではありません。","app.exampleMode":"サンプルモード","app.generated":"生成済み","app.hoursAgo":"{n}時間前","app.justNow":"たった今","app.loading":"読み込み中...","app.minutesAgo":"{n}分前","app.noData":"プロジェクトデータなし","app.noDataCmd":"/book-status","app.noDataHint":"Claude Codeセッションで /book-status を実行してダッシュボードデータを生成してください。","app.noProject":"書籍プロジェクトがありません。","app.noProjectSidebar":"プロジェクトなし","app.refresh":"更新","app.refreshFailed":"更新失敗","app.retrying":"再試行中...","app.sampleData":"サンプルデータを表示中（status.json読み込み失敗: {error}）","app.selectProject":"プロジェクトを選択してください","app.stale":"{n}分前のデータ · /book-status で更新してください","app.viewExample":"サンプルを見る →","chStatus.draft":"下書き","chStatus.edit":"編集完了","chStatus.wait":"待機","cmd.draft.desc":"章の下書きを作成","cmd.draft.label":"下書き","cmd.draft.long":"章の下書きを作成 — 全章・特定章・続きから書き始めに対応","cmd.edit.desc":"5段階編集パイプライン","cmd.edit.label":"編集","cmd.edit.long":"5段階の編集パイプラインで下書きを仕上げます","cmd.editChapter":"/book-edit {file} — この章を編集","cmd.genre-creator.desc":"カスタムジャンルを作成","cmd.genre-creator.label":"ジャンル作成","cmd.genre-creator.long":"独自のジャンルを定義し、専用の構造・エージェント・ワークフローを設定します","cmd.ideation.desc":"アイデアの探索と検証","cmd.ideation.label":"アイデア","cmd.ideation.long":"コンセプト探索、市場ギャップ分析、書籍アイデアの検証を行います","cmd.init.desc":"新しい書籍プロジェクトを初期化","cmd.init.label":"初期化","cmd.init.long":"新しい書籍プロジェクトのディレクトリ構造とテンプレートを初期化します","cmd.outline.desc":"アウトラインの生成と検証","cmd.outline.label":"目次","cmd.outline.long":"PRDとソース素材からアウトラインを生成・検証します","cmd.publish.desc":"EPUB・PDF・MOBIをパッケージ化","cmd.publish.label":"出版","cmd.publish.long":"出版用パッケージ化 — EPUB、PDF、メタデータ、タイトル候補を生成","cmd.redraft":"/book-draft {file} — この章を書き直す","cmd.redraftWait":"/book-draft {file} — この章の下書きを作成","cmd.status.desc":"進捗ダッシュボード","cmd.status.label":"ステータス","cmd.status.long":"現在の作業状況と進捗をダッシュボードで確認します","drafts.file":"ファイル","drafts.lines":"行数","drafts.progress":"全体の進捗","drafts.status":"ステータス","drafts.title":"タイトル","drafts.total":"合計","drafts.wordOf":"/ {n} 語","drafts.words":"語数","edits.inPipeline":"{n}章が編集パイプライン中","edit.stage.assessment":"評価","edit.stage.developmental":"構成編集","edit.stage.lineEdit":"行編集","edit.stage.copyEdit":"コピー編集","edit.stage.proofread":"校正","edits.stageProgress":"章ごとの編集段階","help.agents":"エージェントリファレンス","help.allGenres":"すべてのジャンル","help.customGenre":"カスタムジャンル — デフォルトのワークフローを使用します。ジャンル別テンプレートの追加はCONTRIBUTING.mdを参照してください。","help.genreWorkflow":"ジャンル別ワークフロー","help.keyFeatures":"主な機能","help.pipelineOverview":"パイプライン概要","help.phase":"フェーズ{n}","help.utility":"ユーティリティ","help.pipelineTip":"各フェーズは前のフェーズを基盤としています。順番に実行すると最良の結果が得られます。フェーズコマンドはいつでも再実行できます。","help.qs.draft":"章の下書きを並行して作成","help.qs.edit":"5段階編集パイプラインを実行","help.qs.ideation":"コンセプトを探索してアイデアを検証","help.qs.init":"プロジェクトディレクトリとテンプレートを設定","help.qs.outline":"ジャンル別の構成を生成","help.qs.publish":"最終成果物をパッケージ化","help.quickStart":"クイックスタート","help.skills":"スキルリファレンス","help.structure":"構成テンプレート","help.subtitle":"ジャンル別ワークフロー、利用可能なエージェント、スキルリファレンスを提供します。","help.title":"ヘルプ＆リファレンス","nav.drafts":"下書き","nav.edits":"編集","nav.help":"ヘルプ","nav.outline":"目次","nav.overview":"概要","nav.publish":"出版","nav.settings":"設定","nav.status":"エージェント","outline.addChapter":"章を追加","outline.noChapters":"章がありません","outline.noChaptersHint":"/book-outline を実行してアウトラインを生成してください","outline.syncPRD":"PRDを同期","outline.wordOf":"/ {n} 語","outline.words":"語","overview.chapterOf":"/ {n} 章","overview.chapters":"章","overview.commands":"クイック操作","overview.currentPhase":"現在のフェーズ","overview.pipeline":"執筆パイプライン","overview.updated":"更新日時","overview.wordOf":"/ {n} 目標","overview.words":"語数","phase.drafting":"下書き","phase.editing":"編集","phase.ideation":"アイデア","phase.onboarding":"準備","phase.outlining":"目次構成","phase.publishing":"出版","publish.check.allDrafts":"全章の下書き完了","publish.check.editingDone":"編集パイプライン完了","publish.check.editingPhaseDone":"編集フェーズ完了","publish.check.outlineDone":"アウトラインフェーズ完了","publish.check.wordTarget":"目標語数達成","publish.checklist":"出版準備チェックリスト","publish.download":"ダウンロード","publish.ready":"準備完了","publish.pending":"保留中","publish.filesReady":"{ready} / {total} ファイル準備完了","publish.fmt.epub":"電子書籍標準フォーマット","publish.fmt.md":"Markdownソース","publish.fmt.mobi":"Kindleフォーマット","publish.fmt.pdf":"印刷・配布用","publish.fmt.txt":"テキストファイル","settings.font":"フォント","settings.accentColor":"アクセントカラー","settings.customColor":"カスタムカラー","settings.resetColor":"リセット","settings.agents":"登録済みエージェント","settings.commands":"使用可能なコマンド","settings.completedChapters":"完了した章","settings.currentPhase":"現在のフェーズ","settings.fieldGenre":"ジャンル","settings.fieldLanguage":"言語","settings.fieldPath":"パス","settings.fieldTitle":"タイトル","settings.fieldUpdated":"最終更新","settings.phaseStatus":"フェーズ進捗状況","settings.projectInfo":"プロジェクト情報","settings.targetWords":"目標語数","settings.targets":"目標","settings.totalChapters":"総章数","status.complete":"完了","status.currentTask":"現在のタスク","status.idle":"待機中","status.lastRun":"最終実行","status.noAgents":"エージェントデータなし","status.noAgentsHint":"status.jsonにagents配列を追加してください","status.running":"実行中","status.pending":"保留中","view.drafts":"下書き","view.edits":"編集パイプライン","view.help":"ヘルプ＆リファレンス","view.outline":"目次","view.overview":"概要","view.publish":"出版","view.settings":"設定","view.status":"エージェント状態","genre.fiction.name":"フィクション","genre.fiction.structure":"Save the Cat! 15ビート / 3幕構成","genre.fiction.h1":"シーン生成","genre.fiction.h2":"ビートシート検証","genre.fiction.h3":"キャラクターアーク","genre.fiction.tip":"/book-ideationでプロットを開発し、/book-outlineでビートシートを作成してください。","genre.nonfiction.name":"ノンフィクション","genre.nonfiction.structure":"問題 → 原則 → 実践 → 応用","genre.nonfiction.h1":"エビデンスに基づく構成","genre.nonfiction.h2":"リサーチの統合","genre.nonfiction.h3":"ケーススタディ","genre.nonfiction.tip":"/book-outlineを実行する前に、sources/に資料をまとめてください。","genre.technical.name":"技術書","genre.technical.structure":"導入 (15%) → 基礎 (25%) → 実践 (30%) → 応用 (20%) → 参考 (10%)","genre.technical.h1":"コード例","genre.technical.h2":"段階的な難易度","genre.technical.h3":"ハンズオン演習","genre.technical.tip":"コードサンプルをsources/に配置し、執筆時に参照してください。","genre.screenplay.name":"脚本","genre.screenplay.structure":"3幕 (110ページ) + 8シークエンス方式","genre.screenplay.h1":"シーンごとの分解","genre.screenplay.h2":"対話重視","genre.screenplay.h3":"視覚的ストーリーテリング","genre.screenplay.tip":"/book-ideationでログラインを開発してからアウトラインを作成してください。","genre.poetry.name":"詩","genre.poetry.structure":"詩集の構成：導入 → 中心 → 結び","genre.poetry.h1":"テーマ別グループ","genre.poetry.h2":"韻律・リズムの検証","genre.poetry.h3":"詩集の流れ","genre.poetry.tip":"個々の詩はdrafts/に — アウトラインは詩集全体の構成を定義します。","genre.game.name":"ゲームシナリオ","genre.game.structure":"メインルート (60%) + サイドクエスト (30%) + 隠し要素 (10%)","genre.game.h1":"分岐ダイアログ","genre.game.h2":"ワールドビルディング","genre.game.h3":"プレイヤーの選択","genre.game.tip":"/book-outlineの前にPRD.mdで主要な分岐を定義してください。","genre.academic.name":"学術論文","genre.academic.structure":"IMRAD：緒論 → 方法 → 結果 → 考察","genre.academic.h1":"引用管理","genre.academic.h2":"方法論の検証","genre.academic.h3":"査読準備","genre.academic.tip":"執筆時の引用用に、研究論文をsources/に配置してください。"},Kl={"agent.book-architect":"负责结构设计与章节大纲规划的智能体","agent.chapter-writer":"负责逐章生成初稿的智能体","agent.continuity-editor":"负责跨章节一致性与连贯性检查的智能体","agent.cover-designer":"负责封面设计与品牌视觉的智能体","agent.marketing-expert":"负责书籍简介与营销文案撰写的智能体","agent.scene-generator":"负责场景生成与扩展的智能体（仅限小说类型）","agent.style-doctor":"负责文风一致性检查与 AI 套话检测的智能体","app.autoRefresh":"5秒自动刷新","app.backToLive":"返回实时数据","app.clickHint":"点击任意命令或章节即可复制到剪贴板","app.clickHintShort":"点击复制","app.copied":"已复制到剪贴板","app.exampleBanner":"正在显示示例数据 — 这不是您的真实项目数据。","app.exampleMode":"示例模式","app.generated":"已生成","app.hoursAgo":"{n}小时前","app.justNow":"刚刚","app.loading":"加载中...","app.minutesAgo":"{n}分钟前","app.noData":"暂无项目数据","app.noDataCmd":"/book-status","app.noDataHint":"请在 Claude Code 会话中运行 /book-status 以生成仪表盘数据。","app.noProject":"暂无书籍项目。","app.noProjectSidebar":"无项目","app.refresh":"刷新","app.refreshFailed":"刷新失败","app.retrying":"重试中...","app.sampleData":"正在显示示例数据（status.json 加载失败：{error}）","app.selectProject":"请选择项目","app.stale":"数据已有 {n} 分钟 · 请运行 /book-status 更新","app.viewExample":"查看示例 →","chStatus.draft":"初稿","chStatus.edit":"编辑完成","chStatus.wait":"等待中","cmd.draft.desc":"撰写章节初稿","cmd.draft.label":"初稿","cmd.draft.long":"撰写章节初稿 — 支持全部章节 / 指定章节 / 续写","cmd.edit.desc":"5阶段编辑流水线","cmd.edit.label":"编辑","cmd.edit.long":"通过5阶段编辑流水线对初稿进行精修","cmd.editChapter":"/book-edit {file} — 编辑本章","cmd.genre-creator.desc":"创建自定义类型","cmd.genre-creator.label":"类型创建器","cmd.genre-creator.long":"定义新类型，设置专属结构、智能体与工作流","cmd.ideation.desc":"探索概念与验证创意","cmd.ideation.label":"创意","cmd.ideation.long":"进行概念探索、市场空白分析与书籍创意验证","cmd.init.desc":"初始化新书籍项目","cmd.init.label":"初始化","cmd.init.long":"初始化新书籍项目的目录结构与模板","cmd.outline.desc":"生成并验证大纲","cmd.outline.label":"大纲","cmd.outline.long":"根据 PRD 与参考资料生成并验证大纲","cmd.publish.desc":"打包 EPUB · PDF · MOBI","cmd.publish.label":"出版","cmd.publish.long":"打包出版文件 — 生成 EPUB、PDF、元数据与书名候选","cmd.redraft":"/book-draft {file} — 重写本章","cmd.redraftWait":"/book-draft {file} — 撰写本章初稿","cmd.status.desc":"进度仪表盘","cmd.status.label":"状态","cmd.status.long":"查看当前工作状态与进度仪表盘","drafts.file":"文件","drafts.lines":"行数","drafts.progress":"总体进度","drafts.status":"状态","drafts.title":"标题","drafts.total":"合计","drafts.wordOf":"/ {n} 字","drafts.words":"字数","edits.inPipeline":"{n} 章正在编辑流水线中","edit.stage.assessment":"评估","edit.stage.developmental":"结构编辑","edit.stage.lineEdit":"行文编辑","edit.stage.copyEdit":"文字校对","edit.stage.proofread":"终校","edits.stageProgress":"各章编辑阶段","help.agents":"智能体参考","help.allGenres":"全部类型","help.customGenre":"自定义类型 — 使用默认工作流。如需添加类型专属模板，请参阅 CONTRIBUTING.md。","help.genreWorkflow":"类型工作流","help.keyFeatures":"核心功能","help.pipelineOverview":"流水线概览","help.phase":"阶段 {n}","help.utility":"工具","help.pipelineTip":"每个阶段基于前一阶段构建。按顺序执行可获得最佳效果。阶段命令可随时重新运行。","help.qs.draft":"并行撰写章节初稿","help.qs.edit":"运行5阶段编辑流水线","help.qs.ideation":"探索概念并验证创意","help.qs.init":"设置项目目录与模板","help.qs.outline":"生成类型专属结构","help.qs.publish":"打包最终输出文件","help.quickStart":"快速开始","help.skills":"技能参考","help.structure":"结构模板","help.subtitle":"提供类型专属工作流、可用智能体与技能参考。","help.title":"帮助与参考","nav.drafts":"初稿","nav.edits":"编辑","nav.help":"帮助","nav.outline":"大纲","nav.overview":"概览","nav.publish":"出版","nav.settings":"设置","nav.status":"智能体","outline.addChapter":"添加章节","outline.noChapters":"暂无章节","outline.noChaptersHint":"运行 /book-outline 生成大纲","outline.syncPRD":"同步 PRD","outline.wordOf":"/ {n} 字","outline.words":"字","overview.chapterOf":"/ {n} 章","overview.chapters":"章节","overview.commands":"快捷操作","overview.currentPhase":"当前阶段","overview.pipeline":"写作流水线","overview.updated":"更新时间","overview.wordOf":"/ {n} 目标","overview.words":"字数","phase.drafting":"初稿撰写","phase.editing":"编辑","phase.ideation":"创意","phase.onboarding":"准备","phase.outlining":"大纲构建","phase.publishing":"出版","publish.check.allDrafts":"全部章节初稿已完成","publish.check.editingDone":"编辑流水线已完成","publish.check.editingPhaseDone":"编辑阶段已完成","publish.check.outlineDone":"大纲阶段已完成","publish.check.wordTarget":"已达成目标字数","publish.checklist":"出版准备清单","publish.download":"下载","publish.ready":"就绪","publish.pending":"待处理","publish.filesReady":"{ready} / {total} 个文件已就绪","publish.fmt.epub":"电子书标准格式","publish.fmt.md":"Markdown 源文件","publish.fmt.mobi":"Kindle 格式","publish.fmt.pdf":"适用于打印与发行","publish.fmt.txt":"纯文本文件","settings.font":"字体","settings.accentColor":"强调色","settings.customColor":"自定义颜色","settings.resetColor":"重置","settings.agents":"已注册智能体","settings.commands":"可用命令","settings.completedChapters":"已完成章节","settings.currentPhase":"当前阶段","settings.fieldGenre":"类型","settings.fieldLanguage":"语言","settings.fieldPath":"路径","settings.fieldTitle":"标题","settings.fieldUpdated":"最后更新","settings.phaseStatus":"阶段进度状态","settings.projectInfo":"项目信息","settings.targetWords":"目标字数","settings.targets":"目标","settings.totalChapters":"总章节数","status.complete":"已完成","status.currentTask":"当前任务","status.idle":"空闲中","status.lastRun":"最后运行","status.noAgents":"暂无智能体数据","status.noAgentsHint":"请在 status.json 中添加 agents 数组","status.running":"运行中","status.pending":"待处理","view.drafts":"初稿","view.edits":"编辑流水线","view.help":"帮助与参考","view.outline":"大纲","view.overview":"概览","view.publish":"出版","view.settings":"设置","view.status":"智能体状态","genre.fiction.name":"小说","genre.fiction.structure":"Save the Cat! 15拍 / 三幕结构","genre.fiction.h1":"场景生成","genre.fiction.h2":"节拍表验证","genre.fiction.h3":"角色弧线","genre.fiction.tip":"先用 /book-ideation 发展你的设定，再用 /book-outline 创建节拍表。","genre.nonfiction.name":"非虚构","genre.nonfiction.structure":"问题 → 原理 → 实践 → 进阶","genre.nonfiction.h1":"基于证据的结构","genre.nonfiction.h2":"研究整合","genre.nonfiction.h3":"案例分析","genre.nonfiction.tip":"在运行 /book-outline 之前，请先将参考资料整理到 sources/ 目录。","genre.technical.name":"技术书","genre.technical.structure":"入门 (15%) → 基础 (25%) → 实践 (30%) → 进阶 (20%) → 参考 (10%)","genre.technical.h1":"代码示例","genre.technical.h2":"渐进式难度","genre.technical.h3":"动手练习","genre.technical.tip":"将代码示例放入 sources/ 并在撰写初稿时引用。","genre.screenplay.name":"剧本","genre.screenplay.structure":"三幕 (110页) + 8序列法","genre.screenplay.h1":"逐场分解","genre.screenplay.h2":"对白聚焦","genre.screenplay.h3":"视觉叙事","genre.screenplay.tip":"先用 /book-ideation 构思一句话梗概，再进行大纲构建。","genre.poetry.name":"诗歌","genre.poetry.structure":"诗集脉络：开篇 → 中核 → 收束","genre.poetry.h1":"主题分组","genre.poetry.h2":"韵律与格律验证","genre.poetry.h3":"诗集整体流向","genre.poetry.tip":"单篇诗歌放入 drafts/ — 大纲定义诗集整体结构。","genre.game.name":"游戏叙事","genre.game.structure":"主线 (60%) + 支线任务 (30%) + 隐藏内容 (10%)","genre.game.h1":"分支对话","genre.game.h2":"世界观构建","genre.game.h3":"玩家自主性","genre.game.tip":"在运行 /book-outline 之前，先在 PRD.md 中定义主要分支。","genre.academic.name":"学术论文","genre.academic.structure":"IMRAD：引言 → 方法 → 结果 → 讨论","genre.academic.h1":"引用管理","genre.academic.h2":"方法论验证","genre.academic.h3":"同行评审准备","genre.academic.tip":"将研究论文放入 sources/ 以便撰写初稿时引用。"},Bl={"agent.book-architect":"Agente de diseño estructural y planificación de índice","agent.chapter-writer":"Agente de generación de borradores por capítulo","agent.continuity-editor":"Agente de verificación de coherencia entre capítulos","agent.cover-designer":"Agente de diseño de portada e identidad de marca","agent.marketing-expert":"Agente de descripción del libro y copy de marketing","agent.scene-generator":"Agente de generación y expansión de escenas (solo ficción)","agent.style-doctor":"Agente de coherencia de estilo y detección de clichés de IA","app.autoRefresh":"Actualización automática 5s","app.backToLive":"Volver a datos en vivo","app.clickHint":"Haz clic en cualquier comando o capítulo para copiar","app.clickHintShort":"Toca para copiar","app.copied":"Copiado al portapapeles","app.exampleBanner":"Mostrando datos de ejemplo — estos no son los datos de tu proyecto real.","app.exampleMode":"Modo de ejemplo","app.generated":"Generado","app.hoursAgo":"hace {n}h","app.justNow":"ahora mismo","app.loading":"Cargando...","app.minutesAgo":"hace {n} min","app.noData":"Sin datos de proyecto","app.noDataCmd":"/book-status","app.noDataHint":"Ejecuta /book-status en tu sesión de Claude Code para generar datos del panel.","app.noProject":"Sin proyectos de libro.","app.noProjectSidebar":"Sin proyecto","app.refresh":"Actualizar","app.refreshFailed":"Error al actualizar","app.retrying":"Reintentando...","app.sampleData":"Mostrando datos de ejemplo (status.json falló: {error})","app.selectProject":"Selecciona un proyecto","app.stale":"Datos de hace {n} min · ejecuta /book-status para actualizar","app.viewExample":"Ver ejemplo →","chStatus.draft":"Borrador","chStatus.edit":"Edición completa","chStatus.wait":"En espera","cmd.draft.desc":"Escribir borradores de capítulos","cmd.draft.label":"Borrador","cmd.draft.long":"Escribir borradores de capítulos — admite todos / capítulos específicos / continuación","cmd.edit.desc":"Pipeline de edición en 5 etapas","cmd.edit.label":"Editar","cmd.edit.long":"Pulir borradores mediante el pipeline de edición en 5 etapas","cmd.editChapter":"/book-edit {file} — editar este capítulo","cmd.genre-creator.desc":"Crear un género personalizado","cmd.genre-creator.label":"Creador de género","cmd.genre-creator.long":"Definir un nuevo género con su propia estructura, agentes y flujo de trabajo","cmd.ideation.desc":"Explorar conceptos y validar ideas","cmd.ideation.label":"Ideación","cmd.ideation.long":"Exploración de conceptos, análisis de nichos de mercado y validación de ideas para el libro","cmd.init.desc":"Inicializar nuevo proyecto de libro","cmd.init.label":"Inicializar","cmd.init.long":"Crear estructura de directorios y plantillas para un nuevo proyecto de libro","cmd.outline.desc":"Generar y validar índice","cmd.outline.label":"Índice","cmd.outline.long":"Generar y validar el índice a partir del PRD y materiales de referencia","cmd.publish.desc":"Empaquetar EPUB · PDF · MOBI","cmd.publish.label":"Publicar","cmd.publish.long":"Empaquetar para publicación — EPUB, PDF, metadatos, candidatos de título","cmd.redraft":"/book-draft {file} — reescribir este capítulo","cmd.redraftWait":"/book-draft {file} — redactar este capítulo","cmd.status.desc":"Panel de progreso","cmd.status.label":"Estado","cmd.status.long":"Ver estado actual y panel de progreso","drafts.file":"Archivo","drafts.lines":"Líneas","drafts.progress":"Progreso general","drafts.status":"Estado","drafts.title":"Título","drafts.total":"Total","drafts.wordOf":"/ {n} palabras","drafts.words":"Palabras","edits.inPipeline":"{n} capítulos en pipeline de edición","edit.stage.assessment":"Evaluación","edit.stage.developmental":"Desarrollo","edit.stage.lineEdit":"Edición de línea","edit.stage.copyEdit":"Corrección","edit.stage.proofread":"Prueba","edits.stageProgress":"Etapas de edición por capítulo","help.agents":"Referencia de agentes","help.allGenres":"Todos los géneros","help.customGenre":"Género personalizado — usa el flujo de trabajo predeterminado. Consulta CONTRIBUTING.md para añadir plantillas específicas por género.","help.genreWorkflow":"Flujo de trabajo por género","help.keyFeatures":"Características principales","help.pipelineOverview":"Vista general del pipeline","help.phase":"Fase {n}","help.utility":"Utilidad","help.pipelineTip":"Cada fase se basa en la anterior. Ejecuta las fases en orden para obtener los mejores resultados. Los comandos de fase se pueden volver a ejecutar en cualquier momento.","help.qs.draft":"Escribir borradores de capítulos en paralelo","help.qs.edit":"Ejecutar pipeline de edición en 5 etapas","help.qs.ideation":"Explorar conceptos y validar ideas","help.qs.init":"Configurar directorio del proyecto y plantillas","help.qs.outline":"Generar estructura específica del género","help.qs.publish":"Empaquetar resultado final","help.quickStart":"Inicio rápido","help.skills":"Referencia de habilidades","help.structure":"Plantilla de estructura","help.subtitle":"Flujos de trabajo por género, agentes disponibles y referencia de habilidades para tu proyecto.","help.title":"Ayuda y referencia","nav.drafts":"Borradores","nav.edits":"Edición","nav.help":"Ayuda","nav.outline":"Índice","nav.overview":"Resumen","nav.publish":"Publicar","nav.settings":"Ajustes","nav.status":"Agentes","outline.addChapter":"Añadir capítulo","outline.noChapters":"Sin capítulos","outline.noChaptersHint":"Ejecuta /book-outline para generar un índice","outline.syncPRD":"Sincronizar PRD","outline.wordOf":"/ {n} palabras","outline.words":"palabras","overview.chapterOf":"/ {n} capítulos","overview.chapters":"Capítulos","overview.commands":"Comandos rápidos","overview.currentPhase":"Fase actual","overview.pipeline":"Pipeline de escritura","overview.updated":"Actualizado","overview.wordOf":"/ {n} objetivo","overview.words":"Palabras","phase.drafting":"Borrador","phase.editing":"Edición","phase.ideation":"Ideación","phase.onboarding":"Configuración","phase.outlining":"Índice","phase.publishing":"Publicación","publish.check.allDrafts":"Todos los capítulos en borrador","publish.check.editingDone":"Pipeline de edición completo","publish.check.editingPhaseDone":"Fase de edición completa","publish.check.outlineDone":"Fase de índice completa","publish.check.wordTarget":"Objetivo de palabras alcanzado","publish.checklist":"Lista de verificación de publicación","publish.download":"Descargar","publish.ready":"Listo","publish.pending":"Pendiente","publish.filesReady":"{ready} / {total} archivos listos","publish.fmt.epub":"Formato estándar de eBook","publish.fmt.md":"Fuente Markdown","publish.fmt.mobi":"Formato Kindle","publish.fmt.pdf":"Para impresión y distribución","publish.fmt.txt":"Texto plano","settings.font":"Fuente","settings.accentColor":"Color de acento","settings.customColor":"Color personalizado","settings.resetColor":"Restablecer","settings.agents":"Agentes registrados","settings.commands":"Comandos disponibles","settings.completedChapters":"Capítulos completados","settings.currentPhase":"Fase actual","settings.fieldGenre":"Género","settings.fieldLanguage":"Idioma","settings.fieldPath":"Ruta","settings.fieldTitle":"Título","settings.fieldUpdated":"Última actualización","settings.phaseStatus":"Estado de fases","settings.projectInfo":"Información del proyecto","settings.targetWords":"Objetivo de palabras","settings.targets":"Objetivos","settings.totalChapters":"Total de capítulos","status.complete":"Completado","status.currentTask":"Tarea actual","status.idle":"Inactivo","status.lastRun":"Última ejecución","status.noAgents":"Sin datos de agentes","status.noAgentsHint":"Añade un array de agents a status.json","status.running":"En ejecución","status.pending":"Pendiente","view.drafts":"Borradores","view.edits":"Pipeline de edición","view.help":"Ayuda y referencia","view.outline":"Índice","view.overview":"Resumen","view.publish":"Publicar","view.settings":"Ajustes","view.status":"Estado de agentes","genre.fiction.name":"Ficción","genre.fiction.structure":"Save the Cat! 15 latidos / Estructura de 3 actos","genre.fiction.h1":"Generación de escenas","genre.fiction.h2":"Validación de hoja de latidos","genre.fiction.h3":"Arcos de personajes","genre.fiction.tip":"Comienza con /book-ideation para desarrollar tu premisa, luego /book-outline para la hoja de latidos.","genre.nonfiction.name":"No ficción","genre.nonfiction.structure":"Problema → Principios → Práctica → Avanzado","genre.nonfiction.h1":"Estructura basada en evidencia","genre.nonfiction.h2":"Integración de investigación","genre.nonfiction.h3":"Casos de estudio","genre.nonfiction.tip":"Reúne materiales de referencia en sources/ antes de ejecutar /book-outline.","genre.technical.name":"Técnico","genre.technical.structure":"Introducción (15%) → Fundamentos (25%) → Práctica (30%) → Avanzado (20%) → Referencia (10%)","genre.technical.h1":"Ejemplos de código","genre.technical.h2":"Dificultad progresiva","genre.technical.h3":"Ejercicios prácticos","genre.technical.tip":"Coloca ejemplos de código en sources/ y referéncialos durante la redacción.","genre.screenplay.name":"Guion","genre.screenplay.structure":"3 actos (110 pp) + Método de 8 secuencias","genre.screenplay.h1":"Desglose escena por escena","genre.screenplay.h2":"Enfoque en diálogos","genre.screenplay.h3":"Narrativa visual","genre.screenplay.tip":"Usa /book-ideation para desarrollar la logline antes de crear el índice.","genre.poetry.name":"Poesía","genre.poetry.structure":"Arco de la colección: Apertura → Centro → Resolución","genre.poetry.h1":"Agrupación temática","genre.poetry.h2":"Validación de ritmo y métrica","genre.poetry.h3":"Flujo de la colección","genre.poetry.tip":"Los poemas individuales van en drafts/ — el índice define la estructura de la colección.","genre.game.name":"Narrativa de juego","genre.game.structure":"Ruta principal (60%) + Misiones secundarias (30%) + Oculto (10%)","genre.game.h1":"Diálogos ramificados","genre.game.h2":"Construcción de mundo","genre.game.h3":"Agencia del jugador","genre.game.tip":"Define las ramas principales en PRD.md antes de ejecutar /book-outline.","genre.academic.name":"Académico","genre.academic.structure":"IMRAD: Introducción → Métodos → Resultados → Discusión","genre.academic.h1":"Gestión de citas","genre.academic.h2":"Validación de metodología","genre.academic.h3":"Preparación para revisión por pares","genre.academic.tip":"Coloca los artículos de investigación en sources/ para citarlos durante la redacción."},Ll={"agent.book-architect":"Agent de conception structurelle et de planification du plan","agent.chapter-writer":"Agent de génération de brouillons chapitre par chapitre","agent.continuity-editor":"Agent de vérification de la cohérence entre chapitres","agent.cover-designer":"Agent de conception de couverture et d'identité visuelle","agent.marketing-expert":"Agent de rédaction de présentation du livre et de textes marketing","agent.scene-generator":"Agent de génération et d'expansion de scènes (fiction uniquement)","agent.style-doctor":"Agent de cohérence stylistique et de détection des clichés IA","app.autoRefresh":"Actualisation automatique 5s","app.backToLive":"Retour aux données en direct","app.clickHint":"Cliquez sur une commande ou un chapitre pour copier","app.clickHintShort":"Appuyez pour copier","app.copied":"Copié dans le presse-papiers","app.exampleBanner":"Affichage de données d'exemple — ce ne sont pas les données de votre projet réel.","app.exampleMode":"Mode exemple","app.generated":"Généré","app.hoursAgo":"il y a {n}h","app.justNow":"à l'instant","app.loading":"Chargement...","app.minutesAgo":"il y a {n} min","app.noData":"Aucune donnée de projet","app.noDataCmd":"/book-status","app.noDataHint":"Exécutez /book-status dans votre session Claude Code pour générer les données du tableau de bord.","app.noProject":"Aucun projet de livre.","app.noProjectSidebar":"Aucun projet","app.refresh":"Actualiser","app.refreshFailed":"Échec de l'actualisation","app.retrying":"Nouvelle tentative...","app.sampleData":"Affichage de données d'exemple (échec de status.json : {error})","app.selectProject":"Sélectionner un projet","app.stale":"Données vieilles de {n} min · exécutez /book-status pour mettre à jour","app.viewExample":"Voir l'exemple →","chStatus.draft":"Brouillon","chStatus.edit":"Révision terminée","chStatus.wait":"En attente","cmd.draft.desc":"Rédiger les brouillons de chapitres","cmd.draft.label":"Brouillon","cmd.draft.long":"Rédiger les brouillons — prend en charge tous les chapitres / chapitres spécifiques / reprise","cmd.edit.desc":"Pipeline de révision en 5 étapes","cmd.edit.label":"Réviser","cmd.edit.long":"Affiner les brouillons via le pipeline de révision en 5 étapes","cmd.editChapter":"/book-edit {file} — réviser ce chapitre","cmd.genre-creator.desc":"Créer un genre personnalisé","cmd.genre-creator.label":"Créateur de genre","cmd.genre-creator.long":"Définir un nouveau genre avec sa propre structure, ses agents et son flux de travail","cmd.ideation.desc":"Explorer des concepts et valider des idées","cmd.ideation.label":"Idéation","cmd.ideation.long":"Exploration de concepts, analyse des niches de marché et validation de l'idée de livre","cmd.init.desc":"Initialiser un nouveau projet de livre","cmd.init.label":"Initialiser","cmd.init.long":"Créer la structure de répertoires et les modèles pour un nouveau projet de livre","cmd.outline.desc":"Générer et valider le plan","cmd.outline.label":"Plan","cmd.outline.long":"Générer et valider le plan à partir du PRD et des sources","cmd.publish.desc":"Packager EPUB · PDF · MOBI","cmd.publish.label":"Publier","cmd.publish.long":"Packager pour la publication — EPUB, PDF, métadonnées, candidats de titre","cmd.redraft":"/book-draft {file} — réécrire ce chapitre","cmd.redraftWait":"/book-draft {file} — rédiger ce chapitre","cmd.status.desc":"Tableau de bord de progression","cmd.status.label":"Statut","cmd.status.long":"Afficher le statut actuel et le tableau de bord de progression","drafts.file":"Fichier","drafts.lines":"Lignes","drafts.progress":"Progression globale","drafts.status":"Statut","drafts.title":"Titre","drafts.total":"Total","drafts.wordOf":"/ {n} mots","drafts.words":"Mots","edits.inPipeline":"{n} chapitres dans le pipeline de révision","edit.stage.assessment":"Évaluation","edit.stage.developmental":"Développement","edit.stage.lineEdit":"Édition de ligne","edit.stage.copyEdit":"Révision","edit.stage.proofread":"Correction d'épreuves","edits.stageProgress":"Étapes de révision par chapitre","help.agents":"Référence des agents","help.allGenres":"Tous les genres","help.customGenre":"Genre personnalisé — utilise le flux de travail par défaut. Voir CONTRIBUTING.md pour ajouter des modèles spécifiques au genre.","help.genreWorkflow":"Flux de travail par genre","help.keyFeatures":"Fonctionnalités clés","help.pipelineOverview":"Vue d'ensemble du pipeline","help.phase":"Phase {n}","help.utility":"Utilitaire","help.pipelineTip":"Chaque phase s'appuie sur la précédente. L'exécution dans l'ordre donne les meilleurs résultats. Les commandes de phase peuvent être réexécutées à tout moment.","help.qs.draft":"Rédiger les brouillons de chapitres en parallèle","help.qs.edit":"Exécuter le pipeline de révision en 5 étapes","help.qs.ideation":"Explorer des concepts et valider des idées","help.qs.init":"Configurer le répertoire du projet et les modèles","help.qs.outline":"Générer la structure spécifique au genre","help.qs.publish":"Packager le résultat final","help.quickStart":"Démarrage rapide","help.skills":"Référence des compétences","help.structure":"Modèle de structure","help.subtitle":"Flux de travail par genre, agents disponibles et référence des compétences pour votre projet.","help.title":"Aide & Référence","nav.drafts":"Brouillons","nav.edits":"Révision","nav.help":"Aide","nav.outline":"Plan","nav.overview":"Vue d'ensemble","nav.publish":"Publier","nav.settings":"Paramètres","nav.status":"Agents","outline.addChapter":"Ajouter un chapitre","outline.noChapters":"Aucun chapitre","outline.noChaptersHint":"Exécutez /book-outline pour générer un plan","outline.syncPRD":"Synchroniser le PRD","outline.wordOf":"/ {n} mots","outline.words":"mots","overview.chapterOf":"/ {n} chapitres","overview.chapters":"Chapitres","overview.commands":"Commandes rapides","overview.currentPhase":"Phase actuelle","overview.pipeline":"Pipeline d'écriture","overview.updated":"Mis à jour","overview.wordOf":"/ {n} objectif","overview.words":"Nombre de mots","phase.drafting":"Rédaction","phase.editing":"Révision","phase.ideation":"Idéation","phase.onboarding":"Préparation","phase.outlining":"Planification","phase.publishing":"Publication","publish.check.allDrafts":"Tous les chapitres rédigés","publish.check.editingDone":"Pipeline de révision terminé","publish.check.editingPhaseDone":"Phase de révision terminée","publish.check.outlineDone":"Phase de planification terminée","publish.check.wordTarget":"Objectif de mots atteint","publish.checklist":"Liste de contrôle de publication","publish.download":"Télécharger","publish.ready":"Prêt","publish.pending":"En attente","publish.filesReady":"{ready} / {total} fichiers prêts","publish.fmt.epub":"Format eBook standard","publish.fmt.md":"Source Markdown","publish.fmt.mobi":"Format Kindle","publish.fmt.pdf":"Pour impression et distribution","publish.fmt.txt":"Texte brut","settings.font":"Police","settings.accentColor":"Couleur d'accent","settings.customColor":"Couleur personnalisée","settings.resetColor":"Réinitialiser","settings.agents":"Agents enregistrés","settings.commands":"Commandes disponibles","settings.completedChapters":"Chapitres terminés","settings.currentPhase":"Phase actuelle","settings.fieldGenre":"Genre","settings.fieldLanguage":"Langue","settings.fieldPath":"Chemin","settings.fieldTitle":"Titre","settings.fieldUpdated":"Dernière mise à jour","settings.phaseStatus":"Statut des phases","settings.projectInfo":"Informations sur le projet","settings.targetWords":"Objectif de mots","settings.targets":"Objectifs","settings.totalChapters":"Total des chapitres","status.complete":"Terminé","status.currentTask":"Tâche actuelle","status.idle":"Inactif","status.lastRun":"Dernière exécution","status.noAgents":"Aucune donnée d'agent","status.noAgentsHint":"Ajoutez un tableau agents dans status.json","status.running":"En cours","status.pending":"En attente","view.drafts":"Brouillons","view.edits":"Pipeline de révision","view.help":"Aide & Référence","view.outline":"Plan","view.overview":"Vue d'ensemble","view.publish":"Publier","view.settings":"Paramètres","view.status":"Statut des agents","genre.fiction.name":"Fiction","genre.fiction.structure":"Save the Cat! 15 temps / Structure en 3 actes","genre.fiction.h1":"Génération de scènes","genre.fiction.h2":"Validation de la feuille de temps","genre.fiction.h3":"Arcs des personnages","genre.fiction.tip":"Commencez par /book-ideation pour développer votre prémisse, puis /book-outline pour la feuille de temps.","genre.nonfiction.name":"Non-fiction","genre.nonfiction.structure":"Problème → Principes → Pratique → Avancé","genre.nonfiction.h1":"Structure fondée sur les preuves","genre.nonfiction.h2":"Intégration de la recherche","genre.nonfiction.h3":"Études de cas","genre.nonfiction.tip":"Rassemblez les sources dans sources/ avant d'exécuter /book-outline.","genre.technical.name":"Technique","genre.technical.structure":"Introduction (15%) → Fondements (25%) → Pratique (30%) → Avancé (20%) → Référence (10%)","genre.technical.h1":"Exemples de code","genre.technical.h2":"Difficulté progressive","genre.technical.h3":"Exercices pratiques","genre.technical.tip":"Placez les exemples de code dans sources/ et référencez-les pendant la rédaction.","genre.screenplay.name":"Scénario","genre.screenplay.structure":"3 actes (110 p.) + Méthode des 8 séquences","genre.screenplay.h1":"Décomposition scène par scène","genre.screenplay.h2":"Accent sur les dialogues","genre.screenplay.h3":"Narration visuelle","genre.screenplay.tip":"Utilisez /book-ideation pour développer le logline avant la planification.","genre.poetry.name":"Poésie","genre.poetry.structure":"Arc du recueil : Ouverture → Centre → Résolution","genre.poetry.h1":"Regroupement thématique","genre.poetry.h2":"Validation du rythme et de la métrique","genre.poetry.h3":"Flux du recueil","genre.poetry.tip":"Les poèmes individuels vont dans drafts/ — le plan définit la structure du recueil.","genre.game.name":"Narration de jeu","genre.game.structure":"Chemin principal (60%) + Quêtes secondaires (30%) + Caché (10%)","genre.game.h1":"Dialogues ramifiés","genre.game.h2":"Construction de l'univers","genre.game.h3":"Libre choix du joueur","genre.game.tip":"Définissez les branches principales dans PRD.md avant d'exécuter /book-outline.","genre.academic.name":"Académique","genre.academic.structure":"IMRAD : Introduction → Méthodes → Résultats → Discussion","genre.academic.h1":"Gestion des citations","genre.academic.h2":"Validation de la méthodologie","genre.academic.h3":"Préparation à la relecture par les pairs","genre.academic.tip":"Placez les articles de recherche dans sources/ pour les citer pendant la rédaction."},Hl={"agent.book-architect":"Agent für Strukturdesign und Gliederungsplanung","agent.chapter-writer":"Agent für die kapitelweise Entwurfsgenerierung","agent.continuity-editor":"Agent für kapitelübergreifende Konsistenz- und Kontinuitätsprüfung","agent.cover-designer":"Agent für Cover-Design und Markenidentität","agent.marketing-expert":"Agent für Buchbeschreibung und Marketingtexte","agent.scene-generator":"Agent für Szenenentwicklung und -erweiterung (nur Fiktion)","agent.style-doctor":"Agent für Stilkonsistenz und KI-Klischeerkennung","app.autoRefresh":"Auto-Aktualisierung 5s","app.backToLive":"Zurück zu Live-Daten","app.clickHint":"Befehl oder Kapitel anklicken zum Kopieren","app.clickHintShort":"Tippen zum Kopieren","app.copied":"In Zwischenablage kopiert","app.exampleBanner":"Beispieldaten werden angezeigt — dies sind keine echten Projektdaten.","app.exampleMode":"Beispielmodus","app.generated":"Generiert","app.hoursAgo":"vor {n} Std.","app.justNow":"gerade eben","app.loading":"Wird geladen...","app.minutesAgo":"vor {n} Min.","app.noData":"Keine Projektdaten","app.noDataCmd":"/book-status","app.noDataHint":"Führe /book-status in deiner Claude Code-Sitzung aus, um Dashboard-Daten zu generieren.","app.noProject":"Keine Buchprojekte.","app.noProjectSidebar":"Kein Projekt","app.refresh":"Aktualisieren","app.refreshFailed":"Aktualisierung fehlgeschlagen","app.retrying":"Erneuter Versuch...","app.sampleData":"Beispieldaten werden angezeigt (status.json fehlgeschlagen: {error})","app.selectProject":"Projekt auswählen","app.stale":"Daten sind {n} Min. alt · /book-status zum Aktualisieren ausführen","app.viewExample":"Beispiel ansehen →","chStatus.draft":"Entwurf","chStatus.edit":"Bearbeitung abgeschlossen","chStatus.wait":"Wartend","cmd.draft.desc":"Kapitelentwürfe schreiben","cmd.draft.label":"Entwurf","cmd.draft.long":"Kapitelentwürfe schreiben — unterstützt alle / bestimmte Kapitel / Fortsetzung","cmd.edit.desc":"5-stufige Bearbeitungs-Pipeline","cmd.edit.label":"Bearbeiten","cmd.edit.long":"Entwürfe durch die 5-stufige Bearbeitungs-Pipeline überarbeiten","cmd.editChapter":"/book-edit {file} — dieses Kapitel bearbeiten","cmd.genre-creator.desc":"Eigenes Genre erstellen","cmd.genre-creator.label":"Genre-Ersteller","cmd.genre-creator.long":"Ein neues Genre mit eigener Struktur, Agenten und Workflow definieren","cmd.ideation.desc":"Konzepte erkunden und Ideen validieren","cmd.ideation.label":"Ideenfindung","cmd.ideation.long":"Konzeptexploration, Marktlückenanalyse und Buchideen-Validierung durchführen","cmd.init.desc":"Neues Buchprojekt initialisieren","cmd.init.label":"Initialisieren","cmd.init.long":"Verzeichnisstruktur und Vorlagen für ein neues Buchprojekt einrichten","cmd.outline.desc":"Gliederung erstellen und prüfen","cmd.outline.label":"Gliederung","cmd.outline.long":"Gliederung aus PRD und Quellmaterial erstellen und validieren","cmd.publish.desc":"EPUB · PDF · MOBI verpacken","cmd.publish.label":"Veröffentlichen","cmd.publish.long":"Für die Veröffentlichung verpacken — EPUB, PDF, Metadaten, Titelkandidaten","cmd.redraft":"/book-draft {file} — dieses Kapitel neu schreiben","cmd.redraftWait":"/book-draft {file} — Entwurf für dieses Kapitel erstellen","cmd.status.desc":"Fortschritts-Dashboard","cmd.status.label":"Status","cmd.status.long":"Aktuellen Arbeitsstatus und Fortschritts-Dashboard anzeigen","drafts.file":"Datei","drafts.lines":"Zeilen","drafts.progress":"Gesamtfortschritt","drafts.status":"Status","drafts.title":"Titel","drafts.total":"Gesamt","drafts.wordOf":"/ {n} Wörter","drafts.words":"Wörter","edits.inPipeline":"{n} Kapitel in Bearbeitungs-Pipeline","edit.stage.assessment":"Bewertung","edit.stage.developmental":"Entwicklung","edit.stage.lineEdit":"Zeilenbearbeitung","edit.stage.copyEdit":"Korrekturedaktion","edit.stage.proofread":"Fahnenkorrektur","edits.stageProgress":"Bearbeitungsstufen je Kapitel","help.agents":"Agenten-Referenz","help.allGenres":"Alle Genres","help.customGenre":"Eigenes Genre — verwendet den Standard-Workflow. Siehe CONTRIBUTING.md zum Hinzufügen genrespezifischer Vorlagen.","help.genreWorkflow":"Genre-Workflow","help.keyFeatures":"Hauptfunktionen","help.pipelineOverview":"Pipeline-Übersicht","help.phase":"Phase {n}","help.utility":"Hilfsprogramm","help.pipelineTip":"Jede Phase baut auf der vorherigen auf. Bei sequenzieller Ausführung werden die besten Ergebnisse erzielt. Phasenbefehle können jederzeit erneut ausgeführt werden.","help.qs.draft":"Kapitelentwürfe parallel schreiben","help.qs.edit":"5-stufige Bearbeitungs-Pipeline ausführen","help.qs.ideation":"Konzepte erkunden und Ideen validieren","help.qs.init":"Projektverzeichnis und Vorlagen einrichten","help.qs.outline":"Genrespezifische Struktur generieren","help.qs.publish":"Endergebnis verpacken","help.quickStart":"Schnellstart","help.skills":"Skill-Referenz","help.structure":"Strukturvorlage","help.subtitle":"Genrespezifische Workflows, verfügbare Agenten und Skill-Referenz für dein Projekt.","help.title":"Hilfe & Referenz","nav.drafts":"Entwürfe","nav.edits":"Bearbeitung","nav.help":"Hilfe","nav.outline":"Gliederung","nav.overview":"Übersicht","nav.publish":"Veröffentlichen","nav.settings":"Einstellungen","nav.status":"Agenten","outline.addChapter":"Kapitel hinzufügen","outline.noChapters":"Keine Kapitel","outline.noChaptersHint":"/book-outline ausführen, um eine Gliederung zu erstellen","outline.syncPRD":"PRD synchronisieren","outline.wordOf":"/ {n} Wörter","outline.words":"Wörter","overview.chapterOf":"/ {n} Kapitel","overview.chapters":"Kapitel","overview.commands":"Schnellbefehle","overview.currentPhase":"Aktuelle Phase","overview.pipeline":"Schreib-Pipeline","overview.updated":"Aktualisiert","overview.wordOf":"/ {n} Ziel","overview.words":"Wörter","phase.drafting":"Entwurf","phase.editing":"Bearbeitung","phase.ideation":"Ideenfindung","phase.onboarding":"Einrichtung","phase.outlining":"Gliederung","phase.publishing":"Veröffentlichung","publish.check.allDrafts":"Alle Kapitelentwürfe abgeschlossen","publish.check.editingDone":"Bearbeitungs-Pipeline abgeschlossen","publish.check.editingPhaseDone":"Bearbeitungsphase abgeschlossen","publish.check.outlineDone":"Gliederungsphase abgeschlossen","publish.check.wordTarget":"Wortziel erreicht","publish.checklist":"Veröffentlichungs-Checkliste","publish.download":"Herunterladen","publish.ready":"Bereit","publish.pending":"Ausstehend","publish.filesReady":"{ready} / {total} Dateien bereit","publish.fmt.epub":"eBook-Standardformat","publish.fmt.md":"Markdown-Quelle","publish.fmt.mobi":"Kindle-Format","publish.fmt.pdf":"Für Druck & Vertrieb","publish.fmt.txt":"Nur-Text","settings.font":"Schriftart","settings.accentColor":"Akzentfarbe","settings.customColor":"Benutzerdefinierte Farbe","settings.resetColor":"Zurücksetzen","settings.agents":"Registrierte Agenten","settings.commands":"Verfügbare Befehle","settings.completedChapters":"Abgeschlossene Kapitel","settings.currentPhase":"Aktuelle Phase","settings.fieldGenre":"Genre","settings.fieldLanguage":"Sprache","settings.fieldPath":"Pfad","settings.fieldTitle":"Titel","settings.fieldUpdated":"Zuletzt aktualisiert","settings.phaseStatus":"Phasenstatus","settings.projectInfo":"Projektinfo","settings.targetWords":"Wortziel","settings.targets":"Ziele","settings.totalChapters":"Kapitel gesamt","status.complete":"Abgeschlossen","status.currentTask":"Aktuelle Aufgabe","status.idle":"Inaktiv","status.lastRun":"Zuletzt ausgeführt","status.noAgents":"Keine Agentendaten","status.noAgentsHint":"agents-Array zu status.json hinzufügen","status.running":"Läuft","status.pending":"Ausstehend","view.drafts":"Entwürfe","view.edits":"Bearbeitungs-Pipeline","view.help":"Hilfe & Referenz","view.outline":"Gliederung","view.overview":"Übersicht","view.publish":"Veröffentlichen","view.settings":"Einstellungen","view.status":"Agentenstatus","genre.fiction.name":"Belletristik","genre.fiction.structure":"Save the Cat! 15-Beat / 3-Akten-Struktur","genre.fiction.h1":"Szenen-Generierung","genre.fiction.h2":"Beat-Sheet-Validierung","genre.fiction.h3":"Charakterbögen","genre.fiction.tip":"Starte mit /book-ideation zur Entwicklung deiner Prämisse, dann /book-outline für das Beat-Sheet.","genre.nonfiction.name":"Sachbuch","genre.nonfiction.structure":"Problem → Prinzipien → Praxis → Fortgeschritten","genre.nonfiction.h1":"Evidenzbasierte Struktur","genre.nonfiction.h2":"Recherche-Integration","genre.nonfiction.h3":"Fallstudien","genre.nonfiction.tip":"Sammle Quellmaterial in sources/, bevor du /book-outline ausführst.","genre.technical.name":"Fachbuch","genre.technical.structure":"Einführung (15%) → Grundlagen (25%) → Praxis (30%) → Fortgeschritten (20%) → Referenz (10%)","genre.technical.h1":"Codebeispiele","genre.technical.h2":"Progressiver Schwierigkeitsgrad","genre.technical.h3":"Praktische Übungen","genre.technical.tip":"Lege Codebeispiele in sources/ ab und referenziere sie beim Schreiben.","genre.screenplay.name":"Drehbuch","genre.screenplay.structure":"3-Akt (110 S.) + 8-Sequenz-Methode","genre.screenplay.h1":"Szenenbezogene Aufschlüsselung","genre.screenplay.h2":"Dialogfokus","genre.screenplay.h3":"Visuelles Erzählen","genre.screenplay.tip":"Nutze /book-ideation zur Entwicklung des Loglines vor der Gliederung.","genre.poetry.name":"Lyrik","genre.poetry.structure":"Sammlungsbogen: Eröffnung → Zentrum → Abschluss","genre.poetry.h1":"Thematische Gruppierung","genre.poetry.h2":"Rhythmus- und Metrikvalidierung","genre.poetry.h3":"Sammlungsfluss","genre.poetry.tip":"Einzelne Gedichte gehören in drafts/ — die Gliederung definiert die Sammlungsstruktur.","genre.game.name":"Spiele-Erzählung","genre.game.structure":"Hauptpfad (60%) + Nebenquests (30%) + Versteckt (10%)","genre.game.h1":"Verzweigungsdialoge","genre.game.h2":"Weltaufbau","genre.game.h3":"Spielermöglichkeiten","genre.game.tip":"Definiere die Hauptverzweigungen in PRD.md, bevor du /book-outline ausführst.","genre.academic.name":"Wissenschaftlich","genre.academic.structure":"IMRAD: Einleitung → Methoden → Ergebnisse → Diskussion","genre.academic.h1":"Zitierverwaltung","genre.academic.h2":"Methodikvalidierung","genre.academic.h3":"Peer-Review-Vorbereitung","genre.academic.tip":"Lege Forschungsarbeiten in sources/ für Zitate beim Schreiben."},Vl={"agent.book-architect":"Agente de design estrutural e planejamento do índice","agent.chapter-writer":"Agente de geração de rascunhos capítulo por capítulo","agent.continuity-editor":"Agente de verificação de coerência entre capítulos","agent.cover-designer":"Agente de design de capa e identidade visual","agent.marketing-expert":"Agente de descrição do livro e textos de marketing","agent.scene-generator":"Agente de geração e expansão de cenas (apenas ficção)","agent.style-doctor":"Agente de consistência de estilo e detecção de clichês de IA","app.autoRefresh":"Atualização automática 5s","app.backToLive":"Voltar para dados ao vivo","app.clickHint":"Clique em qualquer comando ou capítulo para copiar","app.clickHintShort":"Toque para copiar","app.copied":"Copiado para a área de transferência","app.exampleBanner":"Exibindo dados de exemplo — estes não são os dados do seu projeto real.","app.exampleMode":"Modo de exemplo","app.generated":"Gerado","app.hoursAgo":"há {n}h","app.justNow":"agora mesmo","app.loading":"Carregando...","app.minutesAgo":"há {n} min","app.noData":"Sem dados de projeto","app.noDataCmd":"/book-status","app.noDataHint":"Execute /book-status na sua sessão Claude Code para gerar dados do painel.","app.noProject":"Sem projetos de livro.","app.noProjectSidebar":"Sem projeto","app.refresh":"Atualizar","app.refreshFailed":"Falha na atualização","app.retrying":"Tentando novamente...","app.sampleData":"Exibindo dados de exemplo (status.json falhou: {error})","app.selectProject":"Selecionar um projeto","app.stale":"Dados de há {n} min · execute /book-status para atualizar","app.viewExample":"Ver exemplo →","chStatus.draft":"Rascunho","chStatus.edit":"Revisão concluída","chStatus.wait":"Aguardando","cmd.draft.desc":"Escrever rascunhos dos capítulos","cmd.draft.label":"Rascunho","cmd.draft.long":"Escrever rascunhos dos capítulos — suporta todos / capítulos específicos / continuação","cmd.edit.desc":"Pipeline de revisão em 5 etapas","cmd.edit.label":"Revisar","cmd.edit.long":"Refinar rascunhos pelo pipeline de revisão em 5 etapas","cmd.editChapter":"/book-edit {file} — revisar este capítulo","cmd.genre-creator.desc":"Criar um gênero personalizado","cmd.genre-creator.label":"Criador de gênero","cmd.genre-creator.long":"Definir um novo gênero com estrutura, agentes e fluxo de trabalho dedicados","cmd.ideation.desc":"Explorar conceitos e validar ideias","cmd.ideation.label":"Ideação","cmd.ideation.long":"Exploração de conceitos, análise de lacunas de mercado e validação da ideia do livro","cmd.init.desc":"Inicializar novo projeto de livro","cmd.init.label":"Inicializar","cmd.init.long":"Criar estrutura de diretórios e modelos para um novo projeto de livro","cmd.outline.desc":"Gerar e validar o índice","cmd.outline.label":"Índice","cmd.outline.long":"Gerar e validar o índice a partir do PRD e materiais de referência","cmd.publish.desc":"Empacotar EPUB · PDF · MOBI","cmd.publish.label":"Publicar","cmd.publish.long":"Empacotar para publicação — EPUB, PDF, metadados, candidatos a título","cmd.redraft":"/book-draft {file} — reescrever este capítulo","cmd.redraftWait":"/book-draft {file} — redigir este capítulo","cmd.status.desc":"Painel de progresso","cmd.status.label":"Status","cmd.status.long":"Ver status atual e painel de progresso","drafts.file":"Arquivo","drafts.lines":"Linhas","drafts.progress":"Progresso geral","drafts.status":"Status","drafts.title":"Título","drafts.total":"Total","drafts.wordOf":"/ {n} palavras","drafts.words":"Palavras","edits.inPipeline":"{n} capítulos no pipeline de revisão","edit.stage.assessment":"Avaliação","edit.stage.developmental":"Desenvolvimento","edit.stage.lineEdit":"Edição de linha","edit.stage.copyEdit":"Revisão de texto","edit.stage.proofread":"Revisão final","edits.stageProgress":"Etapas de revisão por capítulo","help.agents":"Referência de agentes","help.allGenres":"Todos os gêneros","help.customGenre":"Gênero personalizado — usa o fluxo de trabalho padrão. Veja CONTRIBUTING.md para adicionar modelos específicos por gênero.","help.genreWorkflow":"Fluxo de trabalho por gênero","help.keyFeatures":"Funcionalidades principais","help.pipelineOverview":"Visão geral do pipeline","help.phase":"Fase {n}","help.utility":"Utilitário","help.pipelineTip":"Cada fase se baseia na anterior. Executar as fases em ordem gera os melhores resultados. Os comandos de fase podem ser reexecutados a qualquer momento.","help.qs.draft":"Escrever rascunhos de capítulos em paralelo","help.qs.edit":"Executar pipeline de revisão em 5 etapas","help.qs.ideation":"Explorar conceitos e validar ideias","help.qs.init":"Configurar diretório do projeto e modelos","help.qs.outline":"Gerar estrutura específica do gênero","help.qs.publish":"Empacotar resultado final","help.quickStart":"Início rápido","help.skills":"Referência de habilidades","help.structure":"Modelo de estrutura","help.subtitle":"Fluxos de trabalho por gênero, agentes disponíveis e referência de habilidades para o seu projeto.","help.title":"Ajuda & Referência","nav.drafts":"Rascunhos","nav.edits":"Revisão","nav.help":"Ajuda","nav.outline":"Índice","nav.overview":"Visão geral","nav.publish":"Publicar","nav.settings":"Configurações","nav.status":"Agentes","outline.addChapter":"Adicionar capítulo","outline.noChapters":"Sem capítulos","outline.noChaptersHint":"Execute /book-outline para gerar um índice","outline.syncPRD":"Sincronizar PRD","outline.wordOf":"/ {n} palavras","outline.words":"palavras","overview.chapterOf":"/ {n} capítulos","overview.chapters":"Capítulos","overview.commands":"Comandos rápidos","overview.currentPhase":"Fase atual","overview.pipeline":"Pipeline de escrita","overview.updated":"Atualizado","overview.wordOf":"/ {n} meta","overview.words":"Contagem de palavras","phase.drafting":"Rascunho","phase.editing":"Revisão","phase.ideation":"Ideação","phase.onboarding":"Configuração","phase.outlining":"Planejamento","phase.publishing":"Publicação","publish.check.allDrafts":"Todos os capítulos rascunhados","publish.check.editingDone":"Pipeline de revisão concluído","publish.check.editingPhaseDone":"Fase de revisão concluída","publish.check.outlineDone":"Fase de planejamento concluída","publish.check.wordTarget":"Meta de palavras atingida","publish.checklist":"Lista de verificação de publicação","publish.download":"Baixar","publish.ready":"Pronto","publish.pending":"Pendente","publish.filesReady":"{ready} / {total} arquivos prontos","publish.fmt.epub":"Formato padrão de eBook","publish.fmt.md":"Fonte Markdown","publish.fmt.mobi":"Formato Kindle","publish.fmt.pdf":"Para impressão e distribuição","publish.fmt.txt":"Texto simples","settings.font":"Fonte","settings.accentColor":"Cor de destaque","settings.customColor":"Cor personalizada","settings.resetColor":"Redefinir","settings.agents":"Agentes registrados","settings.commands":"Comandos disponíveis","settings.completedChapters":"Capítulos concluídos","settings.currentPhase":"Fase atual","settings.fieldGenre":"Gênero","settings.fieldLanguage":"Idioma","settings.fieldPath":"Caminho","settings.fieldTitle":"Título","settings.fieldUpdated":"Última atualização","settings.phaseStatus":"Status das fases","settings.projectInfo":"Informações do projeto","settings.targetWords":"Meta de palavras","settings.targets":"Metas","settings.totalChapters":"Total de capítulos","status.complete":"Concluído","status.currentTask":"Tarefa atual","status.idle":"Ocioso","status.lastRun":"Última execução","status.noAgents":"Sem dados de agentes","status.noAgentsHint":"Adicione um array agents ao status.json","status.running":"Em execução","status.pending":"Pendente","view.drafts":"Rascunhos","view.edits":"Pipeline de revisão","view.help":"Ajuda & Referência","view.outline":"Índice","view.overview":"Visão geral","view.publish":"Publicar","view.settings":"Configurações","view.status":"Status dos agentes","genre.fiction.name":"Ficção","genre.fiction.structure":"Save the Cat! 15 batidas / Estrutura de 3 atos","genre.fiction.h1":"Geração de cenas","genre.fiction.h2":"Validação da folha de batidas","genre.fiction.h3":"Arcos de personagens","genre.fiction.tip":"Comece com /book-ideation para desenvolver sua premissa, depois /book-outline para a folha de batidas.","genre.nonfiction.name":"Não ficção","genre.nonfiction.structure":"Problema → Princípios → Prática → Avançado","genre.nonfiction.h1":"Estrutura baseada em evidências","genre.nonfiction.h2":"Integração de pesquisa","genre.nonfiction.h3":"Estudos de caso","genre.nonfiction.tip":"Reúna materiais de referência em sources/ antes de executar /book-outline.","genre.technical.name":"Técnico","genre.technical.structure":"Introdução (15%) → Fundamentos (25%) → Prática (30%) → Avançado (20%) → Referência (10%)","genre.technical.h1":"Exemplos de código","genre.technical.h2":"Dificuldade progressiva","genre.technical.h3":"Exercícios práticos","genre.technical.tip":"Coloque exemplos de código em sources/ e referencie-os durante a redação.","genre.screenplay.name":"Roteiro","genre.screenplay.structure":"3 atos (110 pp) + Método de 8 sequências","genre.screenplay.h1":"Decomposição cena a cena","genre.screenplay.h2":"Foco nos diálogos","genre.screenplay.h3":"Narrativa visual","genre.screenplay.tip":"Use /book-ideation para desenvolver a logline antes de criar o índice.","genre.poetry.name":"Poesia","genre.poetry.structure":"Arco da coletânea: Abertura → Centro → Resolução","genre.poetry.h1":"Agrupamento temático","genre.poetry.h2":"Validação de ritmo e métrica","genre.poetry.h3":"Fluxo da coletânea","genre.poetry.tip":"Poemas individuais vão em drafts/ — o índice define a estrutura da coletânea.","genre.game.name":"Narrativa de jogo","genre.game.structure":"Caminho principal (60%) + Missões secundárias (30%) + Oculto (10%)","genre.game.h1":"Diálogos ramificados","genre.game.h2":"Construção de mundo","genre.game.h3":"Agência do jogador","genre.game.tip":"Defina as ramificações principais no PRD.md antes de executar /book-outline.","genre.academic.name":"Acadêmico","genre.academic.structure":"IMRAD: Introdução → Métodos → Resultados → Discussão","genre.academic.h1":"Gestão de citações","genre.academic.h2":"Validação de metodologia","genre.academic.h3":"Preparação para revisão por pares","genre.academic.tip":"Coloque os artigos de pesquisa em sources/ para citação durante a redação."},Ul={"agent.book-architect":"Agente per la progettazione strutturale e la pianificazione dell'indice","agent.chapter-writer":"Agente per la generazione di bozze capitolo per capitolo","agent.continuity-editor":"Agente per la verifica della coerenza tra capitoli","agent.cover-designer":"Agente per il design della copertina e l'identità visiva","agent.marketing-expert":"Agente per la descrizione del libro e i testi di marketing","agent.scene-generator":"Agente per la generazione e l'espansione di scene (solo narrativa)","agent.style-doctor":"Agente per la coerenza stilistica e il rilevamento di cliché IA","app.autoRefresh":"Aggiornamento automatico 5s","app.backToLive":"Torna ai dati live","app.clickHint":"Clicca su un comando o un capitolo per copiare","app.clickHintShort":"Tocca per copiare","app.copied":"Copiato negli appunti","app.exampleBanner":"Stai visualizzando dati di esempio — non sono i dati del tuo progetto reale.","app.exampleMode":"Modalità esempio","app.generated":"Generato","app.hoursAgo":"{n}h fa","app.justNow":"adesso","app.loading":"Caricamento...","app.minutesAgo":"{n} min fa","app.noData":"Nessun dato di progetto","app.noDataCmd":"/book-status","app.noDataHint":"Esegui /book-status nella tua sessione Claude Code per generare i dati del pannello.","app.noProject":"Nessun progetto libro.","app.noProjectSidebar":"Nessun progetto","app.refresh":"Aggiorna","app.refreshFailed":"Aggiornamento fallito","app.retrying":"Nuovo tentativo...","app.sampleData":"Dati di esempio visualizzati (status.json fallito: {error})","app.selectProject":"Seleziona un progetto","app.stale":"Dati di {n} min fa · esegui /book-status per aggiornare","app.viewExample":"Vedi esempio →","chStatus.draft":"Bozza","chStatus.edit":"Revisione completata","chStatus.wait":"In attesa","cmd.draft.desc":"Scrivere le bozze dei capitoli","cmd.draft.label":"Bozza","cmd.draft.long":"Scrivere le bozze dei capitoli — supporta tutti / capitoli specifici / continuazione","cmd.edit.desc":"Pipeline di revisione in 5 fasi","cmd.edit.label":"Revisione","cmd.edit.long":"Rifinire le bozze tramite la pipeline di revisione in 5 fasi","cmd.editChapter":"/book-edit {file} — revisionare questo capitolo","cmd.genre-creator.desc":"Creare un genere personalizzato","cmd.genre-creator.label":"Creatore di genere","cmd.genre-creator.long":"Definire un nuovo genere con struttura, agenti e flusso di lavoro dedicati","cmd.ideation.desc":"Esplorare concetti e validare idee","cmd.ideation.label":"Ideazione","cmd.ideation.long":"Esplorazione di concetti, analisi dei gap di mercato e validazione dell'idea del libro","cmd.init.desc":"Inizializzare un nuovo progetto libro","cmd.init.label":"Inizializza","cmd.init.long":"Creare la struttura di directory e i modelli per un nuovo progetto libro","cmd.outline.desc":"Generare e validare l'indice","cmd.outline.label":"Indice","cmd.outline.long":"Generare e validare l'indice dal PRD e dai materiali di riferimento","cmd.publish.desc":"Pacchettizzare EPUB · PDF · MOBI","cmd.publish.label":"Pubblica","cmd.publish.long":"Pacchettizzare per la pubblicazione — EPUB, PDF, metadati, candidati per il titolo","cmd.redraft":"/book-draft {file} — riscrivere questo capitolo","cmd.redraftWait":"/book-draft {file} — bozzare questo capitolo","cmd.status.desc":"Pannello di avanzamento","cmd.status.label":"Stato","cmd.status.long":"Visualizzare lo stato corrente e il pannello di avanzamento","drafts.file":"File","drafts.lines":"Righe","drafts.progress":"Avanzamento generale","drafts.status":"Stato","drafts.title":"Titolo","drafts.total":"Totale","drafts.wordOf":"/ {n} parole","drafts.words":"Parole","edits.inPipeline":"{n} capitoli nella pipeline di revisione","edit.stage.assessment":"Valutazione","edit.stage.developmental":"Sviluppo","edit.stage.lineEdit":"Editing di linea","edit.stage.copyEdit":"Correzione bozze","edit.stage.proofread":"Revisione finale","edits.stageProgress":"Fasi di revisione per capitolo","help.agents":"Riferimento agenti","help.allGenres":"Tutti i generi","help.customGenre":"Genere personalizzato — utilizza il flusso di lavoro predefinito. Vedi CONTRIBUTING.md per aggiungere modelli specifici per genere.","help.genreWorkflow":"Flusso di lavoro per genere","help.keyFeatures":"Funzionalità principali","help.pipelineOverview":"Panoramica della pipeline","help.phase":"Fase {n}","help.utility":"Utilità","help.pipelineTip":"Ogni fase si basa sulla precedente. Eseguire le fasi in ordine dà i migliori risultati. I comandi di fase possono essere rieseguiti in qualsiasi momento.","help.qs.draft":"Scrivere le bozze dei capitoli in parallelo","help.qs.edit":"Eseguire la pipeline di revisione in 5 fasi","help.qs.ideation":"Esplorare concetti e validare idee","help.qs.init":"Configurare la directory del progetto e i modelli","help.qs.outline":"Generare la struttura specifica del genere","help.qs.publish":"Pacchettizzare il risultato finale","help.quickStart":"Guida rapida","help.skills":"Riferimento competenze","help.structure":"Modello di struttura","help.subtitle":"Flussi di lavoro per genere, agenti disponibili e riferimento competenze per il tuo progetto.","help.title":"Guida & Riferimento","nav.drafts":"Bozze","nav.edits":"Revisione","nav.help":"Guida","nav.outline":"Indice","nav.overview":"Panoramica","nav.publish":"Pubblica","nav.settings":"Impostazioni","nav.status":"Agenti","outline.addChapter":"Aggiungi capitolo","outline.noChapters":"Nessun capitolo","outline.noChaptersHint":"Esegui /book-outline per generare un indice","outline.syncPRD":"Sincronizza PRD","outline.wordOf":"/ {n} parole","outline.words":"parole","overview.chapterOf":"/ {n} capitoli","overview.chapters":"Capitoli","overview.commands":"Comandi rapidi","overview.currentPhase":"Fase attuale","overview.pipeline":"Pipeline di scrittura","overview.updated":"Aggiornato","overview.wordOf":"/ {n} obiettivo","overview.words":"Conteggio parole","phase.drafting":"Stesura","phase.editing":"Revisione","phase.ideation":"Ideazione","phase.onboarding":"Preparazione","phase.outlining":"Pianificazione","phase.publishing":"Pubblicazione","publish.check.allDrafts":"Tutti i capitoli bozzati","publish.check.editingDone":"Pipeline di revisione completata","publish.check.editingPhaseDone":"Fase di revisione completata","publish.check.outlineDone":"Fase di pianificazione completata","publish.check.wordTarget":"Obiettivo di parole raggiunto","publish.checklist":"Lista di controllo pubblicazione","publish.download":"Scarica","publish.ready":"Pronto","publish.pending":"In attesa","publish.filesReady":"{ready} / {total} file pronti","publish.fmt.epub":"Formato eBook standard","publish.fmt.md":"Sorgente Markdown","publish.fmt.mobi":"Formato Kindle","publish.fmt.pdf":"Per stampa e distribuzione","publish.fmt.txt":"Testo normale","settings.font":"Carattere","settings.accentColor":"Colore principale","settings.customColor":"Colore personalizzato","settings.resetColor":"Ripristina","settings.agents":"Agenti registrati","settings.commands":"Comandi disponibili","settings.completedChapters":"Capitoli completati","settings.currentPhase":"Fase attuale","settings.fieldGenre":"Genere","settings.fieldLanguage":"Lingua","settings.fieldPath":"Percorso","settings.fieldTitle":"Titolo","settings.fieldUpdated":"Ultimo aggiornamento","settings.phaseStatus":"Stato delle fasi","settings.projectInfo":"Informazioni progetto","settings.targetWords":"Obiettivo di parole","settings.targets":"Obiettivi","settings.totalChapters":"Capitoli totali","status.complete":"Completato","status.currentTask":"Attività corrente","status.idle":"Inattivo","status.lastRun":"Ultima esecuzione","status.noAgents":"Nessun dato agente","status.noAgentsHint":"Aggiungi un array agents a status.json","status.running":"In esecuzione","status.pending":"In attesa","view.drafts":"Bozze","view.edits":"Pipeline di revisione","view.help":"Guida & Riferimento","view.outline":"Indice","view.overview":"Panoramica","view.publish":"Pubblica","view.settings":"Impostazioni","view.status":"Stato agenti","genre.fiction.name":"Narrativa","genre.fiction.structure":"Save the Cat! 15 beat / Struttura in 3 atti","genre.fiction.h1":"Generazione di scene","genre.fiction.h2":"Validazione della scheda dei beat","genre.fiction.h3":"Archi dei personaggi","genre.fiction.tip":"Inizia con /book-ideation per sviluppare la premessa, poi /book-outline per la scheda dei beat.","genre.nonfiction.name":"Saggistica","genre.nonfiction.structure":"Problema → Principi → Pratica → Avanzato","genre.nonfiction.h1":"Struttura basata sulle evidenze","genre.nonfiction.h2":"Integrazione della ricerca","genre.nonfiction.h3":"Casi di studio","genre.nonfiction.tip":"Raccogli i materiali di riferimento in sources/ prima di eseguire /book-outline.","genre.technical.name":"Tecnico","genre.technical.structure":"Introduzione (15%) → Fondamenti (25%) → Pratica (30%) → Avanzato (20%) → Riferimento (10%)","genre.technical.h1":"Esempi di codice","genre.technical.h2":"Difficoltà progressiva","genre.technical.h3":"Esercizi pratici","genre.technical.tip":"Inserisci gli esempi di codice in sources/ e riferiscili durante la stesura.","genre.screenplay.name":"Copione","genre.screenplay.structure":"3 atti (110 pp) + Metodo delle 8 sequenze","genre.screenplay.h1":"Scomposizione scena per scena","genre.screenplay.h2":"Focus sui dialoghi","genre.screenplay.h3":"Narrativa visiva","genre.screenplay.tip":"Usa /book-ideation per sviluppare la logline prima della pianificazione.","genre.poetry.name":"Poesia","genre.poetry.structure":"Arco della raccolta: Apertura → Centro → Risoluzione","genre.poetry.h1":"Raggruppamento tematico","genre.poetry.h2":"Validazione di ritmo e metrica","genre.poetry.h3":"Flusso della raccolta","genre.poetry.tip":"Le singole poesie vanno in drafts/ — l'indice definisce la struttura della raccolta.","genre.game.name":"Narrativa di gioco","genre.game.structure":"Percorso principale (60%) + Missioni secondarie (30%) + Nascosto (10%)","genre.game.h1":"Dialoghi ramificati","genre.game.h2":"Costruzione del mondo","genre.game.h3":"Libertà del giocatore","genre.game.tip":"Definisci i rami principali in PRD.md prima di eseguire /book-outline.","genre.academic.name":"Accademico","genre.academic.structure":"IMRAD: Introduzione → Metodi → Risultati → Discussione","genre.academic.h1":"Gestione delle citazioni","genre.academic.h2":"Validazione della metodologia","genre.academic.h3":"Preparazione alla peer review","genre.academic.tip":"Inserisci gli articoli di ricerca in sources/ per le citazioni durante la stesura."},Wl={"agent.book-architect":"Агент структурного проектирования и планирования содержания","agent.chapter-writer":"Агент пошаговой генерации черновиков по главам","agent.continuity-editor":"Агент проверки согласованности и непрерывности между главами","agent.cover-designer":"Агент дизайна обложки и фирменного стиля","agent.marketing-expert":"Агент написания аннотации и маркетинговых текстов","agent.scene-generator":"Агент создания и расширения сцен (только художественная проза)","agent.style-doctor":"Агент проверки стилевого единства и выявления AI-штампов","app.autoRefresh":"Автообновление 5с","app.backToLive":"Вернуться к живым данным","app.clickHint":"Нажмите на команду или главу, чтобы скопировать","app.clickHintShort":"Нажмите для копирования","app.copied":"Скопировано в буфер обмена","app.exampleBanner":"Отображаются примерные данные — это не данные вашего реального проекта.","app.exampleMode":"Режим примера","app.generated":"Сгенерировано","app.hoursAgo":"{n} ч назад","app.justNow":"только что","app.loading":"Загрузка...","app.minutesAgo":"{n} мин назад","app.noData":"Данные проекта отсутствуют","app.noDataCmd":"/book-status","app.noDataHint":"Выполните /book-status в сессии Claude Code, чтобы сгенерировать данные панели.","app.noProject":"Нет книжных проектов.","app.noProjectSidebar":"Нет проекта","app.refresh":"Обновить","app.refreshFailed":"Ошибка обновления","app.retrying":"Повторная попытка...","app.sampleData":"Отображаются примерные данные (ошибка status.json: {error})","app.selectProject":"Выберите проект","app.stale":"Данные устарели на {n} мин · выполните /book-status для обновления","app.viewExample":"Смотреть пример →","chStatus.draft":"Черновик","chStatus.edit":"Редактура завершена","chStatus.wait":"Ожидание","cmd.draft.desc":"Написать черновики глав","cmd.draft.label":"Черновик","cmd.draft.long":"Написание черновиков — все главы / выбранные главы / продолжение","cmd.edit.desc":"Конвейер редактуры — 5 этапов","cmd.edit.label":"Редактура","cmd.edit.long":"Доработка черновиков через 5-этапный конвейер редактуры","cmd.editChapter":"/book-edit {file} — редактировать эту главу","cmd.genre-creator.desc":"Создать пользовательский жанр","cmd.genre-creator.label":"Создатель жанра","cmd.genre-creator.long":"Определить новый жанр с собственной структурой, агентами и рабочим процессом","cmd.ideation.desc":"Исследовать концепции и валидировать идеи","cmd.ideation.label":"Идеация","cmd.ideation.long":"Исследование концепций, анализ рыночных ниш и валидация идеи книги","cmd.init.desc":"Инициализировать новый книжный проект","cmd.init.label":"Инициализация","cmd.init.long":"Создать структуру каталогов и шаблоны для нового книжного проекта","cmd.outline.desc":"Сгенерировать и проверить оглавление","cmd.outline.label":"Оглавление","cmd.outline.long":"Сгенерировать и проверить оглавление на основе PRD и исходных материалов","cmd.publish.desc":"Упаковать EPUB · PDF · MOBI","cmd.publish.label":"Публикация","cmd.publish.long":"Упаковать для публикации — EPUB, PDF, метаданные, кандидаты на название","cmd.redraft":"/book-draft {file} — переписать эту главу","cmd.redraftWait":"/book-draft {file} — написать черновик этой главы","cmd.status.desc":"Панель прогресса","cmd.status.label":"Статус","cmd.status.long":"Просмотр текущего состояния и панели прогресса","drafts.file":"Файл","drafts.lines":"Строки","drafts.progress":"Общий прогресс","drafts.status":"Статус","drafts.title":"Заголовок","drafts.total":"Итого","drafts.wordOf":"/ {n} слов","drafts.words":"Слова","edits.inPipeline":"{n} глав в конвейере редактуры","edit.stage.assessment":"Оценка","edit.stage.developmental":"Структурная правка","edit.stage.lineEdit":"Строчная правка","edit.stage.copyEdit":"Копирайтинг","edit.stage.proofread":"Корректура","edits.stageProgress":"Этапы редактуры по главам","help.agents":"Справочник агентов","help.allGenres":"Все жанры","help.customGenre":"Пользовательский жанр — использует стандартный рабочий процесс. Добавление жанровых шаблонов описано в CONTRIBUTING.md.","help.genreWorkflow":"Рабочий процесс по жанрам","help.keyFeatures":"Ключевые возможности","help.pipelineOverview":"Обзор конвейера","help.phase":"Фаза {n}","help.utility":"Утилита","help.pipelineTip":"Каждый этап строится на предыдущем. Выполнение по порядку даёт лучший результат. Команды этапов можно запускать повторно в любой момент.","help.qs.draft":"Параллельное написание черновиков глав","help.qs.edit":"Запуск 5-этапного конвейера редактуры","help.qs.ideation":"Исследование концепций и валидация идей","help.qs.init":"Настройка каталога проекта и шаблонов","help.qs.outline":"Генерация жанровой структуры","help.qs.publish":"Упаковка финального результата","help.quickStart":"Быстрый старт","help.skills":"Справочник навыков","help.structure":"Шаблон структуры","help.subtitle":"Жанровые рабочие процессы, доступные агенты и справочник навыков для вашего проекта.","help.title":"Помощь и справочник","nav.drafts":"Черновики","nav.edits":"Редактура","nav.help":"Помощь","nav.outline":"Оглавление","nav.overview":"Обзор","nav.publish":"Публикация","nav.settings":"Настройки","nav.status":"Агенты","outline.addChapter":"Добавить главу","outline.noChapters":"Нет глав","outline.noChaptersHint":"Выполните /book-outline для создания оглавления","outline.syncPRD":"Синхронизировать PRD","outline.wordOf":"/ {n} слов","outline.words":"слов","overview.chapterOf":"/ {n} глав","overview.chapters":"Главы","overview.commands":"Быстрые команды","overview.currentPhase":"Текущий этап","overview.pipeline":"Конвейер написания","overview.updated":"Обновлено","overview.wordOf":"/ {n} цель","overview.words":"Количество слов","phase.drafting":"Черновик","phase.editing":"Редактура","phase.ideation":"Идеация","phase.onboarding":"Настройка","phase.outlining":"Планирование","phase.publishing":"Публикация","publish.check.allDrafts":"Все главы написаны","publish.check.editingDone":"Конвейер редактуры завершён","publish.check.editingPhaseDone":"Этап редактуры завершён","publish.check.outlineDone":"Этап планирования завершён","publish.check.wordTarget":"Целевое количество слов достигнуто","publish.checklist":"Чеклист готовности к публикации","publish.download":"Скачать","publish.ready":"Готово","publish.pending":"Ожидание","publish.filesReady":"{ready} / {total} файлов готово","publish.fmt.epub":"Стандартный формат электронной книги","publish.fmt.md":"Исходник Markdown","publish.fmt.mobi":"Формат Kindle","publish.fmt.pdf":"Для печати и распространения","publish.fmt.txt":"Обычный текст","settings.font":"Шрифт","settings.accentColor":"Акцентный цвет","settings.customColor":"Свой цвет","settings.resetColor":"Сбросить","settings.agents":"Зарегистрированные агенты","settings.commands":"Доступные команды","settings.completedChapters":"Завершённые главы","settings.currentPhase":"Текущий этап","settings.fieldGenre":"Жанр","settings.fieldLanguage":"Язык","settings.fieldPath":"Путь","settings.fieldTitle":"Название","settings.fieldUpdated":"Последнее обновление","settings.phaseStatus":"Статус этапов","settings.projectInfo":"Информация о проекте","settings.targetWords":"Целевое количество слов","settings.targets":"Цели","settings.totalChapters":"Всего глав","status.complete":"Завершено","status.currentTask":"Текущая задача","status.idle":"Простой","status.lastRun":"Последний запуск","status.noAgents":"Нет данных об агентах","status.noAgentsHint":"Добавьте массив agents в status.json","status.running":"Выполняется","status.pending":"Ожидание","view.drafts":"Черновики","view.edits":"Конвейер редактуры","view.help":"Помощь и справочник","view.outline":"Оглавление","view.overview":"Обзор","view.publish":"Публикация","view.settings":"Настройки","view.status":"Статус агентов","genre.fiction.name":"Художественная проза","genre.fiction.structure":"Save the Cat! 15 битов / 3-актная структура","genre.fiction.h1":"Генерация сцен","genre.fiction.h2":"Валидация битового листа","genre.fiction.h3":"Арки персонажей","genre.fiction.tip":"Начните с /book-ideation для развития задумки, затем /book-outline для битового листа.","genre.nonfiction.name":"Нон-фикшн","genre.nonfiction.structure":"Проблема → Принципы → Практика → Продвинутый уровень","genre.nonfiction.h1":"Структура на основе доказательств","genre.nonfiction.h2":"Интеграция исследований","genre.nonfiction.h3":"Кейсы","genre.nonfiction.tip":"Соберите исходные материалы в sources/ перед запуском /book-outline.","genre.technical.name":"Техническая книга","genre.technical.structure":"Введение (15%) → Основы (25%) → Практика (30%) → Продвинутый (20%) → Справка (10%)","genre.technical.h1":"Примеры кода","genre.technical.h2":"Нарастающая сложность","genre.technical.h3":"Практические упражнения","genre.technical.tip":"Поместите примеры кода в sources/ и ссылайтесь на них при написании.","genre.screenplay.name":"Сценарий","genre.screenplay.structure":"3 акта (110 стр.) + Метод 8 последовательностей","genre.screenplay.h1":"Покадровая разбивка","genre.screenplay.h2":"Фокус на диалогах","genre.screenplay.h3":"Визуальное повествование","genre.screenplay.tip":"Используйте /book-ideation для разработки логлайна перед планированием.","genre.poetry.name":"Поэзия","genre.poetry.structure":"Дуга сборника: Откровение → Центр → Завершение","genre.poetry.h1":"Тематическая группировка","genre.poetry.h2":"Валидация ритма и метра","genre.poetry.h3":"Поток сборника","genre.poetry.tip":"Отдельные стихотворения помещаются в drafts/ — оглавление задаёт структуру сборника.","genre.game.name":"Игровой нарратив","genre.game.structure":"Основной путь (60%) + Побочные квесты (30%) + Скрытое (10%)","genre.game.h1":"Ветвящиеся диалоги","genre.game.h2":"Построение мира","genre.game.h3":"Свобода действий игрока","genre.game.tip":"Определите основные ветвления в PRD.md перед запуском /book-outline.","genre.academic.name":"Академическая статья","genre.academic.structure":"IMRAD: Введение → Методы → Результаты → Обсуждение","genre.academic.h1":"Управление цитированием","genre.academic.h2":"Валидация методологии","genre.academic.h3":"Подготовка к рецензированию","genre.academic.tip":"Поместите исследовательские статьи в sources/ для цитирования при написании."},Na={en:js,ko:Gl,ja:ql,zh:Kl,es:Bl,fr:Ll,de:Hl,pt:Vl,it:Ul,ru:Wl},Zl=new Set(Object.keys(Na)),Yl={ko:"한국어",en:"English",ja:"日本語",zh:"中文",es:"Español",fr:"Français",de:"Deutsch",pt:"Português",it:"Italiano",ru:"Русский"},Ql={ko:"ko-KR",en:"en-US",ja:"ja-JP",zh:"zh-CN",es:"es-ES",fr:"fr-FR",de:"de-DE",pt:"pt-BR",it:"it-IT",ru:"ru-RU"};function Jl(){try{const e=localStorage.getItem("bf-locale");if(e&&Zl.has(e))return e}catch{}return"ko"}const ta=da(Jl());ta.subscribe(e=>{try{localStorage.setItem("bf-locale",e)}catch{}});const Pi=Fo(ta,e=>{const t=Na[e];return{locale:e,t(n,r){let i=t[n]??js[n]??n;return r&&(i=i.replace(/\{(\w+)\}/g,(o,c)=>String(r[c]??`{${c}}`))),i},fmtDate(n){if(!n)return"—";try{return new Date(n).toLocaleString(Ql[e])}catch{return n}},displayNames:Yl,allLocales:Object.keys(Na)}}),Ds=[{id:"overview",icon:"dashboard",labelKey:"nav.overview"},{id:"status",icon:"analytics",labelKey:"nav.status"},{id:"outline",icon:"format_list_bulleted",labelKey:"nav.outline"},{id:"drafts",icon:"edit_note",labelKey:"nav.drafts"},{id:"edits",icon:"history_edu",labelKey:"nav.edits"},{id:"publish",icon:"publish",labelKey:"nav.publish"},{id:"settings",icon:"settings",labelKey:"nav.settings"},{id:"help",icon:"help",labelKey:"nav.help"}],Xl=new Set(Ds.map(e=>e.id)),$a=[{cmd:"/book-init",icon:"rocket_launch",phase:0},{cmd:"/book-ideation",icon:"lightbulb",phase:1},{cmd:"/book-outline",icon:"format_list_bulleted",phase:2},{cmd:"/book-draft",icon:"edit_note",phase:3},{cmd:"/book-edit",icon:"history_edu",phase:4},{cmd:"/book-publish",icon:"publish",phase:5},{cmd:"/book-status",icon:"analytics",phase:-1},{cmd:"/book-genre-creator",icon:"category",phase:-1}];$a.filter(e=>e.phase>=0&&e.phase<=5);const Ts=[{id:"book-architect",icon:"architecture",genre:"all"},{id:"chapter-writer",icon:"edit_note",genre:"all"},{id:"scene-generator",icon:"theaters",genre:"fiction"},{id:"continuity-editor",icon:"compare_arrows",genre:"all"},{id:"style-doctor",icon:"medical_services",genre:"all"},{id:"cover-designer",icon:"palette",genre:"all"},{id:"marketing-expert",icon:"campaign",genre:"all"}],$l={fiction:"auto_stories","non-fiction":"psychology",technical:"terminal",screenplay:"movie",poetry:"lyrics",game:"sports_esports",academic:"school"},Lr=[{id:"fiction",nameKey:"genre.fiction.name",structureKey:"genre.fiction.structure",highlightKeys:["genre.fiction.h1","genre.fiction.h2","genre.fiction.h3"],tipKey:"genre.fiction.tip"},{id:"non-fiction",nameKey:"genre.nonfiction.name",structureKey:"genre.nonfiction.structure",highlightKeys:["genre.nonfiction.h1","genre.nonfiction.h2","genre.nonfiction.h3"],tipKey:"genre.nonfiction.tip"},{id:"technical",nameKey:"genre.technical.name",structureKey:"genre.technical.structure",highlightKeys:["genre.technical.h1","genre.technical.h2","genre.technical.h3"],tipKey:"genre.technical.tip"},{id:"screenplay",nameKey:"genre.screenplay.name",structureKey:"genre.screenplay.structure",highlightKeys:["genre.screenplay.h1","genre.screenplay.h2","genre.screenplay.h3"],tipKey:"genre.screenplay.tip"},{id:"poetry",nameKey:"genre.poetry.name",structureKey:"genre.poetry.structure",highlightKeys:["genre.poetry.h1","genre.poetry.h2","genre.poetry.h3"],tipKey:"genre.poetry.tip"},{id:"game",nameKey:"genre.game.name",structureKey:"genre.game.structure",highlightKeys:["genre.game.h1","genre.game.h2","genre.game.h3"],tipKey:"genre.game.tip"},{id:"academic",nameKey:"genre.academic.name",structureKey:"genre.academic.structure",highlightKeys:["genre.academic.h1","genre.academic.h2","genre.academic.h3"],tipKey:"genre.academic.tip"}],Si={generated_at:"2026-05-16T12:00:00Z",agents:[{id:"book-architect",name:"Book Architect",icon:"architecture",role:"Structural design & outline planning",status:"complete",last_run:"2026-05-16T10:00:00Z",task:null},{id:"chapter-writer",name:"Chapter Writer",icon:"edit_note",role:"Draft generation for chapters",status:"running",last_run:"2026-05-16T11:30:00Z",task:"ch07-core-concepts.md draft in progress"},{id:"continuity-editor",name:"Continuity Editor",icon:"compare_arrows",role:"Cross-chapter consistency checks",status:"idle",last_run:"2026-05-15T22:00:00Z",task:null},{id:"cover-designer",name:"Cover Designer",icon:"palette",role:"Visual cover design & brand identity",status:"idle",last_run:null,task:null},{id:"marketing-expert",name:"Marketing Expert",icon:"campaign",role:"Book description & marketing copy",status:"idle",last_run:null,task:null},{id:"scene-generator",name:"Scene Generator",icon:"theaters",role:"Scene creation & expansion",status:"complete",last_run:"2026-05-16T09:00:00Z",task:null},{id:"style-doctor",name:"Style Doctor",icon:"medical_services",role:"Style consistency & AI-slop detection",status:"complete",last_run:"2026-05-16T08:30:00Z",task:null}],projects:[{name:"My First Great Work",path:"/Users/user/projects/my-book",genre:"non-fiction",language:"en",current_phase:3,total_chapters:10,completed_chapters:6,total_words:42e3,target_words:8e4,last_updated:"2026-05-16T11:30:00Z",phase_status:[{phase:0,name:"Onboarding",percent:100,status:"complete"},{phase:1,name:"Ideation",percent:100,status:"complete"},{phase:2,name:"Outlining",percent:100,status:"complete"},{phase:3,name:"Drafting",percent:60,status:"in_progress"},{phase:4,name:"Editing",percent:0,status:"pending"},{phase:5,name:"Publishing",percent:0,status:"pending"}],chapter_details:[{filename:"ch01-introduction.md",title:"Introduction",lines:320,words:2800,status:"edit",edit_stage:"style"},{filename:"ch02-getting-started.md",title:"Getting Started",lines:480,words:4200,status:"edit",edit_stage:"continuity"},{filename:"ch03-core-concepts.md",title:"Core Concepts",lines:390,words:3600,status:"draft",edit_stage:null},{filename:"ch04-advanced.md",title:"Advanced Techniques",lines:510,words:4800,status:"draft",edit_stage:null},{filename:"ch05-case-studies.md",title:"Case Studies",lines:440,words:4100,status:"draft",edit_stage:null},{filename:"ch06-patterns.md",title:"Common Patterns",lines:360,words:3200,status:"draft",edit_stage:null},{filename:"ch07-deep-dive.md",title:"Deep Dive",lines:0,words:0,status:"wait",edit_stage:null},{filename:"ch08-integration.md",title:"Integration",lines:0,words:0,status:"wait",edit_stage:null},{filename:"ch09-deployment.md",title:"Deployment",lines:0,words:0,status:"wait",edit_stage:null},{filename:"ch10-conclusion.md",title:"Conclusion",lines:0,words:0,status:"wait",edit_stage:null}],output_files:[{name:"book.epub",exists:!1,size_bytes:0},{name:"book.pdf",exists:!1,size_bytes:0},{name:"book.mobi",exists:!1,size_bytes:0},{name:"book.txt",exists:!1,size_bytes:0},{name:"book.md",exists:!1,size_bytes:0}]}]},ei="velith-accent-light",ti="velith-accent-dark",na="#e8650a",Ga="#ff8c3a";function ec(){try{const e=document.documentElement.classList.contains("dark");return localStorage.getItem(e?ti:ei)||(e?Ga:na)}catch{return na}}const Rs=da(ec());function zs(e,t){const n=document.documentElement;n.style.setProperty("--color-primary",e),n.style.setProperty("--sidebar-accent",e),n.style.setProperty("--color-primary-container",t?nc(e,.5):tc(e,.75));try{localStorage.setItem(t?ti:ei,e)}catch{}}function Is(e){const t=parseInt(e.slice(1,3),16),n=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16);return[t,n,r]}function Os(e,t,n){return"#"+[e,t,n].map(r=>Math.max(0,Math.min(255,Math.round(r))).toString(16).padStart(2,"0")).join("")}function tc(e,t){const[n,r,i]=Is(e);return Os(n+(255-n)*t,r+(255-r)*t,i+(255-i)*t)}function nc(e,t){const[n,r,i]=Is(e);return Os(n*(1-t),r*(1-t),i*(1-t))}function rc(e){try{return localStorage.getItem(e?ti:ei)||(e?Ga:na)}catch{return e?Ga:na}}function Ci(e){const t=rc(e);return zs(t,e),t}function wa(e,t){zs(e,t),Rs.set(e)}const ni="velith-font",ra=[{id:"system",label:"System",stack:"system-ui, -apple-system, 'Segoe UI', sans-serif",googleFont:null},{id:"geist",label:"Geist",stack:"'Geist', system-ui, sans-serif",googleFont:"Geist:wght@100..900"},{id:"noto-sans-kr",label:"Noto Sans KR",stack:"'Noto Sans KR', 'Noto Sans', sans-serif",googleFont:"Noto+Sans+KR:wght@400;500;600;700",cjk:"kr"},{id:"noto-sans-jp",label:"Noto Sans JP",stack:"'Noto Sans JP', 'Noto Sans', sans-serif",googleFont:"Noto+Sans+JP:wght@400;500;600;700",cjk:"jp"},{id:"noto-sans-sc",label:"Noto Sans SC",stack:"'Noto Sans SC', 'Noto Sans', sans-serif",googleFont:"Noto+Sans+SC:wght@400;500;600;700",cjk:"sc"},{id:"noto-serif-kr",label:"Noto Serif KR",stack:"'Noto Serif KR', 'Noto Serif', serif",googleFont:"Noto+Serif+KR:wght@400;500;600;700",cjk:"kr"},{id:"inter",label:"Inter",stack:"'Inter', system-ui, sans-serif",googleFont:"Inter:wght@100..900"},{id:"ibm-plex",label:"IBM Plex Sans",stack:"'IBM Plex Sans', 'IBM Plex Sans KR', system-ui, sans-serif",googleFont:"IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Sans+KR:wght@400;500;600;700"},{id:"pretendard",label:"Pretendard",stack:"'Pretendard Variable', 'Pretendard', system-ui, sans-serif",googleFont:null,cdnUrl:"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css"}],Yr=new Set;let hr=null;function ac(e){if(!e.googleFont&&!e.cdnUrl)return;const t="velith-font-"+e.id;if(Yr.has(e.id)||document.getElementById(t)){Yr.add(e.id);return}const n=document.createElement("link");n.id=t,n.rel="stylesheet",n.href=e.cdnUrl?e.cdnUrl:`https://fonts.googleapis.com/css2?family=${e.googleFont}&display=swap`,document.head.appendChild(n),Yr.add(e.id)}const Fs={ko:"noto-sans-kr",ja:"noto-sans-jp",zh:"noto-sans-sc"},Ms=da("noto-sans-kr");function ic(e){try{const t=localStorage.getItem(ni),n=Fs[e]||"noto-sans-kr",r=t||n,i=ra.find(o=>o.id===r)||ra.find(o=>o.id==="noto-sans-kr");return Gs(i),i.id}catch{return"noto-sans-kr"}}function sc(e){if((()=>{try{return localStorage.getItem(ni)}catch{return null}})())return;const n=Fs[e]||"noto-sans-kr";Ns(n)}function Ns(e){const t=ra.find(n=>n.id===e);if(t){Gs(t),Ms.set(e);try{localStorage.setItem(ni,e)}catch{}}}function Gs(e){if(hr&&hr!==e.id){const t=document.getElementById("velith-font-"+hr);t&&t.remove(),Yr.delete(hr)}ac(e),document.body.style.fontFamily=e.stack,hr=e.id}const oc=[{label:"Orange",light:"#e8650a",dark:"#ff8c3a"},{label:"Red",light:"#e53935",dark:"#ff5252"},{label:"Pink",light:"#e91e8c",dark:"#f06292"},{label:"Purple",light:"#9c27b0",dark:"#ce93d8"},{label:"Indigo",light:"#5c6bc0",dark:"#9fa8da"},{label:"Blue",light:"#1e88e5",dark:"#64b5f6"},{label:"Teal",light:"#00897b",dark:"#4db6ac"},{label:"Green",light:"#43a047",dark:"#81c784"}];var lc=j('<div><div class="py-2 px-1 text-center"><p> </p> <p> </p></div></div>'),cc=j('<div><p class="text-xs text-secondary uppercase tracking-widest mb-2"> </p> <div class="flex gap-1"></div></div>'),dc=j('<button class="flex items-center gap-3 p-3 rounded border border-outline-variant bg-surface-container-lowest hover:bg-surface-container transition-colors text-left"><span class="material-symbols-outlined text-lg text-primary shrink-0"> </span> <div class="min-w-0"><p class="text-xs font-bold uppercase tracking-wider truncate"> </p> <p class="text-xs text-secondary truncate"> </p></div></button>'),uc=j(`<div class="space-y-4"><div class="border border-outline-variant rounded bg-surface-container-lowest p-4 flex gap-4"><label class="w-28 h-36 bg-surface-container border border-outline-variant rounded flex flex-col items-center justify-center cursor-pointer hover:bg-surface-container-high transition-colors shrink-0 group"><span class="material-symbols-outlined text-4xl text-outline group-hover:text-secondary transition-colors">menu_book</span> <span class="text-xs text-outline uppercase tracking-widest mt-1">Cover</span> <input type="file" accept="image/jpeg,image/png,image/webp" class="hidden"/></label> <div class="flex-1 min-w-0 flex flex-col justify-between"><div><h2 class="text-2xl font-bold uppercase tracking-wide truncate" style="font-family:'Newsreader',serif;"> </h2> <p class="text-xs text-secondary mt-1 uppercase tracking-wider"> <!></p></div></div> <div class="text-right shrink-0"><p class="text-xs text-secondary uppercase tracking-widest"> </p> <p class="text-3xl font-bold text-primary mt-0.5" style="font-family:'Newsreader',serif;"> </p> <p class="text-lg font-bold text-on-surface-variant"> </p></div></div> <!> <div class="grid grid-cols-1 sm:grid-cols-3 gap-3"><div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><p class="text-xs text-secondary uppercase tracking-widest mb-2"> </p> <p class="text-3xl font-bold text-on-surface"> </p> <p class="text-xs text-secondary mt-0.5"> </p> <div class="mt-3 h-1.5 bg-surface-container rounded-full overflow-hidden"><div class="h-full bg-primary rounded-full"></div></div> <p class="text-xs text-secondary text-right mt-1"> </p></div> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><p class="text-xs text-secondary uppercase tracking-widest mb-2"> </p> <p class="text-3xl font-bold text-on-surface"> </p> <p class="text-xs text-secondary mt-0.5"> </p> <div class="mt-3 h-1.5 bg-surface-container rounded-full overflow-hidden"><div class="h-full bg-primary rounded-full"></div></div> <p class="text-xs text-secondary text-right mt-1"> </p></div> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><p class="text-xs text-secondary uppercase tracking-widest mb-2"> </p> <p class="text-3xl font-bold text-on-surface" style="font-family:'Newsreader',serif;"> </p> <p class="text-xs text-secondary mt-0.5"> </p> <div class="mt-3 h-1.5 bg-surface-container rounded-full overflow-hidden"><div class="h-full bg-primary rounded-full"></div></div> <p class="text-xs text-secondary text-right mt-1"> </p></div></div> <div><p class="text-xs text-secondary uppercase tracking-widest mb-2"> </p> <div class="grid grid-cols-2 sm:grid-cols-3 gap-2"></div></div></div>`);function pc(e,t){Qt(t,!0);let n=te(()=>t.project.target_words>0?Math.min(100,Math.round(t.project.total_words/t.project.target_words*100)):0),r=te(()=>t.project.total_chapters>0?Math.min(100,Math.round(t.project.completed_chapters/t.project.total_chapters*100)):0),i=te(()=>{var be;return(be=t.project.phase_status)==null?void 0:be[t.project.current_phase]}),o=te(()=>s(i)?s(i).percent:0),c=te(()=>s(i)?t.i18n.t("phase."+s(i).name.toLowerCase().replace(/\s+/g,"-"))||s(i).name:"—");const p=[{cmd:"/book-init",icon:"rocket_launch",labelKey:"cmd.init.label",descKey:"cmd.init.desc"},{cmd:"/book-outline",icon:"format_list_bulleted",labelKey:"cmd.outline.label",descKey:"cmd.outline.desc"},{cmd:"/book-draft",icon:"edit_note",labelKey:"cmd.draft.label",descKey:"cmd.draft.desc"},{cmd:"/book-edit",icon:"history_edu",labelKey:"cmd.edit.label",descKey:"cmd.edit.desc"},{cmd:"/book-status",icon:"analytics",labelKey:"cmd.status.label",descKey:"cmd.status.desc"},{cmd:"/book-publish",icon:"publish",labelKey:"cmd.publish.label",descKey:"cmd.publish.desc"}];var d=uc(),m=a(d),b=a(m),g=l(a(b),4),v=l(b,2),w=a(v),y=a(w),k=a(y),h=l(y,2),x=a(h),P=l(x);{var E=be=>{var Te=Cs();T((Qe,ot)=>u(Te,`· ${Qe??""} ${ot??""}`),[()=>t.i18n.t("overview.updated"),()=>t.i18n.fmtDate(t.project.last_updated)]),A(be,Te)};Se(P,be=>{t.project.last_updated&&be(E)})}var z=l(v,2),R=a(z),M=a(R),N=l(R,2),Z=a(N),X=l(N,2),ce=a(X),D=l(m,2);{var Y=be=>{var Te=cc(),Qe=a(Te),ot=a(Qe),Bt=l(Qe,2);xe(Bt,21,()=>t.project.phase_status,_e,(bt,Le)=>{var _=lc(),S=a(_),I=a(S),se=a(I),U=l(I,2),we=a(U);T(fe=>{ve(_,1,`flex-1 relative overflow-hidden rounded border
            ${s(Le).status==="complete"?"bg-primary/15 border-primary":s(Le).status==="in_progress"?"bg-primary border-primary":"bg-surface-container border-outline-variant"}`),ve(I,1,`text-xs font-semibold uppercase tracking-wide leading-none
                ${s(Le).status==="complete"?"text-primary":s(Le).status==="in_progress"?"text-on-primary":"text-secondary"}`),u(se,fe),ve(U,1,`text-sm font-bold mt-0.5
                ${s(Le).status==="complete"?"text-primary":s(Le).status==="in_progress"?"text-on-primary":"text-on-surface-variant"}`),u(we,`${s(Le).percent??""}%`)},[()=>t.i18n.t("phase."+s(Le).name.toLowerCase().replace(/\s+/g,"-"))||s(Le).name]),A(bt,_)}),T(bt=>u(ot,bt),[()=>t.i18n.t("overview.pipeline")]),A(be,Te)};Se(D,be=>{t.project.phase_status&&be(Y)})}var L=l(D,2),B=a(L),ge=a(B),ue=a(ge),de=l(ge,2),Pe=a(de),$=l(de,2),je=a($),ne=l($,2),pe=a(ne),Re=l(ne,2),De=a(Re),ze=l(B,2),Ze=a(ze),tt=a(Ze),he=l(Ze,2),ie=a(he),nt=l(he,2),Oe=a(nt),rt=l(nt,2),at=a(rt),me=l(rt,2),V=a(me),O=l(ze,2),K=a(O),ee=a(K),re=l(K,2),ye=a(re),Ie=l(re,2),Fe=a(Ie),Me=l(Ie,2),Be=a(Me),Ye=l(Me,2),Ne=a(Ye),it=l(L,2),st=a(it),Dt=a(st),Tt=l(st,2);xe(Tt,21,()=>p,_e,(be,Te)=>{var Qe=dc(),ot=a(Qe),Bt=a(ot),bt=l(ot,2),Le=a(bt),_=a(Le),S=l(Le,2),I=a(S);T((se,U)=>{u(Bt,s(Te).icon),u(_,se),u(I,U)},[()=>t.i18n.t(s(Te).labelKey),()=>t.i18n.t(s(Te).descKey)]),oe("click",Qe,()=>t.copyToClipboard(s(Te).cmd)),A(be,Qe)}),T((be,Te,Qe,ot,Bt,bt,Le,_,S)=>{var I;u(k,t.project.name),u(x,`${t.project.genre??""} · ${t.project.language??""} `),u(M,be),u(Z,s(c)),u(ce,`${s(o)??""}%`),u(ue,Te),u(Pe,Qe),u(je,ot),Mt(pe,`width:${s(n)??""}%`),u(De,`${s(n)??""}%`),u(tt,Bt),u(ie,t.project.completed_chapters),u(Oe,bt),Mt(at,`width:${s(r)??""}%`),u(V,`${s(r)??""}%`),u(ee,Le),u(ye,s(c)),u(Fe,`${_??""} / ${(((I=t.project.phase_status)==null?void 0:I.length)??1)-1}`),Mt(Be,`width:${s(o)??""}%`),u(Ne,`${s(o)??""}%`),u(Dt,S)},[()=>t.i18n.t("overview.currentPhase"),()=>t.i18n.t("overview.words"),()=>t.project.total_words.toLocaleString(),()=>t.i18n.t("overview.wordOf",{n:t.project.target_words.toLocaleString()}),()=>t.i18n.t("overview.chapters"),()=>t.i18n.t("overview.chapterOf",{n:t.project.total_chapters}),()=>t.i18n.t("overview.currentPhase"),()=>t.i18n.t("help.phase",{n:t.project.current_phase}),()=>t.i18n.t("overview.commands")]),oe("change",g,async be=>{var ot;const Te=(ot=be.target.files)==null?void 0:ot[0];if(!Te||t.projectIndex==null)return;const Qe=Te.name.split(".").pop()||"jpg";await fetch(`/api/cover/${t.projectIndex}?filename=cover.${Qe}`,{method:"POST",body:Te}),window.location.reload()}),A(e,d),Jt()}_n(["change","click"]);var fc=j('<div class="text-center py-16"><span class="material-symbols-outlined text-5xl text-outline">smart_toy</span> <p class="mt-2 text-sm uppercase tracking-wider text-secondary"> </p> <p class="text-xs text-on-surface-variant mt-1"> </p></div>'),vc=j('<span class="w-1.5 h-1.5 rounded-full bg-primary animate-pulse"></span>'),gc=j('<span class="text-xs text-on-surface-variant font-mono"> </span>'),hc=j('<div class="mt-2 bg-surface-container rounded px-2.5 py-1.5"><p class="text-xs text-secondary uppercase tracking-wider mb-0.5 font-semibold"> </p> <p class="text-xs text-on-surface truncate"> </p></div>'),mc=j('<div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><div class="flex items-start gap-3"><div><span class="material-symbols-outlined text-base"> </span></div> <div class="flex-1 min-w-0"><p class="text-sm font-bold uppercase tracking-wide truncate"> </p> <p class="text-xs text-secondary mt-0.5 truncate"> </p></div></div> <div class="mt-3 flex items-center justify-between gap-2"><span><!> </span> <!></div> <!></div>'),bc=j('<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3"></div>'),_c=j('<div class="space-y-4"><div class="grid grid-cols-3 gap-3"><div><p class="text-xs uppercase tracking-widest text-secondary mb-1 font-semibold"> </p> <p> </p></div> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4 text-center"><p class="text-xs uppercase tracking-widest text-secondary mb-1 font-semibold"> </p> <p class="text-4xl font-bold text-on-surface-variant"> </p></div> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4 text-center"><p class="text-xs uppercase tracking-widest text-secondary mb-1 font-semibold"> </p> <p class="text-4xl font-bold text-on-surface"> </p></div></div> <!></div>');function xc(e,t){Qt(t,!0);let n=te(()=>t.agents.filter(D=>D.status==="running").length),r=te(()=>t.agents.filter(D=>D.status==="idle").length),i=te(()=>t.agents.filter(D=>D.status==="complete").length);function o(D){return D==="running"||D==="complete"?"bg-primary border-primary text-on-primary":D==="error"?"bg-error border-error text-on-primary":"bg-surface-container border-outline-variant text-secondary"}function c(D){return D==="running"?"border-primary text-primary":D==="complete"?"border-primary text-on-primary bg-primary":D==="error"?"border-error text-error":"border-outline-variant text-secondary"}var p=_c(),d=a(p),m=a(d),b=a(m),g=a(b),v=l(b,2),w=a(v),y=l(m,2),k=a(y),h=a(k),x=l(k,2),P=a(x),E=l(y,2),z=a(E),R=a(z),M=l(z,2),N=a(M),Z=l(d,2);{var X=D=>{var Y=fc(),L=l(a(Y),2),B=a(L),ge=l(L,2),ue=a(ge);T((de,Pe)=>{u(B,de),u(ue,Pe)},[()=>t.i18n.t("status.noAgents"),()=>t.i18n.t("status.noAgentsHint")]),A(D,Y)},ce=D=>{var Y=bc();xe(Y,21,()=>t.agents,_e,(L,B)=>{var ge=mc(),ue=a(ge),de=a(ue),Pe=a(de),$=a(Pe),je=l(de,2),ne=a(je),pe=a(ne),Re=l(ne,2),De=a(Re),ze=l(ue,2),Ze=a(ze),tt=a(Ze);{var he=me=>{var V=vc();A(me,V)};Se(tt,me=>{s(B).status==="running"&&me(he)})}var ie=l(tt),nt=l(Ze,2);{var Oe=me=>{var V=gc(),O=a(V);T(K=>u(O,K),[()=>t.i18n.fmtDate(s(B).last_run)]),A(me,V)};Se(nt,me=>{s(B).last_run&&me(Oe)})}var rt=l(ze,2);{var at=me=>{var V=hc(),O=a(V),K=a(O),ee=l(O,2),re=a(ee);T(ye=>{u(K,ye),u(re,s(B).task)},[()=>t.i18n.t("status.currentTask")]),A(me,V)};Se(rt,me=>{s(B).task&&me(at)})}T((me,V,O,K)=>{ve(de,1,`w-10 h-10 rounded border-2 flex items-center justify-center shrink-0 ${me??""}`),u($,s(B).icon),u(pe,s(B).name),u(De,V),ve(Ze,1,`inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-xs font-bold uppercase tracking-wider border ${O??""}`),u(ie,` ${K??""}`)},[()=>o(s(B).status),()=>t.i18n.t("agent."+s(B).id)||s(B).role,()=>c(s(B).status),()=>t.i18n.t("status."+s(B).status)??s(B).status]),A(L,ge)}),A(D,Y)};Se(Z,D=>{t.agents.length===0?D(X):D(ce,-1)})}T((D,Y,L)=>{ve(m,1,`border ${s(n)>0?"border-primary":"border-outline-variant"} rounded bg-surface-container-lowest p-4 text-center`),u(g,D),ve(v,1,`text-4xl font-bold ${s(n)>0?"text-primary":"text-on-surface-variant"}`),u(w,s(n)),u(h,Y),u(P,s(r)),u(R,L),u(N,s(i))},[()=>t.i18n.t("status.running"),()=>t.i18n.t("status.idle"),()=>t.i18n.t("status.complete")]),A(e,p),Jt()}var yc=j('<div class="text-center py-16"><span class="material-symbols-outlined text-5xl text-outline">format_list_bulleted</span> <p class="mt-2 text-sm uppercase tracking-wider text-secondary"> </p> <p class="text-xs text-on-surface-variant mt-1"> </p></div>'),wc=j('<button class="w-full flex items-center gap-0 rounded border border-outline-variant bg-surface-container-lowest hover:bg-surface-container transition-colors overflow-hidden text-left"><div class="w-12 h-full bg-surface-container flex items-center justify-center shrink-0 self-stretch border-r border-outline-variant"><span class="text-sm font-bold font-mono text-secondary"> </span></div> <div class="flex-1 min-w-0 px-3 py-2.5"><div class="flex items-center justify-between gap-2"><p class="text-sm font-bold uppercase tracking-wide truncate"> </p> <div class="flex items-center gap-3 shrink-0"><div class="text-right"><span class="text-sm font-semibold font-mono text-on-surface"> </span> <span class="text-xs text-secondary ml-1"> </span></div> <span> </span></div></div> <p class="text-xs text-on-surface-variant font-mono mt-0.5"> </p> <div class="mt-2 h-1 bg-surface-container rounded-full overflow-hidden"><div class="h-full bg-primary rounded-full"></div></div></div></button>'),kc=j('<div class="space-y-1.5"></div>'),Pc=j('<div class="space-y-4"><div class="flex items-center justify-between"><p class="text-sm font-mono font-semibold text-on-surface"> </p> <div class="flex gap-2"><button class="flex items-center gap-1.5 px-3 py-1.5 rounded border border-outline-variant text-xs font-semibold uppercase tracking-wider text-secondary hover:bg-surface-container transition-colors"><span class="material-symbols-outlined text-sm">sync</span> <span class="font-mono">/book-outline</span> <span class="text-on-surface-variant normal-case font-normal">sync PRD</span></button> <button class="flex items-center gap-1.5 px-3 py-1.5 rounded border border-outline-variant text-xs font-semibold uppercase tracking-wider text-secondary hover:bg-surface-container transition-colors"><span class="material-symbols-outlined text-sm">add</span> <span class="font-mono">/book-outline</span> <span class="text-on-surface-variant normal-case font-normal">add chapter</span></button></div></div> <!></div>');function Sc(e,t){Qt(t,!0);let n=te(()=>t.project.chapter_details??[]),r=te(()=>s(n).reduce((k,h)=>k+h.words,0));function i(k){return k==="edit"?"border-primary text-primary bg-primary/5":k==="draft"?"border-secondary text-secondary":"border-outline-variant text-on-surface-variant"}var o=Pc(),c=a(o),p=a(c),d=a(p),m=l(p,2),b=a(m),g=l(b,2),v=l(c,2);{var w=k=>{var h=yc(),x=l(a(h),2),P=a(x),E=l(x,2),z=a(E);T((R,M)=>{u(P,R),u(z,M)},[()=>t.i18n.t("outline.noChapters"),()=>t.i18n.t("outline.noChaptersHint")]),A(k,h)},y=k=>{var h=kc();xe(h,21,()=>s(n),_e,(x,P,E)=>{const z=te(()=>t.project.target_words>0?Math.min(100,Math.round(s(P).words/(t.project.target_words/s(n).length)*100)):0);var R=wc(),M=a(R),N=a(M),Z=a(N),X=l(M,2),ce=a(X),D=a(ce),Y=a(D),L=l(D,2),B=a(L),ge=a(B),ue=a(ge),de=l(ge,2),Pe=a(de),$=l(B,2),je=a($),ne=l(ce,2),pe=a(ne),Re=l(ne,2),De=a(Re);T((ze,Ze,tt,he,ie)=>{u(Z,ze),u(Y,s(P).title),u(ue,Ze),u(Pe,tt),ve($,1,`inline-flex px-2 py-0.5 rounded text-xs font-bold uppercase tracking-wider border ${he??""}`),u(je,ie),u(pe,s(P).filename),Mt(De,`width:${s(z)??""}%`)},[()=>String(E+1).padStart(2,"0"),()=>s(P).words.toLocaleString(),()=>t.i18n.t("outline.words"),()=>i(s(P).status),()=>t.i18n.t("chStatus."+s(P).status)]),oe("click",R,()=>{const ze=s(P).status==="wait"?"cmd.redraftWait":s(P).status==="edit"?"cmd.editChapter":"cmd.redraft";t.copyToClipboard(t.i18n.t(ze,{file:s(P).filename}))}),A(x,R)}),A(k,h)};Se(v,k=>{s(n).length===0?k(w):k(y,-1)})}T((k,h,x)=>u(d,`${k??""} / ${h??""} ${x??""}`),[()=>s(r).toLocaleString(),()=>t.project.target_words.toLocaleString(),()=>t.i18n.t("outline.words").toUpperCase()]),oe("click",b,()=>t.copyToClipboard("/book-outline sync PRD")),oe("click",g,()=>t.copyToClipboard("/book-outline add chapter")),A(e,o),Jt()}_n(["click"]);var Cc=j('<tr class="border-b border-outline-variant hover:bg-surface-container cursor-pointer transition-colors"><td class="px-3 py-2.5 font-mono text-xs text-secondary whitespace-nowrap"> </td><td class="px-3 py-2.5 text-sm font-medium"> </td><td class="px-3 py-2.5 text-right font-bold font-mono"> </td><td class="px-3 py-2.5 text-right font-mono text-secondary"> </td><td class="px-3 py-2.5"><span> </span></td></tr>'),Ec=j('<div class="space-y-4"><div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><div class="flex items-center justify-between mb-1"><p class="text-xs uppercase tracking-widest text-secondary font-semibold"> </p> <p class="text-sm font-mono font-bold"> </p></div> <div class="h-2 bg-surface-container rounded-full overflow-hidden"><div class="h-full bg-primary rounded-full transition-all"></div></div> <p class="text-xs text-secondary text-right mt-1"> </p></div> <div class="flex gap-2"><button class="flex items-center gap-2 px-3 py-2 rounded border border-outline-variant text-xs font-semibold uppercase tracking-wider text-secondary hover:bg-surface-container transition-colors"><span class="material-symbols-outlined text-sm">format_list_bulleted</span> /book-outline</button> <button class="flex items-center gap-2 px-3 py-2 rounded border border-outline-variant text-xs font-semibold uppercase tracking-wider text-secondary hover:bg-surface-container transition-colors"><span class="material-symbols-outlined text-sm">edit_note</span> /book-draft</button></div> <div class="overflow-x-auto border border-outline-variant rounded bg-surface-container-lowest"><table class="w-full text-sm"><thead><tr class="border-b border-outline-variant"><th class="px-3 py-2.5 text-left text-xs font-bold uppercase tracking-widest text-secondary"> </th><th class="px-3 py-2.5 text-left text-xs font-bold uppercase tracking-widest text-secondary"> </th><th class="px-3 py-2.5 text-right text-xs font-bold uppercase tracking-widest text-secondary"> </th><th class="px-3 py-2.5 text-right text-xs font-bold uppercase tracking-widest text-secondary"> </th><th class="px-3 py-2.5 text-left text-xs font-bold uppercase tracking-widest text-secondary"> </th></tr></thead><tbody></tbody><tfoot><tr class="border-t-2 border-outline-variant"><td class="px-3 py-2.5 text-xs font-bold uppercase tracking-widest text-secondary" colspan="2"> </td><td class="px-3 py-2.5 text-right font-bold font-mono"> </td><td class="px-3 py-2.5 text-right font-mono text-secondary"> </td><td></td></tr></tfoot></table></div></div>');function Ac(e,t){Qt(t,!0);let n=te(()=>t.project.chapter_details??[]),r=te(()=>s(n).reduce((he,ie)=>he+ie.words,0)),i=te(()=>s(n).reduce((he,ie)=>he+ie.lines,0)),o=te(()=>t.project.target_words>0?Math.min(100,Math.round(t.project.total_words/t.project.target_words*100)):0);function c(he){return he==="edit"?"border-primary text-primary bg-primary/5":he==="draft"?"border-primary text-primary":"border-outline-variant text-on-surface-variant"}var p=Ec(),d=a(p),m=a(d),b=a(m),g=a(b),v=l(b,2),w=a(v),y=l(m,2),k=a(y),h=l(y,2),x=a(h),P=l(d,2),E=a(P),z=l(E,2),R=l(P,2),M=a(R),N=a(M),Z=a(N),X=a(Z),ce=a(X),D=l(X),Y=a(D),L=l(D),B=a(L),ge=l(L),ue=a(ge),de=l(ge),Pe=a(de),$=l(N);xe($,21,()=>s(n),_e,(he,ie)=>{var nt=Cc(),Oe=a(nt),rt=a(Oe),at=l(Oe),me=a(at),V=l(at),O=a(V),K=l(V),ee=a(K),re=l(K),ye=a(re),Ie=a(ye);T((Fe,Me,Be,Ye)=>{u(rt,s(ie).filename),u(me,s(ie).title),u(O,Fe),u(ee,Me),ve(ye,1,`inline-flex px-2 py-0.5 rounded text-xs font-bold uppercase tracking-wider border ${Be??""}`),u(Ie,Ye)},[()=>s(ie).words>0?s(ie).words.toLocaleString():"0",()=>s(ie).lines>0?s(ie).lines.toLocaleString():"0",()=>c(s(ie).status),()=>t.i18n.t("chStatus."+s(ie).status)]),oe("click",nt,()=>{const Fe=s(ie).status==="wait"?"cmd.redraftWait":"cmd.redraft";t.copyToClipboard(t.i18n.t(Fe,{file:s(ie).filename}))}),A(he,nt)});var je=l($),ne=a(je),pe=a(ne),Re=a(pe),De=l(pe),ze=a(De),Ze=l(De),tt=a(Ze);T((he,ie,nt,Oe,rt,at,me,V,O,K,ee,re)=>{u(g,he),u(w,`${ie??""} / ${nt??""} ${Oe??""}`),Mt(k,`width:${s(o)??""}%`),u(x,`${s(o)??""}%`),u(ce,rt),u(Y,at),u(B,me),u(ue,V),u(Pe,O),u(Re,K),u(ze,ee),u(tt,re)},[()=>t.i18n.t("drafts.progress"),()=>t.project.total_words.toLocaleString(),()=>t.project.target_words.toLocaleString(),()=>t.i18n.t("drafts.words"),()=>t.i18n.t("drafts.file"),()=>t.i18n.t("drafts.title"),()=>t.i18n.t("drafts.words"),()=>t.i18n.t("drafts.lines"),()=>t.i18n.t("drafts.status"),()=>t.i18n.t("drafts.total"),()=>s(r).toLocaleString(),()=>s(i).toLocaleString()]),oe("click",E,()=>t.copyToClipboard("/book-outline")),oe("click",z,()=>t.copyToClipboard("/book-draft")),A(e,p),Jt()}_n(["click"]);var jc=j('<div class="border border-outline-variant rounded bg-surface-container-lowest p-2.5 text-center"><div class="flex items-center justify-between mb-1"><span class="material-symbols-outlined text-sm text-secondary"> </span> <span class="text-xs font-bold text-on-surface-variant"> </span></div> <p class="text-xs font-bold uppercase tracking-wider text-secondary leading-tight"> </p> <p class="text-xs text-on-surface-variant font-mono mt-0.5 truncate"> </p></div>'),Dc=j("<span></span>"),Tc=j('<button class="w-full flex items-center gap-3 px-4 py-3 hover:bg-surface-container transition-colors text-left border-b border-outline-variant last:border-b-0"><div class="flex-1 min-w-0"><p class="text-sm font-bold uppercase tracking-wide truncate"> </p></div> <p class="text-xs font-mono text-secondary shrink-0 hidden sm:block"> </p> <div class="flex gap-1 shrink-0"></div> <span> </span></button>'),Rc=j('<div><p class="text-xs uppercase tracking-widest text-secondary mb-2 font-semibold"> </p> <div class="border border-outline-variant rounded bg-surface-container-lowest overflow-hidden"></div></div>'),zc=j('<div class="text-center py-16"><span class="material-symbols-outlined text-5xl text-outline">history_edu</span> <p class="mt-2 text-sm uppercase tracking-wider text-secondary"> </p></div>'),Ic=j('<div class="space-y-4"><div class="flex items-center justify-between"><p class="text-sm font-bold uppercase tracking-wider"> </p> <button class="flex items-center gap-2 px-3 py-2 rounded border border-outline-variant text-xs font-semibold uppercase tracking-wider text-secondary hover:bg-surface-container transition-colors"><span class="material-symbols-outlined text-sm">history_edu</span> /book-edit</button></div> <div class="grid grid-cols-5 gap-1"></div> <!></div>');function Oc(e,t){Qt(t,!0);const n=[{id:"assessment",icon:"search",file:"01-assessment.md",labelKey:"edit.stage.assessment"},{id:"developmental",icon:"account_tree",file:"02-developmental.md",labelKey:"edit.stage.developmental"},{id:"line-edit",icon:"format_paint",file:"03-line-edit.md",labelKey:"edit.stage.lineEdit"},{id:"copy-edit",icon:"spellcheck",file:"04-copy-edit.md",labelKey:"edit.stage.copyEdit"},{id:"proofread",icon:"verified",file:"05-proofread.md",labelKey:"edit.stage.proofread"}];let r=te(()=>t.project.chapter_details??[]),i=te(()=>s(r).filter(h=>h.status==="edit"||h.status==="draft"||h.status==="wait"));function o(h,x){const E=["assessment","developmental","line-edit","copy-edit","proofread"].indexOf(h.edit_stage??"");return h.status!=="edit"&&h.status!=="done"?"bg-outline-variant":E===-1?h.status==="edit"?"bg-primary":"bg-outline-variant":x<E?"bg-primary/40":x===E?"bg-primary":"bg-outline-variant"}function c(h){return h==="edit"?"border-primary text-primary":h==="draft"?"border-secondary text-secondary":"border-outline-variant text-on-surface-variant"}var p=Ic(),d=a(p),m=a(d),b=a(m),g=l(m,2),v=l(d,2);xe(v,21,()=>n,_e,(h,x)=>{const P=te(()=>s(r).filter(L=>L.edit_stage===s(x).id).length);var E=jc(),z=a(E),R=a(z),M=a(R),N=l(R,2),Z=a(N),X=l(z,2),ce=a(X),D=l(X,2),Y=a(D);T(L=>{u(M,s(x).icon),u(Z,s(P)),u(ce,L),u(Y,s(x).file)},[()=>t.i18n.t(s(x).labelKey)]),A(h,E)});var w=l(v,2);{var y=h=>{var x=Rc(),P=a(x),E=a(P),z=l(P,2);xe(z,21,()=>s(r),_e,(R,M)=>{var N=Tc(),Z=a(N),X=a(Z),ce=a(X),D=l(Z,2),Y=a(D),L=l(D,2);xe(L,21,()=>n,_e,(ue,de,Pe)=>{var $=Dc();T(je=>ve($,1,`w-3 h-3 rounded-full ${je??""}`),[()=>o(s(M),Pe)]),A(ue,$)});var B=l(L,2),ge=a(B);T((ue,de)=>{u(ce,s(M).title),u(Y,s(M).filename),ve(B,1,`inline-flex px-2 py-0.5 rounded text-xs font-bold uppercase tracking-wider border shrink-0 ${ue??""}`),u(ge,de)},[()=>c(s(M).status),()=>t.i18n.t("chStatus."+s(M).status)]),oe("click",N,()=>{t.copyToClipboard(`/book-edit ${s(M).filename}`)}),A(R,N)}),T(R=>u(E,R),[()=>t.i18n.t("edits.stageProgress")]),A(h,x)},k=h=>{var x=zc(),P=l(a(x),2),E=a(P);T(z=>u(E,z),[()=>t.i18n.t("edits.inPipeline",{n:0})]),A(h,x)};Se(w,h=>{s(r).length>0?h(y):h(k,-1)})}T(h=>u(b,h),[()=>t.i18n.t("edits.inPipeline",{n:s(i).length})]),oe("click",g,()=>t.copyToClipboard("/book-edit")),A(e,p),Jt()}_n(["click"]);var Fc=j('<span class="text-xs font-bold uppercase tracking-wider border border-primary text-primary px-2 py-0.5 rounded"> </span>'),Mc=j('<span class="text-xs font-bold uppercase tracking-wider border border-outline-variant text-secondary px-2 py-0.5 rounded"> </span>'),Nc=j('<a class="mt-2 flex items-center gap-1 text-xs text-primary font-semibold uppercase tracking-wider hover:underline"><span class="material-symbols-outlined text-sm">download</span> </a>'),Gc=j('<div><div class="flex items-start gap-3"><span> </span> <div class="flex-1 min-w-0"><p class="text-sm font-bold uppercase tracking-wider"> </p> <p class="text-xs text-secondary mt-0.5"> </p></div></div> <div class="mt-3 flex items-center justify-between"><span class="text-xs font-mono text-on-surface-variant"> </span> <!></div> <!></div>'),qc=j('<div class="flex items-center gap-3"><span> </span> <span> </span></div>'),Kc=j('<div class="space-y-4"><div class="flex items-center justify-between"><p class="text-sm font-bold uppercase tracking-wider"> </p> <button class="flex items-center gap-2 px-3 py-2 rounded border border-outline-variant text-xs font-semibold uppercase tracking-wider text-secondary hover:bg-surface-container transition-colors"><span class="material-symbols-outlined text-sm">publish</span> /book-publish</button></div> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3"></div> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><p class="text-xs uppercase tracking-widest text-secondary mb-3 font-semibold"> </p> <div class="space-y-2.5"></div></div></div>');function Bc(e,t){Qt(t,!0);let n=te(()=>t.project.output_files??[]),r=te(()=>s(n).filter(x=>x.exists).length);const i={"book.epub":{icon:"menu_book",label:"EPUB",descKey:"publish.fmt.epub"},"book.pdf":{icon:"picture_as_pdf",label:"PDF",descKey:"publish.fmt.pdf"},"book.mobi":{icon:"devices",label:"MOBI",descKey:"publish.fmt.mobi"},"book.txt":{icon:"article",label:"TXT",descKey:"publish.fmt.txt"},"book.md":{icon:"code",label:"MD",descKey:"publish.fmt.md"}};function o(x){return x?x<1024?`${x} B`:x<1024*1024?`${(x/1024).toFixed(1)} KB`:`${(x/(1024*1024)).toFixed(1)} MB`:"—"}let c=te(()=>{var x,P,E,z;return[{key:"publish.check.wordTarget",ok:t.project.total_words>=t.project.target_words},{key:"publish.check.allDrafts",ok:(t.project.chapter_details??[]).every(R=>R.status!=="wait")},{key:"publish.check.editingDone",ok:(t.project.chapter_details??[]).every(R=>R.edit_stage==="proofread")},{key:"publish.check.outlineDone",ok:((P=(x=t.project.phase_status)==null?void 0:x[2])==null?void 0:P.status)==="complete"},{key:"publish.check.editingPhaseDone",ok:((z=(E=t.project.phase_status)==null?void 0:E[4])==null?void 0:z.status)==="complete"}]});var p=Kc(),d=a(p),m=a(d),b=a(m),g=l(m,2),v=l(d,2);xe(v,21,()=>s(n),_e,(x,P)=>{const E=te(()=>i[s(P).name]??{icon:"description",label:s(P).name,descKey:""});var z=Gc(),R=a(z),M=a(R),N=a(M),Z=l(M,2),X=a(Z),ce=a(X),D=l(X,2),Y=a(D),L=l(R,2),B=a(L),ge=a(B),ue=l(B,2);{var de=ne=>{var pe=Fc(),Re=a(pe);T(De=>u(Re,De),[()=>t.i18n.t("publish.ready")]),A(ne,pe)},Pe=ne=>{var pe=Mc(),Re=a(pe);T(De=>u(Re,De),[()=>t.i18n.t("publish.pending")]),A(ne,pe)};Se(ue,ne=>{s(P).exists?ne(de):ne(Pe,-1)})}var $=l(L,2);{var je=ne=>{var pe=Nc(),Re=l(a(pe));T(De=>{ea(pe,"href",`/download/${t.projectIndex??""}/${s(P).name??""}`),u(Re,` ${De??""}`)},[()=>t.i18n.t("publish.download")]),A(ne,pe)};Se($,ne=>{s(P).exists&&t.projectIndex!=null&&ne(je)})}T((ne,pe)=>{ve(z,1,`border ${s(P).exists?"border-primary":"border-outline-variant"} rounded bg-surface-container-lowest p-4`),ve(M,1,`material-symbols-outlined text-2xl ${s(P).exists?"text-primary":"text-outline"} mt-0.5`),u(N,s(E).icon),u(ce,s(E).label),u(Y,ne),u(ge,pe)},[()=>s(E).descKey?t.i18n.t(s(E).descKey):"",()=>o(s(P).size_bytes)]),A(x,z)});var w=l(v,2),y=a(w),k=a(y),h=l(y,2);xe(h,21,()=>s(c),_e,(x,P)=>{var E=qc(),z=a(E),R=a(z),M=l(z,2),N=a(M);T(Z=>{ve(z,1,`material-symbols-outlined text-lg ${s(P).ok?"text-primary":"text-outline"}`),u(R,s(P).ok?"check_circle":"radio_button_unchecked"),ve(M,1,`text-sm ${s(P).ok?"text-on-surface":"text-secondary"}`),u(N,Z)},[()=>t.i18n.t(s(P).key)]),A(x,E)}),T((x,P)=>{u(b,x),u(k,P)},[()=>t.i18n.t("publish.filesReady",{ready:s(r),total:s(n).length}),()=>t.i18n.t("publish.checklist")]),oe("click",g,()=>t.copyToClipboard("/book-publish")),A(e,p),Jt()}_n(["click"]);var Lc=j('<div class="px-4 py-3 flex items-center gap-4"><span class="text-xs text-secondary font-mono w-4"> </span> <span class="text-xs font-semibold uppercase tracking-widest text-secondary w-24"> </span> <div class="flex-1 h-2 bg-surface-container rounded-full overflow-hidden"><div></div></div> <span class="text-xs text-secondary font-mono w-8 text-right"> </span> <span> </span></div>'),Hc=j('<div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <div class="divide-y divide-outline-variant"></div></div>'),Vc=j('<button class="w-full flex items-center gap-4 px-4 py-3 hover:bg-surface-container transition-colors text-left"><code class="text-xs font-bold text-primary font-mono w-32 shrink-0"> </code> <span class="text-xs text-secondary"> </span></button>'),Uc=j('<div class="flex items-center gap-4 px-4 py-3"><span class="material-symbols-outlined text-base text-secondary shrink-0"> </span> <code class="text-xs font-bold font-mono w-36 shrink-0"> </code> <span class="text-xs text-secondary flex-1"> </span> <span class="text-xs uppercase tracking-wider text-on-surface-variant border border-outline-variant px-2 py-0.5 rounded"> </span></div>'),Wc=j('<span class="w-2 h-2 rounded-full bg-primary"></span>'),Zc=j('<span class="text-xs border border-outline-variant text-secondary px-1.5 py-0.5 rounded uppercase tracking-wider"> </span>'),Yc=j('<button class="w-full flex items-center gap-4 px-4 py-3 hover:bg-surface-container transition-colors text-left"><span><!></span> <div class="flex-1 min-w-0"><div class="flex items-center gap-2"><p class="text-sm font-semibold"> </p> <!></div> <p class="text-xs text-secondary font-mono truncate"> </p></div> <span class="text-sm text-secondary shrink-0"> </span></button>'),Qc=j('<button class="w-8 h-8 rounded-full border-2 transition-all hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"></button>'),Jc=j('<div class="space-y-4 max-w-3xl"><div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <div class="p-4 grid grid-cols-2 gap-x-8 gap-y-3 text-sm"><div><p class="text-xs text-secondary uppercase tracking-widest mb-0.5"> </p> <p class="font-medium"> </p></div> <div><p class="text-xs text-secondary uppercase tracking-widest mb-0.5"> </p> <p class="font-medium capitalize"> </p></div> <div><p class="text-xs text-secondary uppercase tracking-widest mb-0.5"> </p> <p class="font-medium uppercase"> </p></div> <div><p class="text-xs text-secondary uppercase tracking-widest mb-0.5"> </p> <p class="font-medium"> </p></div> <div class="col-span-2"><p class="text-xs text-secondary uppercase tracking-widest mb-0.5"> </p> <p class="font-mono text-xs truncate"> </p></div></div></div> <div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <table class="w-full text-sm"><tbody><tr class="border-b border-outline-variant"><td class="px-4 py-2.5 text-xs uppercase tracking-widest text-secondary font-semibold"> </td><td class="px-4 py-2.5 text-right font-bold font-mono text-lg text-on-surface"> </td></tr><tr class="border-b border-outline-variant"><td class="px-4 py-2.5 text-xs uppercase tracking-widest text-secondary font-semibold"> </td><td class="px-4 py-2.5 text-right font-bold font-mono"> </td></tr><tr class="border-b border-outline-variant"><td class="px-4 py-2.5 text-xs uppercase tracking-widest text-secondary font-semibold"> </td><td class="px-4 py-2.5 text-right font-bold font-mono"> </td></tr><tr><td class="px-4 py-2.5 text-xs uppercase tracking-widest text-secondary font-semibold"> </td><td class="px-4 py-2.5 text-right font-bold"> </td></tr></tbody></table></div> <!> <div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <div class="divide-y divide-outline-variant"></div></div> <div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <div class="divide-y divide-outline-variant"></div></div> <div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <div class="divide-y divide-outline-variant"></div></div> <div class="border border-outline-variant rounded overflow-hidden"><div class="px-4 py-2 border-b border-outline-variant bg-surface-container"><p class="text-xs font-bold uppercase tracking-widest text-secondary"> </p></div> <div class="p-4 space-y-4"><div class="flex flex-wrap gap-2"></div> <div class="flex items-center gap-3"><label class="relative w-10 h-10 rounded-lg border border-outline-variant overflow-hidden cursor-pointer hover:border-primary transition-colors shrink-0"><input type="color" class="absolute inset-0 w-full h-full opacity-0 cursor-pointer"/> <div class="w-full h-full rounded-lg"></div> <span class="absolute bottom-0 right-0 material-symbols-outlined text-white" style="font-size:12px; text-shadow:0 0 3px rgba(0,0,0,0.5)">colorize</span></label> <div class="flex-1"><p class="text-xs font-semibold text-on-surface"> </p> <p class="text-xs text-secondary font-mono"> </p></div> <button class="text-xs text-secondary hover:text-on-surface border border-outline-variant px-3 py-1.5 rounded transition-colors"> </button></div></div></div></div>');function Xc(e,t){Qt(t,!0);let n=ya(t,"isDark",3,!1),r=ya(t,"accent",3,"#e8650a"),i=ya(t,"font",3,"geist");function o(ke){return ke==="complete"?"border-primary text-on-primary bg-primary":ke==="in_progress"?"border-primary text-primary bg-primary/10":"border-outline-variant text-secondary"}function c(ke){return ke==="complete"?t.i18n.t("status.complete"):ke==="in_progress"?t.i18n.t("status.running"):t.i18n.t("status.pending")}var p=Jc(),d=a(p),m=a(d),b=a(m),g=a(b),v=l(m,2),w=a(v),y=a(w),k=a(y),h=l(y,2),x=a(h),P=l(w,2),E=a(P),z=a(E),R=l(E,2),M=a(R),N=l(P,2),Z=a(N),X=a(Z),ce=l(Z,2),D=a(ce),Y=l(N,2),L=a(Y),B=a(L),ge=l(L,2),ue=a(ge),de=l(Y,2),Pe=a(de),$=a(Pe),je=l(Pe,2),ne=a(je),pe=l(d,2),Re=a(pe),De=a(Re),ze=a(De),Ze=l(Re,2),tt=a(Ze),he=a(tt),ie=a(he),nt=a(ie),Oe=l(ie),rt=a(Oe),at=l(he),me=a(at),V=a(me),O=l(me),K=a(O),ee=l(at),re=a(ee),ye=a(re),Ie=l(re),Fe=a(Ie),Me=l(ee),Be=a(Me),Ye=a(Be),Ne=l(Be),it=a(Ne),st=l(pe,2);{var Dt=ke=>{var Q=Hc(),Ce=a(Q),He=a(Ce),$t=a(He),Lt=l(Ce,2);xe(Lt,21,()=>t.project.phase_status,_e,(_t,Ge)=>{var Ht=Lc(),an=a(Ht),yn=a(an),sn=l(an,2),pr=a(sn),Bn=l(sn,2),wn=a(Bn),Ln=l(Bn,2),vt=a(Ln),en=l(Ln,2),fr=a(en);T((pa,fa,Vs,Us)=>{u(yn,s(Ge).phase),u(pr,pa),ve(wn,1,`h-full rounded-full transition-all
                ${s(Ge).status==="complete"||s(Ge).status==="in_progress"?"bg-primary":"bg-outline-variant"}`),Mt(wn,`width:${fa??""}%`),u(vt,`${s(Ge).percent??""}%`),ve(en,1,`text-xs font-bold uppercase tracking-wider px-2 py-0.5 rounded border w-24 text-center ${Vs??""}`),u(fr,Us)},[()=>t.i18n.t("phase."+s(Ge).name.toLowerCase().replace(/\s+/g,"-"))||s(Ge).name||"",()=>Math.min(100,s(Ge).percent),()=>o(s(Ge).status),()=>c(s(Ge).status)]),A(_t,Ht)}),T(_t=>u($t,_t),[()=>t.i18n.t("settings.phaseStatus")]),A(ke,Q)};Se(st,ke=>{t.project.phase_status&&ke(Dt)})}var Tt=l(st,2),be=a(Tt),Te=a(be),Qe=a(Te),ot=l(be,2);xe(ot,21,()=>$a,_e,(ke,Q)=>{var Ce=Vc(),He=a(Ce),$t=a(He),Lt=l(He,2),_t=a(Lt);T(Ge=>{u($t,s(Q).cmd),u(_t,Ge)},[()=>t.i18n.t("cmd."+s(Q).cmd.replace("/book-","")+".long")||t.i18n.t("cmd."+s(Q).cmd.replace("/book-","")+".desc")||""]),oe("click",Ce,()=>t.copyToClipboard(s(Q).cmd)),A(ke,Ce)});var Bt=l(Tt,2),bt=a(Bt),Le=a(bt),_=a(Le),S=l(bt,2);xe(S,21,()=>Ts,_e,(ke,Q)=>{var Ce=Uc(),He=a(Ce),$t=a(He),Lt=l(He,2),_t=a(Lt),Ge=l(Lt,2),Ht=a(Ge),an=l(Ge,2),yn=a(an);T(sn=>{u($t,s(Q).icon),u(_t,s(Q).id),u(Ht,sn),u(yn,s(Q).genre)},[()=>t.i18n.t("agent."+s(Q).id)||""]),A(ke,Ce)});var I=l(Bt,2),se=a(I),U=a(se),we=a(U),fe=l(se,2);xe(fe,21,()=>ra,_e,(ke,Q)=>{var Ce=Yc(),He=a(Ce),$t=a(He);{var Lt=vt=>{var en=Wc();A(vt,en)};Se($t,vt=>{i()===s(Q).id&&vt(Lt)})}var _t=l(He,2),Ge=a(_t),Ht=a(Ge),an=a(Ht),yn=l(Ht,2);{var sn=vt=>{var en=Zc(),fr=a(en);T(()=>u(fr,s(Q).cjk==="kr"?"한":s(Q).cjk==="jp"?"日":"中")),A(vt,en)};Se(yn,vt=>{s(Q).cjk&&vt(sn)})}var pr=l(Ge,2),Bn=a(pr),wn=l(_t,2),Ln=a(wn);T(vt=>{ve(He,1,`w-4 h-4 rounded-full border-2 shrink-0 flex items-center justify-center
            ${i()===s(Q).id?"border-primary":"border-outline-variant"}`),Mt(Ht,`font-family:${s(Q).stack??""}`),u(an,s(Q).label),u(Bn,vt),Mt(wn,`font-family:${s(Q).stack??""}`),u(Ln,s(Q).cjk==="kr"?"가나다 Aa123":s(Q).cjk==="jp"?"あいう Aa123":s(Q).cjk==="sc"?"你好世界 Aa123":"Aa123")},[()=>s(Q).stack.split(",")[0].replace(/'/g,"")]),oe("click",Ce,()=>Ns(s(Q).id)),A(ke,Ce)});var Je=l(I,2),Xt=a(Je),xn=a(Xt),qn=a(xn),dr=l(Xt,2),Kn=a(dr);xe(Kn,21,()=>oc,_e,(ke,Q)=>{const Ce=te(()=>n()?s(Q).dark:s(Q).light);var He=Qc();T(()=>{Mt(He,`background-color:${s(Ce)??""}; border-color:${(r()===s(Ce)?s(Ce):"transparent")??""}; box-shadow:${r()===s(Ce)?"0 0 0 2px white, 0 0 0 4px "+s(Ce):"none"}`),ea(He,"title",s(Q).label)}),oe("click",He,()=>wa(s(Ce),n())),A(ke,He)});var ur=l(Kn,2),qr=a(ur),ua=a(qr),qs=l(ua,2),ri=l(qr,2),ai=a(ri),Ks=a(ai),Bs=l(ai,2),Ls=a(Bs),ii=l(ri,2),Hs=a(ii);T((ke,Q,Ce,He,$t,Lt,_t,Ge,Ht,an,yn,sn,pr,Bn,wn,Ln,vt,en,fr,pa,fa)=>{u(g,ke),u(k,Q),u(x,t.project.name),u(z,Ce),u(M,t.project.genre),u(X,He),u(D,t.project.language),u(B,$t),u(ue,Lt),u($,_t),u(ne,t.project.path),u(ze,Ge),u(nt,Ht),u(rt,an),u(V,yn),u(K,t.project.total_chapters),u(ye,sn),u(Fe,t.project.completed_chapters),u(Ye,pr),u(it,`${Bn??""}: ${wn??""}`),u(Qe,Ln),u(_,vt),u(we,en),u(qn,fr),Fl(ua,r()),Mt(qs,`background-color:${r()??""}`),u(Ks,pa),u(Ls,r()),u(Hs,fa)},[()=>t.i18n.t("settings.projectInfo"),()=>t.i18n.t("settings.fieldTitle"),()=>t.i18n.t("settings.fieldGenre"),()=>t.i18n.t("settings.fieldLanguage"),()=>t.i18n.t("settings.fieldUpdated"),()=>t.i18n.fmtDate(t.project.last_updated),()=>t.i18n.t("settings.fieldPath"),()=>t.i18n.t("settings.targets"),()=>t.i18n.t("settings.targetWords"),()=>t.project.target_words.toLocaleString(),()=>t.i18n.t("settings.totalChapters"),()=>t.i18n.t("settings.completedChapters"),()=>t.i18n.t("settings.currentPhase"),()=>t.i18n.t("help.phase",{n:t.project.current_phase}),()=>{var ke;return(ke=t.project.phase_status)!=null&&ke[t.project.current_phase]?t.i18n.t("phase."+t.project.phase_status[t.project.current_phase].name.toLowerCase().replace(/\s+/g,"-"))||t.project.phase_status[t.project.current_phase].name:"—"},()=>t.i18n.t("settings.commands"),()=>t.i18n.t("settings.agents"),()=>t.i18n.t("settings.font"),()=>t.i18n.t("settings.accentColor"),()=>t.i18n.t("settings.customColor"),()=>t.i18n.t("settings.resetColor")]),oe("input",ua,ke=>wa(ke.target.value,n())),oe("click",ii,()=>wa(n()?"#ff8c3a":"#e8650a",n())),A(e,p),Jt()}_n(["click","input"]);var $c=j("<button> </button>"),ed=j('<span class="px-2 py-0.5 text-xs rounded border border-primary text-primary bg-primary/5 font-medium"> </span>'),td=j('<span class="text-xs font-bold uppercase tracking-wider px-2 py-0.5 rounded border border-primary text-primary shrink-0"> </span>'),nd=j('<span class="text-xs font-bold uppercase tracking-wider px-2 py-0.5 rounded border border-outline-variant text-secondary shrink-0"> </span>'),rd=j('<button class="flex items-center gap-3 p-3 rounded border border-outline-variant bg-surface-container-lowest hover:bg-surface-container transition-colors text-left"><span class="material-symbols-outlined text-lg text-primary shrink-0"> </span> <div class="flex-1 min-w-0"><p class="text-xs font-bold font-mono text-primary"> </p> <p class="text-xs text-secondary mt-0.5 truncate"> </p></div> <!></button>'),ad=j('<div class="flex items-center gap-3 p-3 rounded border border-outline-variant bg-surface-container-lowest"><span class="material-symbols-outlined text-lg text-secondary shrink-0"> </span> <div class="flex-1 min-w-0"><p class="text-xs font-bold font-mono"> </p> <p class="text-xs text-secondary mt-0.5"> </p></div> <span class="text-xs uppercase tracking-wider text-on-surface-variant border border-outline-variant px-2 py-0.5 rounded shrink-0"> </span></div>'),id=j('<span class="text-outline text-xs">›</span>'),sd=j('<div><p class="text-xs font-bold uppercase tracking-wider leading-none"> </p> <p class="text-xs text-current opacity-60 mt-0.5"> </p></div> <!>',1),od=j('<button class="w-full flex items-center gap-3 px-4 py-3 hover:bg-surface-container transition-colors text-left border-b border-outline-variant last:border-b-0"><span class="w-6 h-6 rounded-full bg-primary text-on-primary text-xs flex items-center justify-center font-bold shrink-0"></span> <span class="material-symbols-outlined text-base text-secondary shrink-0"> </span> <div class="flex-1 min-w-0"><p class="text-xs font-bold font-mono text-primary"> </p> <p class="text-xs text-secondary"> </p></div></button>'),ld=j(`<div class="space-y-6 max-w-4xl"><div class="border border-outline-variant rounded bg-surface-container-lowest p-4 flex items-start gap-3"><span class="material-symbols-outlined text-2xl text-primary mt-0.5">help_outline</span> <div><h2 class="text-lg font-bold" style="font-family:'Newsreader',serif;"> </h2> <p class="text-xs text-secondary mt-0.5"> </p></div></div> <div><p class="text-xs uppercase tracking-widest text-secondary mb-2 font-semibold"> </p> <div class="flex flex-wrap gap-1 mb-3"></div> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><div class="flex items-center gap-2 mb-2"><span class="material-symbols-outlined text-lg text-primary"> </span> <h3 class="font-bold uppercase tracking-wide text-sm"> </h3></div> <div class="mb-2"><p class="text-xs uppercase tracking-widest text-secondary mb-1 font-semibold"> </p> <p class="text-xs text-on-surface bg-surface-container px-3 py-2 rounded font-mono"> </p></div> <div class="mb-2"><p class="text-xs uppercase tracking-widest text-secondary mb-1 font-semibold"> </p> <div class="flex flex-wrap gap-1.5"></div></div> <p class="text-xs text-secondary italic"> </p></div></div> <div><p class="text-xs uppercase tracking-widest text-secondary mb-2 font-semibold"> </p> <div class="grid grid-cols-1 sm:grid-cols-2 gap-2"></div></div> <div><p class="text-xs uppercase tracking-widest text-secondary mb-2 font-semibold"> </p> <div class="grid grid-cols-1 sm:grid-cols-2 gap-2"></div></div> <div><p class="text-xs uppercase tracking-widest text-secondary mb-2 font-semibold"> </p> <div class="border border-outline-variant rounded bg-surface-container-lowest p-4"><div class="flex items-center gap-1"></div> <p class="text-xs text-on-surface-variant mt-3"> </p></div></div> <div><p class="text-xs uppercase tracking-widest text-secondary mb-2 font-semibold"> </p> <div class="border border-outline-variant rounded bg-surface-container-lowest overflow-hidden"></div></div></div>`);function cd(e,t){Qt(t,!0);let n=Ve(Ft(Lr[0].id)),r=te(()=>Lr.find(V=>V.id===s(n))??Lr[0]);var i=ld(),o=a(i),c=l(a(o),2),p=a(c),d=a(p),m=l(p,2),b=a(m),g=l(o,2),v=a(g),w=a(v),y=l(v,2);xe(y,21,()=>Lr,_e,(V,O)=>{var K=$c(),ee=a(K);T(re=>{ve(K,1,`px-2.5 py-1 rounded text-xs font-bold uppercase tracking-wider border transition-colors
            ${s(n)===s(O).id?"bg-primary border-primary text-on-primary":"border-outline-variant text-secondary hover:bg-surface-container"}`),u(ee,re)},[()=>t.i18n.t(s(O).nameKey)]),oe("click",K,()=>ae(n,s(O).id,!0)),A(V,K)});var k=l(y,2),h=a(k),x=a(h),P=a(x),E=l(x,2),z=a(E),R=l(h,2),M=a(R),N=a(M),Z=l(M,2),X=a(Z),ce=l(R,2),D=a(ce),Y=a(D),L=l(D,2);xe(L,21,()=>s(r).highlightKeys,_e,(V,O)=>{var K=ed(),ee=a(K);T(re=>u(ee,re),[()=>t.i18n.t(s(O))]),A(V,K)});var B=l(ce,2),ge=a(B),ue=l(g,2),de=a(ue),Pe=a(de),$=l(de,2);xe($,21,()=>$a,_e,(V,O)=>{var K=rd(),ee=a(K),re=a(ee),ye=l(ee,2),Ie=a(ye),Fe=a(Ie),Me=l(Ie,2),Be=a(Me),Ye=l(ye,2);{var Ne=st=>{var Dt=td(),Tt=a(Dt);T(be=>u(Tt,be),[()=>t.i18n.t("help.phase",{n:s(O).phase})]),A(st,Dt)},it=st=>{var Dt=nd(),Tt=a(Dt);T(be=>u(Tt,be),[()=>t.i18n.t("help.utility")]),A(st,Dt)};Se(Ye,st=>{s(O).phase>=0?st(Ne):st(it,-1)})}T(st=>{u(re,s(O).icon),u(Fe,s(O).cmd),u(Be,st)},[()=>t.i18n.t("cmd."+s(O).cmd.replace("/book-","")+".long")||t.i18n.t("cmd."+s(O).cmd.replace("/book-","")+".desc")||""]),oe("click",K,()=>t.copyToClipboard(s(O).cmd)),A(V,K)});var je=l(ue,2),ne=a(je),pe=a(ne),Re=l(ne,2);xe(Re,21,()=>Ts,_e,(V,O)=>{var K=ad(),ee=a(K),re=a(ee),ye=l(ee,2),Ie=a(ye),Fe=a(Ie),Me=l(Ie,2),Be=a(Me),Ye=l(ye,2),Ne=a(Ye);T(it=>{u(re,s(O).icon),u(Fe,s(O).id),u(Be,it),u(Ne,s(O).genre)},[()=>t.i18n.t("agent."+s(O).id)||""]),A(V,K)});var De=l(je,2),ze=a(De),Ze=a(ze),tt=l(ze,2),he=a(tt);xe(he,21,()=>[t.i18n.t("phase.onboarding"),t.i18n.t("phase.ideation"),t.i18n.t("phase.outlining"),t.i18n.t("phase.drafting"),t.i18n.t("phase.editing"),t.i18n.t("phase.publishing")],_e,(V,O,K)=>{var ee=sd(),re=za(ee);ve(re,1,`flex-1 text-center py-3 rounded border
            ${K===3?"bg-primary border-primary text-on-primary":"bg-surface-container border-outline-variant text-secondary"}`);var ye=a(re),Ie=a(ye),Fe=l(ye,2),Me=a(Fe),Be=l(re,2);{var Ye=Ne=>{var it=id();A(Ne,it)};Se(Be,Ne=>{K<5&&Ne(Ye)})}T(Ne=>{u(Ie,s(O)),u(Me,Ne)},[()=>t.i18n.t("help.phase",{n:K})]),A(V,ee)});var ie=l(he,2),nt=a(ie),Oe=l(De,2),rt=a(Oe),at=a(rt),me=l(rt,2);xe(me,20,()=>[{cmd:"/book-init",icon:"rocket_launch",key:"help.qs.init"},{cmd:"/book-ideation",icon:"lightbulb",key:"help.qs.ideation"},{cmd:"/book-outline",icon:"format_list_bulleted",key:"help.qs.outline"},{cmd:"/book-draft",icon:"edit_note",key:"help.qs.draft"},{cmd:"/book-edit",icon:"history_edu",key:"help.qs.edit"},{cmd:"/book-publish",icon:"publish",key:"help.qs.publish"}],_e,(V,O,K)=>{var ee=od(),re=a(ee);re.textContent=K+1;var ye=l(re,2),Ie=a(ye),Fe=l(ye,2),Me=a(Fe),Be=a(Me),Ye=l(Me,2),Ne=a(Ye);T(it=>{u(Ie,O.icon),u(Be,O.cmd),u(Ne,it)},[()=>t.i18n.t(O.key)]),oe("click",ee,()=>t.copyToClipboard(O.cmd)),A(V,ee)}),T((V,O,K,ee,re,ye,Ie,Fe,Me,Be,Ye,Ne,it)=>{u(d,V),u(b,O),u(w,K),u(P,$l[s(r).id]??"book"),u(z,ee),u(N,re),u(X,ye),u(Y,Ie),u(ge,`💡 ${Fe??""}`),u(Pe,Me),u(pe,Be),u(Ze,Ye),u(nt,Ne),u(at,it)},[()=>t.i18n.t("help.title"),()=>t.i18n.t("help.subtitle"),()=>t.i18n.t("help.genreWorkflow"),()=>t.i18n.t(s(r).nameKey),()=>t.i18n.t("help.structure"),()=>t.i18n.t(s(r).structureKey),()=>t.i18n.t("help.keyFeatures"),()=>t.i18n.t(s(r).tipKey),()=>t.i18n.t("help.skills"),()=>t.i18n.t("help.agents"),()=>t.i18n.t("help.pipelineOverview"),()=>t.i18n.t("help.pipelineTip"),()=>t.i18n.t("help.quickStart")]),A(e,i),Jt()}_n(["click"]);var dd=j('<div class="fixed top-0 left-0 right-0 z-50 flex items-center justify-between bg-primary-container px-4 py-1.5 text-xs font-medium text-on-primary-container border-b border-primary"><span> </span> <a class="flex items-center gap-1 hover:underline"><span class="material-symbols-outlined text-sm">arrow_upward</span> </a></div>'),ud=j('<div class="fixed inset-0 bg-black/50 z-30 md:hidden" role="presentation"></div>'),pd=j('<button><span> </span> <span class="text-xs tracking-widest uppercase font-semibold"> </span></button>'),fd=j("<button> </button>"),vd=j('<div class="border-t border-sidebar-border mt-1 pt-2 px-3"><p class="text-xs text-sidebar-muted mb-1 uppercase tracking-widest px-1">Projects</p> <!></div>'),gd=j('<button class="flex items-center gap-1 text-xs text-sidebar-muted hover:text-sidebar-text mb-1 uppercase tracking-wider"><span class="material-symbols-outlined text-xs">arrow_back</span> Select a project</button> <p class="text-xs text-sidebar-text font-medium truncate"> </p> <p class="text-xs text-sidebar-muted truncate capitalize"> </p>',1),hd=j('<p class="text-xs text-sidebar-muted">No project</p>'),md=j("<option> </option>"),bd=j('<div class="flex items-center justify-center h-64"><div class="flex flex-col items-center gap-3 text-secondary"><span class="material-symbols-outlined text-4xl" style="animation:spin 1s linear infinite">autorenew</span> <p class="text-sm tracking-wider uppercase"> </p></div></div>'),_d=j('<div class="flex flex-col items-center justify-center h-64 text-center space-y-4"><span class="material-symbols-outlined text-6xl text-outline">menu_book</span> <p class="text-sm font-semibold uppercase tracking-wider"> </p> <p class="text-xs text-secondary max-w-sm"> </p> <code class="text-primary font-mono text-sm bg-surface-container px-3 py-1 rounded"> </code> <a href="?example" class="text-primary underline text-xs"> </a></div>'),xd=j('<button class="w-full flex items-center gap-4 p-4 rounded border border-outline-variant bg-surface-container-lowest hover:bg-surface-container transition-colors text-left"><div class="w-12 h-16 bg-surface-container rounded flex items-center justify-center shrink-0 border border-outline-variant"><span class="material-symbols-outlined text-2xl text-outline">menu_book</span></div> <div class="flex-1 min-w-0"><p class="font-bold uppercase tracking-wide text-sm truncate"> </p> <p class="text-xs text-secondary capitalize mt-0.5"> </p> <p class="text-xs text-on-surface-variant mt-1 font-mono"> </p></div> <span class="material-symbols-outlined text-secondary">chevron_right</span></button>'),yd=j(`<div class="flex flex-col items-center justify-center min-h-[65vh]"><div class="flex items-center gap-3 mb-1"><span class="material-symbols-outlined fill-icon text-5xl text-primary">book_2</span> <h1 class="text-5xl font-bold text-on-surface" style="font-family:'Newsreader',serif;">Velith</h1></div> <p class="text-xs tracking-widest uppercase text-secondary mb-10">Select a Project</p> <div class="w-full max-w-lg space-y-2"></div></div>`),wd=j("<span> <!></span>"),kd=j("<span>No project</span>"),Pd=j('<div class="animate-fade-in fixed bottom-8 left-1/2 -translate-x-1/2 z-50 bg-inverse-surface text-inverse-on-surface px-4 py-2 rounded shadow-xl flex items-center gap-2 text-xs pointer-events-none uppercase tracking-wider font-semibold svelte-1n46o8q"><span class="material-symbols-outlined text-sm">check_circle</span> </div>'),Sd=j(`<!> <!> <div><aside><div class="px-4 py-3 border-b border-sidebar-border shrink-0"><button class="flex items-center gap-2.5"><span class="material-symbols-outlined fill-icon text-xl text-sidebar-accent">book_2</span> <div class="text-left"><p class="font-bold text-base leading-none text-sidebar-text" style="font-family:'Newsreader',serif;">Velith</p> <p class="text-xs text-sidebar-muted tracking-widest uppercase mt-0.5">Writing Dashboard</p></div></button></div> <nav class="flex-1 overflow-y-auto py-1"><!> <!></nav> <div class="px-4 py-2.5 border-t border-sidebar-border shrink-0"><!></div></aside> <div class="md:ml-52 flex flex-col flex-1 min-h-screen"><header><button class="md:hidden p-1 rounded hover:bg-surface-container"><span class="material-symbols-outlined text-sm">menu</span></button> <div class="flex-1"></div> <a href="https://github.com/epicsagas/Velith" target="_blank" rel="noopener noreferrer" class="hidden sm:flex items-center gap-1 px-2.5 py-1 rounded text-xs font-semibold border border-outline-variant hover:bg-surface-container transition-colors uppercase tracking-wider"><span class="material-symbols-outlined fill-icon text-sm" style="color:#eab308">star</span> <span class="text-secondary">Star</span></a> <a href="https://github.com/sponsors/epicsagas" target="_blank" rel="noopener noreferrer" class="hidden sm:flex items-center gap-1 px-2.5 py-1 rounded text-xs font-semibold border border-outline-variant hover:bg-surface-container transition-colors uppercase tracking-wider"><span class="material-symbols-outlined fill-icon text-sm" style="color:#ec4899">favorite</span> <span class="text-secondary">Sponsor</span></a> <button class="w-8 h-8 flex items-center justify-center rounded border border-outline-variant text-secondary hover:bg-surface-container transition-colors shrink-0" aria-label="Toggle theme"><span class="material-symbols-outlined fill-icon"> </span></button> <div class="relative"><select class="h-8 bg-surface text-on-surface rounded pl-2 pr-7 text-xs font-semibold border border-outline-variant uppercase tracking-wider cursor-pointer" style="appearance:none;-webkit-appearance:none;-moz-appearance:none;min-width:3rem"></select> <span class="material-symbols-outlined absolute right-1.5 top-1/2 -translate-y-1/2 text-secondary pointer-events-none" style="font-size:14px">expand_more</span></div></header> <main id="main-content" class="flex-1 p-4 md:p-6"><!></main> <footer class="sticky bottom-0 z-10 bg-surface border-t border-outline-variant px-4 py-1.5 flex items-center gap-4 text-xs text-secondary"><!> <span class="flex-1 text-center hidden sm:block"> </span> <button class="flex items-center gap-1 hover:text-on-surface uppercase tracking-wider font-semibold"><span class="material-symbols-outlined text-xs"> </span> </button></footer></div></div> <!>`,1);function Cd(e,t){Qt(t,!0);let n=Ve(Ft({kind:"loading"})),r=Ve(null),i=Ve("overview"),o=Ve(Ft(document.documentElement.classList.contains("dark"))),c=Ve(!1),p=Ve(!1),d=Ve(Ft(ui(Pi)));vr(()=>Pi.subscribe(S=>{ae(d,S,!0)}));const m=new URLSearchParams(window.location.search).has("example");function b(){const _=window.location.pathname.replace(/^\//,"").split("/");if(_[0]!==""){const S=parseInt(_[0],10);isNaN(S)||ae(r,S,!0)}_[1]&&Xl.has(_[1])&&ae(i,_[1],!0)}function g(){const _=s(r)!==null?`/${s(r)}/${s(i)}`:"/";history.replaceState(null,"",_+(m?"?example":""))}function v(_){ae(i,_,!0),ae(c,!1),g()}async function w(){if(!m)try{const _=await fetch("/status.json?t="+Date.now());if(_.status===404){ae(n,{kind:"empty"},!0);return}if(!_.ok)throw new Error(_.statusText);const S=await _.json();ae(n,{kind:"ok",data:S},!0)}catch(_){s(n).kind==="ok"?ae(n,{...s(n),refreshError:_.message},!0):ae(n,{kind:"error",error:_.message},!0)}}let y=te(()=>m?Si:s(n).kind==="ok"?s(n).data:null),k=te(()=>{var _;return((_=s(y))==null?void 0:_.projects)??[]}),h=te(()=>{var _;return((_=s(y))==null?void 0:_.agents)??[]}),x=te(()=>s(r)!==null?s(k)[s(r)]??null:null);vr(()=>{b(),m?ae(n,{kind:"ok",data:Si},!0):w();const _=()=>b();return window.addEventListener("popstate",_),()=>window.removeEventListener("popstate",_)}),vr(()=>{if(m)return;const _=setInterval(()=>{document.hidden||w()},5e3);return()=>clearInterval(_)});let P=Ve(Ft(Ci(s(o)))),E=Ve(Ft(ic(ui(ta))));vr(()=>Ms.subscribe(S=>{ae(E,S,!0)})),vr(()=>Rs.subscribe(S=>{ae(P,S,!0)}));function z(){ae(o,!s(o)),document.documentElement.classList.toggle("dark",s(o));try{localStorage.setItem("velith-theme",s(o)?"dark":"light")}catch{}ae(P,Ci(s(o)),!0)}async function R(_){try{await navigator.clipboard.writeText(_)}catch{}ae(p,!0),setTimeout(()=>{ae(p,!1)},1500)}function M(_){if(!_)return null;const S=Math.floor((Date.now()-new Date(_).getTime())/6e4);if(S<1)return{label:s(d).t("app.justNow"),warn:!1};if(S<60)return{label:s(d).t("app.minutesAgo",{n:S}),warn:S>=10};const I=Math.floor(S/60);return I<24?{label:s(d).t("app.hoursAgo",{n:I}),warn:!0}:{label:s(d).t("app.hoursAgo",{n:Math.floor(I/24)*24}),warn:!0}}var N=Sd(),Z=za(N);{var X=_=>{var S=dd(),I=a(S),se=a(I),U=l(I,2);ea(U,"href",window.location.pathname);var we=l(a(U));T((fe,Je)=>{u(se,`⬆ ${fe??""}`),u(we,` ${Je??""}`)},[()=>s(d).t("app.exampleBanner"),()=>s(d).t("app.backToLive")]),A(_,S)};Se(Z,_=>{m&&_(X)})}var ce=l(Z,2);{var D=_=>{var S=ud();oe("click",S,()=>ae(c,!1)),A(_,S)};Se(ce,_=>{s(c)&&_(D)})}var Y=l(ce,2),L=a(Y),B=a(L),ge=a(B),ue=l(B,2),de=a(ue);xe(de,17,()=>Ds,_e,(_,S)=>{const I=te(()=>s(i)===s(S).id&&(s(r)!==null||s(S).id==="help")),se=te(()=>s(r)!==null||s(S).id==="help");var U=pd(),we=a(U),fe=a(we),Je=l(we,2),Xt=a(Je);T(xn=>{ve(U,1,`w-full flex items-center gap-3 px-4 py-2.5 transition-colors text-left
            ${s(I)?"bg-sidebar-active text-sidebar-text":"text-sidebar-muted hover:bg-sidebar-hover hover:text-sidebar-text"}
            ${s(se)?"":"opacity-30 cursor-not-allowed"}`),ea(U,"aria-current",s(I)?"page":void 0),ve(we,1,`material-symbols-outlined text-base ${s(I)?"text-sidebar-accent":""}`),u(fe,s(S).icon),u(Xt,xn)},[()=>s(d).t(s(S).labelKey)]),oe("click",U,()=>s(se)&&v(s(S).id)),A(_,U)});var Pe=l(de,2);{var $=_=>{var S=vd(),I=l(a(S),2);xe(I,17,()=>s(k),_e,(se,U,we)=>{var fe=fd(),Je=a(fe);T(()=>{ve(fe,1,`w-full text-left px-2 py-1.5 rounded text-xs transition-colors
                ${s(r)===we?"bg-sidebar-active text-sidebar-text":"text-sidebar-muted hover:bg-sidebar-hover hover:text-sidebar-text"}`),u(Je,s(U).name)}),oe("click",fe,()=>{ae(r,we,!0),v("overview"),g()}),A(se,fe)}),A(_,S)};Se(Pe,_=>{s(k).length>1&&_($)})}var je=l(ue,2),ne=a(je);{var pe=_=>{var S=gd(),I=za(S),se=l(I,2),U=a(se),we=l(se,2),fe=a(we);T(()=>{u(U,s(x).name),u(fe,`${s(x).genre??""} · ${s(x).language??"ko"??""}`)}),oe("click",I,()=>{ae(r,null),g()}),A(_,S)},Re=_=>{var S=hd();A(_,S)};Se(ne,_=>{s(x)?_(pe):_(Re,-1)})}var De=l(L,2),ze=a(De),Ze=a(ze),tt=l(Ze,8),he=a(tt),ie=a(he),nt=l(tt,2),Oe=a(nt);xe(Oe,21,()=>s(d).allLocales,_e,(_,S)=>{var I=md(),se=a(I),U={};T(we=>{u(se,we),U!==(U=s(S))&&(I.value=(I.__value=s(S))??"")},[()=>s(S).toUpperCase()]),A(_,I)});var rt;Rl(Oe);var at=l(ze,2),me=a(at);{var V=_=>{var S=bd(),I=a(S),se=l(a(I),2),U=a(se);T(we=>u(U,we),[()=>s(d).t("app.loading")]),A(_,S)},O=_=>{var S=_d(),I=l(a(S),2),se=a(I),U=l(I,2),we=a(U),fe=l(U,2),Je=a(fe),Xt=l(fe,2),xn=a(Xt);T((qn,dr,Kn,ur)=>{u(se,qn),u(we,dr),u(Je,Kn),u(xn,ur)},[()=>s(d).t("app.noData"),()=>s(d).t("app.noDataHint"),()=>s(d).t("app.noDataCmd"),()=>s(d).t("app.viewExample")]),A(_,S)},K=_=>{cd(_,{get agents(){return s(h)},get i18n(){return s(d)},copyToClipboard:R})},ee=_=>{var S=yd(),I=l(a(S),4);xe(I,21,()=>s(k),_e,(se,U,we)=>{var fe=xd(),Je=l(a(fe),2),Xt=a(Je),xn=a(Xt),qn=l(Xt,2),dr=a(qn),Kn=l(qn,2),ur=a(Kn);T(qr=>{u(xn,s(U).name),u(dr,`${s(U).genre??""} · ${s(U).language??"ko"??""}`),u(ur,`${qr??""}w · ${s(U).completed_chapters??0??""}/${s(U).total_chapters??0??""} chapters`)},[()=>(s(U).total_words??0).toLocaleString()]),oe("click",fe,()=>{ae(r,we,!0),v("overview"),g()}),A(se,fe)}),A(_,S)},re=_=>{pc(_,{get project(){return s(x)},get projectIndex(){return s(r)},get agents(){return s(h)},get i18n(){return s(d)},copyToClipboard:R})},ye=_=>{xc(_,{get agents(){return s(h)},get i18n(){return s(d)}})},Ie=_=>{Sc(_,{get project(){return s(x)},get i18n(){return s(d)},copyToClipboard:R})},Fe=_=>{Ac(_,{get project(){return s(x)},get i18n(){return s(d)},copyToClipboard:R})},Me=_=>{Oc(_,{get project(){return s(x)},get i18n(){return s(d)},copyToClipboard:R})},Be=_=>{Bc(_,{get project(){return s(x)},get projectIndex(){return s(r)},get i18n(){return s(d)},copyToClipboard:R})},Ye=_=>{Xc(_,{get project(){return s(x)},get agents(){return s(h)},get i18n(){return s(d)},copyToClipboard:R,get isDark(){return s(o)},get accent(){return s(P)},get font(){return s(E)}})};Se(me,_=>{s(n).kind==="loading"?_(V):s(n).kind==="empty"?_(O,1):s(i)==="help"?_(K,2):s(x)===null?_(ee,3):s(i)==="overview"?_(re,4):s(i)==="status"?_(ye,5):s(i)==="outline"?_(Ie,6):s(i)==="drafts"?_(Fe,7):s(i)==="edits"?_(Me,8):s(i)==="publish"?_(Be,9):s(i)==="settings"&&_(Ye,10)})}var Ne=l(at,2),it=a(Ne);{var st=_=>{const S=te(()=>M(s(x).last_updated));var I=wd(),se=a(I),U=l(se);{var we=fe=>{var Je=Cs();T(()=>u(Je,`(${s(S).label??""}${s(S).warn?" ⚠":""})`)),A(fe,Je)};Se(U,fe=>{s(S)&&fe(we)})}T(fe=>{var Je;ve(I,1,(Je=s(S))!=null&&Je.warn?"text-error":""),u(se,`Generated: ${fe??""} `)},[()=>s(d).fmtDate(s(x).last_updated)]),A(_,I)},Dt=_=>{var S=kd();A(_,S)};Se(it,_=>{s(x)?_(st):_(Dt,-1)})}var Tt=l(it,2),be=a(Tt),Te=l(Tt,2),Qe=a(Te),ot=a(Qe),Bt=l(Qe),bt=l(Y,2);{var Le=_=>{var S=Pd(),I=l(a(S));T(se=>u(I,` ${se??""}`),[()=>s(d).t("app.copied")]),A(_,S)};Se(bt,_=>{s(p)&&_(Le)})}T(_=>{ve(Y,1,`flex min-h-screen bg-background ${m?"pt-8":""}`),ve(L,1,`fixed left-0 bottom-0 w-52 bg-sidebar-bg text-sidebar-text flex flex-col z-40 shadow-xl
    ${m?"top-8":"top-0"}
    ${s(c)?"translate-x-0":"-translate-x-full md:translate-x-0"}
    transition-transform duration-200`),ve(ze,1,`sticky z-20 h-11 bg-surface border-b border-outline-variant flex items-center px-4 gap-2
      ${m?"top-8":"top-0"}`),Mt(he,`font-size:16px;color:${s(o)?"#fbbf24":"#f97316"}`),u(ie,s(o)?"light_mode":"dark_mode"),rt!==(rt=s(d).locale)&&(Oe.value=(Oe.__value=s(d).locale)??"",Es(Oe,s(d).locale)),u(be,_),u(ot,m?"science":"live_tv"),u(Bt,` ${m?"Example Mode":"Live Data"}`)},[()=>s(d).t("app.clickHint")]),oe("click",ge,()=>{ae(r,null),g()}),oe("click",Ze,()=>ae(c,!s(c))),oe("click",tt,z),oe("change",Oe,_=>{ta.set(_.target.value),sc(_.target.value)}),oe("click",Te,z),A(e,N),Jt()}_n(["click","change"]);wl(Cd,{target:document.getElementById("app")});
