*, *::before, *::after { box-sizing: border-box; } :root { color-scheme: light; font-family: "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Arial", sans-serif; background: #f5f6fa; color: #1f2937; } body { margin: 0; background: radial-gradient(circle at top, #ffffff, #eef2ff 60%); min-height: 100vh; padding: 2.5rem clamp(1rem, 4vw, 4rem); } .app { max-width: 960px; margin: 0 auto; display: grid; gap: 2rem; } h1 { font-weight: 700; margin-bottom: 0.25rem; } p { margin: 0; color: #4b5563; line-height: 1.6; } .hero { display: grid; gap: 1.5rem; padding: 1.5rem; border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.85); box-shadow: 0 25px 60px rgba(15, 23, 42, 0.08); } .hero-meta { margin-top: 0.75rem; font-size: 0.95rem; color: #6b7280; } .audio-shell { background: rgba(15, 23, 42, 0.9); border-radius: 18px; padding: 1rem; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1); display: grid; gap: 0.75rem; } audio { width: 100%; filter: drop-shadow(0 5px 20px rgba(0, 0, 0, 0.3)); } #waveform { width: 100%; height: 140px; border-radius: 12px; background: rgba(255, 255, 255, 0.05); } .transcripts { display: grid; gap: 1.75rem; } .insights { display: grid; gap: 1rem; padding: 1.5rem; border-radius: 24px; background: rgba(255, 255, 255, 0.9); box-shadow: 0 30px 60px rgba(15, 23, 42, 0.08); border: 1px solid rgba(15, 23, 42, 0.08); } .section-subtitle { margin: 0; color: #6b7280; font-size: 0.95rem; } .insight-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; } .insight-card { padding: 1rem; border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px rgba(31, 41, 55, 0.08); display: grid; gap: 0.75rem; } .insight-card::before { content: ""; width: 32px; height: 4px; border-radius: 999px; background: var(--accent, #4070f4); display: block; } .metric-value { font-size: 1.75rem; font-weight: 700; color: #0f172a; } .metric-label { font-size: 0.85rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.04em; } .insight-meta { display: flex; justify-content: space-between; font-size: 0.85rem; color: #4b5563; } .transcripts-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: flex-end; } .search-group label { display: block; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.35rem; } .search-input { display: flex; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px rgba(31, 41, 55, 0.12); overflow: hidden; } .search-input input { flex: 1; padding: 0.75rem 1rem; border: none; font-size: 1rem; outline: none; min-width: 220px; } .search-input button { border: none; background: rgba(31, 41, 55, 0.08); padding: 0 1rem; cursor: pointer; font-weight: 600; color: #1f2937; transition: background 0.2s ease; } .search-input button:hover { background: rgba(31, 41, 55, 0.16); } .match-count { font-size: 0.9rem; color: #4b5563; } .model-legend { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; font-size: 0.9rem; color: #4b5563; } .model-legend span { display: inline-flex; align-items: center; gap: 0.4rem; } .model-legend i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; background: var(--accent, #1f2937); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5); } .comparison-table { background: #ffffff; border-radius: 20px; box-shadow: 0 20px 40px rgba(15, 23, 42, 0.07); border: 1px solid rgba(31, 41, 55, 0.08); overflow: hidden; } .comparison-header { display: grid; grid-template-columns: 80px repeat(5, 1fr); gap: 1px; background: rgba(15, 23, 42, 0.05); font-weight: 600; font-size: 0.9rem; position: sticky; top: 0; z-index: 10; } .time-column, .model-column { padding: 0.85rem 1rem; background: #ffffff; } .time-column { font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace; color: rgba(55, 65, 81, 0.9); } .model-column { color: var(--accent, #1f2937); text-align: left; border-left: 3px solid var(--accent); } .comparison-row { display: grid; grid-template-columns: 80px repeat(5, 1fr); gap: 1px; background: rgba(15, 23, 42, 0.03); transition: background 0.25s ease, transform 0.25s ease; } .comparison-row:hover { background: rgba(15, 23, 42, 0.06); } .time-cell, .transcript-cell { padding: 1rem; background: #ffffff; font-size: 0.9rem; line-height: 1.6; color: #1f2937; } .time-cell { font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace; font-size: 0.85rem; color: rgba(55, 65, 81, 0.9); font-weight: 500; display: flex; align-items: center; } .transcript-cell { border-left: 3px solid transparent; } .transcript-text { margin: 0; } .diff-token { display: inline-flex; align-items: center; background: rgba(255, 107, 107, 0.12); border-radius: 6px; padding: 0.05rem 0.35rem; margin: 0 0.15rem; font-weight: 600; color: #b91c1c; } .muted-text { color: #9ca3af; font-style: italic; } .insight-card h3 { margin: 0; font-size: 1rem; color: #1f2937; } .comparison-row.is-active { background: linear-gradient(90deg, rgba(64, 112, 244, 0.08), rgba(64, 112, 244, 0.03)); transform: scale(1.01); box-shadow: 0 4px 12px rgba(64, 112, 244, 0.12); } .comparison-row.is-active .transcript-cell { border-left-color: var(--accent); font-weight: 500; } .comparison-row.is-active .time-cell { color: #4070f4; font-weight: 700; } .error-text { color: #b91c1c; font-style: italic; } .comparison-row.is-hidden { display: none; } @media (min-width: 720px) { .hero { grid-template-columns: 1.1fr 0.9fr; align-items: center; } .comparison-table { max-height: 70vh; overflow-y: auto; scrollbar-width: thin; } .comparison-table::-webkit-scrollbar { width: 8px; } .comparison-table::-webkit-scrollbar-thumb { background: rgba(31, 41, 55, 0.25); border-radius: 999px; } } @media (max-width: 719px) { .comparison-header, .comparison-row { grid-template-columns: 60px repeat(5, minmax(120px, 1fr)); font-size: 0.85rem; } .time-cell, .transcript-cell { padding: 0.75rem 0.5rem; } .search-input input { min-width: 160px; } .comparison-table { overflow-x: auto; } }