/* Add-on Validator. Every rule is scoped under #tool and uses the site's tokens.
   Two status colours (error / warning) are local tokens with a dark-mode pair. */
#tool{--av-bad:#b42318;--av-bad-bg:rgb(180 35 24/.07);--av-warn:#8a5a00;--av-warn-bg:rgb(200 140 0/.1);
--av-mono:ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #tool{--av-bad:#ff8f84;--av-bad-bg:rgb(255 120 110/.1);
--av-warn:#f0c05a;--av-warn-bg:rgb(240 190 80/.1)}}
:root[data-theme=dark] #tool{--av-bad:#ff8f84;--av-bad-bg:rgb(255 120 110/.1);--av-warn:#f0c05a;--av-warn-bg:rgb(240 190 80/.1)}

#tool .av{color:var(--ink);font-family:var(--fb)}
#tool .av *{box-sizing:border-box}
#tool .av [hidden]{display:none!important}
#tool .av h3{margin:0;font:700 19px/1.25 var(--fh)}
#tool .av p{margin:0}
#tool .go{border:0;cursor:pointer}
#tool .go:focus-visible,#tool .av-btn:focus-visible,#tool .av-drop:focus-visible,#tool .av summary:focus-visible{outline:2px solid var(--go);outline-offset:2px}

/* drop zone */
#tool .av-drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 16px 26px;text-align:center;
border:2px dashed var(--line);border-radius:16px;background:var(--card);cursor:pointer;transition:border-color .15s,background .15s}
#tool .av-drop:hover,#tool .av-drop.on{border-color:var(--go);background:var(--soft-bg)}
#tool .av-drop-ic{display:block;width:48px;height:48px;color:var(--go);margin:0 0 4px}
#tool .av-drop-ic svg{width:100%;height:100%;display:block}
#tool .av-drop-t{font:700 20px/1.25 var(--fh)}
#tool .av-drop-s{color:var(--soft);font-size:14.5px}
#tool .av-pick{margin-top:10px;min-width:170px}
#tool .av-note{margin:10px 2px 0;color:var(--soft);font-size:14px;text-align:center}

/* running */
#tool .av-run{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:18px 16px}
#tool .av-run-t{font:600 15.5px/1.4 var(--fb);margin:0 0 12px;overflow-wrap:anywhere}
#tool .av-bar{height:8px;border-radius:99px;background:var(--soft-bg);overflow:hidden}
#tool .av-bar i{display:block;height:100%;width:3%;border-radius:99px;background:var(--go);transition:width .25s}

/* result */
#tool .av-card{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:16px}
#tool .av-verdict{display:flex;gap:14px;align-items:flex-start}
#tool .av-verdict p{color:var(--soft);font-size:14.5px;margin-top:4px;overflow-wrap:anywhere}
#tool .av-v-ic{flex:none;width:34px;height:34px;margin-top:1px}
#tool .av-v-ic svg{width:100%;height:100%;display:block}
#tool .av-v-ok .av-v-ic{color:var(--go)}
#tool .av-v-warn .av-v-ic{color:var(--av-warn)}
#tool .av-v-bad .av-v-ic{color:var(--av-bad)}
#tool .av-v-ok{border-color:var(--go)}
#tool .av-packs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px!important}
#tool .av-packs span{padding:4px 9px;border-radius:8px;background:var(--chip);color:var(--ink);font-size:13.5px;line-height:1.3;overflow-wrap:anywhere}
#tool .av-packs i{font-style:normal;color:var(--soft)}
#tool .av-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}
#tool .av-btn{min-height:46px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:var(--soft-bg);color:var(--go);
font:600 14.5px var(--fb);cursor:pointer}
#tool .av-btn:hover{border-color:var(--go)}

#tool .av-sec{margin:0 0 18px}
#tool .av-sec>h3,#tool .av-sec>summary h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:18px}
#tool .av-cnt{display:inline-block;min-width:26px;padding:1px 8px;border-radius:99px;background:var(--soft-bg);color:var(--soft);
font:700 13px/1.6 var(--fb);text-align:center}
#tool .av-sec-tip>summary{list-style:none;cursor:pointer}
#tool .av-sec-tip>summary::-webkit-details-marker{display:none}
#tool .av-sec-tip>summary h3::after{content:"Show";margin-left:auto;color:var(--go);font:600 14px var(--fb)}
#tool .av-sec-tip[open]>summary h3::after{content:"Hide"}

#tool .av-item{border:1px solid var(--line);border-left-width:4px;border-radius:12px;background:var(--card);padding:12px 14px;margin:0 0 10px}
#tool .av-error{border-left-color:var(--av-bad);background:var(--av-bad-bg)}
#tool .av-warning{border-left-color:var(--av-warn);background:var(--av-warn-bg)}
#tool .av-tip{border-left-color:var(--go)}
#tool .av-t{font:600 15.5px/1.4 var(--fb)}
#tool .av-n{display:inline-block;margin-left:4px;padding:0 7px;border-radius:99px;background:var(--soft-bg);color:var(--soft);font-size:12.5px;line-height:1.6;vertical-align:1px}
#tool .av-fix{margin-top:4px!important;font-size:14.5px;line-height:1.45}
#tool .av-fix span{font-weight:700}
#tool .av-files{list-style:none;margin:8px 0 0;padding:0}
#tool .av-files li{padding:4px 0;font-size:13.5px;line-height:1.45;overflow-wrap:anywhere;border-top:1px dashed var(--line)}
#tool .av-files li:first-child{border-top:0}
#tool .av-files code{font:12.5px/1.45 var(--av-mono);color:var(--ink)}
#tool .av-files span{display:block;color:var(--soft)}
#tool .av-more summary{margin-top:4px;color:var(--go);font-size:13.5px;font-weight:600;cursor:pointer}
#tool .av-id{display:block;margin-top:8px;color:var(--soft);font-size:12px;letter-spacing:.01em}
#tool .av-clean{margin:0 0 14px!important;padding:12px 14px;border-radius:12px;background:var(--chip);font-weight:600}
#tool .av-small{margin:0 0 8px!important;color:var(--soft);font-size:13px}

@media(max-width:420px){
  #tool .av-drop{padding:24px 12px 22px}
  #tool .av-actions>*{flex:1 1 auto}
  #tool .av-verdict{gap:10px}
  #tool .av-item{padding:11px 12px}
}
