body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-shell{background:radial-gradient(circle at 20% 20%,#e0f2ff,#f8fbff 30%),#f6f8fb;color:#0f172a;min-height:100vh;padding:48px 16px 64px}.hero{margin:0 auto 32px;max-width:960px;text-align:center}.eyebrow{background:#0f172a;border-radius:999px;color:#e2e8f0;cursor:pointer;display:inline-block;font-size:12px;letter-spacing:.08em;margin-bottom:12px;padding:6px 10px;text-transform:uppercase;-webkit-user-select:none;user-select:none}.hero h1{font-size:40px;letter-spacing:-.03em;margin:0}.subtitle{color:#475569;font-size:16px;margin:12px auto 16px;max-width:720px}.env-hints{grid-gap:8px;color:#0f172a;display:grid;gap:8px;justify-content:center;margin:16px auto 0}.env-hints dt{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.env-hints dd{background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;margin:2px 0 0;min-width:260px;padding:8px 12px}.content{grid-gap:20px;display:grid;gap:20px;margin:0 auto;max-width:960px}.card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 16px 40px #0f172a14;padding:20px}.upload-form{grid-gap:16px;display:grid;gap:16px}.field{grid-gap:8px;display:grid;gap:8px;text-align:left}.label{color:#0f172a;font-weight:600}.field input[type=file]{background:#f8fafc;border:1px dashed #94a3b8;border-radius:10px;padding:10px}.preview{grid-gap:8px;display:grid;gap:8px}.preview-label{color:#0f172a;font-weight:600}.preview-frame{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;justify-content:center;padding:12px}.preview-frame img{border-radius:10px;max-width:100%;object-fit:contain}.message{border-radius:12px;font-size:14px;margin:0;padding:12px}.error{background:#fef2f2;border:1px solid #fecdd3;color:#b91c1c}.warning{background:#fffbeb;border:1px solid #fef3c7;color:#92400e}.primary{align-items:center;background:linear-gradient(140deg,#1d4ed8,#0ea5e9);border:none;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;letter-spacing:.02em;padding:12px 18px;transition:transform .12s ease,box-shadow .12s ease}.primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.65}.primary:not(:disabled):hover{box-shadow:0 12px 25px #0ea5e959;transform:translateY(-1px)}.primary:not(:disabled):active{transform:translateY(0)}.field input[type=number],.field input[type=text]{background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-sizing:border-box;font-size:14px;height:42px;padding:10px 12px}.ghost{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;color:#0f172a;cursor:pointer;font-weight:600;padding:10px 14px;white-space:nowrap}.ghost:disabled{cursor:not-allowed;opacity:.55}.ghost:not(:disabled):hover{background:#eef2f7;border-color:#94a3b8}.checkbox-field{align-items:center;color:#0f172a;display:flex;font-weight:500;gap:10px;text-align:left}.test-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:16px}.test-grid .checkbox-field,.test-row{grid-column:1/-1}.test-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.test-full{grid-column:1/-1}.test-actions{margin-bottom:16px}.interval-row{align-items:center;display:flex;gap:10px}.interval-row input[type=number]{flex:1 1;min-width:0}.fps-presets{display:flex;flex:0 0 auto;flex-direction:column;gap:4px}.fps-presets .ghost{font-size:11px;padding:2px 8px}.log-header{align-items:center;background:#111827;display:flex;gap:12px;justify-content:space-between;padding-right:12px}.log-header .json-header{background:#0000;flex:1 1}.stats-grid{grid-gap:12px;display:grid;gap:12px;grid-auto-columns:minmax(120px,1fr);grid-auto-flow:column;margin-bottom:16px;overflow-x:auto}.stat{grid-gap:4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:grid;gap:4px;padding:12px 14px;text-align:center}.stat-value{color:#0f172a;font-size:22px;font-weight:700}.stat-label{color:#64748b;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.stat-ok .stat-value{color:#15803d}.stat-warn .stat-value{color:#b45309}.stat-err .stat-value{color:#b91c1c}.log-output{background:#0f172a;border:1px solid #1e293b;border-radius:12px;overflow:hidden}.log-scroll{max-height:320px;overflow:auto}.log-empty{color:#94a3b8;font-size:14px;margin:0;padding:16px}.log-footer{border-top:1px solid #1e293b;display:flex;justify-content:flex-end;padding:12px}.log-table{--log-group-row-h:30px;border-collapse:collapse;color:#e2e8f0;font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;width:100%}.log-table td,.log-table th{border-bottom:1px solid #1e293b;padding:8px 12px;text-align:left;white-space:nowrap}.log-table th{background:#111827;position:-webkit-sticky;position:sticky;z-index:1}.log-table .log-group-row th{border-bottom:none;padding-bottom:2px;padding-top:6px;top:0}.log-table thead tr:last-child th{top:var(--log-group-row-h)}.log-table .log-group{background:#14283c;border-bottom:1px solid #38bdf8;color:#7dd3fc;font-size:11px;font-weight:600;letter-spacing:.06em;text-align:center;text-transform:uppercase}.log-table .group-col{background:#38bdf812}.log-table th.group-col{background:#14283c}.log-table .group-start{border-left:1px solid #38bdf8}.log-table .group-end{border-right:1px solid #38bdf8}.log-table .row-ok .latency{color:#4ade80}.log-table .row-err .latency{color:#f87171}.log-table .row-selectable{cursor:pointer}.log-table .row-selectable:hover td{background:#1e293b}.log-table .row-selected td{background:#334155}.results .result-block{grid-gap:16px;display:grid;gap:16px}.result-header h2{font-size:22px;margin:0}.result-header p{color:#475569;margin:6px 0 0}.json-output,.result-image{background:#0f172a}.json-output{border:1px solid #1e293b;border-radius:12px;color:#e2e8f0;overflow:hidden}.json-header{background:#111827;font-weight:600;letter-spacing:.01em;margin:0;padding:10px 12px}.json-output pre{font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;margin:0;padding:12px;white-space:pre-wrap;word-break:break-word}
/*# sourceMappingURL=main.481e15b0.css.map*/