:root{--bg:#fff;--text:#1a1a2e;--border:#e2e8f0;--accent:#3b82f6;--accent-hover:#2563eb;--code-bg:#f1f5f9;--active-bg:#eff6ff;--mono:ui-monospace, "SF Mono", Consolas, monospace;--sans:system-ui, -apple-system, sans-serif;font:15px/1.5 var(--sans);color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}header,.site-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:12px;display:flex}.site-title{text-transform:uppercase;letter-spacing:2px;color:#000;font-size:32px;font-weight:800}.admin-link{color:var(--accent);background:var(--bg);border:1px solid var(--border);white-space:nowrap;cursor:pointer;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}.admin-link:hover{background:var(--active-bg);border-color:var(--accent)}.moderator-status{color:#64748b;white-space:nowrap;align-items:center;gap:10px;font-size:12px;font-weight:600;display:inline-flex}.moderator-hint{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin:0 0 20px;padding:8px 12px;font-size:13px}.banner{color:#78350f;background:#fef3c7;border:1px solid #f59e0b;border-left-width:4px;border-radius:6px;margin:0 0 24px;padding:10px 14px;font-size:13px;line-height:1.5}h1{margin:0 0 4px;font-size:24px}.list-section{margin-top:24px}.list-section+.list-section{border-top:1px solid var(--border);padding-top:20px}.section-heading{margin:0 0 2px;font-size:18px}.section-note{color:#64748b;margin:0 0 12px;font-size:13px}.subtitle{color:#64748b;margin:0 0 24px;font-size:14px}.subtitle code{font-family:var(--mono);background:var(--code-bg);border-radius:4px;padding:2px 6px;font-size:13px}.app{max-width:960px;margin:0 auto;padding:32px 24px}.back-btn{border:1px solid var(--border);background:var(--bg);font:inherit;color:var(--accent);cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin-bottom:16px;padding:6px 12px;font-size:13px;transition:background .15s;display:inline-flex}.back-btn:hover{background:var(--code-bg)}.upload-list{margin:0;padding:0;list-style:none}.upload-list li{gap:4px;display:flex}.upload-list li+li{margin-top:4px}.upload-list li>button:first-child{border:1px solid var(--border);background:var(--bg);min-width:0;font:inherit;text-align:left;cursor:pointer;border-radius:6px;flex:1;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 12px;padding:10px 12px;font-size:13px;transition:background .15s;display:grid}.upload-list button:hover{background:var(--code-bg)}.delete-btn{border:1px solid var(--border);background:var(--bg);color:#94a3b8;cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;line-height:1;transition:background .15s,color .15s;display:inline-flex}.delete-btn:hover{color:#ef4444;background:#fef2f2;border-color:#ef4444}.field-label{color:#94a3b8;font-family:var(--sans);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.title{font-weight:600}.entry-id{color:#64748b;font-family:var(--mono);font-size:12px}.url{color:var(--text);font-family:var(--mono);font-size:12px}.timestamp{color:#64748b;font-size:12px}.performer{font-family:var(--mono);font-size:12px}.status{text-transform:uppercase;font-weight:700}.status-unmoderated{color:#dc2626}.status-moderated{color:#16a34a}.entry-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-actions{gap:8px;margin-bottom:16px;display:inline-flex}.moderate-btn,.delete-btn-text{border:1px solid var(--border);background:var(--bg);font:inherit;cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.moderate-btn--to-moderated{color:#16a34a}.moderate-btn--to-moderated:hover{background:#f0fdf4;border-color:#16a34a}.moderate-btn--to-unmoderated{color:#dc2626}.moderate-btn--to-unmoderated:hover{background:#fef2f2;border-color:#dc2626}.delete-btn-text{color:#94a3b8}.delete-btn-text:hover{color:#ef4444;background:#fef2f2;border-color:#ef4444}.upload-list .title,.upload-list .entry-id,.upload-list .url,.upload-list .performer,.upload-list .timestamp{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.entry-view{word-break:break-word}.entry-fields,.result-card{background:var(--bg);border:1px solid var(--border);border-radius:6px;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 12px;padding:10px 12px;font-size:13px;display:grid}.entry-fields{margin-bottom:16px}.entry-view pre{font-family:var(--mono);background:var(--code-bg);white-space:pre-wrap;border-radius:6px;margin:0;padding:16px;font-size:13px;line-height:1.6;overflow-x:auto}.summary-box{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;margin-bottom:16px;padding:14px 16px}.summary-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.summary-score{font-size:22px;font-weight:700}.summary-score-sep{color:#94a3b8;font-weight:400}.summary-grade{text-transform:uppercase;letter-spacing:.5px;color:#475569;background:#e2e8f0;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.summary-grade.grade-gold{color:#92400e;background:#fef3c7}.summary-grade.grade-silver{color:#475569;background:#e2e8f0}.summary-grade.grade-bronze{color:#9a3412;background:#fde7d3}.summary-grade.grade-caution{color:#991b1b;background:#fee2e2}.summary-fields{grid-template-columns:auto 1fr;align-items:baseline;gap:4px 12px;font-size:13px;line-height:1.5;display:grid}.results-list{flex-direction:column;gap:10px;display:flex}.result-card .mono{font-family:var(--mono)}.result-card .answer-yes{color:#15803d;font-weight:600}.result-card .answer-no{color:#b91c1c;font-weight:600}.score-table-wrap{margin:16px 0;overflow-x:auto}.score-table{border-collapse:collapse;width:100%;font-size:13px}.score-table th,.score-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 10px}.score-table thead th{font-family:var(--sans);text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;white-space:nowrap;font-size:11px;font-weight:600}.score-table .score-col{text-align:right;white-space:nowrap}.score-table th:first-child,.score-table td:first-child,.score-table th:nth-child(3),.score-table td:nth-child(3){white-space:nowrap}.score-table tfoot td{border-bottom:none;border-top:2px solid var(--border);font-weight:700}.score-table .answer-yes,.score-table .answer-no{white-space:nowrap;font-weight:600}.score-table .answer-yes{color:#15803d}.score-table .answer-no{color:#b91c1c}.id-link{font-family:var(--mono);font-size:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.id-link:hover{text-decoration:underline}.result-card{scroll-margin-top:12px}.empty{color:#94a3b8;text-align:center;padding:48px 0;font-size:14px}.upload-control{margin:0 0 20px}.upload-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.upload-btn:hover{background:var(--accent-hover)}.upload-btn.is-busy{opacity:.7;cursor:default}.upload-status{margin:8px 0 0;font-size:13px}.upload-status-ok{color:#15803d}.upload-status-error{color:#b91c1c}.upload-actions{flex-wrap:wrap;align-items:flex-start;gap:12px;margin:0 0 20px;display:flex}.upload-actions .upload-control{margin:0}.upload-btn-link{text-decoration:none}.import-form{margin:0 0 24px}.import-form form{flex-direction:column;gap:14px;max-width:520px;display:flex}.field{flex-direction:column;gap:4px;font-size:13px;display:flex}.field>span{font-weight:600}.field em{color:#94a3b8;font-style:normal;font-weight:400}.field input{font:inherit;border:1px solid #cbd5e1;border-radius:6px;padding:8px 10px;font-size:14px}.field input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.form-actions{align-items:center;gap:12px;display:flex}.import-problems,.import-notices{margin:12px 0 0;font-size:13px}.import-problems>p,.import-notices>p{margin:0 0 4px;font-weight:600}.import-problems{color:#b91c1c}.import-notices{color:#64748b}.import-problems ul,.import-notices ul{margin:0;padding-left:20px}.import-view-link{margin:12px 0 0;font-size:13px}
