:root { color-scheme: light; /* 湖蓝色主题 */ --page-bg: #e9f3ff; --card-bg: #ffffff; --text-color: #0b2239; --muted-text: #5a6b80; --border-color: #d0deef; --accent: #1f7ae0; --accent-dark: #165cae; --accent-grad-from: #6ec3ff; --accent-grad-to: #1f7ae0; --danger: #d64545; --speaker-1: #2e7dff; --speaker-2: #00a6a6; --speaker-3: #8e6cff; --speaker-4: #ff7a59; --speaker-5: #00b96b; --speaker-6: #c45bdf; font-family: "HarmonyOS Sans", "Inter", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; display: flex; justify-content: center; background: linear-gradient(180deg, rgba(110,195,255,0.25), rgba(31,122,224,0.12)), var(--page-bg); padding: 48px 16px 72px; color: var(--text-color); } main.card { width: min(1080px, 100%); background: var(--card-bg); border-radius: 20px; border: 1px solid rgba(18, 28, 60, 0.08); box-shadow: 0 12px 30px rgba(17, 37, 87, 0.12); padding: 40px; display: grid; gap: 32px; } header h1 { margin: 0 0 12px; font-size: clamp(1.8rem, 2vw + 1rem, 2.3rem); word-break: break-word; } header .lead { margin: 0; color: var(--muted-text); line-height: 1.7; } .alert { margin-top: 20px; padding: 18px; border-radius: 14px; line-height: 1.6; } .alert-warning { background: rgba(214, 69, 69, 0.08); border: 1px solid rgba(214, 69, 69, 0.24); color: var(--danger); } .section { border: 1px solid rgba(18, 28, 60, 0.08); border-radius: 18px; padding: 24px; display: grid; gap: 18px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.88)); } .section h2 { margin: 0; font-size: 1.2rem; color: #152040; } .field { display: grid; gap: 8px; color: var(--muted-text); font-size: 0.95rem; } .field > span { font-weight: 600; color: var(--text-color); } input[type="text"], input[type="number"], input[type="password"], textarea, select { width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--border-color); font-size: 0.98rem; background: rgba(255, 255, 255, 0.9); transition: border-color 0.2s ease, box-shadow 0.2s ease; } input[type="text"]:focus, input[type="number"]:focus, input[type="password"]:focus, textarea:focus, select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(38, 103, 255, 0.16); } input[type="file"] { padding: 10px 0; color: var(--muted-text); } .grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } .options-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; color: var(--text-color); } .options-grid label { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 12px; border: 1px solid rgba(38, 103, 255, 0.16); background: rgba(38, 103, 255, 0.05); font-weight: 600; } /* 工具栏样式 */ .toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 12px; } .select { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border-color); background: #fff; } .btn { padding: 10px 14px; border-radius: 10px; border: 1px solid rgba(18, 28, 60, 0.12); background: linear-gradient(180deg,#fff, #f4f6fb); color: #1c2746; font-weight: 600; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease, filter 0.2s ease; } .btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(17,37,87,0.14); filter: saturate(1.05); } .btn-secondary { background: linear-gradient(180deg,#edf0f7,#e6ebf7); } button[type="submit"] { padding: 16px; border-radius: 14px; border: none; background: linear-gradient(120deg, var(--accent-grad-from), var(--accent-grad-to)); color: #ffffff; font-size: 1.05rem; font-weight: 700; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.2s ease; } button[type="submit"]:hover { transform: translateY(-1px); box-shadow: 0 20px 40px rgba(40, 104, 255, 0.32); } button[type="submit"]:disabled { cursor: not-allowed; background: #9ba8d5; box-shadow: none; } textarea { min-height: 420px; max-height: 70vh; resize: vertical; font-family: "JetBrains Mono", "Fira Code", Consolas, monospace; line-height: 1.7; white-space: pre-wrap; } #transcriptOutput { font-size: 0.95rem; } .output .grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } /* 结构化视图样式 */ .structured-view { display: grid; gap: 16px; } .timeline { position: relative; height: 28px; border: 1px dashed var(--border-color); border-radius: 10px; background: linear-gradient(90deg, rgba(38,103,255,0.08) 0%, transparent 100%); } .timeline .tick { position: absolute; top: 0; height: 100%; width: 1px; background: rgba(28, 39, 86, 0.18); } .timeline .label { position: absolute; top: 50%; transform: translateY(-50%); font-size: 12px; color: var(--muted-text); } .timeline .tooltip { position: absolute; top: -36px; transform: translateX(-50%); padding: 6px 8px; border-radius: 8px; background: #1c2746; color: #ffffff; font-size: 12px; white-space: nowrap; box-shadow: 0 8px 20px rgba(17,37,87,0.24); pointer-events: none; opacity: 0; transition: opacity 0.15s ease; } .timeline:hover .tooltip { opacity: 1; } .channels { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; } .channel-column { border: 1px solid rgba(18,28,60,0.08); border-radius: 12px; padding: 12px; background: rgba(255,255,255,0.9); } .channel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; color: var(--muted-text); font-size: 0.95rem; } .speaker-group { margin-bottom: 12px; } .speaker-title { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--text-color); margin-bottom: 6px; } .speaker-avatar { width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #ffffff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #ffffff; box-shadow: 0 2px 6px rgba(17,37,87,0.18); } .segment-item { padding: 8px 10px; border-left: 3px solid var(--accent); background: rgba(38,103,255,0.06); border-radius: 10px; margin: 6px 0; } .segment-item.active { outline: 2px solid var(--accent); background: rgba(110,195,255,0.18); } .segment-meta { font-size: 12px; color: var(--muted-text); } .editable { outline: none; } .editable:focus { box-shadow: inset 0 0 0 2px rgba(31,122,224,0.25); background: rgba(110,195,255,0.12); } .highlight { background: rgba(214,69,69,0.18); border-radius: 6px; } pre { background: #0f172a; color: #f8fafc; padding: 16px; border-radius: 14px; min-height: 160px; max-height: 50vh; overflow: auto; font-size: 0.9rem; line-height: 1.6; white-space: pre-wrap; } a { color: var(--accent-dark); } a:hover { color: var(--accent); } @media (max-width: 640px) { body { padding: 24px 12px 48px; } main.card { padding: 28px; border-radius: 16px; } .section { padding: 20px; } }