:root{--bg: #f7f8fa;--surface: #ffffff;--surface-2: #f1f3f6;--border: #e2e5ea;--text: #16181d;--text-dim: #666d7a;--accent: #2563eb;--accent-soft: #e8efff;--danger: #dc2626;--ok: #16a34a;--warn: #ca8a04;--radius: 10px;--shadow: 0 1px 3px rgb(0 0 0 / 8%), 0 8px 24px rgb(0 0 0 / 4%)}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1f232c;--border: #2a2f3a;--text: #e8eaed;--text-dim: #9aa2b1;--accent: #5b8cff;--accent-soft: #1c2740;--shadow: 0 1px 3px rgb(0 0 0 / 40%), 0 8px 24px rgb(0 0 0 / 25%)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.55;overflow-x:hidden;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 14px;border-radius:8px;transition:background .12s,border-color .12s;touch-action:manipulation}@media(hover:hover){button:hover:not(:disabled){background:var(--surface-2)}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.ghost:hover:not(:disabled){background:var(--surface-2)}}button:active:not(:disabled){background:var(--surface-2)}button.primary:active:not(:disabled){background:var(--accent);filter:brightness(.92)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}button.ghost{border-color:transparent;background:transparent}input,textarea,select{font:inherit;width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}textarea{resize:vertical;min-height:90px}label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px;font-weight:500}.field{margin-bottom:14px}a{color:var(--accent);text-decoration:none}.app-header{display:flex;align-items:center;gap:16px;padding:14px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.app-header h1{font-size:17px;margin:0;letter-spacing:-.2px}.app-header .spacer{flex:1}.container{max-width:1240px;margin:0 auto;padding:24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:34px;text-align:center;color:var(--text-dim);background:var(--surface);transition:border-color .15s,background .15s;cursor:pointer}.dropzone.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.drop-hint-touch{display:none}@media(pointer:coarse){.drop-hint-mouse{display:none}.drop-hint-touch{display:block}}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);padding:10px 14px;border-bottom:1px solid var(--border);font-weight:600}td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}@media(hover:hover){tbody tr:hover{background:var(--surface-2)}}.recordings td.actions{text-align:right;white-space:nowrap}.recordings td.title a{overflow-wrap:anywhere}.recordings .filename,.recordings .rec-speakers{font-size:12px;color:var(--text-dim);overflow-wrap:anywhere}.summary-toggle{display:block;border:none;background:transparent;padding:2px 0;margin-top:3px;font:inherit;font-size:12px;color:var(--accent)}@media(hover:hover){.summary-toggle:hover:not(:disabled){background:transparent;text-decoration:underline}}.recordings tr.expanded>td{border-bottom:none}.recordings tr.summary-row>td{padding-top:0;background:var(--surface-2)}.recordings tr.summary-row p{font-size:13px}.recordings tr.summary-row>td>:last-child{margin-bottom:0}.summary-loading{font-size:13px;color:var(--text-dim)}.worker-offline{font-size:12px;color:var(--text-dim);margin-top:8px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);white-space:nowrap}.badge.completed{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}.badge.failed{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.badge.processing{background:var(--accent-soft);color:var(--accent)}.badge.queued{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.progress-track{height:5px;background:var(--surface-2);border-radius:999px;overflow:hidden;min-width:90px}.progress-fill{height:100%;background:var(--accent);transition:width .35s ease}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--surface);border-radius:14px;padding:22px;width:100%;max-width:520px;box-shadow:var(--shadow);max-height:90vh;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal h2{margin:0 0 16px;font-size:17px}.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:20px}.checkbox-row{display:flex;align-items:flex-start;gap:9px;margin-bottom:14px}.checkbox-row input{width:auto;margin-top:3px}.checkbox-row label{margin:0;color:var(--text);font-size:14px;font-weight:400}.checkbox-row .hint{font-size:12px;color:var(--text-dim)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;padding:18px 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(18px,env(safe-area-inset-bottom));align-items:start}@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr)}}.player-card{padding:14px 16px;margin-bottom:16px}.player-controls{display:flex;align-items:center;gap:12px;margin-top:11px;flex-wrap:wrap}.player-transport{display:flex;align-items:center;gap:10px;min-width:0}.player-options{display:flex;align-items:center;gap:10px;margin-left:auto}.player-transport .play{min-width:92px}.player-controls button{white-space:nowrap}.time-display{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:13px}.transcript-scroll{height:calc(100vh - 300px);height:calc(100dvh - 300px);min-height:320px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px}.segment{padding:9px 12px;border-radius:8px;border-left:3px solid transparent;cursor:text}.segment.active{background:var(--accent-soft);border-left-color:var(--accent)}.segment-head{display:flex;align-items:center;gap:9px;margin-bottom:3px;font-size:11px;font-variant-numeric:tabular-nums}.segment-time{color:var(--text-dim);cursor:pointer}.speaker-tag{font-weight:700;font-size:11px}.edited-mark{font-size:10px;color:var(--warn)}.segment-edit{margin-left:auto;flex-shrink:0;font-size:12px;line-height:1;padding:4px 9px;min-height:0;color:var(--text-dim);opacity:.45}.word{cursor:pointer;border-radius:3px;padding:0 1px}.word.spoken{color:var(--text)}.word.active{background:var(--accent);color:#fff}@media(hover:hover){.segment:hover{background:var(--surface-2)}.segment-time:hover{color:var(--accent)}.segment:hover .segment-edit{opacity:1}.word:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}}.segment-editor{width:100%}.editor-actions{display:flex;gap:7px;margin-top:7px}.speaker-list{display:flex;flex-direction:column;gap:8px}.speaker-row{display:flex;align-items:center;gap:8px}.speaker-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}.export-row{display:flex;flex-wrap:wrap;gap:7px}.export-row a{padding:6px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text)}@media(hover:hover){.export-row a:hover{background:var(--surface-2)}}.panel{padding:16px;margin-bottom:16px}.panel h3{margin:0 0 13px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}.empty{text-align:center;padding:44px 20px;color:var(--text-dim)}.error-box{background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger);padding:11px 14px;border-radius:8px;margin-bottom:14px;font-size:13px}.warning-box{background:color-mix(in srgb,var(--warn) 12%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn);padding:11px 14px;border-radius:8px;margin-bottom:14px;font-size:13px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.search-results{max-height:380px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.search-hit{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;overflow-wrap:anywhere}@media(hover:hover){.search-hit:hover{background:var(--surface-2)}}.search-hit .meta{font-size:11px;color:var(--text-dim);margin-bottom:2px}mark{background:color-mix(in srgb,var(--accent) 35%,transparent);color:inherit;border-radius:2px}.variant-switch{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.variant-switch button{border:none;border-radius:0;padding:5px 11px;font-size:12px;background:transparent}.variant-switch button+button{border-left:1px solid var(--border)}.variant-switch button.active{background:var(--accent);color:#fff}.variant-switch button.active:hover{background:var(--accent)}.date-source{font-size:11px;color:var(--text-dim);margin-top:4px}.date-source.guess{color:var(--warn)}.summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.summary-head h3{margin:0 0 13px}.summary-panel h4{margin:0 0 7px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-dim)}.summary-panel ul{margin:0 0 14px;padding-left:18px}.summary-panel li{margin-bottom:5px;line-height:1.55}.summary-body,.summary-raw{margin:0 0 14px;line-height:1.6}.summary-raw{white-space:pre-wrap}.summary-empty{margin:0;color:var(--text-dim);font-size:13px;line-height:1.55}.summary-meta{font-size:11px;color:var(--text-dim)}.timecode{border:none;background:transparent;padding:0 1px;margin:0;font:inherit;font-variant-numeric:tabular-nums;font-size:.9em;color:var(--accent);cursor:pointer;border-radius:3px}.timecode:before{content:"["}.timecode:after{content:"]"}@media(hover:hover){.timecode:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}}@media(pointer:coarse){button{min-height:44px;padding:10px 16px}input,textarea,select{font-size:16px;min-height:44px}textarea{min-height:96px}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0}.export-row a{padding:11px 18px}.segment-edit{opacity:1;min-height:32px;padding:6px 11px}.variant-switch button{min-height:38px}.segment-time{padding:4px 2px;margin:-4px -2px}.summary-toggle{min-height:0;padding:6px 0;margin:-3px 0 0}.timecode{min-height:0}}@media(max-width:720px){body{font-size:15px}.app-header{gap:10px;padding-top:10px;padding-bottom:10px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.app-header h1{font-size:16px}.container{padding-top:14px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(28px,env(safe-area-inset-bottom))}.workspace{gap:12px;padding-top:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom))}.toolbar input{flex:1 1 100%}.toolbar>button{width:100%}.recordings thead{display:none}.recordings,.recordings tbody,.recordings tr,.recordings td{display:block}.recordings tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:13px 14px;border-bottom:1px solid var(--border)}.recordings tr:last-child{border-bottom:none}.recordings td{padding:0;border:none}.recordings td.title,.recordings td.status,.recordings td.actions{grid-column:1 / -1}.recordings td.date,.recordings td.duration{font-size:13px;color:var(--text-dim)}.recordings td.duration{text-align:right}.recordings td.actions{display:flex;gap:8px;margin-top:6px;text-align:left}.recordings td.actions>*{flex:1}.recordings td.actions button{width:100%;border-color:var(--border)}.recordings tr.expanded{border-bottom:none;padding-bottom:8px}.recordings tr.summary-row{display:block;padding-top:0;background:var(--surface-2)}.recordings tr.summary-row>td{padding:0;background:transparent}.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:none;max-height:92dvh;border-radius:16px 16px 0 0;padding:18px 16px;padding-bottom:max(18px,env(safe-area-inset-bottom))}.modal-actions{flex-direction:column-reverse;gap:8px}.modal-actions button{width:100%}.dropzone{padding:24px 16px}.player-card{padding:12px}.player-transport{width:100%}.player-transport .play{flex:1}.player-controls>.time-display{order:2}.player-options{order:3;margin-left:auto}.transcript-scroll{height:calc(100dvh - 400px);min-height:240px;padding:2px;overscroll-behavior:auto}.segment{padding:9px 8px}.panel{padding:14px;margin-bottom:12px}.export-row a{flex:1 1 calc(50% - 4px);text-align:center}.empty{padding:32px 16px}}@media(max-width:420px){.app-header>.badge{display:none}}@media(max-height:480px)and (orientation:landscape){.app-header{position:static;padding-top:8px;padding-bottom:8px}.container,.workspace{padding-top:10px}.player-card{padding:10px 12px;margin-bottom:10px}.transcript-scroll{height:calc(100dvh - 290px);min-height:200px}.modal{max-height:96dvh;padding:16px}}.auth-page{display:flex;justify-content:center;align-items:flex-start;padding:48px 16px calc(48px + env(safe-area-inset-bottom))}.auth-card{width:100%;max-width:400px;padding:24px;display:flex;flex-direction:column;gap:14px}.auth-card-wide{max-width:520px}.auth-card h2{margin:0;font-size:20px}.auth-card p{margin:0;font-size:14px;color:var(--text-dim);line-height:1.55}.auth-card .field{margin:0}.auth-card button{width:100%}.auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}.auth-checking{padding:64px 16px;text-align:center;color:var(--text-dim);font-size:14px}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--border);font-size:14px;font-weight:500;text-decoration:none;color:var(--text)}.button-link.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button-link.ghost{background:var(--surface)}.totp-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;letter-spacing:.35em;text-align:center}.qr{align-self:center;width:200px;height:200px;background:#fff;padding:8px;border-radius:var(--radius)}.qr-manual summary{font-size:13px;color:var(--text-dim);cursor:pointer}.totp-secret{display:block;margin-top:6px;padding:8px;background:var(--surface-2);border-radius:6px;font-size:13px;word-break:break-all}.recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0;padding:14px;list-style:none;background:var(--surface-2);border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;-webkit-user-select:all;user-select:all}.user-menu{display:flex;align-items:center;gap:10px}.user-email{font-size:13px;color:var(--text-dim);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.space-switch{flex-wrap:wrap}.space-switch button{display:inline-flex;align-items:center;gap:6px}.space-count{font-size:11px;padding:1px 5px;border-radius:999px;background:var(--surface);color:var(--text-dim)}.space-badge{margin-top:4px}.space-current{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.space-current .hint{flex-basis:100%}.admin-table code{font-size:12px}.admin-table .actions{white-space:normal}.admin-table .actions button{margin:2px 2px 2px 0}.admin-table .badge{margin-left:6px}.admin-table .hint{margin-top:2px}@media(max-width:720px){.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block}.admin-table tr{padding:12px 14px;border-bottom:1px solid var(--border)}.admin-table td{padding:2px 0;border:none}.admin-table .actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.auth-page{padding-top:24px}.recovery-codes{grid-template-columns:1fr}}.toolbar.filters{margin-bottom:12px}.sort-select{display:none}.sort-select span{font-size:12px;color:var(--text-dim);white-space:nowrap}.sort-select select{width:auto}.th-sort{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;border:none;background:transparent;padding:0;display:inline-flex;align-items:center;gap:5px}.th-sort.active{color:var(--accent)}.th-arrow{font-size:9px;opacity:.45}.th-sort.active .th-arrow{opacity:1}.tag-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:16px}.tag-chips{display:flex;flex-wrap:wrap;gap:5px}.row-tags{margin-top:4px}.tag-chip{border:1px solid transparent;background:var(--accent-soft);color:var(--accent);padding:3px 9px}button.tag-chip{cursor:pointer;font-size:11px;font-weight:600}button.tag-chip.active{background:var(--accent);color:#fff}button.tag-chip.active .space-count{background:color-mix(in srgb,#fff 25%,transparent);color:#fff}.tag-chip.suggest{background:transparent;border-color:color-mix(in srgb,var(--accent) 35%,var(--border));border-style:dashed}.tag-remove{border:none;background:transparent;color:inherit;padding:0;margin-right:-2px;font-size:14px;line-height:1;opacity:.7}.tag-remove:hover{opacity:1;background:transparent}.tag-clear{border:none;background:transparent;color:var(--text-dim);font-size:12px;padding:3px 4px}.tag-input{display:flex;flex-direction:column;gap:7px}.tag-input input{font-size:13px}.tag-suggest{margin-top:10px}.tag-suggest .hint{font-size:11px;color:var(--text-dim);margin-bottom:5px}.important-flag{margin-right:5px;font-size:12px}.workspace-title{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.workspace-title h2{flex:1;min-width:0}.important-toggle{font-size:12px;padding:4px 10px;margin-top:6px;border-color:var(--border);color:var(--text-dim);white-space:nowrap}.important-toggle.active{background:color-mix(in srgb,var(--warn) 15%,transparent);border-color:color-mix(in srgb,var(--warn) 45%,var(--border));color:var(--warn)}.pager{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:14px}.pager button{font-size:13px;padding:5px 11px}.pager button.active{background:var(--accent);border-color:var(--accent);color:#fff}.pager-gap{color:var(--text-dim);padding:0 2px}.pager-total{margin-left:auto;font-size:12px;color:var(--text-dim)}@media(hover:hover){.th-sort:hover{color:var(--accent);background:transparent}.tag-clear:hover{color:var(--text);background:transparent}button.tag-chip:hover:not(.active){background:color-mix(in srgb,var(--accent) 22%,transparent)}.pager button.active:hover{background:var(--accent)}}@media(pointer:coarse){.th-sort{min-height:0;padding:0}button.tag-chip{min-height:0;padding:5px 11px}.tag-remove{min-height:0;padding:0 2px}.tag-clear{min-height:0}.important-toggle{min-height:34px}.pager button{min-height:38px}}@media(max-width:720px){.sort-select{display:flex;align-items:center;gap:8px;flex:1 1 100%}.sort-select select{flex:1}.toolbar.filters>*{width:auto}.variant-switch{flex:1 1 100%}.variant-switch button{flex:1;width:auto}.pager-total{flex-basis:100%;margin-left:0;text-align:right}}
