"use strict";(()=>{var k={must:{bg:"#ef4444",text:"#fff",light:"rgba(239,68,68,0.1)",border:"rgba(239,68,68,0.3)"},better:{bg:"#f59e0b",text:"#fff",light:"rgba(245,158,11,0.1)",border:"rgba(245,158,11,0.3)"},want:{bg:"#22c55e",text:"#fff",light:"rgba(34,197,94,0.1)",border:"rgba(34,197,94,0.3)"}};var re={must:"better",better:"want",want:"must"};var H="fb-username",O="fb-sidebar-width";function ie(e){return e.replace(/^https?:\/\//,"").replace(/[^a-zA-Z0-9\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FFF]/g,"_").substring(0,100)}function B(){return Date.now().toString(36)+Math.random().toString(36).substring(2,8)}function j(e){let t={"Content-Type":"application/json"};return e&&(t.Authorization="Bearer "+e),t}var Y="",U="";function ae(e,t){Y=e,U=t}function E(e,t){let r=Y+"/api/comments",n=j(U),i={method:e,headers:n};return e==="GET"?r+="?slug="+encodeURIComponent(t.slug):e==="DELETE"?r+="?id="+encodeURIComponent(t.id):i.body=JSON.stringify(t),fetch(r,i).then(a=>a.json())}function se(e,t,r){return fetch(Y+"/api/voice-analyze",{method:"POST",headers:j(U),body:JSON.stringify({audioBase64:e,mimeType:t,targets:r})}).then(n=>n.json())}var o={username:localStorage.getItem(H)||"",comments:[],filter:"unresolved",sidebarOpen:!1,selectedText:"",selectedQuoteContext:{beforeText:"",afterText:""},selectedRect:null,popupContent:"",editingId:null,editContent:"",editPriority:"want",replyingTo:null,replyText:"",editingName:!1,nameInput:"",popupPriority:"must",sidebarWidth:parseInt(localStorage.getItem(O)||"",10)||400,pinMode:!1,pinPopupPos:null,editingPinId:null,voiceRecording:!1,voiceProcessing:!1,voiceError:null},M=ie(window.location.href);function de(){let e=document.createElement("style");e.id="fb-widget-styles";let t=`url('data:image/svg+xml,%3Csvg%20xmlns="http://www.w3.org/2000/svg"%20width="28"%20height="28"%20viewBox="0%200%2028%2028"%3E%3Cpath%20d="M14%202a8%208%200%200%200-8%208c0%205.5%208%2016%208%2016s8-10.5%208-16a8%208%200%200%200-8-8Z"%20fill="%233b82f6"%20stroke="%23ffffff"%20stroke-width="1.6"%20stroke-linejoin="round"/%3E%3Ccircle%20cx="14"%20cy="10"%20r="3"%20fill="%23ffffff"/%3E%3C/svg%3E') 14 26, auto`;e.textContent=[':root{--fb-bg:#ffffff;--fb-fg:#0a0a0a;--fb-muted:#f5f5f5;--fb-muted-fg:#737373;--fb-border:#e5e5e5;--fb-primary:#171717;--fb-primary-fg:#fafafa;--fb-accent:#3b82f6;--fb-destructive:#ef4444;--fb-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans",sans-serif}',"#fb-toggle{position:fixed;right:0;top:50%;transform:translateY(-50%);width:36px;background:var(--fb-bg);border:1px solid var(--fb-border);border-right:none;border-radius:8px 0 0 8px;cursor:pointer;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-family:var(--fb-font);transition:all .15s;box-shadow:-2px 0 8px rgba(0,0,0,0.06);padding:8px 0}","#fb-toggle:hover{background:var(--fb-muted);box-shadow:-2px 0 12px rgba(0,0,0,0.1)}","#fb-toggle .fb-toggle-icon{color:var(--fb-muted-fg);display:flex;align-items:center;justify-content:center;position:relative}","#fb-toggle .fb-toggle-label{font-size:10px;color:var(--fb-accent);font-weight:700;writing-mode:vertical-rl;letter-spacing:1px;line-height:1;white-space:nowrap}","#fb-toggle .fb-badge{position:absolute;top:-6px;left:-6px;background:var(--fb-destructive);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}","#fb-sidebar{position:fixed;top:0;height:100vh;background:rgba(245,245,245,0.5);border-left:1px solid var(--fb-border);z-index:99998;transition:right .3s ease;display:flex;flex-direction:column;font-family:var(--fb-font);font-size:14px;color:var(--fb-fg)}","#fb-sidebar *{box-sizing:border-box}",".fb-resize-handle{position:absolute;left:-3px;top:0;width:6px;height:100%;cursor:col-resize;z-index:1}",".fb-resize-handle:hover{background:rgba(59,130,246,0.15)}",".fb-resize-handle.active{background:rgba(59,130,246,0.3)}","body.fb-resizing{cursor:col-resize !important;-webkit-user-select:none !important;user-select:none !important}","body.fb-resizing *{cursor:col-resize !important}",".fb-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--fb-border)}",".fb-header-left{display:flex;align-items:center;gap:8px}",".fb-header-title{font-size:14px;font-weight:700;color:var(--fb-accent)}",".fb-header-count{background:var(--fb-muted);color:var(--fb-muted-fg);font-size:11px;padding:1px 7px;border-radius:10px}",".fb-header-actions{display:flex;align-items:center;gap:2px}",".fb-hdr-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;color:var(--fb-muted-fg);transition:all .15s;display:inline-flex;align-items:center;gap:4px;font-family:var(--fb-font);font-size:12px}",".fb-hdr-btn:hover{background:var(--fb-muted);color:var(--fb-fg)}",".fb-user-row{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid var(--fb-border);font-size:13px;color:var(--fb-muted-fg);cursor:pointer;transition:color .15s;gap:6px}",".fb-user-row:hover{color:var(--fb-fg)}",".fb-filters{display:flex;border-bottom:1px solid var(--fb-border)}",".fb-filter{flex:1;padding:10px 0;text-align:center;font-size:13px;color:var(--fb-muted-fg);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;font-family:var(--fb-font)}",".fb-filter:hover{color:var(--fb-fg)}",".fb-filter.active{color:var(--fb-fg);border-bottom-color:var(--fb-accent)}",".fb-filter .cnt{font-size:11px;margin-left:4px;padding:1px 5px;border-radius:8px;background:var(--fb-muted);color:var(--fb-muted-fg)}",".fb-filter.active .cnt{background:rgba(59,130,246,0.1);color:var(--fb-accent)}",".fb-list{flex:1;overflow-y:auto;padding:8px}",".fb-empty{text-align:center;padding:60px 20px;color:var(--fb-muted-fg);font-size:13px}",".fb-empty svg{margin:0 auto 12px;display:block;color:var(--fb-border)}",".fb-card{background:var(--fb-bg);border:1px solid var(--fb-border);border-left:3px solid var(--fb-border);border-radius:12px;padding:14px;margin-bottom:6px;transition:box-shadow .3s,background .3s;cursor:pointer}",".fb-card:hover{box-shadow:0 1px 3px rgba(0,0,0,0.05)}",".fb-card.resolved{opacity:.5}",".fb-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}",".fb-card-head-left{display:flex;align-items:center;gap:6px}",".fb-avatar{width:22px;height:22px;border-radius:50%;background:var(--fb-primary);color:var(--fb-primary-fg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}",".fb-author{font-size:13px;font-weight:700;color:var(--fb-fg)}",".fb-time{font-size:11px;color:var(--fb-muted-fg)}",".fb-resolved-mark{font-size:11px;color:#22c55e;margin-left:4px;display:inline-flex;align-items:center;gap:2px}",".fb-badge-p{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;color:#fff;cursor:default;transition:all .15s}",".fb-badge-p.own{cursor:pointer}",".fb-badge-p.own:hover{transform:scale(1.1);box-shadow:0 0 0 2px rgba(0,0,0,0.08)}",".fb-quote{font-size:12px;color:var(--fb-muted-fg);padding:6px 10px;background:var(--fb-muted);border-left:2px solid var(--fb-primary);border-radius:0 4px 4px 0;margin-bottom:8px;font-style:italic;line-height:1.5;cursor:pointer;transition:background .15s}",".fb-quote:hover{background:var(--fb-border)}",".fb-body{font-size:13px;color:var(--fb-muted-fg);line-height:1.6;margin-bottom:6px;white-space:pre-wrap}",".fb-actions{display:flex;gap:2px;flex-wrap:wrap}",".fb-act{font-size:12px;color:#a3a3a3;background:none;border:none;padding:4px 8px;border-radius:4px;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:3px;font-family:var(--fb-font)}",".fb-act:hover{color:var(--fb-fg)}",".fb-act.del:hover{color:var(--fb-destructive)}",".fb-act.res:hover{color:#22c55e}",".fb-replies{margin-top:8px;padding-top:8px;border-top:1px solid var(--fb-muted)}",".fb-reply-item{display:flex;gap:8px;padding:6px 0}",".fb-reply-item+.fb-reply-item{border-top:1px solid var(--fb-muted)}",".fb-reply-avatar{width:20px;height:20px;border-radius:50%;background:var(--fb-primary);color:var(--fb-primary-fg);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;margin-top:2px}",".fb-reply-meta{font-size:12px;color:var(--fb-muted-fg);margin-bottom:2px}",".fb-reply-meta strong{color:#525252;font-weight:700}",".fb-reply-text{font-size:13px;color:var(--fb-muted-fg);line-height:1.5}",".fb-reply-input{display:flex;gap:8px;margin-top:8px}",".fb-reply-input textarea{flex:1;padding:8px 10px;border:1px solid var(--fb-border);border-radius:6px;font-size:13px;font-family:var(--fb-font);resize:none;outline:none;min-height:36px;color:var(--fb-fg)}",".fb-reply-input textarea:focus{border-color:var(--fb-accent)}",".fb-reply-input button{padding:6px 14px;background:var(--fb-primary);color:var(--fb-primary-fg);border:none;border-radius:6px;font-size:12px;cursor:pointer;font-family:var(--fb-font);align-self:flex-end}",".fb-reply-input button:disabled{opacity:.4;cursor:default}",".fb-edit-area textarea{width:100%;padding:8px 10px;border:1px solid var(--fb-border);border-radius:6px;font-size:13px;font-family:var(--fb-font);resize:vertical;outline:none;min-height:50px;margin-bottom:6px;color:var(--fb-fg)}",".fb-edit-area textarea:focus{border-color:var(--fb-accent)}",".fb-edit-btns{display:flex;gap:6px}",".fb-edit-btns button{padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer;border:1px solid var(--fb-border);background:var(--fb-bg);color:var(--fb-muted-fg);font-family:var(--fb-font)}",".fb-edit-btns button.save{background:var(--fb-primary);color:var(--fb-primary-fg);border-color:var(--fb-primary)}",".fb-edit-pri{display:flex;gap:4px;margin-bottom:6px}",".fb-edit-pri button{padding:2px 10px;border-radius:4px;font-size:11px;font-weight:700;cursor:pointer;border:1px solid var(--fb-border);background:var(--fb-bg);color:var(--fb-muted-fg);font-family:var(--fb-font);transition:all .15s}",".fb-popup{position:fixed;z-index:100000;width:400px;background:var(--fb-bg);border:1px solid var(--fb-border);border-radius:12px;padding:16px;box-shadow:0 10px 25px rgba(0,0,0,0.1);font-family:var(--fb-font);display:none}",".fb-popup.show{display:block}",".fb-popup-head{margin-bottom:10px}",".fb-popup-head span{font-size:14px;font-weight:700;color:var(--fb-fg)}",".fb-popup-quote{font-size:13px;color:var(--fb-muted-fg);padding:8px 12px;background:var(--fb-muted);border-left:2px solid var(--fb-accent);border-radius:0 6px 6px 0;margin-bottom:10px;font-style:italic;line-height:1.5}",".fb-popup textarea{width:100%;min-height:70px;padding:10px 12px;border:1px solid var(--fb-border);border-radius:8px;font-size:14px;font-family:var(--fb-font);resize:vertical;outline:none;margin-bottom:10px;color:var(--fb-fg)}",".fb-popup textarea:focus{border-color:var(--fb-accent)}",".fb-popup textarea::placeholder{color:var(--fb-muted-fg)}",".fb-popup-pri{display:flex;gap:6px;margin-bottom:10px}",".fb-popup-pri button{flex:1;padding:7px 8px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:2px solid transparent;transition:all .15s;font-family:var(--fb-font)}",".fb-popup-actions{display:flex;gap:8px;justify-content:flex-end}",".fb-popup-actions button{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--fb-font)}",".fb-popup-actions .cancel{background:none;border:1px solid var(--fb-border);color:var(--fb-muted-fg)}",".fb-popup-actions .cancel:hover{background:var(--fb-muted);color:var(--fb-fg)}",".fb-popup-actions .submit{border:none;color:#fff}",".fb-name-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);display:flex;align-items:center;justify-content:center;z-index:100001}",".fb-name-box{background:var(--fb-bg);border-radius:12px;padding:28px;width:360px;box-shadow:0 20px 40px rgba(0,0,0,0.15)}",".fb-name-box h2{font-size:18px;font-weight:700;margin:0 0 6px;color:var(--fb-fg)}",".fb-name-box p{font-size:14px;color:var(--fb-muted-fg);margin:0 0 16px}",".fb-name-box input{width:100%;padding:10px 14px;border:1px solid var(--fb-border);border-radius:8px;font-size:15px;outline:none;margin-bottom:12px;font-family:var(--fb-font);color:var(--fb-fg)}",".fb-name-box input:focus{border-color:var(--fb-accent)}",".fb-name-box input::placeholder{color:var(--fb-muted-fg)}",".fb-name-box button{width:100%;padding:10px;background:var(--fb-primary);color:var(--fb-primary-fg);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--fb-font)}",".fb-name-box button:disabled{opacity:.4;cursor:default}",".fb-name-input{width:100%;padding:4px 8px;border:1px solid var(--fb-border);border-radius:4px;font-size:12px;outline:none;font-family:var(--fb-font);color:var(--fb-fg)}",".fb-name-input:focus{border-color:var(--fb-accent)}",".fb-highlight{padding:1px 0;cursor:pointer;transition:background .15s}",".fb-highlight-must{background:rgba(239,68,68,0.15);border-bottom:2px solid #ef4444}",".fb-highlight-must:hover{background:rgba(239,68,68,0.25)}",".fb-highlight-better{background:rgba(245,158,11,0.15);border-bottom:2px solid #f59e0b}",".fb-highlight-better:hover{background:rgba(245,158,11,0.25)}",".fb-highlight-want{background:rgba(34,197,94,0.15);border-bottom:2px solid #22c55e}",".fb-highlight-want:hover{background:rgba(34,197,94,0.25)}","@keyframes fb-pulse{0%,100%{opacity:1}50%{opacity:0.4}}",".fb-highlight.fb-pulse{animation:fb-pulse 1s ease-in-out infinite}",".fb-card.fb-focused{box-shadow:0 0 0 2px var(--fb-accent);background:rgba(59,130,246,0.04)}","#fb-sidebar svg,#fb-toggle svg,.fb-popup svg{pointer-events:none}","body.fb-pin-mode{cursor:"+t+"}","body.fb-pin-mode *:not(#fb-toggle):not(#fb-toggle *):not(#fb-sidebar):not(#fb-sidebar *):not(#fb-pin-popup):not(#fb-pin-popup *):not(.fb-pin-marker):not(.fb-pin-marker *){cursor:"+t+"}",".fb-toggle-pin{display:flex;align-items:center;justify-content:center;padding:4px;cursor:pointer;transition:all .15s}",".fb-toggle-pin:hover{color:var(--fb-accent)}",".fb-toggle-voice{display:flex;align-items:center;justify-content:center;padding:4px;cursor:pointer;color:var(--fb-muted-fg);border-radius:4px;transition:all .15s}",".fb-toggle-voice:hover{color:var(--fb-accent)}",".fb-toggle-voice.recording{color:#ef4444;background:rgba(239,68,68,0.12);animation:fb-mic-pulse 1.1s ease-in-out infinite}",".fb-toggle-voice.processing{color:var(--fb-accent)}",".fb-toggle-voice.processing svg{animation:fb-mic-spin .8s linear infinite;transform-origin:center}","@keyframes fb-mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,0.5)}50%{box-shadow:0 0 0 5px rgba(239,68,68,0)}}","@keyframes fb-mic-spin{to{transform:rotate(360deg)}}",".fb-voice-toast{position:fixed;right:16px;bottom:70px;z-index:100001;max-width:320px;padding:10px 14px;border-radius:8px;background:var(--fb-fg);color:var(--fb-bg);font-family:var(--fb-font);font-size:13px;line-height:1.5;box-shadow:0 6px 20px rgba(0,0,0,0.2);opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;pointer-events:none}",".fb-voice-toast.show{opacity:1;transform:translateY(0)}",".fb-pin-marker{position:absolute;transform:translate(-50%,-100%);cursor:grab;z-index:99990;transition:transform .15s}",".fb-pin-marker:hover{transform:translate(-50%,-100%) scale(1.15)}",".fb-pin-marker.resolved{opacity:.4}",".fb-pin-marker.fb-pin-flash .fb-pin-icon{animation:fb-pin-ring 1.4s ease}","@keyframes fb-pin-ring{0%,100%{box-shadow:0 2px 6px rgba(0,0,0,0.25)}30%,60%{box-shadow:0 0 0 8px rgba(59,130,246,0.45)}}",".fb-pin-ref{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fb-muted-fg);padding:6px 10px;background:var(--fb-muted);border-radius:6px;margin-bottom:8px;cursor:pointer;transition:background .15s}",".fb-pin-ref:hover{background:var(--fb-border)}",".fb-pin-ref-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;flex-shrink:0}","body.fb-dragging-pin,body.fb-dragging-pin *{cursor:grabbing !important;-webkit-user-select:none !important;user-select:none !important}","body.fb-dragging-pin .fb-pin-marker{transition:none}","body.fb-dragging-pin .fb-pin-tooltip{display:none !important}",".fb-pin-badge{cursor:pointer;transition:transform .1s}",".fb-pin-badge:hover{transform:scale(1.08)}",".fb-pin-badge.readonly{cursor:default}",".fb-pin-icon{width:24px;height:24px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,0.25);position:relative}",'.fb-pin-icon::after{content:"";position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--pin-color,#3b82f6)}',".fb-pin-tooltip{display:none;position:absolute;top:8px;left:28px;background:var(--fb-bg);border:1px solid var(--fb-border);border-radius:8px;padding:10px 12px;box-shadow:0 4px 12px rgba(0,0,0,0.1);min-width:180px;max-width:280px;z-index:99995;font-family:var(--fb-font)}",".fb-pin-marker:hover .fb-pin-tooltip{display:block}",".fb-pin-delete{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,0.5);color:#fff;border:none;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}",".fb-pin-tooltip:hover .fb-pin-delete{opacity:1}",".fb-pin-popup{position:fixed;z-index:100000;width:300px;background:var(--fb-bg);border:1px solid var(--fb-border);border-radius:12px;padding:16px;box-shadow:0 10px 25px rgba(0,0,0,0.12);font-family:var(--fb-font);display:none}",".fb-pin-popup.show{display:block}",".fb-pin-popup-head{font-size:14px;font-weight:700;color:var(--fb-fg);margin-bottom:10px}",".fb-pin-popup textarea{width:100%;min-height:60px;padding:10px 12px;border:1px solid var(--fb-border);border-radius:8px;font-size:14px;font-family:var(--fb-font);resize:vertical;outline:none;margin-bottom:10px;color:var(--fb-fg);box-sizing:border-box}",".fb-pin-popup textarea:focus{border-color:var(--fb-accent)}",".fb-pin-popup textarea::placeholder{color:var(--fb-muted-fg)}",".fb-pin-popup-pri{display:flex;gap:6px;margin-bottom:10px}",".fb-pin-pri-btn{flex:1;padding:6px 8px;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;border:none;transition:opacity .15s}",".fb-pin-popup-actions{display:flex;gap:8px;justify-content:flex-end}",".fb-pin-popup-actions button{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--fb-font)}",".fb-pin-cancel{background:none;border:1px solid var(--fb-border);color:var(--fb-muted-fg)}",".fb-pin-cancel:hover{background:var(--fb-muted);color:var(--fb-fg)}",".fb-pin-submit{background:var(--fb-accent);border:none;color:#fff}",".fb-pin-submit:hover{background:#2563eb}"].join(` `),document.head.appendChild(e)}function C(e,t,r){let n=document.createElement(e);return t&&Object.keys(t).forEach(i=>{let a=t[i];i==="className"?n.className=a:i==="innerHTML"?n.innerHTML=a:i.startsWith("on")&&typeof a=="function"?n.addEventListener(i.substring(2).toLowerCase(),a):n.setAttribute(i,String(a))}),r!=null&&(typeof r=="string"?n.textContent=r:Array.isArray(r)?r.forEach(i=>{i&&n.appendChild(i)}):n.appendChild(r)),n}function x(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}var Ze={message:'',check:'',rotateCcw:'',pencil:'',trash:'',user:'',x:'',panelRight:'',mic:'',loader:''};function h(e,t=14,r=2){return(Ze[e]||"").replace(/SIZE/g,String(t)).replace(/SW/g,String(r))}var le=null,ce=null;function pe(e){le=e}function fe(e){ce=e}function ue(e){let t=document.getElementById("fb-toggle");t||(t=C("button",{id:"fb-toggle"}),t.addEventListener("click",c=>{let f=c.target.closest("[data-action]");f?.dataset.action==="area-mode"?le?.():f?.dataset.action==="voice"?ce?.():e()}),document.body.appendChild(t));let r=o.comments.filter(c=>!c.parentId&&!c.resolved).length,n=o.comments.filter(c=>c.type==="pin"&&!c.parentId).length,i='";let a=o.pinMode?"color:var(--fb-accent);background:rgba(59,130,246,0.1);border-radius:4px":"",d=o.pinMode?"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30E2\u30FC\u30C9 ON\uFF08\u30AF\u30EA\u30C3\u30AF\u3067\u7D42\u4E86\uFF09\uFF0F\u30AF\u30EA\u30C3\u30AF=\u30D4\u30F3\u30FB\u30C9\u30E9\u30C3\u30B0=\u5F15\u7528":"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30E2\u30FC\u30C9 OFF\uFF08\u30AF\u30EA\u30C3\u30AF\u3067\u958B\u59CB\uFF09";i+='',n>0&&(i+=''+n+""),i+="";let s=o.voiceRecording?" recording":o.voiceProcessing?" processing":"",l=o.voiceRecording?"\u9332\u97F3\u4E2D\uFF08\u30AF\u30EA\u30C3\u30AF\u3067\u505C\u6B62\u3057\u3066\u89E3\u6790\uFF09":o.voiceProcessing?"\u89E3\u6790\u4E2D...":"\u97F3\u58F0\u3067\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF",p=o.voiceProcessing?h("loader",14):h("mic",14);i+=''+p+"",i+='\u30B3\u30E1\u30F3\u30C8',t.innerHTML=i,t.style.display=o.sidebarOpen?"none":""}function X(e){let t=Date.now()-e;return t<6e4?"\u305F\u3063\u305F\u4ECA":t<36e5?Math.floor(t/6e4)+"\u5206\u524D":t<864e5?Math.floor(t/36e5)+"\u6642\u9593\u524D":new Date(e).toLocaleDateString("ja-JP",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function S(){return document.querySelector("main")||document.body}var Z=null;function be(e){let t=i=>window.CSS&&CSS.escape?CSS.escape(i):i,r=[],n=e;for(;n&&n.nodeType===1&&n!==document.body;){if(n.id){r.unshift("#"+t(n.id));break}let i=n.tagName.toLowerCase(),a=n.parentElement;if(a){let d=Array.from(a.children).filter(s=>s.tagName===n.tagName);d.length>1&&(i+=":nth-of-type("+(d.indexOf(n)+1)+")")}r.unshift(i),n=a}return r.join(">")}var Ve="#fb-sidebar,#fb-toggle,#fb-pin-popup,.fb-pin-marker,.fb-pin-tooltip";function ge(e,t){let r=S(),i=document.elementsFromPoint(e,t).find(d=>!d.closest(Ve)&&d!==r&&d!==document.body&&r.contains(d));if(!i)return null;let a=i.getBoundingClientRect();return{selector:be(i),dx:e-a.left,dy:t-a.top}}function Ke(e,t){return document.elementsFromPoint(e,t).some(r=>r.closest("#fb-sidebar,#fb-toggle,#fb-pin-popup"))}function Qe(e){try{let t=document.createRange();t.selectNodeContents(e);let r=t.getBoundingClientRect();if(r.width>=1&&r.height>=1)return r}catch{}return e.getBoundingClientRect()}function me(e){let t=Qe(e);return{x:t.left+t.width/2,y:t.top}}function Ge(e,t,r){let n=e.getBoundingClientRect();return{x:n.left+t,y:n.top+r}}function xe(e){return{selector:be(e),dx:null,dy:null}}function ve(e){let r=S().getBoundingClientRect();if(e.anchorSelector){let i=null;try{i=document.querySelector(e.anchorSelector)}catch{i=null}if(i){let a=e.anchorDx==null||e.anchorDy==null?me(i):Ge(i,e.anchorDx,e.anchorDy),d=(a.x-r.left)/r.width*100;return d<5&&(d=5),d>95&&(d=95),{xPct:d,yPx:a.y-r.top}}}let n=e.pinX??50;return n<5&&(n=5),n>95&&(n=95),{xPct:n,yPx:e.pinY??0}}function D(){return o.comments.filter(e=>e.type==="pin"&&!e.parentId)}function he(e){return D().findIndex(t=>t.id===e)+1}function ye(e){let r=S().getBoundingClientRect(),n=me(e),i=(n.x-r.left)/r.width*100;return i<5&&(i=5),i>95&&(i=95),{x:i,y:n.y-r.top}}function we(){o.pinMode=!0,o.pinPopupPos=null,document.body.classList.add("fb-pin-mode")}function V(){o.pinMode=!1,o.pinPopupPos=null,document.body.classList.remove("fb-pin-mode")}function Ee(e){if(e.target.closest("#fb-sidebar,#fb-toggle,#fb-pin-popup,.fb-pin-marker,.fb-pin-tooltip"))return;let r=S().getBoundingClientRect(),i=(e.clientX-r.left)/r.width*100,a=e.pageY-(r.top+window.scrollY);o.editingPinId=null,o.pinPopupPos={x:i,y:a},Z=ge(e.clientX,e.clientY)}function K(e,t,r,n,i){let a={id:B(),author:o.username||"\u533F\u540D",type:"pin",quote:"",quoteContext:{beforeText:"",afterText:""},content:r.trim()||"(\u30B3\u30E1\u30F3\u30C8\u306A\u3057)",priority:n,parentId:null,pageUrl:window.location.href,projectSlug:M,timestamp:Date.now(),resolved:!1,resolvedBy:null,resolvedAt:null,updatedAt:null,pinX:e,pinY:t,anchorSelector:i?.selector??null,anchorDx:i?.dx??null,anchorDy:i?.dy??null};return o.comments.push(a),E("POST",a),a}function Je(e,t){o.pinPopupPos&&(K(o.pinPopupPos.x,o.pinPopupPos.y,e,t,Z),Z=null,o.pinPopupPos=null,y())}function Te(){o.pinPopupPos=null}function $e(e){o.comments=o.comments.filter(t=>t.id!==e&&t.parentId!==e),E("DELETE",{id:e}),y()}function et(e,t,r,n){let i=o.comments.find(a=>a.id===e);i&&(i.pinX=t,i.pinY=r,i.anchorSelector=n?.selector??null,i.anchorDx=n?.dx??null,i.anchorDy=n?.dy??null,E("PUT",{id:e,action:"move",pinX:t,pinY:r,anchorSelector:i.anchorSelector,anchorDx:i.anchorDx,anchorDy:i.anchorDy}),y())}function tt(e,t,r){let n=o.comments.find(i=>i.id===e);n&&(n.content=t.trim()||"(\u30B3\u30E1\u30F3\u30C8\u306A\u3057)",n.priority=r,E("PUT",{id:e,action:"edit",content:n.content,priority:r}),y())}function nt(e,t){let r=D().find(i=>i.id===e);if(!r)return;o.editingPinId=e;let n=ve(r);o.pinPopupPos={x:n.xPct,y:n.yPx},Q(t)}function Pe(e){document.addEventListener("mousedown",t=>{let n=t.target.closest(".fb-pin-marker");if(!n)return;let i=n.dataset.pinId;if(!i)return;let a=t.clientX,d=t.clientY,s=!1;function l(u){if(!s&&Math.hypot(u.clientX-a,u.clientY-d)<6)return;s||(s=!0,document.body.classList.add("fb-dragging-pin")),u.preventDefault();let b=S().getBoundingClientRect(),g=(u.clientX-b.left)/b.width*100;g<5&&(g=5),g>95&&(g=95),n.style.left=g+"%",n.style.top=u.clientY-b.top+"px"}function p(){document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",f),window.removeEventListener("blur",c),document.body.classList.remove("fb-dragging-pin")}function c(){let u=s;p(),u&&y()}function f(u){let w=s;if(p(),!w){nt(i,e);return}if(Ke(u.clientX,u.clientY)){y();return}let g=S().getBoundingClientRect(),P=(u.clientX-g.left)/g.width*100;P<5&&(P=5),P>95&&(P=95);let A=u.clientY-g.top,v=ge(u.clientX,u.clientY);et(i,P,A,v)}document.addEventListener("mousemove",l),document.addEventListener("mouseup",f),window.addEventListener("blur",c)})}function y(){document.querySelectorAll(".fb-pin-marker").forEach(l=>l.remove());let e=S();getComputedStyle(e).position==="static"&&(e.style.position="relative");let t=D(),r=t.map(l=>ve(l)),n=26,i=16,a=e.getBoundingClientRect().width,d=[];r.forEach((l,p)=>{let c=d.find(f=>Math.abs(f.x-l.xPct)<2&&Math.abs(f.y-l.yPx)<24);c||(c={x:l.xPct,y:l.yPx,items:[]},d.push(c)),c.items.push(p)});let s={};d.forEach(l=>{let p=l.items.length;l.items.forEach((c,f)=>{s[c]=(f-(p-1)/2)*n})}),t.forEach((l,p)=>{let c=document.createElement("div");c.className="fb-pin-marker"+(l.resolved?" resolved":""),c.dataset.pinId=l.id;let f=k[l.priority]||k.want,u=r[p].xPct,w=u/100*a,b=Math.min(Math.max(w+(s[p]||0),i),a-i),g=Math.round(b-w);c.style.left=g?"calc("+u+"% + "+g+"px)":u+"%",c.style.top=r[p].yPx+"px",c.style.setProperty("--pin-color",f.bg),c.innerHTML='
";let P=document.createElement("div");P.className="fb-pin-tooltip";let A=l.priority.charAt(0).toUpperCase()+l.priority.slice(1),v=''+A+"",W='window.innerWidth-p&&(f=window.innerWidth-l-p),t.style.position="fixed",t.style.top=c+"px",t.style.left=f+"px";let u=t.querySelector("#fb-pin-textarea");u.value=r?r.content:"",setTimeout(()=>u?.focus(),50);let w=t.querySelectorAll(".fb-pin-pri-btn"),b=r?r.priority:"better",g=()=>w.forEach(v=>{v.style.opacity=v.dataset.pri===b?"1":"0.4"});w.forEach(v=>{v.addEventListener("click",()=>{b=v.dataset.pri,A()})}),g();let P=()=>{o.editingPinId=null,o.pinPopupPos=null,t.classList.remove("show"),e()},A=()=>{r?tt(r.id,u.value,b):Je(u.value,b),P()};r&&t.querySelector(".fb-pin-delete-btn").addEventListener("click",()=>{$e(r.id),P()}),u.addEventListener("keydown",v=>{(v.metaKey||v.ctrlKey)&&v.key==="Enter"&&A()})}function ke(e){let t=e.author===o.username,r=k[e.priority]||k.want,n='
\u30B3\u30E1\u30F3\u30C8\u306B\u8868\u793A\u3055\u308C\u308B\u540D\u524D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
',document.body.appendChild(r);let n=document.getElementById("fb-name-field"),i=document.getElementById("fb-name-submit");n.addEventListener("input",()=>{i.disabled=!n.value.trim()}),n.addEventListener("keydown",a=>{a.key==="Enter"&&n.value.trim()&&Re(n.value.trim(),e)}),i.addEventListener("click",()=>{n.value.trim()&&Re(n.value.trim(),e)}),setTimeout(()=>{n.focus()},100)}function Re(e,t){o.username=e,localStorage.setItem(H,e);let r=document.getElementById("fb-name-overlay");r&&r.remove(),t()}var He=null,ze=null;function Be(e,t){He=e,ze=t}function m(){ue(N),Le(m),Ie(m,He,ze),Ae(m)}function it(){let e=[],t=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,{acceptNode(n){let i=n.parentElement;return!i||i.tagName==="SCRIPT"||i.tagName==="STYLE"||i.closest("#fb-sidebar,#fb-toggle,#fb-popup,.fb-highlight")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),r;for(;r=t.nextNode();)e.push(r);return e}function Ne(e,t,r){let n=e.replace(/[\s\u00A0]+/g," ");if(t>=n.length)return null;let i=0,a=0,d=-1,s=-1;for(;i