:root{font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1c2631;background:#f5f7fa;color-scheme:light;--line:#e5e9ef;--muted:#647181;--green:#7ec458;--blue:#1768d4}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:1px solid #d9dfe7;background:white;padding:.55rem .9rem;border-radius:9px;color:#28364a;cursor:pointer;transition:background .12s,transform .12s}button:active{transform:scale(.97)}button:hover{background:#edf2f8}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #93bdf7;outline-offset:2px}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:#0a56b9}.hidden{display:none!important}.muted{color:var(--muted);font-size:.875rem}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2rem;border-bottom:1px solid var(--line);background:#ffffffed;position:sticky;top:0;z-index:2;backdrop-filter:blur(18px)}.brand,nav{display:flex;align-items:center;gap:1rem}.divider{color:#acb6c2}nav button{font-size:.875rem}.app-mark{display:grid;place-items:center;background:#1768d4;color:white;width:56px;height:56px;border-radius:16px;font-size:40px;line-height:1}.app-mark.small{width:32px;height:32px;border-radius:10px;font-size:27px}.workspace{max-width:1600px;margin:auto;padding:1.25rem 2rem}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}h1{font-size:1.85rem;letter-spacing:-.035em;margin:0 0 .35rem}h2{font-size:1rem;margin:0}p{margin:.5rem 0 1rem}.live{font-size:.875rem;color:#356946;background:#e9f4eb;padding:.35rem .65rem;border-radius:20px}.toolbar{display:flex;gap:.8rem;align-items:end;margin-bottom:1rem;flex-wrap:wrap}label{display:grid;gap:.35rem;font-size:.875rem}input,select,textarea{min-height:42px;padding:.5rem .7rem;background:white;color:inherit;border:1px solid #d4dce5;border-radius:8px;max-width:100%}.toolbar select{min-width:165px}.panel{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.chart-panel{padding:1.2rem 1.2rem .8rem;margin-bottom:1.3rem}.chart-layout{display:flex;margin-top:.4rem;height:120px;gap:.6rem}#y-axis{width:32px;flex:0 0 32px;display:flex;flex-direction:column;justify-content:space-between;font-size:.75rem;color:var(--muted);text-align:right}.chart{flex:1;display:flex;align-items:end;gap:3px;border-bottom:1px solid #dce2ea;background:repeating-linear-gradient(to top,transparent 0,transparent 47px,#edf0f4 48px);min-width:0}.bar{position:relative;flex:1;min-width:0;border:none;border-radius:1px 1px 0 0;padding:0;background:var(--green);height:2px;transition:background .1s}.bar:hover,.bar.selected{background:#438f2c;transform:none}.bar.zero{background:#e2eadc}.bar:focus-visible{z-index:1}.axis{position:relative;height:32px;margin-left:calc(32px + .6rem);font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.axis-tick{position:absolute;top:0;width:0}.axis-tick::before{content:"";position:absolute;top:0;height:5px;border-left:1px solid #c6ced9}.axis-label{display:block;position:absolute;top:8px;white-space:nowrap}.chart-hint{margin:.8rem 0 0 38px;font-size:.875rem;line-height:1.6}.section-heading{padding:1rem 1.3rem;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.log-head,.log-row{display:grid;grid-template-columns:220px minmax(0,1fr) 180px;gap:1.5rem;padding:1rem 1.3rem}.log-head{background:#f9fafc;color:var(--muted);font-size:.8rem;padding-top:.6rem;padding-bottom:.6rem}.log-row{border-top:1px solid #edf0f4;font-size:.95rem}.log-row time{font-variant-numeric:tabular-nums;display:block;font-size:.85rem}.device-name{font-size:.8rem;color:var(--muted);margin-top:.3rem}.transcript{line-height:1.75;overflow-wrap:anywhere;white-space:pre-wrap}.status{display:inline-block;font-size:.75rem;border-radius:5px;padding:.15rem .4rem;background:#eef1f5;color:#667286}.status.done{background:#eaf5e8;color:#3c742b}.status.failed{background:#fff0ed;color:#b43c25}.status.processing{background:#eaf2ff;color:#2064b0}audio{display:block;width:100%;height:30px;margin-top:.7rem}.empty{padding:3rem;text-align:center;color:var(--muted)}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;border-top:1px solid var(--line);font-size:.875rem}footer{text-align:center;font-size:.8rem;color:var(--muted);padding:1.5rem}.error{background:#fff0ed;color:#b43c25;padding:1rem;border-radius:10px;margin-bottom:1rem}.login{min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.login-card{width:360px;max-width:100%;padding:2rem;background:white;border:1px solid var(--line);border-radius:20px;display:grid;gap:1rem;box-shadow:0 12px 48px #2030400a}.login-card h1{margin:0}.login-card p{margin:0}#login-error,#device-error{color:#b43c25;font-size:.875rem}dialog{width:650px;max-width:calc(100% - 2rem);border:1px solid var(--line);border-radius:18px;padding:1.5rem;box-shadow:0 24px 100px #14213233;max-height:85dvh}dialog::backdrop{background:#14213255;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.device-form{display:grid;grid-template-columns:1fr 130px auto;gap:.7rem;align-items:end}#pair-result{background:#f0f5fc;border-radius:10px;padding:1rem;margin:1rem 0}#pair-code{font-size:2rem;letter-spacing:.15em;font-variant-numeric:tabular-nums}.device-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--line);padding:.9rem 0}.device-row:first-child{margin-top:1rem}.device-row small{display:block;color:var(--muted)}@media(max-width:720px){header{padding:.8rem 1rem}.brand .divider,.brand>span:last-child{display:none}nav{gap:.4rem}.workspace{padding:1.2rem .8rem}.page-heading{align-items:start}h1{font-size:1.5rem}.live{font-size:.75rem}.log-head{display:none}.log-row{grid-template-columns:1fr;gap:.6rem}.log-row>div:last-child{display:flex;gap:1rem;align-items:center}audio{width:220px;margin:0}.device-form{grid-template-columns:1fr}.axis{font-size:.7rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(prefers-reduced-transparency:reduce){header{background:white;backdrop-filter:none}}
.chart-wrap{position:relative;flex:1;min-width:0;height:100%}.chart-wrap .chart{height:100%}.selection-overlay{position:absolute;inset:0;pointer-events:none}.shade{position:absolute;top:0;bottom:0;background:#1c293c22;pointer-events:none}.selection-range{position:absolute;top:0;bottom:0;border-top:2px solid #3478db;background:#3478db0b;cursor:grab;pointer-events:auto;touch-action:none}.selection-range:active{cursor:grabbing}.time-handle{position:absolute;top:-5px;bottom:-5px;width:20px;padding:0;border:none;background:transparent;border-radius:0;transform:translateX(-50%);cursor:ew-resize;pointer-events:auto;touch-action:none;z-index:1}.time-handle::before{content:"";position:absolute;top:0;bottom:0;left:9px;width:2px;background:#1768d4;box-shadow:0 0 0 1px #ffffff90}.time-handle::after{content:"";position:absolute;width:10px;height:20px;left:5px;top:-5px;border-radius:3px;background:#1768d4;border:2px solid white}.time-handle:hover,.time-handle:active{background:#1768d40a;transform:translateX(-50%)}.time-handle:focus-visible{outline:2px solid #1768d4;outline-offset:2px}.chart-panel.dragging{user-select:none}

.speaker-turn{display:flex;align-items:baseline;gap:10px;padding:5px 0}.speaker-label{flex:none;font-size:12px;font-weight:600;color:#6e6e73;background:#f2f2f7;border-radius:6px;padding:2px 7px}.speaker-turn.is-me .speaker-label{color:#166534;background:#dcfce7}.speaker-turn.is-me{color:#154b2d}.voiceprint-range{display:flex;align-items:end;gap:12px;margin:16px 0}.voiceprint-range label{flex:1;min-width:0}.voiceprint-range input{width:100%}.check-label{display:flex;align-items:center;gap:8px;margin:16px 0}.check-label input{width:auto}#voiceprint-audio{width:100%}#voiceprint-source{white-space:pre-wrap;line-height:1.6}#voiceprint-error{color:#b42318}.log-row button{margin-top:8px}#voiceprint-dialog{width:580px;max-width:calc(100vw - 2rem)}@media(max-width:600px){.voiceprint-range{flex-wrap:wrap}.toolbar{flex-wrap:wrap}header nav{display:flex;flex-wrap:wrap;gap:4px}}

@media(max-width:600px){header{flex-wrap:wrap;gap:.5rem}.brand{white-space:nowrap}header nav{margin-left:auto}.log-row>div:last-child{flex-wrap:wrap}.device-row{flex-wrap:wrap}}

.usage-panel{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.3rem;margin-bottom:1rem}.usage-panel p{margin:.3rem 0;font-variant-numeric:tabular-nums}.usage-panel small{display:block}.usage-panel button{flex:none}.usage-entry{padding:.9rem 0;border-bottom:1px solid var(--line)}.usage-entry p{margin:.3rem 0;font-variant-numeric:tabular-nums}#usage-error{color:#b43c25}.status.quota_wait{background:#fff6dd;color:#805c00}@media(max-width:600px){.usage-panel{align-items:start;flex-direction:column}}
.usage-entry small{display:block;margin-top:.2rem;overflow-wrap:anywhere}

#privacy-dialog{max-width:640px}#privacy-dialog p{line-height:1.65}#privacy-dialog hr{border:0;border-top:1px solid var(--border,#ddd);margin:24px 0}.danger{color:#b42318}#privacy-form .check-label{align-items:flex-start;margin:16px 0}#delete-account-form{display:grid;gap:14px;margin-top:16px}

/* 时间输入和展开面板组成一个控件；查询快照的 tooltip 与候选预览独立。 */
.time-filter{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;font-size:.875rem;min-width:0;flex:0 1 440px}
#range-button,.range-input-row{display:flex;align-items:center;gap:8px;min-height:24px;text-align:left;border:1px solid #dce2e9;border-radius:6px;background:white}
#range-button{width:100%;min-width:0;max-width:100%;overflow:hidden;height:42px;font-size:14px;line-height:21px;padding:8px 11px;border-radius:8px;border-color:#dce2e9;box-shadow:0 1px 2px #14213205}
#range-button:active{transform:none}#range-caption,.range-tag{flex:none;background:#f0f3f6;color:#5d6979;padding:0 7px;border-radius:5px;font-weight:500;white-space:nowrap}
#range-value{flex:1;min-width:0;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
#range-popover,#range-tooltip{position:fixed;inset:auto;margin:0;border:1px solid #e1e6ed;border-radius:12px;background:#fff;color:#283447;box-shadow:0 12px 32px #172b4d14,0 2px 6px #172b4d0a}
#range-popover{width:456px;max-width:calc(100vw - 16px);padding:7px 7px 0;font-size:12px;line-height:20px;overflow:auto}
#range-popover::backdrop{background:transparent}
#range-tooltip{border-radius:8px;padding:8px 16px;font-size:12px;font-variant-numeric:tabular-nums;max-width:calc(100vw - 16px);pointer-events:none}
.range-input-row{border-color:#dce2e9;background:#f8fafc;box-shadow:none;height:42px;padding:0 11px;gap:8px;font-size:14px;line-height:21px;font-weight:500}
#range-input{border:0;outline:none;box-shadow:none;min-width:0;flex:1;min-height:28px;height:28px;padding:0;font-size:inherit;line-height:inherit;font-weight:inherit;font-variant-numeric:tabular-nums;border-radius:6px;background:transparent;}
#range-input[aria-invalid=true]{color:#b42318}
#range-close{height:22px;line-height:20px;padding:0;border:0;background:transparent;color:#748094;border-radius:4px;font-size:18px}
.range-heading{display:flex;align-items:center;gap:12px;padding:14px 9px 4px}.range-heading h2{font-size:13px;line-height:22px;font-weight:600;letter-spacing:-.01em}
.range-link{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#64748b;padding:0;border-radius:4px;font-size:12px;line-height:22px}.range-link:hover{background:transparent;color:#253449;text-decoration:none}#range-calendar-open{margin-left:auto}
.range-options{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 9px 8px;color:#6c788a;font-size:12px;line-height:20px}
#range-preview{font-size:14px;font-variant-numeric:tabular-nums;min-height:20px}
.range-presets{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,32px);align-items:center;gap:8px;padding:4px 9px 16px}
.range-presets button{grid-column:span 3;border:1px solid #e8edf3;border-radius:7px;background:#f8fafc;height:32px;line-height:30px;padding:0 2px;font-size:12px}.range-presets button:nth-child(n+5){grid-column:span 4}.range-presets button:hover{background:#f1f4f8;color:#253449}.range-presets button[aria-pressed=true]{background:#2d3e55;border-color:#2d3e55;color:#fff;font-weight:500;box-shadow:0 1px 2px #172b4d14}
.range-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;border-top:1px solid #edf0f4;height:49px;padding:8px 9px}
#range-enter{font-size:.8rem;color:var(--muted)}.range-footer button{height:32px;line-height:26px;font-size:12px;border-radius:6px;padding:1px 12px}.range-footer .primary{background:#2d3e55;border-color:#2d3e55;box-shadow:0 1px 2px #172b4d14}.range-footer .primary:hover{background:#1e2d42;border-color:#1e2d42}.range-footer button:disabled{background:#f2f4f7;color:#98a2b3;border-color:#f2f4f7;box-shadow:none;opacity:1}
#range-error{color:#b42318;font-size:.8rem;margin:0;padding:0 16px}#range-error:not(:empty){padding-bottom:10px}
.range-date-fields{height:42px;display:flex;align-items:center;gap:8px;border:1px solid #aabbd1;border-radius:8px;padding:0 11px;background:#f8fafc;box-shadow:0 0 0 3px #eaf0f8}.range-date-fields input{min-width:0;width:50%;border:0;outline:none;border-radius:5px;font-size:14px;font-weight:500;line-height:21px;padding:2px;min-height:28px;height:28px;font-variant-numeric:tabular-nums;background:transparent}.range-date-fields input.active{background:#e8eef6;color:#253449;box-shadow:none}.range-date-fields>span{color:#9ba6b6}
.range-calendar-body{display:flex;margin:0 9px 12px;gap:12px}.range-calendar-days{flex:1;min-width:0}.range-month-nav{display:flex;align-items:center;justify-content:space-between;gap:2px;height:28px}.range-month-nav button{border:0;padding:0 5px;height:24px;line-height:24px;border-radius:5px;color:#64748b}.range-month-nav select{min-width:0;min-height:24px;height:24px;border:0;padding:0 2px;font-size:12px;font-weight:500;background:transparent}
.range-weekdays,.range-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:12px}.range-weekdays span{height:24px;line-height:24px;padding:0;color:#8b97a7}.range-day-grid button{border:0;background:transparent;padding:0;border-radius:5px;font-size:12px;height:24px;min-height:24px;line-height:24px}.range-day-grid button.outside{color:#aab3c0}.range-day-grid button.other-end{box-shadow:inset 0 0 0 1px #aabbd1}.range-day-grid button.today{color:#33465f;font-weight:600}.range-day-grid button:hover{background:#e8eef6}.range-day-grid button.chosen,#calendar-times button.chosen{background:#2d3e55;color:white}.range-day-grid button:disabled{opacity:.3}
.range-clock{width:96px;flex:none;text-align:center;border-left:1px solid #edf0f4;padding-left:8px;font-variant-numeric:tabular-nums}#calendar-clock{height:28px;line-height:28px;font-size:12px;font-weight:500;color:#64748b}#calendar-times{display:flex;height:168px;gap:2px}.range-time-column{flex:1;overflow:auto;scrollbar-width:none}.range-time-column button{display:block;width:100%;height:24px;line-height:24px;border:0;border-radius:4px;padding:0;font-size:12px}
@media(max-width:720px){.time-filter{width:100%;flex-basis:100%}#range-button,.range-input-row{font-size:.8rem}#range-popover{width:456px}.range-input-row{gap:8px;padding:0 11px}.range-heading{padding:14px 9px 4px}.range-options{padding:0 8px 10px;flex-wrap:wrap;font-size:.75rem}.range-presets{padding:4px 9px 16px;gap:8px}.range-presets button{font-size:12px;padding:0}.range-calendar-body{margin:0 4px 12px;gap:8px}.range-clock{width:96px}.range-month-nav button{padding:2px}.range-month-nav select{font-size:.75rem}.range-date-fields{gap:4px}.range-date-fields input{font-size:.8rem}.range-day-grid button{font-size:.75rem}.range-tag,#range-caption{padding:0 4px;font-size:.8rem}}


/* 高频筛选保持即时打开，只用轻微色彩反馈，不改变几何尺寸。 */
.range-input-row:focus-within{border-color:#aabbd1;border-radius:8px;box-shadow:0 0 0 3px #eaf0f8}
#range-button:hover{background:#fbfcfe;border-color:#b9c6d8}
#range-popover button{transition:background-color 120ms ease,color 120ms ease,box-shadow 120ms ease}
#range-popover button:focus-visible,#range-popover input:focus-visible,#range-popover select:focus-visible{outline:2px solid #9aacc4;outline-offset:1px}
#range-popover #range-input:focus-visible,#range-popover .range-date-fields input:focus-visible{outline:none;box-shadow:none}
#range-input::selection{background:#dce8f7;color:#283447}
#range-popover button:active{transform:none}
