:root { --ink: #0f172a; --muted: #64748b; --panel: #ffffff; --panel-soft: #f8fafc; --stroke: rgba(148, 163, 184, 0.28); --accent: #0ea5e9; --accent-2: #22d3ee; --success: #22c55e; --danger: #ef4444; } body { width: 100%; height: 100%; padding: 18px; font-family: "Space Grotesk", "IBM Plex Sans", "Helvetica Neue", sans-serif; background: radial-gradient(circle at top, #f0f9ff 0%, #e2e8f0 45%, #e8ecf3 100%); color: var(--ink); margin: 0; box-sizing: border-box; } #app { background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.92)); border-radius: 16px; border: 1px solid var(--stroke); box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12); padding: 20px; height: calc(100% - 36px); min-width: 0; display: flex; flex-direction: column; gap: 16px; } .panel-group { border: 1px solid var(--stroke); border-radius: 14px; background: var(--panel); box-shadow: 0 10px 20px rgba(15, 23, 42, 0.06); overflow: hidden; } .panel-group > summary { list-style: none; cursor: pointer; padding: 12px 14px; font-weight: 600; color: var(--ink); background: rgba(14, 165, 233, 0.06); border-bottom: 1px solid transparent; } .panel-group > summary::-webkit-details-marker { display: none; } .panel-group[open] > summary { border-bottom-color: var(--stroke); } .panel-group > :not(summary) { padding: 14px; } .app-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; } h3 { font-size: 22px; margin: 0; color: var(--ink); text-align: left; } input[type="password"], input[type="text"], input[type="number"], input[type="url"], select { width: 100%; padding: 10px 12px; margin-bottom: 12px; border: 1px solid var(--stroke); border-radius: 10px; font-size: 14px; background-color: var(--panel); color: var(--ink); box-sizing: border-box; } input[type="password"]:focus, input[type="text"]:focus, input[type="number"]:focus, input[type="url"]:focus, select:focus, textarea:focus { outline: none; border-color: rgba(14, 165, 233, 0.6); box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.12); } textarea { width: 100%; min-height: 90px; padding: 10px; border: 1px solid var(--stroke); border-radius: 10px; resize: vertical; font-family: inherit; margin-bottom: 10px; background: var(--panel); color: var(--ink); box-sizing: border-box; } textarea.code-input { font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace; } .mcp-key-row { display: flex; gap: 8px; align-items: center; } .automation-manager { padding: 20px; } .automation-layout { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr); gap: 16px; } .automation-list { display: flex; flex-direction: column; gap: 10px; } .automation-list button { margin-bottom: 0; } .automation-item { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--stroke); background: var(--panel-soft); cursor: pointer; font-size: 14px; text-align: left; } .automation-item.active { border-color: rgba(14, 165, 233, 0.6); box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.12); } .automation-editor { display: flex; flex-direction: column; gap: 12px; } .automation-editor-fields { display: flex; flex-direction: column; gap: 10px; } .placeholder-help { padding: 10px; border-radius: 10px; border: 1px dashed var(--stroke); background: var(--panel-soft); } .placeholder-list { display: flex; flex-wrap: wrap; gap: 6px; } .placeholder-chip { background: rgba(14, 165, 233, 0.1); border: 1px solid rgba(14, 165, 233, 0.25); padding: 4px 8px; border-radius: 999px; font-size: 12px; color: var(--ink); width: auto; margin: 0; box-shadow: none; } .placeholder-chip:hover { transform: none; box-shadow: none; background: rgba(14, 165, 233, 0.2); } .profile-manager { border: 1px solid var(--stroke); border-radius: 10px; background: var(--panel-soft); margin-bottom: 12px; } .profile-manager > summary { cursor: pointer; list-style: none; padding: 10px 12px; font-weight: 600; } .profile-manager > summary::-webkit-details-marker { display: none; } .profile-manager-content { padding: 0 12px 12px 12px; } .profile-actions-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .profile-actions-row button { margin-bottom: 0; font-size: 14px; padding: 9px 10px; } .session-advanced { margin-top: 6px; border: 1px dashed var(--stroke); border-radius: 10px; background: var(--panel-soft); } .session-advanced > summary { cursor: pointer; list-style: none; padding: 10px 12px; font-weight: 600; color: var(--ink); } .session-advanced > summary::-webkit-details-marker { display: none; } .session-advanced[open] { border-style: solid; } .session-advanced > :not(summary) { padding: 0 12px 12px 12px; } @media (max-width: 720px) { .automation-layout { grid-template-columns: 1fr; } .profile-actions-row { grid-template-columns: 1fr; } } .mcp-key-row input[type="password"], .mcp-key-row input[type="text"] { margin-bottom: 0; } .mcp-key-row button { width: auto; padding: 8px 12px; margin-bottom: 0; font-size: 14px; } pre { background: var(--panel-soft); border: 1px solid var(--stroke); border-radius: 10px; padding: 12px; max-height: 220px; overflow: auto; font-size: 12px; color: var(--ink); white-space: pre-wrap; } .ai-provider-section, .model-selection, .stt-settings-section, .api-key-section, .capture-mode-section, .session-context-section, .session-automation-section, .performance-section, .overlay-visibility-section, .mic-monitor-section, .active-state-section, .session-summary-section, .context-section, .device-section { margin: 0 0 14px 0; padding: 0; border-radius: 0; border: none; background: transparent; box-shadow: none; } .panel-group > :not(summary) > div:last-child { margin-bottom: 0; } .ai-provider-section label, .model-selection label, .stt-settings-section label, .capture-mode-section label, .session-context-section label, .session-automation-section label { display: block; margin-bottom: 5px; font-weight: 600; color: var(--ink); } .stt-settings-section .inline-toggle { display: flex; align-items: center; gap: 8px; } .performance-section label, .overlay-visibility-section label, .active-state-section label { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); } .status-message { font-size: 12px; margin-top: 5px; padding: 6px 8px; border-radius: 8px; background: var(--panel-soft); color: var(--muted); } .status-message.success { color: var(--success); background-color: rgba(34, 197, 94, 0.12); } .status-message.error { color: var(--danger); background-color: rgba(239, 68, 68, 0.12); } .session-summary-section h4, .mic-monitor-section h4, .context-section h4, .device-section h4 { margin: 0 0 12px 0; color: var(--ink); font-size: 16px; } #sessionSummaryInput, #contextTextInput { width: 100%; min-height: 90px; padding: 10px; border: 1px solid var(--stroke); border-radius: 10px; resize: vertical; font-family: inherit; margin-bottom: 10px; background: var(--panel); color: var(--ink); } #contextTextInput { min-height: 100px; } .summary-save-toggle { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); margin-bottom: 10px; } .mic-level { height: 8px; width: 100%; border-radius: 999px; background-color: #e2e8f0; overflow: hidden; margin: 6px 0 12px 0; } .mic-level-bar { height: 100%; width: 0%; background: linear-gradient(90deg, #22c55e, #0ea5e9); transition: width 80ms linear; } .context-tabs { display: flex; margin-bottom: 15px; border-bottom: 1px solid var(--stroke); } .tab-button { background: none; border: none; padding: 8px 12px; cursor: pointer; border-bottom: 2px solid transparent; font-size: 14px; color: var(--muted); margin: 0; width: auto; } .tab-button.active { color: var(--accent); border-bottom-color: var(--accent); } .tab-button:hover { background-color: rgba(14, 165, 233, 0.08); } .tab-content { display: none; } .tab-content.active { display: block; } #contextTypeSelect, #contextTitleInput, #sessionSummaryInput { background-color: var(--panel); border: 1px solid var(--stroke); border-radius: 10px; } #contextTypeSelect, #contextTitleInput { width: 100%; padding: 8px; margin-bottom: 10px; } .upload-info { font-size: 12px; color: var(--muted); margin-top: 5px; } .context-item { display: flex; justify-content: space-between; align-items: center; padding: 10px; border: 1px solid var(--stroke); border-radius: 10px; margin-bottom: 8px; background-color: var(--panel); } .context-item-info { flex: 1; } .context-item-title { font-weight: 600; color: var(--ink); } .context-item-preview { font-size: 12px; color: var(--muted); margin-top: 2px; } .context-item-actions { display: flex; gap: 5px; } .context-item-actions button { padding: 4px 8px; font-size: 12px; margin: 0; width: auto; } .danger-btn { background-color: var(--danger) !important; color: #fff !important; } .danger-btn:hover { background-color: #dc2626 !important; } .device-options { display: flex; flex-direction: column; gap: 10px; } .access-url { background-color: var(--panel-soft); padding: 10px; border-radius: 10px; font-family: monospace; font-size: 12px; word-break: break-all; margin: 10px 0; border: 1px solid var(--stroke); } .qr-code { text-align: center; margin-top: 10px; } .device-info { background-color: var(--panel); padding: 15px; border-radius: 10px; border: 1px solid var(--stroke); margin-top: 10px; } button { width: 100%; padding: 10px; margin-bottom: 12px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #0f172a; border: none; border-radius: 10px; cursor: pointer; font-size: 16px; transition: transform 0.2s ease, box-shadow 0.2s ease; box-shadow: 0 10px 18px rgba(14, 165, 233, 0.18); } .icon-button { width: auto; padding: 6px 10px; margin: 0; font-size: 16px; background-color: rgba(14, 165, 233, 0.1); color: var(--ink); border: 1px solid rgba(14, 165, 233, 0.3); box-shadow: none; } .icon-button:hover { background-color: rgba(14, 165, 233, 0.2); } button:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(14, 165, 233, 0.24); } #saveApiKey { background: linear-gradient(135deg, #22c55e, #16a34a); color: #052e16; } #saveApiKey:hover { box-shadow: 0 12px 24px rgba(34, 197, 94, 0.28); } #transcript, #aiResponse { margin-top: 15px; border: 1px solid var(--stroke); padding: 15px; min-height: 60px; max-height: 150px; overflow-y: auto; border-radius: 10px; font-size: 14px; line-height: 1.5; background: var(--panel); } #transcript { background: #eef6ff; } #aiResponse { background: #f0fdfa; } ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #e2e8f0; } ::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #64748b; } button:disabled { background: #cbd5f5; color: #475569; box-shadow: none; cursor: not-allowed; } button:disabled:hover { transform: none; box-shadow: none; }