:root{color:#252a34;font-synthesis:none;--ink:#252a34;--muted:#697386;--accent:#646c98;--primary:#1f2937;--soft:#eef0f5;--line:#e1e5ec;--surface:#fff;--radius:10px;background:#f5f6f8;font-family:Segoe UI,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0}#root{background:#f5f6f8 url(/dog-background.png) 100% 100%/cover no-repeat fixed;min-height:100vh}main{max-width:1152px;margin:auto;padding:40px 32px 64px}.navbar{background:#1f2937;border-bottom:1px solid #1f2937;justify-content:space-between;align-items:center;gap:24px;min-height:72px;padding:16px max(32px,50% - 544px);display:flex}.navbar a{color:#fff;border-radius:6px;align-items:center;min-height:40px;padding:8px 12px;font-size:14px;text-decoration:none;display:inline-flex}.navbar .brand{color:#fff;letter-spacing:-.4px;padding-left:0;font-size:18px;font-weight:650}.navbar>div{gap:8px;display:flex}.navbar>div a.active{color:#fff;background:#3a4050}.navbar a:hover{color:#fff}h1{letter-spacing:-.6px;margin:0;font-size:26px;font-weight:650;line-height:1.3}h2{margin:0 0 24px;font-size:17px;font-weight:600}p{line-height:1.6}.page-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.page-header p{color:var(--muted);margin:8px 0 0;font-size:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}button,.upload-choose{font:inherit;border:1px solid var(--line);min-height:40px;color:var(--ink);background:var(--surface);cursor:pointer;border-radius:6px;padding:9px 16px;font-size:14px;transition:background-color .15s,border-color .15s}button:hover,.upload-choose:hover{background:var(--soft);border-color:#7c83b8}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.button-primary:hover:not(:disabled){background:#374151;border-color:#374151}a:focus-visible,button:focus-visible,[tabindex]:focus-visible,.upload-choose:focus-within{outline:2px solid var(--accent);outline-offset:4px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;font-variant-numeric:tabular-nums;width:100%;font-size:14px}th{color:var(--muted);background:#eef0f5;font-size:12px;font-weight:500}th,td{text-align:left;border-bottom:1px solid var(--line);padding:19px 24px}th:nth-child(n+3):nth-child(-n+5),td:nth-child(n+3):nth-child(-n+5),th:last-child,td:last-child{text-align:right}tr:last-child td{border-bottom:0}tbody tr:hover{background:#f5f6f8}td button{min-height:36px;padding:6px 12px}.chart-panel{padding:28px 24px}.chart-frame{min-width:0;height:300px}.result-panel{padding:24px}.result-panel video{background:#252a34;border-radius:6px;width:100%;max-height:460px;display:block}.event-panel{margin-top:28px}.event-panel h2{margin-bottom:12px}.event-list{margin:0;padding:0;list-style:none}.event-list li+li{border-top:1px solid var(--line)}.event-list button{text-align:left;background:0 0;border:0;align-items:center;gap:16px;width:100%;padding:14px 8px;display:flex}.event-list button:hover{background:var(--soft)}.event-list button>span:last-child{margin-left:auto}.event-number{color:var(--muted);font-variant-numeric:tabular-nums}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=640px){main{padding:28px 16px 48px}#root{background-size:auto 65vh}.navbar{flex-wrap:wrap;gap:4px;padding:12px 16px}.navbar>div{gap:4px;width:100%}.navbar a{min-height:44px;padding:10px}.page-header{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:24px}h1{font-size:24px}th,td{padding:16px}.chart-panel,.result-panel{padding:20px 16px}.chart-frame{height:220px}button{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@media (width>=641px) and (width<=1100px){th,td{padding:16px 12px}th{white-space:normal}}@media (width<=640px){.table-scroll{overflow:visible}table,tbody{white-space:normal;display:block}thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}tbody tr{flex-wrap:wrap;align-items:center;gap:16px 0;padding:20px 16px;display:flex}tbody tr+tr{border-top:1px solid var(--line)}tbody td{border:0;width:33.333%;padding:0;display:block;text-align:left!important}tbody td:before{content:attr(data-label);color:var(--muted);margin-bottom:6px;font-size:12px;display:block}tbody td:first-child{width:40%;font-weight:600}tbody td:nth-child(2){width:60%;text-align:right!important}tbody td:last-child{width:100%;text-align:right!important}tbody td:last-child:before{display:none}td button{min-height:44px}}button:disabled{opacity:1;color:#697386;background:#eef0f5;border-color:#e1e5ec}.navbar a:focus-visible{outline-color:#d6dae3}.recharts-tooltip-wrapper .recharts-default-tooltip{color:var(--ink);background-color:var(--surface)!important;border-color:var(--line)!important}.recharts-tooltip-item{color:var(--ink)!important}.upload-page{width:100%;max-width:760px;color:var(--ink);margin:0 auto;font-size:14px}.upload-breadcrumb{color:var(--muted);align-items:center;gap:10px;margin-bottom:20px;font-size:12px;display:flex}.upload-breadcrumb button{min-height:32px;color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.upload-subtitle{color:var(--muted);margin:8px 0 0}.upload-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:28px;padding:28px 32px}.upload-card-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.upload-context{font-weight:500}.upload-badge{background:var(--soft);color:var(--accent);border-radius:6px;padding:4px 10px;font-size:12px}.upload-center{text-align:center}.upload-icon{color:var(--muted);margin:0 auto 16px}.upload-icon svg{width:28px;height:28px}.upload-center h2{margin:0 0 8px;font-size:20px}.upload-center p{color:var(--muted);margin:0}.upload-file{background:var(--soft);border-radius:6px;align-items:center;gap:12px;margin-top:28px;padding:16px;display:flex}.upload-file-icon{color:var(--muted);font-size:24px}.upload-file-details{min-width:0}.upload-filename{overflow-wrap:anywhere;font-weight:600}.upload-file-size{color:var(--muted);margin-top:4px;font-size:12px}.upload-progress-label{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin:24px 0 10px;font-size:12px;display:flex}.upload-progress-label strong{color:var(--accent)}.upload-track{background:var(--soft);border-radius:6px;height:6px;overflow:hidden}.upload-bar{border-radius:inherit;background:#7c83c4;height:100%;transition:width .3s}.upload-steps{flex-wrap:wrap;justify-content:space-between;gap:16px;margin:24px 0 28px;display:flex}.upload-step{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.upload-dot{border:1px solid var(--line);border-radius:6px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 5px;font-size:11px;display:inline-flex}.upload-step.is-active,.upload-step.is-done{color:var(--accent)}.is-active .upload-dot,.is-done .upload-dot{background:var(--soft);border-color:#7c83b8}.upload-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;display:flex}.upload-hint{color:var(--muted);font-size:12px}.upload-button-primary{color:#fff;background:var(--primary);border-color:var(--primary)}.upload-button-primary:hover:not(:disabled){background:#374151;border-color:#374151}.upload-demo{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:24px;font-size:12px;display:flex}.upload-choose{align-items:center;display:inline-flex;position:relative}.upload-choose input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.upload-choose.is-disabled{color:var(--muted);background:var(--soft);border-color:var(--line);cursor:not-allowed}.upload-note{text-align:center;color:var(--muted);margin-top:24px;font-size:12px}.upload-error{color:#a63232;text-align:center}@media (width<=640px){.upload-card{padding:24px 20px}.upload-breadcrumb button,.upload-choose{min-height:44px}.upload-center h2{font-size:18px}}.upload-breadcrumb,.upload-step,.upload-hint,.upload-demo,.upload-note,.upload-progress-label,.upload-badge{font-size:13px}.upload-page .upload-button:disabled{color:#697386;background:#eef0f5;border-color:#e1e5ec}
