/* Build Small — global UI polish */ .app-header { align-items: center !important; justify-content: space-between !important; margin-bottom: 0.25rem !important; padding: 0.5rem 0 !important; } .brand-block h1 { font-size: 1.35rem; font-weight: 700; margin: 0; line-height: 1.2; color: #1a1a1a; } .brand-block p { margin: 0.15rem 0 0; font-size: 0.875rem; color: #666; } .brand-block a { color: #374151; text-decoration: none; } .brand-block a:hover { text-decoration: underline; } .tab-subtitle { color: #666; font-size: 0.9rem; margin: 0 0 0.75rem 0 !important; } .dev-tab-badge { display: inline-block; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #666; background: #f0f0f0; border: 1px solid #ddd; border-radius: 4px; padding: 2px 8px; margin-left: 0.5rem; vertical-align: middle; } /* Step indicator pills */ .step-strip { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin: 0.5rem 0 1rem; } .step-pill { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.75rem; border-radius: 999px; font-size: 0.8rem; font-weight: 500; border: 1px solid #ddd; background: #fafafa; color: #888; } .step-pill.active { background: #f3f4f6; border-color: #9ca3af; color: #374151; } .step-pill.done { background: #f9fafb; border-color: #e5e7eb; color: #6b7280; } .step-pill .num { display: inline-flex; width: 1.25rem; height: 1.25rem; align-items: center; justify-content: center; border-radius: 50%; font-size: 0.7rem; font-weight: 700; background: #e5e7eb; color: #4b5563; } .step-pill.active .num { background: #6b7280; color: white; } .step-pill.done .num { background: #d1d5db; color: #374151; } .step-arrow { color: #ccc; font-size: 0.75rem; user-select: none; } /* Section panels */ .panel-card { border: 1px solid #e8e8e8; border-radius: 8px; padding: 0.75rem 1rem; background: #fafafa; margin-bottom: 0.75rem; } .panel-card h4 { margin: 0 0 0.5rem; font-size: 0.85rem; font-weight: 600; color: #444; text-transform: uppercase; letter-spacing: 0.03em; } .empty-state { text-align: center; padding: 2.5rem 1.5rem; color: #6b7280; font-size: 0.92rem; line-height: 1.5; border: 1px dashed #d1d5db; border-radius: 10px; background: #fff; } .primary-cta { width: 100% !important; } .mode-cards label { flex: 1; font-size: 0.88rem !important; font-weight: 500 !important; padding: 0.65rem 0.75rem !important; border-radius: 8px !important; border: 1px solid #e5e7eb !important; text-align: center; } .mode-cards label.selected, .mode-cards input:checked + span, .mode-cards .selected { border-color: #9ca3af !important; background: #f3f4f6 !important; font-weight: 600 !important; } .cross-link { font-size: 0.85rem; color: #666; margin: 0.5rem 0; } .cross-link strong { color: #374151; } /* Only explicit primary CTAs get accent color */ button.primary-cta, .primary-cta > button { background: #a83300 !important; border-color: #832600 !important; color: #fff !important; } button.primary-cta:hover, .primary-cta > button:hover { background: #832600 !important; } /* Neutralize Gradio orange on tabs, labels, sliders */ .gradio-container .tab-nav button.selected { border-bottom-color: #374151 !important; color: #111827 !important; } .gradio-container .tab-nav button { color: #6b7280 !important; } .gradio-container label span, .gradio-container .block > .wrap > label > span { background: transparent !important; color: #4b5563 !important; font-weight: 500 !important; padding-left: 0 !important; } .gradio-container input[type="range"] { accent-color: #6b7280 !important; } /* ── Shared form patterns (Lesson slides, ResearchMind, …) ── */ .form-tab-heading, .lesson-tab-heading { margin: 0 0 0.25rem !important; font-size: 1.15rem !important; font-weight: 600 !important; color: #111827 !important; } .form-primary, .lesson-form-primary { margin-bottom: 0.5rem !important; } .form-primary label > span, .lesson-form-primary label > span { font-size: 0.95rem !important; font-weight: 600 !important; color: #111827 !important; } .form-topic-input textarea, .form-topic-input input, .form-ask-input textarea, .form-ask-input input, .lesson-topic-input textarea, .lesson-topic-input input { font-size: 1.2rem !important; line-height: 1.45 !important; padding: 0.85rem 1rem !important; min-height: 3rem !important; border: 2px solid #d1d5db !important; border-radius: 10px !important; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important; } .form-ask-input textarea, .form-ask-input input { font-size: 1.05rem !important; min-height: 2.75rem !important; } .form-topic-input textarea:focus, .form-topic-input input:focus, .form-ask-input textarea:focus, .form-ask-input input:focus, .lesson-topic-input textarea:focus, .lesson-topic-input input:focus { border-color: #9ca3af !important; outline: none !important; box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.15) !important; } .form-secondary, .lesson-form-secondary { max-width: 32rem; margin-bottom: 0.5rem !important; opacity: 0.92; } .form-secondary label > span, .lesson-form-secondary label > span { font-size: 0.78rem !important; font-weight: 500 !important; color: #6b7280 !important; } .form-secondary .wrap, .form-secondary input, .form-secondary select, .lesson-form-secondary .wrap, .lesson-form-secondary input, .lesson-form-secondary select { font-size: 0.875rem !important; } .form-optional-accordion > button, .lesson-optional-accordion > button { font-size: 0.82rem !important; font-weight: 500 !important; color: #6b7280 !important; padding: 0.5rem 0.75rem !important; } .form-optional-accordion label > span, .lesson-optional-accordion label > span { font-size: 0.78rem !important; color: #6b7280 !important; } .form-optional-accordion .wrap, .lesson-optional-accordion .wrap { font-size: 0.85rem !important; } .form-status, .lesson-status { font-size: 0.85rem !important; color: #6b7280 !important; margin: 0.35rem 0 !important; } .lesson-processing-log { margin: 0.5rem 0 1rem !important; } .lesson-processing-log .slide-gen-log, .slide-gen-log { font-size: 0.82rem; color: #374151; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 10px; padding: 0.75rem 1rem; line-height: 1.45; } .slide-gen-log-banner { font-weight: 600; margin-bottom: 0.45rem; } .slide-gen-log-banner.running { color: #a83300; } .slide-gen-log-banner.done { color: #2d6a4f; } .slide-gen-log-banner.error { color: #ba1a1a; } .slide-gen-log-meta { color: #6b7280; font-size: 0.8rem; margin-bottom: 0.35rem; } .slide-gen-log-steps { margin: 0.35rem 0 0; padding-left: 1.1rem; } .slide-gen-log-step { margin-bottom: 0.25rem; } .slide-gen-log-step.active { color: #a83300; font-weight: 600; } .slide-gen-log-step.done { color: #2d6a4f; } .slide-gen-log-dur, .slide-gen-log-detail { color: #6b7280; font-weight: 400; } .slide-gen-log-idle p { margin: 0; color: #6b7280; } .lesson-running-preview { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 220px; padding: 2rem; text-align: center; color: #374151; background: linear-gradient(180deg, #fafafa 0%, #f3f4f6 100%); border: 1px dashed #d1d5db; border-radius: 12px; } .lesson-running-spinner { width: 36px; height: 36px; border: 3px solid #e5e7eb; border-top-color: #a83300; border-radius: 50%; animation: lesson-spin 0.9s linear infinite; margin-bottom: 1rem; } .lesson-running-hint { margin: 0.35rem 0 0; font-size: 0.85rem; color: #6b7280; } @keyframes lesson-spin { to { transform: rotate(360deg); } } .form-section-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin: 0 0 0.65rem; } .rm-workflow-columns { gap: 1.25rem !important; align-items: flex-start !important; } .rm-ingest-col, .rm-ask-col { border: 1px solid #e5e7eb; border-radius: 12px; padding: 1rem 1.1rem !important; background: #fafafa; } .rm-ask-col .chatbot { min-height: 280px; } .rm-action-row { margin-top: 0.5rem !important; gap: 0.5rem !important; } .rm-action-row button { flex: 1; } .form-cta-row { margin-top: 0.65rem !important; margin-bottom: 0.25rem !important; } /* EchoCoach & TeacherVoice workflow columns */ .ec-workflow-columns, .tv-workflow-columns { gap: 1.25rem !important; align-items: flex-start !important; } .ec-input-col, .ec-results-col, .tv-input-col, .tv-results-col { border: 1px solid #e5e7eb; border-radius: 12px; padding: 1rem 1.1rem !important; background: #fafafa; } .tv-replay-row { gap: 0.5rem !important; } .tv-replay-row button { flex: 1; } .tv-or-divider { text-align: center; font-size: 0.78rem; color: #9ca3af; margin: 0.65rem 0 0.5rem; letter-spacing: 0.02em; } .tv-results-col .chatbot { min-height: 320px; } .ec-coach-report { font-size: 0.95rem !important; line-height: 1.55 !important; color: #1f2937 !important; } .ec-coach-report h1, .ec-coach-report h2, .ec-coach-report h3 { font-size: 1rem !important; font-weight: 600 !important; margin: 0.75rem 0 0.35rem !important; color: #111827 !important; } .ec-transcript { font-size: 0.92rem !important; line-height: 1.6 !important; color: #374151 !important; } .ec-transcript mark, .ec-transcript .filler { background: #fef3c7; padding: 0 2px; border-radius: 2px; } .ec-audio-primary .wrap, .ec-audio-primary audio { min-height: 5.5rem; } .ec-audio-primary label > span { font-size: 0.95rem !important; font-weight: 600 !important; color: #111827 !important; } .ec-record-row { margin-top: 0.5rem !important; gap: 0.5rem !important; flex-wrap: wrap !important; } .ec-record-row button { flex: 1; min-width: 7rem; } .ec-mic-hint { margin-top: 0.25rem !important; margin-bottom: 0.5rem !important; } .ec-charts-row { gap: 0.75rem !important; } .ec-charts-row > div { flex: 1; min-width: 0; } .form-error { padding: 12px; border: 1px solid #fca5a5; border-radius: 8px; background: #fff5f5; color: #8a1f1f; font-size: 0.9rem; } /* Document / URL checkbox lists — light rows so titles stay readable when checked */ .doc-choice-list label { background: #ffffff !important; border: 1px solid #e5e7eb !important; border-radius: 8px !important; padding: 0.45rem 0.6rem !important; margin: 0.2rem 0 !important; color: #374151 !important; font-size: 0.85rem !important; line-height: 1.35 !important; } .doc-choice-list label span, .doc-choice-list label p, .doc-choice-list .label-text { color: #374151 !important; background: transparent !important; font-weight: 400 !important; } .doc-choice-list label.selected, .doc-choice-list label:has(input:checked) { background: #f3f4f6 !important; border-color: #9ca3af !important; color: #111827 !important; } .doc-choice-list label.selected span, .doc-choice-list label.selected p, .doc-choice-list label.selected .label-text, .doc-choice-list label:has(input:checked) span, .doc-choice-list label:has(input:checked) p, .doc-choice-list label:has(input:checked) .label-text { color: #111827 !important; font-weight: 500 !important; } /* Legacy lesson-only aliases */ .lesson-generate-row { margin-top: 0.75rem !important; margin-bottom: 0.5rem !important; } .settings-open-hint { font-size: 0.8rem; color: #888; } /* Global workspace bar (topic + session/RAG defaults) */ .workspace-heading { margin: 0.75rem 0 0 !important; font-size: 0.95rem !important; } .workspace-subtitle { color: #666; font-size: 0.82rem; margin: 0 0 0.5rem 0 !important; } .workspace-bar { align-items: flex-end !important; gap: 0.75rem !important; padding: 0.5rem 0.75rem !important; margin-bottom: 0.5rem !important; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 10px; } .workspace-sources { margin-bottom: 0.75rem !important; }