MSG
Feat/UI ux opti wip (#10)
81da2d5
Raw
History Blame Contribute Delete
12.2 kB
/* 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;
}