/* === Text checker === */
#textInput{
  width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--border);border-radius:6px;
  font-size:13px;font-family:inherit;resize:vertical;line-height:1.6;background:#fff;color:var(--text);
  box-sizing:border-box;
}
#textInput:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}
.text-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:7px;margin:14px 0 8px;
}
.text-stats .si{background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;padding:8px 10px}
.text-stats .si .lbl{font-size:10px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:0.3px;display:block}
.text-stats .si .val{font-size:16px;font-weight:700;color:var(--text);font-family:"SF Mono",Consolas,monospace;display:block;margin-top:2px}
.text-stats .si.bytes{background:#EFF6FF;border-color:#DBEAFE}
.text-stats .si.bytes .val{color:var(--primary)}
.text-stats .si.lines{background:#F0FDF4;border-color:#DCFCE7}
.text-stats .si.lines .val{color:var(--success)}

.text-filter{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 8px}
.text-filter button{
  padding:5px 11px;font-size:12px;border:1px solid var(--border);background:var(--bg-soft);
  color:var(--text-sub);border-radius:14px;cursor:pointer;font-family:inherit;font-weight:500;
}
.text-filter button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.text-filter button:not(.active):hover{background:var(--bg-tint);color:var(--text)}

.text-matches{display:flex;flex-direction:column;gap:5px;max-height:340px;overflow-y:auto;padding-right:4px}
.text-match{
  display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
  padding:8px 12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;font-size:12px;
}
.text-match.pass{background:var(--success-bg);border-color:#BBF7D0}
.text-match.fail{background:var(--warn-bg);border-color:#FECACA}
.text-match.warn{background:#FFFBEB;border-color:#FDE68A}
.text-match .badge{
  font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:9px;
  background:var(--text-muted);color:#fff;text-transform:uppercase;letter-spacing:0.3px;min-width:46px;text-align:center;
}
.text-match.pass .badge{background:var(--success)}
.text-match.fail .badge{background:var(--warn)}
.text-match.warn .badge{background:#D97706}
.text-match .info{display:flex;flex-direction:column;min-width:0}
.text-match .info .name{font-weight:600;color:var(--text);font-size:12px}
.text-match .info .note{font-size:10.5px;color:var(--text-muted);margin-top:1px}
.text-match .status{font-size:11px;color:var(--text-sub);text-align:right;white-space:nowrap}
.text-match .status .num{font-family:"SF Mono",Consolas,monospace;font-weight:700;font-size:13px;display:block}
.text-match .status .lim{font-size:10px;color:var(--text-muted)}

