/* Prompt Linter (/prompt-lint/); shared pieces in engine.css */
.pl-code{min-height:16rem}
.pl-path{display:flex; align-items:center; gap:.6rem; padding:.6rem 1.1rem .9rem; border-top:1px solid var(--line-2)}
.pl-path .input{max-width:22rem}
.pl-files{padding:1rem 1.1rem; font:400 var(--t-sm)/1.5 var(--f-ui); color:var(--ink-2)}
.pl-files ul{display:flex; flex-wrap:wrap; gap:.3rem .6rem; margin-top:.5rem}
.pl-files code{font:400 .8rem/1.4 var(--f-mono)}

.pl-sum{display:flex; flex-wrap:wrap; gap:1.2rem 2rem; align-items:center; padding:1.1rem 1.2rem; background:var(--panel); border:1px solid var(--line); border-radius:var(--r-xl)}
.pl-counts{display:flex; gap:.5rem}
.pl-counts > div{--c:var(--ink-3); display:flex; flex-direction:column; align-items:center; min-width:4.6rem; padding:.6rem .5rem; border-radius:var(--r-lg); background:var(--bg-2); box-shadow:inset 0 -3px 0 var(--c)}
.pl-counts > div[data-sev="error"]{--c:var(--bad)} .pl-counts > div[data-sev="warning"]{--c:var(--hi)} .pl-counts > div[data-sev="info"]{--c:var(--accent)}
.pl-counts b{font:300 1.8rem/1 var(--f-head); color:var(--ink); font-variant-numeric:tabular-nums}
.pl-counts span{font:500 var(--t-2xs)/1.2 var(--f-ui); color:var(--ink-3); margin-top:.25rem}
.pl-sum-t{flex:1 1 18rem}
.pl-sum-t h2{font:400 1.5rem/1.2 var(--f-head); margin:0; color:var(--ink)}
.pl-sum-t p{font:400 1rem/1.5 var(--f-serif); color:var(--ink-2); margin-top:.3rem}

.pl-sev{--c:var(--ink-3); grid-row:1 / span 2; align-self:start; font:600 var(--t-2xs)/1 var(--f-ui); padding:.32rem .55rem; border-radius:999px; color:var(--ink); background:color-mix(in srgb, var(--c) 15%, transparent); margin-top:.15rem}
.pl-sev[data-sev="error"]{--c:var(--bad)} .pl-sev[data-sev="warning"]{--c:var(--hi)} .pl-sev[data-sev="info"]{--c:var(--accent)}
.pl-f .eng-row-t{font-weight:500}
.pl-where{font:400 .8rem/1.4 var(--f-mono) !important}
.pl-where::before{content:none !important}

.pl-models li{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.2rem .9rem; align-items:baseline; padding:.55rem 0; border-top:1px solid var(--line-2)}
.pl-models code{font:500 .85rem/1.3 var(--f-mono); color:var(--ink)}
.pl-models li[data-ok="false"] span{color:var(--bad); font-weight:500}
.pl-models span{font:400 var(--t-sm)/1.3 var(--f-ui); color:var(--ink-2)}
.pl-models small{font:400 .78rem/1.3 var(--f-mono); color:var(--ink-3)}

.pl-prompts{display:flex; flex-direction:column; gap:1rem}
.pl-p{--c:var(--good); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--panel); overflow:hidden; box-shadow:inset 3px 0 0 var(--c)}
.pl-p[data-sev="error"]{--c:var(--bad)} .pl-p[data-sev="warning"]{--c:var(--hi)} .pl-p[data-sev="info"]{--c:var(--accent)}
.pl-p header{padding:.8rem 1rem .6rem 1.1rem}
.pl-p h4{margin:0; font:600 1rem/1.3 var(--f-ui); color:var(--ink)}
.pl-p h4 code{font:600 .92rem/1.3 var(--f-mono)}
.pl-p h4 span{font:400 .8rem/1.3 var(--f-mono); color:var(--ink-3)}
.pl-tags{display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.45rem}
.pl-src{margin:0; padding:.5rem 0; background:var(--bg-2); border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); font:400 .8rem/1.55 var(--f-mono); color:var(--ink-2); overflow-x:auto; max-height:22rem}
.pl-line{display:block; padding:0 1rem 0 0; white-space:pre}
.pl-line i{display:inline-block; width:3rem; padding-right:.8rem; text-align:right; color:var(--ink-4); font-style:normal; user-select:none}
.pl-line.in{color:var(--ink)}
.pl-line.flag{background:color-mix(in srgb, var(--c) 12%, transparent)}
.pl-line.flag i{color:var(--c)}
.pl-p .eng-ledger{border-top:0; padding:0 .4rem}
.pl-clean{padding:.8rem 1.1rem; font:400 .98rem/1.4 var(--f-serif); color:var(--good)}

.pl-ci{margin-top:2.4rem; padding-top:1.4rem; border-top:1px solid var(--line)}
.pl-ci .hint code{font:400 .8rem/1 var(--f-mono)}
.pl-gh{margin-top:1rem !important}
