:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e1e4ea;--text: #1a1f29;--muted: #5a6170;--accent: #1d4ed8;--accent-hover: #1e40af;--pass: #2e7d32;--pass-bg: #e8f5e9;--pass-border: #a5d6a7;--fail: #b00020;--fail-bg: #fdecea;--fail-border: #f5b5a8;--fail-row-bg: #fef6f4;--warn: #b88600;--warn-bg: #fff8e1;--lift-shadow: 0 1px 2px rgba(15, 23, 42, .04);--control-height: 38px}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}.layout{max-width:960px;margin:0 auto;padding:32px 24px 80px}.header h1{margin:0;font-size:28px}.subtitle{color:var(--muted);margin:8px 0 24px;max-width:640px}.instructions{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:14px;color:var(--muted)}.instructions>summary{cursor:pointer;font-weight:600;color:var(--text);list-style:none}.instructions>summary::-webkit-details-marker{display:none}.instructions>summary:before{content:"▸";display:inline-block;margin-right:8px;color:var(--muted);transition:transform .12s ease}.instructions[open]>summary:before{transform:rotate(90deg)}.instructions ol{margin:8px 0 0;padding-left:28px}.instructions li{margin:4px 0}.instructions code{background:#f1f3f7;padding:1px 5px;border-radius:4px;font-size:13px}.controls{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end;background:transparent;border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:24px}.controls label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.reference-download{color:var(--muted);text-decoration:underline}.reference-download:hover{color:var(--text)}.controls select,.controls input[type=file]{height:var(--control-height);padding:0 10px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:14px}.controls input[type=file]{padding:0 10px 0 0}.controls input[type=file]::file-selector-button{height:100%;margin-right:10px;padding:0 12px;border:none;border-right:1px solid var(--border);background:#f1f3f7;font:inherit;color:var(--text);cursor:pointer}.controls input[type=file]::file-selector-button:hover{background:#e6e9f0}button{font:inherit;cursor:pointer}button.primary{height:var(--control-height);background:var(--accent);color:#fff;border:none;padding:0 20px;border-radius:6px;font-weight:600;font-size:14px}button.primary:hover:enabled{background:var(--accent-hover)}button.primary:disabled{background:#9aa4b2;cursor:not-allowed}button.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:8px 14px;border-radius:6px;font-weight:600}button.secondary:hover{background:var(--accent);color:#fff}button.toggle{background:transparent;color:var(--muted);border:none;padding:6px 4px;font-size:13px;font-weight:500;text-align:right}button.toggle:hover{color:var(--text);text-decoration:underline}.error-card{background:var(--fail-bg);border:1px solid var(--fail-border);border-radius:8px;padding:16px 20px;color:var(--fail)}.error-card p{margin:4px 0 0}.summary{display:flex;align-items:center;gap:24px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px 24px;margin-bottom:16px;box-shadow:var(--lift-shadow)}.summary-main{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.summary-text{min-width:0}.summary-headline{font-size:20px;font-weight:700;color:var(--text)}.summary-sub{color:var(--muted);font-size:13px;margin-top:2px}.summary-filename{word-break:break-all}.summary-timestamp{color:var(--muted);font-size:13px;white-space:nowrap;text-align:right}.summary-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:140px}.summary-success .status-dot{background:var(--pass)}.summary-warn .status-dot{background:var(--warn)}.status-dot{display:inline-block;width:16px;height:16px;border-radius:50%;color:#fff;font-size:11px;line-height:16px;text-align:center;font-weight:700;flex-shrink:0}.results-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--lift-shadow);overflow:hidden}.results-table{width:100%;border-collapse:collapse;background:var(--surface);font-size:14px}.results-table thead th{text-align:left;padding:10px 14px;background:#f8f9fb;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.results-table tbody tr{border-top:1px solid var(--border)}.results-table tbody tr:first-child{border-top:none}.results-table td{padding:10px 14px;vertical-align:middle}.results-table .col-status{width:48px}.results-table .col-chevron{width:32px;text-align:right}.results-table .caption{font-weight:400;color:var(--muted)}.results-table .cell-count{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right}.results-table .col-meta{color:var(--muted);font-size:13px}.row-pass .status-dot{background:var(--pass)}.row-fail{background:var(--fail-row-bg)}.row-fail .caption{font-weight:500;color:var(--text)}.row-fail .status-dot{background:var(--fail)}.row-clickable{cursor:pointer}.row-clickable:hover{background:#f3f4f7}.row-fail.row-clickable:hover{background:#fceae6}.row-empty td{color:var(--muted);font-style:italic;text-align:center;padding:24px}.chevron{display:inline-block;color:var(--muted);transition:transform .12s ease}.chevron.open{transform:rotate(90deg)}.detail-row{display:none}.detail-row.is-open{display:table-row}.detail-row>td{background:#fbfcfd;padding:0 14px 14px 40px}.diff-subtable{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}.diff-subtable th,.diff-subtable td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left}.diff-subtable tr:last-child td{border-bottom:none}.diff-subtable th{color:var(--muted);font-weight:600;font-size:12px}.detail-text{margin:8px 0 0;color:var(--muted);font-size:14px}@media(max-width:640px){.layout{padding:24px 16px 80px}.controls{grid-template-columns:1fr}.summary{flex-wrap:wrap}.summary-timestamp{flex:1;text-align:left}}@media(max-width:480px){.results-table .col-status{display:none}.results-table .row-pass .caption:before,.results-table .row-fail .caption:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle}.results-table .row-pass .caption:before{background:var(--pass)}.results-table .row-fail .caption:before{background:var(--fail)}}@media print{@page{margin:16mm}html,body{background:#fff}.layout{max-width:none;padding:0}.controls,.error-card,.summary-actions,.subtitle,.instructions,.col-chevron,.chevron{display:none!important}.summary,.results-table-wrap{box-shadow:none}.results-table-wrap,.results-table{overflow:visible;border-radius:0}.detail-row{display:table-row!important}.row-clickable{cursor:auto}.results-table,.diff-subtable{page-break-inside:auto}.results-table tr,.diff-subtable tr{page-break-inside:avoid}}
