:root{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#132c2b;background:#f3f6f2;font-synthesis:none;line-height:1.6;--ink:#132c2b;--muted:#506462;--green:#12634e;--border:#cbd7d0}
.labels-editor{background:#f5f9f6;border:1px solid var(--border);border-radius:8px;padding:18px;margin:24px 0}.labels-editor>label{display:block;font-size:14px;font-weight:650;margin:14px 0 7px}.labels-editor>input{max-width:100%}.labels-editor>.detail-links{margin-bottom:0}.labels-editor>p.small{margin:6px 0 12px}.labels-editor input:disabled{color:#506462;background:#eaf0ec}
.upload-form{max-width:740px}.upload-form>label{display:block;font-weight:650;margin:14px 0 7px}.upload-form .upload-check{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:14px;margin:18px 0}.upload-check input{width:20px;min-width:20px;min-height:20px;height:20px;margin:3px 0;accent-color:var(--green)}.upload-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.upload-progress-panel{padding:18px;border:1px solid var(--border);border-radius:8px;margin:18px 0;background:#f5f9f6}.upload-progress-panel label{font-size:14px;font-weight:650}.upload-progress-panel progress{display:block;width:100%;height:18px;margin:10px 0;accent-color:var(--green)}.upload-progress-panel p{margin:6px 0;overflow-wrap:anywhere}.badge.no-events{background:#e8edf1;color:#304e64}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{touch-action:manipulation}[hidden]{display:none!important}a{color:#075c49;text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c76a13;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}.site-header{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px max(24px,calc((100vw - 1120px)/2));border-bottom:1px solid var(--border);background:#fff}.brand{display:flex;align-items:center;gap:14px;line-height:1.4}.brand strong{display:block;font-size:20px;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:2px solid #12634e;border-radius:50%;color:#12634e;font-size:24px}.brand-subtitle{font-size:13px;color:var(--muted)}.account-bar{display:flex;align-items:center;gap:18px;font-size:14px}.container{max-width:1168px;margin:auto;padding:36px 24px 56px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,4vw,38px);line-height:1.3;letter-spacing:-.02em;margin-bottom:12px}h2{font-size:20px;line-height:1.4;margin-bottom:18px}h3{font-size:17px;line-height:1.4}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.17em;color:#12634e;margin-bottom:12px}.muted{color:var(--muted)}.small{font-size:13px}.intro{color:var(--muted);font-size:17px;max-width:570px}.login-panel{max-width:640px;margin:24px auto}.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:26px;margin-bottom:24px;box-shadow:0 2px 8px #132c2b05}.login-card{margin-top:30px;max-width:460px}.login-card label,.code-form label{display:block;font-weight:650;font-size:14px;margin:16px 0 7px}input{border:1px solid #92a7a0;border-radius:7px;background:#fff;color:var(--ink);padding:11px 13px;min-height:46px;width:100%;min-width:0}input::placeholder{color:#667570}.button{border:1px solid transparent;border-radius:7px;min-height:43px;padding:9px 17px;font-weight:650;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.5}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:#0b4e3d}.secondary{background:#fff;color:#174f40;border-color:#a9bdb4}.secondary:hover:not(:disabled){background:#eef5f0}.danger{background:#fff;border-color:#c49c96;color:#8b2c22}.login-card>.button{width:100%;margin:22px 0 16px}.login-card>p:last-child{margin-bottom:0}.notice{background:#e8f0e8;border-left:4px solid #35775e;border-radius:5px;padding:14px 18px;color:#284c3e;font-size:14px;margin-bottom:24px}.error{background:#fff0ed;border:1px solid #d6a59e;border-radius:7px;padding:12px 15px;color:#8c241d;overflow-wrap:anywhere}.page-heading,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.page-heading{margin-bottom:20px}.page-heading p:last-child{margin-bottom:0}.section-heading h2{margin-bottom:0}.section-heading{margin-bottom:20px}.search-form{display:flex;gap:12px;max-width:630px;margin-bottom:15px}.search-form>.button{flex-shrink:0}.session-list{border-top:1px solid var(--border);margin-top:20px}.session-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:1px solid var(--border)}.session-main{min-width:0}.session-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.session-title h3{margin:0;overflow-wrap:anywhere}.session-meta{font-size:14px;color:var(--muted);margin:0}.session-id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;color:#52645d;overflow-wrap:anywhere;margin:5px 0 0}.session-action{flex-shrink:0}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:4px;font-size:12px;font-weight:700;white-space:nowrap;background:#eaf0ee;color:#33584a}.badge.accepted,.badge.validated{background:#dff1e7;color:#185b35}.badge.partial,.badge.validating,.badge.uploading{background:#fff0d3;color:#775014}.badge.failed,.badge.rejected{background:#fae5df;color:#8b3025}.badge.test{background:#e8ecf6;color:#354b7a}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.empty-state{padding:35px 14px;text-align:center;color:var(--muted)}.empty-state strong{display:block;color:var(--ink);font-size:17px;margin-bottom:8px}.code-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px 14px;max-width:740px;margin:22px 0}.code-form label{grid-column:1/-1;margin:0}.code-result{padding:18px;background:#edf5ef;border:1px solid #bdd4c6;border-radius:8px;max-width:740px;margin-bottom:24px}.code-result p{margin-bottom:6px}.code-result code{display:block;font-size:20px;font-weight:750;letter-spacing:.03em;overflow-wrap:anywhere;user-select:all;margin:8px 0}.device-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 0;border-top:1px solid var(--border)}.device-row p{margin:3px 0}.device-row>div{min-width:0}.device-row .button{flex-shrink:0}.page-footer{font-size:13px;color:var(--muted);padding:0 4px}dialog{width:min(850px,calc(100vw - 32px));max-height:90vh;padding:0;border:1px solid #a9bdb4;border-radius:14px;color:var(--ink);background:#fff;box-shadow:0 18px 80px #102b2a30}dialog::backdrop{background:#102b2a80}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff;z-index:1}.dialog-header h2{margin:0}.detail-content{padding:24px}.detail-grid{display:grid;grid-template-columns:90px 1fr;gap:7px 16px;font-size:14px;margin:20px 0}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0;overflow-wrap:anywhere}.detail-links{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.asset-row{padding:18px 0;border-top:1px solid var(--border)}.asset-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.asset-heading h3{margin:0;overflow-wrap:anywhere;min-width:0}.asset-row p{font-size:13px;color:var(--muted);margin:8px 0}.hash{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px!important;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-70px;left:12px;background:#fff;padding:10px;z-index:10}.skip-link:focus{top:12px}@media(max-width:640px){.site-header{padding:16px;flex-wrap:wrap;gap:14px}.account-bar{width:100%;justify-content:space-between}.container{padding:24px 16px 40px}.card{padding:19px}.page-heading{align-items:flex-start}.page-heading>.button{white-space:nowrap}.section-heading{align-items:flex-start;flex-wrap:wrap}.session-row{align-items:flex-start;flex-direction:column;gap:12px}.session-action{align-self:flex-end}.code-form{grid-template-columns:1fr}.code-form label{grid-column:auto}.device-row{flex-wrap:wrap}.device-row>.button{margin-left:auto}.dialog-header,.detail-content{padding:18px}.asset-heading{align-items:flex-start;flex-wrap:wrap}.pagination{font-size:12px}.pagination .button{padding:8px 12px}.login-panel{margin:8px auto}}
