:root{--ink: #12181f;--ink-soft: #4a5a68;--ink-faint: #7b8b98;--paper: #e9edf0;--surface: #ffffff;--edge: #c9d3db;--edge-soft: #dde4e9;--allow: #2e7d5b;--watch: #b8791c;--spam: #b03a2e;--accent: #2b5ea8;--sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--gap: 16px;--radius: 3px}:root[data-scheme=dark]{--ink: #e8edf1;--ink-soft: #a3b1bd;--ink-faint: #71818e;--paper: #101820;--surface: #18222c;--edge: #2c3a47;--edge-soft: #232f3a;--allow: #57b184;--watch: #d9a03f;--spam: #dd6a5a;--accent: #6a9de0}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:12px var(--gap);padding-top:max(12px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--edge)}.group-picker{flex:1;min-width:0;border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);padding:7px 10px;font-weight:500}.protection{display:flex;align-items:center;gap:7px;flex-shrink:0;font-size:13px;color:var(--ink-soft);background:none;border:1px solid var(--edge);border-radius:var(--radius);padding:7px 10px;cursor:pointer}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint)}.dot[data-on=true]{background:var(--allow)}.tabs{display:flex;gap:2px;padding:0 var(--gap);background:var(--surface);border-bottom:1px solid var(--edge);overflow-x:auto}.tab{background:none;border:0;border-bottom:2px solid transparent;padding:11px 12px;color:var(--ink-soft);cursor:pointer;white-space:nowrap}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:var(--gap);padding-bottom:max(var(--gap),env(safe-area-inset-bottom))}.notice{border-left:3px solid var(--watch);background:var(--surface);padding:11px 13px;margin-bottom:var(--gap);font-size:14px;color:var(--ink-soft)}.notice strong{color:var(--ink);font-weight:600}.filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.chip{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:5px 11px;font-size:13px;color:var(--ink-soft);cursor:pointer}.chip[aria-pressed=true]{border-color:var(--accent);color:var(--accent);font-weight:500}.log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--edge-soft);border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden}.entry{background:var(--surface);border-left:4px solid var(--ink-faint);padding:13px 14px;cursor:pointer}.entry[data-verdict=allow]{border-left-color:var(--allow)}.entry[data-verdict=suspicious]{border-left-color:var(--watch)}.entry[data-verdict=spam]{border-left-color:var(--spam)}.evidence{font-family:var(--mono);font-size:15px;line-height:1.45;margin:0 0 9px;word-break:break-word;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.entry[data-open=true] .evidence{-webkit-line-clamp:unset;overflow:visible}.meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}.who{font-weight:500;color:var(--ink)}.outcome{font-weight:500}.outcome[data-verdict=allow]{color:var(--allow)}.outcome[data-verdict=suspicious]{color:var(--watch)}.outcome[data-verdict=spam]{color:var(--spam)}.confidence{display:inline-flex;align-items:center;gap:6px}.meter{display:inline-flex;gap:1.5px}.meter i{width:3px;height:10px;background:var(--edge)}.meter i[data-lit=true]{background:currentColor}.flag{border:1px solid var(--edge);border-radius:var(--radius);padding:1px 6px;font-size:12px;color:var(--ink-faint)}.detail{margin-top:11px;padding-top:11px;border-top:1px solid var(--edge-soft);font-size:14px}.detail dl{margin:0;display:grid;grid-template-columns:minmax(90px,auto) 1fr;gap:5px 14px}.detail dt{color:var(--ink-faint)}.detail dd{margin:0}.reason{margin:0 0 11px;color:var(--ink)}.rowactions{display:flex;gap:8px;margin-top:12px}.btn{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:8px 13px;cursor:pointer;font-size:14px}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.btn.primary:hover:not(:disabled){color:#fff;filter:brightness(1.08)}.field{margin-bottom:20px}.field>label{display:block;font-weight:500;margin-bottom:3px}.field .help{display:block;color:var(--ink-soft);font-size:13px;margin-bottom:8px;max-width:62ch}.field input[type=text],.field input[type=password],.field input[type=number],.field select,.field textarea{width:100%;background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:9px 11px}.field textarea{min-height:190px;font-family:var(--mono);font-size:13.5px;line-height:1.6;resize:vertical}.field input[type=range]{width:100%}.toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.toggle input{margin-top:4px;flex-shrink:0}.panel{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);padding:var(--gap);margin-bottom:var(--gap)}.panel h2{margin:0 0 4px;font-size:17px;font-weight:600}.panel>p{margin:0 0 var(--gap);color:var(--ink-soft);font-size:14px;max-width:62ch}.savebar{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;padding:12px 0;padding-bottom:max(12px,env(safe-area-inset-bottom));background:linear-gradient(to top,var(--paper) 70%,transparent)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 var(--gap)}.rulegroup{margin:18px 0 6px;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}.rules,.checklist{list-style:none;margin:0;padding:0}.rules li{padding:10px 0;border-top:1px solid var(--edge-soft)}.rules li:first-child{border-top:0}.checklist li{padding:4px 0}.linkbtn{background:none;border:0;padding:4px 0 0 26px;color:var(--accent);font-size:13px;cursor:pointer}.linkbtn:hover{text-decoration:underline}.applypanel{margin:10px 0 0 26px;padding:12px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--paper)}.applypanel .checklist{margin:4px 0 0 26px}.rulenote{margin:0 0 var(--gap);color:var(--allow);font-size:14px}.people{list-style:none;margin:0;padding:0;border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden}.people li{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--surface);border-bottom:1px solid var(--edge-soft)}.people li:last-child{border-bottom:0}.people .grow{flex:1;min-width:0}.people .name{font-weight:500}.people .sub{font-size:13px;color:var(--ink-faint)}.score{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}.score[data-sign=neg]{color:var(--spam)}.score[data-sign=pos]{color:var(--allow)}.empty,.loading{padding:34px var(--gap);text-align:center;color:var(--ink-soft);background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius)}.empty p{margin:0 0 4px;color:var(--ink);font-weight:500}.empty span{font-size:14px}.error{border-left:3px solid var(--spam);background:var(--surface);padding:11px 13px;margin-bottom:var(--gap);font-size:14px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1px;background:var(--edge-soft);border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--gap)}.stats div{background:var(--surface);padding:12px 14px}.stats b{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:500}.stats span{font-size:13px;color:var(--ink-soft)}.testout{margin-top:var(--gap);border-left:4px solid var(--edge);padding:12px 14px;background:var(--paper)}.testout[data-verdict=spam]{border-left-color:var(--spam)}.testout[data-verdict=suspicious]{border-left-color:var(--watch)}.testout[data-verdict=allow]{border-left-color:var(--allow)}.signin{max-width:380px;margin:18vh auto;padding:var(--gap);text-align:left}.signin h1{font-size:22px;font-weight:600;margin:0 0 8px}.signin p{color:var(--ink-soft);margin:0 0 var(--gap)}@media (min-width: 900px){main{max-width:820px}}
