/* UBL validator — tool-specific additions on top of assets/css/site.css (tokens only, square corners). */

.chk-input .h-sec { margin-bottom:20px; }
.chk-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:clamp(24px,4vw,48px); align-items:stretch; }

/* drop zone: a real file input, visually hidden but focusable; the label is the target */
.chk-drop { position:relative; display:flex; border:1px dashed var(--ink); background:var(--bg); }
.chk-drop:hover, .chk-drop.dragover { background:var(--tint); }
.chk-drop.dragover { border-style:solid; }
.chk-drop:focus-within { outline:2px solid var(--ink); outline-offset:3px; }
html[data-theme="agentic"] .chk-drop:focus-within { outline-color:var(--accent); }
.chk-file { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; opacity:0; }
.chk-drop label { flex:1; display:grid; align-content:center; justify-items:start; gap:10px; padding:clamp(24px,4vw,40px); cursor:pointer; }
.chk-drop-t { font-size:clamp(20px,2vw,26px); font-weight:700; letter-spacing:-.03em; line-height:1.1; }
.chk-drop .btn { margin-top:8px; }

.chk-form { border-top:0; padding-top:0; align-content:start; }
.chk-form textarea { font-family:var(--mono); font-size:13px; min-height:180px; }
.chk-form .form-error { color:var(--ink); font-weight:600; }
.chk-form .form-error::before { content:"✕ "; font-family:var(--mono); }
.chk-btn-ghost { background:none; color:var(--ink); cursor:pointer; }

.chk-loading { padding:32px 0; border-bottom:1px solid var(--line); font-family:var(--mono); font-size:13px; color:var(--muted); }
.chk-spin { display:inline-block; color:var(--ink); animation:chkPulse 1s steps(2,end) infinite; }
@keyframes chkPulse { 50% { opacity:.2; } }
@media (prefers-reduced-motion:reduce) { .chk-spin { animation:none; } }

/* results */
.chk-status { align-items:center; padding-bottom:20px; border-bottom:1px solid var(--ink); margin-bottom:28px; }
.chk-status h2 { overflow-wrap:anywhere; }
.chk-status h2:focus { outline:none; }
.chk-mark { font-family:var(--mono); }
html[data-theme="agentic"] .chk-status.is-valid .chk-mark { color:var(--accent); }
.chk-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:0 clamp(24px,4vw,64px); margin-bottom:12px; }
.chk-h3 { margin:0 0 10px; font-weight:500; }
.chk-cols .kv { margin-bottom:24px; }
.chk-cols .kv > div > span:last-child { overflow-wrap:anywhere; }

.chk-list { margin-top:28px; }
.chk-list ul { list-style:none; margin:14px 0 0; padding:0; }
.chk-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:12px; padding:14px 0; border-top:1px solid var(--line); }
.chk-item.is-error { border-top-color:var(--ink); }
.chk-item > span:first-child { font-family:var(--mono); font-size:14px; padding-top:1px; }
.chk-item b { display:block; font-weight:600; }
.chk-item p { margin:4px 0 0; font-size:14px; color:var(--muted); overflow-wrap:anywhere; text-wrap:pretty; }
.chk-item .chk-line { font-family:var(--mono); font-size:12px; }
.chk-item pre { margin:8px 0 0; padding:10px 12px; background:var(--tint); font-family:var(--mono); font-size:12.5px; overflow-x:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
