Farm2Market / src /App.css
pixel3user
Update Farm2Market demo frontend
806144f
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root {
--bg-0: #f5f8f2;
--bg-1: #ecf4e7;
--surface: rgba(255, 255, 255, 0.78);
--surface-strong: rgba(255, 255, 255, 0.9);
--line: rgba(37, 74, 37, 0.14);
--text: #132112;
--text-soft: #4f6452;
--accent: #1f8f4e;
--accent-2: #0f6d8b;
--warn: #ca7a12;
--danger: #a63618;
--shadow: 0 14px 32px rgba(23, 58, 29, 0.12);
--radius-lg: 20px;
--radius-md: 14px;
--radius-sm: 10px;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
color: var(--text);
background: radial-gradient(circle at 12% 8%, #c9e6bb 0%, rgba(201, 230, 187, 0) 40%),
radial-gradient(circle at 78% 12%, #b8e8e2 0%, rgba(184, 232, 226, 0) 42%),
linear-gradient(160deg, var(--bg-0), var(--bg-1));
}
.demo-root {
position: relative;
padding: 20px;
min-height: 100vh;
overflow: hidden;
}
.bg-orb {
position: absolute;
border-radius: 999px;
filter: blur(10px);
opacity: 0.5;
pointer-events: none;
}
.bg-orb-a {
width: 220px;
height: 220px;
background: #a6e2bc;
top: -60px;
right: 8%;
animation: float 8s ease-in-out infinite;
}
.bg-orb-b {
width: 170px;
height: 170px;
background: #a9d9ef;
bottom: -30px;
left: -20px;
animation: float 11s ease-in-out infinite reverse;
}
.topbar {
position: relative;
z-index: 1;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.eyebrow {
margin: 0;
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 11px;
color: var(--text-soft);
}
h1 {
margin: 2px 0 0;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: clamp(1.4rem, 2vw, 1.9rem);
}
.topbar-actions {
display: flex;
align-items: center;
gap: 10px;
}
.status-pill {
border-radius: 999px;
padding: 6px 12px;
font-family: 'IBM Plex Mono', monospace;
font-size: 12px;
border: 1px solid var(--line);
background: rgba(255, 255, 255, 0.6);
}
.status-pill.busy {
border-color: rgba(202, 122, 18, 0.4);
color: #8a540a;
background: rgba(253, 240, 220, 0.9);
}
.status-pill.idle {
border-color: rgba(31, 143, 78, 0.35);
color: #14633a;
}
.tab-row {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 10px;
margin-bottom: 14px;
}
.tab-btn {
border: 1px solid var(--line);
border-radius: var(--radius-md);
background: rgba(255, 255, 255, 0.64);
padding: 11px;
text-align: left;
color: var(--text);
cursor: pointer;
transition: 150ms transform ease, 150ms background ease, 150ms border-color ease;
}
.tab-btn span {
display: block;
font-weight: 600;
font-size: 13px;
}
.tab-btn small {
display: block;
margin-top: 3px;
font-size: 11px;
color: var(--text-soft);
}
.tab-btn:hover {
transform: translateY(-1px);
border-color: rgba(15, 109, 139, 0.35);
}
.tab-btn.active {
background: linear-gradient(135deg, rgba(31, 143, 78, 0.18), rgba(15, 109, 139, 0.12));
border-color: rgba(31, 143, 78, 0.45);
}
.workspace {
position: relative;
z-index: 1;
display: grid;
gap: 12px;
grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) minmax(280px, 350px);
min-height: calc(100vh - 188px);
}
.trace-hidden .workspace {
grid-template-columns: minmax(240px, 280px) minmax(0, 1fr);
}
.panel {
border: 1px solid var(--line);
border-radius: var(--radius-lg);
background: var(--surface);
box-shadow: var(--shadow);
backdrop-filter: blur(12px);
}
.panel-header {
padding: 16px 16px 8px;
}
.panel-header h2 {
margin: 0;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: 16px;
}
.panel-header p {
margin: 5px 0 0;
color: var(--text-soft);
font-size: 12px;
}
.controls-panel {
padding-bottom: 14px;
height: 100%;
}
.field {
display: grid;
gap: 8px;
margin: 0 16px 14px;
}
.field span {
font-size: 12px;
color: var(--text-soft);
}
select,
textarea {
width: 100%;
border-radius: var(--radius-sm);
border: 1px solid rgba(22, 66, 27, 0.2);
background: rgba(255, 255, 255, 0.85);
font: inherit;
color: inherit;
}
select {
padding: 10px;
}
.prompt-bank {
margin: 0 16px;
}
.prompt-bank h3 {
margin: 4px 0 10px;
font-size: 13px;
}
.chip-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.prompt-chip {
border: 1px solid rgba(15, 109, 139, 0.25);
background: rgba(15, 109, 139, 0.06);
color: #12526a;
padding: 6px 9px;
border-radius: 999px;
font-size: 12px;
cursor: pointer;
transition: 120ms background ease;
}
.prompt-chip:hover {
background: rgba(15, 109, 139, 0.14);
}
.conversation-panel {
display: flex;
flex-direction: column;
min-height: 0;
}
.progress-panel {
margin: 12px;
padding: 12px;
border: 1px solid rgba(31, 143, 78, 0.28);
background: linear-gradient(135deg, rgba(233, 249, 239, 0.95), rgba(224, 242, 248, 0.9));
border-radius: var(--radius-md);
animation: slide-in 220ms ease;
}
.progress-panel header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 8px;
}
.progress-panel h3 {
margin: 0;
font-size: 14px;
}
.progress-panel header span {
font-size: 12px;
color: var(--text-soft);
}
.progress-panel ul {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 6px;
}
.progress-panel li {
display: grid;
grid-template-columns: 18px 1fr;
gap: 8px;
align-items: start;
}
.step-icon {
width: 18px;
height: 18px;
border-radius: 999px;
display: grid;
place-items: center;
font-size: 10px;
background: rgba(255, 255, 255, 0.8);
border: 1px solid var(--line);
}
.step-in_progress .step-icon {
color: var(--warn);
border-color: rgba(202, 122, 18, 0.4);
}
.step-completed .step-icon {
color: var(--accent);
border-color: rgba(31, 143, 78, 0.35);
}
.step-error .step-icon {
color: var(--danger);
border-color: rgba(166, 54, 24, 0.4);
}
.progress-panel strong {
display: block;
font-size: 12px;
}
.progress-panel small {
color: var(--text-soft);
font-size: 11px;
}
.spin {
animation: spin 0.8s linear infinite;
}
.chat-demo-video {
margin: 12px;
padding: 12px;
border-radius: 16px;
border: 1px solid rgba(31, 143, 78, 0.28);
background: linear-gradient(155deg, rgba(244, 252, 247, 0.95), rgba(230, 245, 251, 0.92));
display: grid;
gap: 10px;
animation: slide-in 220ms ease;
}
.chat-demo-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 10px;
flex-wrap: wrap;
}
.chat-demo-head h3 {
margin: 0;
font-size: 15px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.chat-demo-head p {
margin: 4px 0 0;
color: var(--text-soft);
font-size: 12px;
}
.chat-demo-head small {
display: block;
margin-top: 5px;
color: var(--text-soft);
font-size: 11px;
}
.chat-demo-head-actions {
display: flex;
gap: 8px;
align-items: center;
flex-wrap: wrap;
}
.chat-demo-state {
border-radius: 999px;
padding: 5px 10px;
border: 1px solid rgba(31, 143, 78, 0.25);
background: rgba(255, 255, 255, 0.82);
font-size: 11px;
font-family: 'IBM Plex Mono', monospace;
color: #176236;
}
.chat-demo-state.playing {
border-color: rgba(31, 143, 78, 0.38);
}
.chat-demo-state.paused {
color: #0f566d;
border-color: rgba(15, 109, 139, 0.32);
}
.chat-demo-state.busy {
color: #8a540a;
border-color: rgba(202, 122, 18, 0.45);
background: rgba(255, 247, 234, 0.95);
}
.chat-demo-frame {
border-radius: 14px;
border: 1px solid rgba(19, 56, 30, 0.3);
background: linear-gradient(170deg, rgba(14, 26, 18, 0.96), rgba(22, 39, 31, 0.96));
overflow: hidden;
}
.chat-demo-windowbar {
display: flex;
align-items: center;
gap: 5px;
border-bottom: 1px solid rgba(255, 255, 255, 0.12);
padding: 8px 10px;
}
.chat-demo-windowbar > span {
width: 9px;
height: 9px;
border-radius: 999px;
display: block;
}
.chat-demo-windowbar > span:nth-child(1) {
background: #f87171;
}
.chat-demo-windowbar > span:nth-child(2) {
background: #fbbf24;
}
.chat-demo-windowbar > span:nth-child(3) {
background: #4ade80;
}
.chat-demo-windowbar small {
margin-left: 4px;
color: rgba(235, 248, 238, 0.8);
font-family: 'IBM Plex Mono', monospace;
font-size: 10px;
}
.chat-demo-canvas {
position: relative;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
padding: 10px;
min-height: 172px;
}
.chat-demo-lane {
border-radius: 11px;
border: 1px solid rgba(184, 222, 193, 0.28);
background: linear-gradient(150deg, rgba(255, 255, 255, 0.08), rgba(205, 236, 230, 0.08));
padding: 9px;
display: grid;
gap: 7px;
align-content: start;
transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
}
.chat-demo-lane h4 {
margin: 0;
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: rgba(218, 239, 226, 0.86);
}
.chat-demo-prompt-chip {
width: fit-content;
border-radius: 999px;
border: 1px solid rgba(127, 211, 190, 0.4);
background: rgba(47, 124, 111, 0.35);
color: #dbf8ef;
font-size: 10px;
padding: 3px 8px;
}
.chat-demo-prompt-bubble {
position: relative;
border-radius: 9px;
border: 1px solid rgba(165, 222, 196, 0.32);
background: rgba(20, 62, 44, 0.8);
color: #e8fdee;
padding: 8px;
font-size: 11px;
line-height: 1.35;
min-height: 63px;
}
.chat-demo-prompt-bubble::after {
content: '';
position: absolute;
left: 8px;
right: 8px;
bottom: 6px;
height: 2px;
border-radius: 999px;
background: rgba(186, 243, 207, 0.66);
transform-origin: left;
animation: chat-demo-type 1.6s ease-in-out infinite;
}
.chat-demo-step {
border-radius: 8px;
border: 1px solid rgba(157, 202, 231, 0.26);
background: rgba(25, 54, 72, 0.65);
color: #d8edf9;
font-size: 10px;
padding: 6px;
}
.chat-demo-step.active {
border-color: rgba(142, 216, 255, 0.55);
box-shadow: inset 0 0 0 1px rgba(140, 214, 255, 0.25);
}
.chat-demo-output-card {
border-radius: 9px;
border: 1px solid rgba(174, 220, 185, 0.25);
background: rgba(34, 60, 43, 0.8);
color: #dcf7e2;
padding: 8px;
}
.chat-demo-output-card strong {
display: block;
font-size: 10px;
}
.chat-demo-output-card p {
margin: 5px 0 0;
font-size: 11px;
line-height: 1.3;
}
.chat-demo-cursor {
position: absolute;
width: 14px;
height: 14px;
border-radius: 999px;
border: 2px solid rgba(255, 255, 255, 0.95);
background: rgba(31, 143, 78, 0.7);
box-shadow: 0 0 0 3px rgba(31, 143, 78, 0.2);
left: 14%;
top: 22%;
animation: chat-demo-cursor-path 5.2s linear infinite;
pointer-events: none;
}
.chat-demo-frame[data-scene='prompt'] .chat-demo-lane.prompts,
.chat-demo-frame[data-scene='workflow'] .chat-demo-lane.workflow,
.chat-demo-frame[data-scene='output'] .chat-demo-lane.output {
border-color: rgba(136, 239, 175, 0.58);
transform: translateY(-2px);
box-shadow: 0 0 0 1px rgba(136, 239, 175, 0.22);
}
.chat-demo-meta {
display: grid;
gap: 7px;
}
.chat-demo-caption strong {
display: block;
font-size: 13px;
}
.chat-demo-caption p {
margin: 4px 0 0;
color: var(--text-soft);
font-size: 12px;
}
.chat-demo-progress-track {
height: 7px;
border-radius: 999px;
border: 1px solid rgba(31, 143, 78, 0.26);
background: rgba(255, 255, 255, 0.66);
overflow: hidden;
}
.chat-demo-progress-track span {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(31, 143, 78, 0.9), rgba(15, 109, 139, 0.9));
transition: width 120ms linear;
}
.chat-demo-scene-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.chat-demo-scene-pill {
border: 1px solid rgba(15, 109, 139, 0.25);
background: rgba(15, 109, 139, 0.08);
color: #12526a;
border-radius: 999px;
padding: 5px 9px;
font-size: 11px;
cursor: pointer;
}
.chat-demo-scene-pill.active {
color: #145e38;
border-color: rgba(31, 143, 78, 0.45);
background: rgba(31, 143, 78, 0.16);
}
.chat-demo-scene-pill.complete {
border-color: rgba(31, 143, 78, 0.25);
background: rgba(31, 143, 78, 0.08);
color: #1f6e43;
}
.chat-demo-collapsed {
margin: 12px;
border-radius: 14px;
border: 1px dashed rgba(31, 143, 78, 0.35);
background: rgba(244, 252, 247, 0.86);
padding: 10px 12px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.chat-demo-collapsed p {
margin: 0;
color: var(--text-soft);
font-size: 12px;
}
.thread {
flex: 1;
min-height: 0;
overflow: auto;
padding: 4px 12px 12px;
display: grid;
gap: 10px;
}
.message {
border-radius: var(--radius-md);
border: 1px solid var(--line);
padding: 12px;
background: var(--surface-strong);
animation: fade-up 180ms ease;
}
.message header {
display: flex;
justify-content: space-between;
align-items: center;
text-transform: uppercase;
letter-spacing: 0.06em;
font-size: 10px;
color: var(--text-soft);
margin-bottom: 8px;
}
.message p {
margin: 0;
line-height: 1.5;
}
.message.user {
margin-left: auto;
max-width: 88%;
background: linear-gradient(135deg, rgba(31, 143, 78, 0.18), rgba(31, 143, 78, 0.08));
border-color: rgba(31, 143, 78, 0.28);
}
.message.assistant {
max-width: 100%;
}
.message.system {
border-style: dashed;
background: rgba(236, 248, 241, 0.82);
}
.result-grid {
margin-top: 10px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
}
.result-card {
border-radius: 12px;
border: 1px solid rgba(15, 109, 139, 0.2);
padding: 11px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(233, 245, 250, 0.65));
}
.result-card h4 {
margin: 0;
font-size: 14px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.result-card p {
margin-top: 6px;
color: var(--text-soft);
font-size: 12px;
}
.metric-grid {
margin-top: 8px;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
}
.metric-grid span {
display: block;
font-size: 11px;
color: var(--text-soft);
}
.metric-grid strong {
font-size: 13px;
}
.tag-row,
.action-row {
margin-top: 8px;
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.tag-row span {
border-radius: 999px;
background: rgba(31, 143, 78, 0.1);
border: 1px solid rgba(31, 143, 78, 0.2);
font-size: 11px;
padding: 3px 8px;
}
.mini-btn {
border: 1px solid rgba(15, 109, 139, 0.25);
border-radius: 999px;
background: rgba(15, 109, 139, 0.08);
padding: 4px 8px;
font-size: 11px;
cursor: pointer;
}
.payload-viewer {
margin-top: 10px;
}
.payload-viewer summary {
cursor: pointer;
font-size: 12px;
color: var(--accent-2);
}
.payload-viewer pre {
margin: 8px 0 0;
padding: 10px;
border-radius: 10px;
overflow: auto;
background: rgba(19, 33, 18, 0.86);
color: #dcf4d6;
font-family: 'IBM Plex Mono', monospace;
font-size: 11px;
}
.loading {
border-style: dashed;
}
.typing-dots {
display: inline-flex;
gap: 4px;
margin-top: 10px;
}
.typing-dots span {
width: 7px;
height: 7px;
border-radius: 999px;
background: rgba(31, 143, 78, 0.55);
animation: pulse 1s ease-in-out infinite;
}
.typing-dots span:nth-child(2) {
animation-delay: 0.15s;
}
.typing-dots span:nth-child(3) {
animation-delay: 0.3s;
}
.composer {
border-top: 1px solid var(--line);
padding: 12px;
display: grid;
gap: 10px;
}
.marketing-walk-video,
.invoice-walk-video,
.market-walk-video {
border-radius: 16px;
border: 1px solid rgba(31, 143, 78, 0.24);
background: linear-gradient(155deg, rgba(244, 252, 247, 0.94), rgba(230, 245, 251, 0.9));
padding: 10px;
display: grid;
gap: 8px;
animation: slide-in 220ms ease;
}
.marketing-walk-head,
.invoice-walk-head,
.market-walk-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
}
.marketing-walk-head h3,
.invoice-walk-head h3,
.market-walk-head h3 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketing-walk-head small,
.invoice-walk-head small,
.market-walk-head small {
margin-left: 6px;
color: var(--text-soft);
font-size: 10px;
font-family: 'IBM Plex Mono', monospace;
}
.marketing-walk-actions,
.invoice-walk-actions,
.market-walk-actions {
display: flex;
gap: 6px;
}
.marketing-walk-icon-btn,
.invoice-walk-icon-btn,
.market-walk-icon-btn {
width: 28px;
height: 28px;
border-radius: 999px;
border: 1px solid rgba(19, 67, 36, 0.28);
background: rgba(255, 255, 255, 0.82);
color: #1c5f39;
display: grid;
place-items: center;
cursor: pointer;
font-family: 'IBM Plex Mono', monospace;
font-size: 11px;
}
.marketing-walk-icon-btn:disabled,
.invoice-walk-icon-btn:disabled,
.market-walk-icon-btn:disabled {
opacity: 0.45;
cursor: not-allowed;
}
.marketing-walk-frame,
.invoice-walk-frame,
.market-walk-frame {
border-radius: 14px;
border: 1px solid rgba(19, 56, 30, 0.3);
overflow: hidden;
}
.marketing-walk-frame {
background: linear-gradient(170deg, rgba(17, 29, 21, 0.96), rgba(29, 43, 34, 0.96));
}
.invoice-walk-frame {
background: linear-gradient(170deg, rgba(16, 24, 29, 0.96), rgba(21, 36, 41, 0.96));
}
.market-walk-frame {
background: linear-gradient(170deg, rgba(18, 26, 24, 0.96), rgba(23, 39, 34, 0.96));
}
.marketing-walk-windowbar,
.invoice-walk-windowbar,
.market-walk-windowbar {
display: flex;
align-items: center;
gap: 5px;
border-bottom: 1px solid rgba(255, 255, 255, 0.12);
padding: 8px 10px;
}
.marketing-walk-windowbar > span,
.invoice-walk-windowbar > span,
.market-walk-windowbar > span {
width: 9px;
height: 9px;
border-radius: 999px;
display: block;
}
.marketing-walk-windowbar > span:nth-child(1),
.invoice-walk-windowbar > span:nth-child(1),
.market-walk-windowbar > span:nth-child(1) {
background: #f87171;
}
.marketing-walk-windowbar > span:nth-child(2),
.invoice-walk-windowbar > span:nth-child(2),
.market-walk-windowbar > span:nth-child(2) {
background: #fbbf24;
}
.marketing-walk-windowbar > span:nth-child(3),
.invoice-walk-windowbar > span:nth-child(3),
.market-walk-windowbar > span:nth-child(3) {
background: #4ade80;
}
.marketing-walk-windowbar small,
.invoice-walk-windowbar small,
.market-walk-windowbar small {
margin-left: 4px;
color: rgba(235, 248, 238, 0.8);
font-family: 'IBM Plex Mono', monospace;
font-size: 10px;
}
.marketing-walk-canvas,
.invoice-walk-canvas,
.market-walk-canvas {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 7px;
padding: 9px;
min-height: 154px;
}
.marketing-walk-lane,
.invoice-walk-lane,
.market-walk-lane {
border-radius: 11px;
border: 1px solid rgba(184, 222, 193, 0.28);
background: linear-gradient(150deg, rgba(255, 255, 255, 0.08), rgba(205, 236, 230, 0.08));
padding: 8px;
display: grid;
gap: 6px;
align-content: start;
transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
}
.marketing-walk-lane-index,
.invoice-walk-lane-index,
.market-walk-lane-index {
width: 18px;
height: 18px;
border-radius: 999px;
border: 1px solid rgba(223, 248, 232, 0.45);
background: rgba(255, 255, 255, 0.08);
color: rgba(225, 246, 235, 0.88);
font-size: 10px;
font-family: 'IBM Plex Mono', monospace;
display: grid;
place-items: center;
}
.marketing-walk-lane-label,
.invoice-walk-lane-label,
.market-walk-lane-label {
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: rgba(214, 241, 226, 0.86);
}
.marketing-walk-chip-row,
.invoice-walk-chip-row,
.market-walk-chip-row {
display: flex;
flex-wrap: wrap;
gap: 4px;
}
.marketing-walk-chip-row span,
.invoice-walk-chip-row span,
.market-walk-chip-row span {
border: 1px solid rgba(145, 216, 236, 0.36);
padding: 2px 6px;
font-size: 9px;
color: rgba(197, 231, 247, 0.92);
line-height: 1.25;
border-radius: 999px;
background: rgba(145, 216, 236, 0.18);
}
.marketing-walk-line,
.invoice-walk-line,
.market-walk-line {
height: 8px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(171, 228, 247, 0.33), rgba(217, 245, 228, 0.45), rgba(171, 228, 247, 0.33));
background-size: 160% 100%;
animation: chat-demo-shimmer 1.8s linear infinite;
}
.marketing-walk-line.lg,
.invoice-walk-line.lg,
.market-walk-line.lg {
width: 94%;
}
.marketing-walk-line.md,
.invoice-walk-line.md,
.market-walk-line.md {
width: 72%;
}
.marketing-walk-line.sm,
.invoice-walk-line.sm,
.market-walk-line.sm {
width: 50%;
}
.marketing-walk-lane p,
.invoice-walk-lane p,
.market-walk-lane p {
margin: 0;
font-size: 10px;
line-height: 1.35;
color: rgba(206, 232, 220, 0.9);
}
.marketing-walk-copy-card {
border-radius: 9px;
border: 1px solid rgba(174, 220, 185, 0.25);
background: rgba(34, 60, 43, 0.8);
padding: 7px;
display: grid;
gap: 5px;
}
.marketing-walk-stream-pill {
height: 14px;
border-radius: 999px;
border: 1px solid rgba(145, 216, 236, 0.3);
background: linear-gradient(90deg, rgba(171, 228, 247, 0.24), rgba(217, 245, 228, 0.4), rgba(171, 228, 247, 0.24));
background-size: 160% 100%;
animation: chat-demo-shimmer 1.6s linear infinite;
display: flex;
align-items: center;
padding: 0 8px;
}
.marketing-walk-stream-pill span {
font-size: 9px;
color: rgba(216, 242, 226, 0.95);
letter-spacing: 0.02em;
}
.marketing-walk-stream-pill.lg {
width: 94%;
}
.marketing-walk-stream-pill.md {
width: 72%;
}
.marketing-walk-stream-pill.sm {
width: 50%;
}
.marketing-walk-visual-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 6px;
}
.marketing-walk-visual-grid article {
border: 1px solid rgba(174, 220, 185, 0.25);
border-radius: 9px;
background: rgba(34, 60, 43, 0.8);
padding: 6px;
display: grid;
gap: 4px;
}
.marketing-walk-visual-grid article img {
width: 100%;
height: 38px;
display: block;
object-fit: cover;
border-radius: 7px;
border: 1px solid rgba(145, 216, 236, 0.28);
}
.marketing-walk-visual-grid article small {
font-size: 9px;
color: rgba(206, 232, 220, 0.9);
}
.invoice-walk-dropzone {
border: 1px dashed rgba(174, 220, 185, 0.28);
border-radius: 9px;
background: rgba(34, 60, 43, 0.72);
padding: 8px;
display: grid;
gap: 5px;
}
.invoice-walk-dropzone img {
width: 100%;
height: 56px;
display: block;
object-fit: cover;
border-radius: 7px;
border: 1px solid rgba(145, 216, 236, 0.28);
}
.invoice-walk-dropzone p {
margin: 0;
font-size: 9px;
color: rgba(206, 232, 220, 0.88);
}
.invoice-walk-ocr-nodes {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
}
.invoice-walk-ocr-nodes span {
min-height: 18px;
display: grid;
place-items: center;
padding: 2px 4px;
font-size: 9px;
line-height: 1.2;
color: rgba(209, 235, 249, 0.92);
border-radius: 7px;
border: 1px solid rgba(157, 202, 231, 0.3);
background: rgba(25, 54, 72, 0.66);
}
.invoice-walk-ocr-flow {
height: 9px;
border-radius: 999px;
border: 1px solid rgba(136, 239, 175, 0.3);
background: rgba(21, 48, 33, 0.85);
overflow: hidden;
}
.invoice-walk-ocr-flow span {
display: block;
height: 100%;
width: 44%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(136, 239, 175, 0.25), rgba(136, 239, 175, 0.9));
animation: invoice-walk-flow 1.7s ease-in-out infinite;
}
.invoice-walk-ocr-lines {
display: grid;
gap: 4px;
}
.invoice-walk-stream-pill {
height: 14px;
border-radius: 999px;
border: 1px solid rgba(145, 216, 236, 0.3);
background: linear-gradient(90deg, rgba(171, 228, 247, 0.24), rgba(217, 245, 228, 0.4), rgba(171, 228, 247, 0.24));
background-size: 160% 100%;
animation: chat-demo-shimmer 1.6s linear infinite;
display: flex;
align-items: center;
padding: 0 8px;
}
.invoice-walk-stream-pill span {
font-size: 9px;
color: rgba(216, 242, 226, 0.95);
letter-spacing: 0.02em;
}
.invoice-walk-stream-pill.lg {
width: 94%;
}
.invoice-walk-stream-pill.md {
width: 72%;
}
.invoice-walk-stream-pill.sm {
width: 50%;
}
.invoice-walk-field-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 4px;
}
.invoice-walk-field-grid article {
min-height: 36px;
display: grid;
align-content: center;
justify-items: center;
gap: 2px;
padding: 3px;
border-radius: 7px;
background: rgba(191, 245, 208, 0.24);
border: 1px solid rgba(191, 245, 208, 0.3);
}
.invoice-walk-field-grid article small {
font-size: 8px;
color: rgba(205, 238, 217, 0.86);
}
.invoice-walk-field-grid article strong {
font-size: 10px;
color: rgba(230, 249, 237, 0.95);
}
.market-walk-rank-row {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
}
.market-walk-rank-row span {
min-height: 18px;
display: grid;
place-items: center;
padding: 2px 4px;
font-size: 9px;
line-height: 1.2;
color: rgba(209, 235, 249, 0.92);
border-radius: 7px;
border: 1px solid rgba(157, 202, 231, 0.3);
background: rgba(25, 54, 72, 0.66);
}
.market-walk-rank-flow {
height: 9px;
border-radius: 999px;
border: 1px solid rgba(136, 239, 175, 0.3);
background: rgba(21, 48, 33, 0.85);
overflow: hidden;
}
.market-walk-rank-flow span {
display: block;
height: 100%;
width: 44%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(136, 239, 175, 0.25), rgba(136, 239, 175, 0.9));
animation: market-walk-flow 1.7s ease-in-out infinite;
}
.market-walk-result-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 4px;
}
.market-walk-result-grid article {
min-height: 36px;
display: grid;
align-content: center;
justify-items: center;
gap: 2px;
padding: 3px;
border-radius: 7px;
background: rgba(191, 245, 208, 0.24);
border: 1px solid rgba(191, 245, 208, 0.3);
}
.market-walk-result-grid article small {
font-size: 8px;
color: rgba(205, 238, 217, 0.86);
}
.market-walk-result-grid article strong {
font-size: 10px;
color: rgba(230, 249, 237, 0.95);
}
.market-walk-query-thumb {
width: 100%;
height: 46px;
display: block;
object-fit: cover;
border-radius: 7px;
border: 1px solid rgba(145, 216, 236, 0.28);
}
.market-walk-stream-pill {
height: 14px;
border-radius: 999px;
border: 1px solid rgba(145, 216, 236, 0.3);
background: linear-gradient(90deg, rgba(171, 228, 247, 0.24), rgba(217, 245, 228, 0.4), rgba(171, 228, 247, 0.24));
background-size: 160% 100%;
animation: chat-demo-shimmer 1.6s linear infinite;
display: flex;
align-items: center;
padding: 0 8px;
}
.market-walk-stream-pill span {
font-size: 9px;
color: rgba(216, 242, 226, 0.95);
letter-spacing: 0.02em;
}
.market-walk-stream-pill.lg {
width: 94%;
}
.market-walk-stream-pill.md {
width: 72%;
}
.market-walk-stream-pill.sm {
width: 50%;
}
.marketing-walk-frame[data-scene='brief'] .marketing-walk-lane.brief,
.marketing-walk-frame[data-scene='copy'] .marketing-walk-lane.copy,
.marketing-walk-frame[data-scene='visual'] .marketing-walk-lane.visual,
.invoice-walk-frame[data-scene='source'] .invoice-walk-lane.source,
.invoice-walk-frame[data-scene='ocr'] .invoice-walk-lane.ocr,
.invoice-walk-frame[data-scene='fields'] .invoice-walk-lane.fields,
.market-walk-frame[data-scene='query'] .market-walk-lane.query,
.market-walk-frame[data-scene='rank'] .market-walk-lane.rank,
.market-walk-frame[data-scene='match'] .market-walk-lane.match {
border-color: rgba(136, 239, 175, 0.58);
transform: translateY(-2px);
box-shadow: 0 0 0 1px rgba(136, 239, 175, 0.22);
}
.marketing-walk-meta,
.invoice-walk-meta,
.market-walk-meta {
display: grid;
gap: 7px;
}
.marketing-walk-caption,
.invoice-walk-caption,
.market-walk-caption {
margin: 0;
font-size: 11px;
color: var(--text-soft);
text-align: center;
}
.marketing-walk-progress-track,
.invoice-walk-progress-track,
.market-walk-progress-track {
height: 7px;
border-radius: 999px;
border: 1px solid rgba(31, 143, 78, 0.26);
background: rgba(255, 255, 255, 0.66);
overflow: hidden;
}
.marketing-walk-progress-track span,
.invoice-walk-progress-track span,
.market-walk-progress-track span {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(31, 143, 78, 0.9), rgba(15, 109, 139, 0.9));
transition: width 120ms linear;
}
.marketing-walk-scene-dots,
.invoice-walk-scene-dots,
.market-walk-scene-dots {
display: flex;
justify-content: center;
gap: 6px;
}
.marketing-walk-scene-dot,
.invoice-walk-scene-dot,
.market-walk-scene-dot {
width: 20px;
height: 20px;
padding: 0;
border-radius: 999px;
border: 1px solid rgba(15, 109, 139, 0.25);
background: rgba(15, 109, 139, 0.08);
display: grid;
place-items: center;
cursor: pointer;
}
.marketing-walk-scene-dot span,
.invoice-walk-scene-dot span,
.market-walk-scene-dot span {
width: 6px;
height: 6px;
border-radius: 999px;
background: #589db6;
}
.marketing-walk-scene-dot.active,
.invoice-walk-scene-dot.active,
.market-walk-scene-dot.active {
border-color: rgba(31, 143, 78, 0.45);
background: rgba(31, 143, 78, 0.16);
}
.marketing-walk-scene-dot.active span,
.invoice-walk-scene-dot.active span,
.market-walk-scene-dot.active span {
background: #1f8f4e;
}
.marketing-walk-scene-dot.complete,
.invoice-walk-scene-dot.complete,
.market-walk-scene-dot.complete {
border-color: rgba(31, 143, 78, 0.25);
background: rgba(31, 143, 78, 0.08);
}
.marketing-walk-scene-dot.complete span,
.invoice-walk-scene-dot.complete span,
.market-walk-scene-dot.complete span {
background: #2f9b5b;
}
.marketing-walk-collapsed,
.invoice-walk-collapsed,
.market-walk-collapsed {
border-radius: 14px;
border: 1px dashed rgba(31, 143, 78, 0.35);
background: rgba(244, 252, 247, 0.86);
padding: 10px 12px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.marketing-walk-mini-markers,
.invoice-walk-mini-markers,
.market-walk-mini-markers {
display: flex;
gap: 4px;
}
.marketing-walk-mini-markers span,
.invoice-walk-mini-markers span,
.market-walk-mini-markers span {
width: 8px;
height: 8px;
border-radius: 999px;
background: rgba(31, 143, 78, 0.35);
}
.marketing-walk-collapsed p,
.invoice-walk-collapsed p,
.market-walk-collapsed p {
margin: 0;
color: var(--text-soft);
font-size: 12px;
}
.marketing-studio-root {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
padding: 12px;
gap: 12px;
}
.marketing-studio-header {
border: 1px solid rgba(31, 143, 78, 0.2);
border-radius: 16px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(230, 246, 237, 0.76));
padding: 13px 14px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.marketing-studio-header h3 {
margin: 0;
font-size: 16px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketing-studio-header p {
margin: 4px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.marketing-studio-layout {
flex: 1;
min-height: 0;
display: grid;
grid-template-columns: minmax(300px, 380px) minmax(0, 1fr);
gap: 12px;
}
.marketing-controls,
.marketing-output {
border: 1px solid var(--line);
border-radius: 16px;
background: rgba(255, 255, 255, 0.74);
min-height: 0;
}
.marketing-controls {
padding: 12px;
overflow: auto;
display: grid;
align-content: start;
gap: 10px;
}
.marketing-output {
padding: 12px;
overflow: auto;
display: grid;
align-content: start;
gap: 10px;
}
.marketing-output > header h4 {
margin: 0;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: 15px;
}
.marketing-output > header p {
margin: 4px 0 0;
color: var(--text-soft);
font-size: 12px;
}
.marketing-field-block {
display: grid;
gap: 7px;
}
.marketing-field-block > label,
.marketing-config-row label > span {
font-size: 12px;
color: var(--text-soft);
}
.marketing-config-row {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.marketing-config-row label {
display: grid;
gap: 6px;
}
.marketing-product-grid {
display: grid;
gap: 8px;
}
.marketing-product-card {
border: 1px solid rgba(31, 143, 78, 0.22);
border-radius: 12px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(227, 243, 234, 0.7));
text-align: left;
color: inherit;
cursor: pointer;
padding: 10px;
display: grid;
gap: 2px;
transition: 120ms transform ease, 120ms border-color ease;
}
.marketing-product-card:hover {
transform: translateY(-1px);
}
.marketing-product-card strong {
font-size: 13px;
}
.marketing-product-card small {
color: var(--text-soft);
font-size: 11px;
}
.marketing-product-card span,
.marketing-product-card em {
font-size: 11px;
color: #145d36;
font-style: normal;
}
.marketing-product-card.selected {
border-color: rgba(31, 143, 78, 0.5);
box-shadow: inset 0 0 0 1px rgba(31, 143, 78, 0.2);
}
.hidden-input {
display: none;
}
.marketing-upload-row {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.marketing-upload-preview {
border: 1px solid rgba(15, 109, 139, 0.22);
border-radius: 12px;
background: rgba(255, 255, 255, 0.85);
padding: 8px;
}
.marketing-upload-preview img {
width: 100%;
max-height: 160px;
object-fit: cover;
border-radius: 9px;
display: block;
}
.marketing-upload-preview small {
margin-top: 6px;
display: block;
font-size: 11px;
color: var(--text-soft);
}
.marketing-help-text {
margin: 0;
color: var(--text-soft);
font-size: 12px;
}
.marketing-action-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.marketing-empty,
.marketing-note,
.marketing-error {
border-radius: 12px;
padding: 9px 10px;
font-size: 12px;
}
.marketing-empty {
border: 1px dashed rgba(31, 143, 78, 0.26);
color: var(--text-soft);
background: rgba(246, 252, 248, 0.8);
}
.marketing-note {
border: 1px solid rgba(15, 109, 139, 0.3);
color: #0f5570;
background: rgba(232, 247, 252, 0.84);
}
.marketing-error {
border: 1px solid rgba(166, 54, 24, 0.34);
color: #8a2f1d;
background: rgba(255, 236, 231, 0.88);
}
.marketing-stream-card {
border: 1px solid rgba(31, 143, 78, 0.24);
border-radius: 14px;
background: rgba(255, 255, 255, 0.86);
padding: 10px;
}
.marketing-stream-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
margin-bottom: 8px;
}
.marketing-stream-actions strong {
font-size: 12px;
}
.marketing-stream-card pre {
margin: 0;
border-radius: 10px;
padding: 10px;
background: rgba(16, 26, 19, 0.87);
color: #d7f5d4;
font-size: 11px;
white-space: pre-wrap;
word-break: break-word;
font-family: 'IBM Plex Mono', monospace;
}
.marketing-deck-grid {
display: grid;
gap: 8px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.marketing-deck-grid section {
border: 1px solid rgba(15, 109, 139, 0.2);
border-radius: 12px;
background: rgba(255, 255, 255, 0.86);
padding: 10px;
}
.marketing-deck-grid h5 {
margin: 0;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--text-soft);
}
.marketing-deck-grid p {
margin: 7px 0 0;
font-size: 13px;
line-height: 1.45;
}
.marketing-deck-grid ul {
margin: 7px 0 0;
padding-left: 16px;
}
.marketing-deck-grid li {
font-size: 12px;
margin-bottom: 4px;
}
.marketing-image-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.marketing-image-grid article {
border: 1px solid rgba(31, 143, 78, 0.24);
border-radius: 12px;
background: rgba(255, 255, 255, 0.87);
overflow: hidden;
}
.marketing-image-grid img {
width: 100%;
aspect-ratio: 16 / 10;
object-fit: cover;
display: block;
}
.marketing-image-meta {
padding: 8px;
display: grid;
gap: 8px;
}
.marketing-image-meta strong {
font-size: 12px;
}
.marketing-image-meta > div {
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.marketing-meta-card {
border: 1px solid rgba(15, 109, 139, 0.24);
border-radius: 12px;
background: rgba(255, 255, 255, 0.88);
padding: 10px;
}
.marketing-meta-card h5 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketing-meta-card dl {
margin: 10px 0 0;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.marketing-meta-card dl div {
border: 1px solid var(--line);
border-radius: 10px;
padding: 7px;
background: rgba(255, 255, 255, 0.85);
}
.marketing-meta-card dt {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--text-soft);
}
.marketing-meta-card dd {
margin: 4px 0 0;
font-size: 12px;
}
.invoice-demo-root {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
padding: 12px;
gap: 12px;
}
.invoice-demo-header {
border: 1px solid rgba(15, 109, 139, 0.21);
border-radius: 16px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(231, 242, 252, 0.75));
padding: 13px 14px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.invoice-demo-header h3 {
margin: 0;
font-size: 16px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.invoice-demo-header p {
margin: 4px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.invoice-demo-layout {
flex: 1;
min-height: 0;
display: grid;
grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
gap: 12px;
}
.invoice-input-panel,
.invoice-output-panel {
border: 1px solid var(--line);
border-radius: 16px;
background: rgba(255, 255, 255, 0.74);
min-height: 0;
}
.invoice-input-panel {
overflow: auto;
padding: 12px;
display: grid;
align-content: start;
gap: 10px;
}
.invoice-output-panel {
overflow: auto;
padding: 12px;
display: grid;
align-content: start;
gap: 10px;
}
.invoice-output-panel > header h4 {
margin: 0;
font-size: 15px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.invoice-output-panel > header p {
margin: 4px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.invoice-field-grid {
display: grid;
gap: 8px;
}
.invoice-field-block {
display: grid;
gap: 7px;
}
.invoice-field-block > span {
font-size: 12px;
color: var(--text-soft);
}
.invoice-dropzone {
border: 1px dashed rgba(15, 109, 139, 0.38);
border-radius: 12px;
padding: 12px;
text-align: left;
background: rgba(234, 246, 252, 0.65);
color: inherit;
cursor: pointer;
display: grid;
gap: 3px;
transition: 130ms background ease, 130ms transform ease;
}
.invoice-dropzone:hover {
transform: translateY(-1px);
background: rgba(226, 241, 251, 0.84);
}
.invoice-dropzone strong {
font-size: 13px;
}
.invoice-dropzone small {
font-size: 11px;
color: var(--text-soft);
}
.invoice-dropzone.has-file {
border-style: solid;
border-color: rgba(31, 143, 78, 0.36);
background: rgba(229, 245, 235, 0.78);
}
.invoice-file-preview {
border: 1px solid rgba(31, 143, 78, 0.26);
border-radius: 12px;
background: rgba(255, 255, 255, 0.86);
padding: 8px;
}
.invoice-file-preview img {
width: 100%;
max-height: 170px;
object-fit: cover;
border-radius: 9px;
display: block;
}
.invoice-file-meta {
margin-top: 8px;
display: flex;
gap: 8px;
align-items: center;
justify-content: space-between;
}
.invoice-file-meta span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 12px;
}
.invoice-help-text {
margin: 0;
font-size: 12px;
color: var(--text-soft);
}
.invoice-toggle-row label {
display: flex;
align-items: center;
gap: 8px;
font-size: 12px;
color: var(--text);
}
.invoice-toggle-row input {
margin: 0;
accent-color: #167d99;
}
.invoice-action-row {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.invoice-jobs-block h4 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.invoice-job-list {
list-style: none;
margin: 0;
padding: 0;
display: grid;
gap: 8px;
}
.invoice-job-card {
border: 1px solid var(--line);
border-radius: 11px;
padding: 8px;
background: rgba(255, 255, 255, 0.84);
display: grid;
gap: 6px;
}
.invoice-job-card header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 10px;
}
.invoice-job-card header strong {
min-width: 0;
font-size: 12px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.invoice-job-card header span,
.invoice-job-card small {
font-size: 10px;
color: var(--text-soft);
}
.invoice-job-status {
margin: 0;
font-size: 11px;
color: var(--text-soft);
}
.invoice-job-meter {
height: 7px;
border-radius: 999px;
background: rgba(22, 66, 27, 0.1);
overflow: hidden;
}
.invoice-job-meter span {
display: block;
height: 100%;
border-radius: 999px;
background: linear-gradient(90deg, #1f8f4e, #0f6d8b);
transition: width 180ms ease;
}
.invoice-job-card.ready {
border-color: rgba(31, 143, 78, 0.35);
}
.invoice-job-card.failed {
border-color: rgba(166, 54, 24, 0.36);
}
.invoice-empty,
.invoice-note,
.invoice-error {
border-radius: 12px;
padding: 9px 10px;
font-size: 12px;
}
.invoice-empty {
border: 1px dashed rgba(15, 109, 139, 0.3);
color: var(--text-soft);
background: rgba(241, 249, 253, 0.75);
}
.invoice-note {
border: 1px solid rgba(31, 143, 78, 0.3);
color: #145f39;
background: rgba(234, 249, 239, 0.85);
}
.invoice-error {
border: 1px solid rgba(166, 54, 24, 0.36);
color: #8d2e1a;
background: rgba(255, 237, 232, 0.86);
}
.invoice-metric-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px;
}
.invoice-metric-card {
border: 1px solid rgba(15, 109, 139, 0.24);
border-radius: 11px;
background: rgba(255, 255, 255, 0.88);
padding: 9px;
}
.invoice-metric-card span {
display: block;
font-size: 11px;
color: var(--text-soft);
}
.invoice-metric-card strong {
display: block;
margin-top: 4px;
font-size: 14px;
}
.invoice-preview-card,
.invoice-record-card,
.invoice-meta-card,
.invoice-json-card {
border: 1px solid rgba(15, 109, 139, 0.22);
border-radius: 12px;
background: rgba(255, 255, 255, 0.88);
padding: 10px;
}
.invoice-preview-card h5,
.invoice-record-card h5,
.invoice-meta-card h5 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.invoice-preview-grid {
margin: 9px 0 0;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 7px;
}
.invoice-preview-grid div {
border: 1px solid var(--line);
border-radius: 10px;
padding: 7px;
background: rgba(255, 255, 255, 0.85);
}
.invoice-preview-grid dt {
font-size: 10px;
color: var(--text-soft);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.invoice-preview-grid dd {
margin: 4px 0 0;
font-size: 12px;
line-height: 1.35;
}
.invoice-items-scroll {
margin-top: 9px;
overflow: auto;
}
.invoice-items-table {
width: 100%;
border-collapse: collapse;
font-size: 12px;
}
.invoice-items-table th,
.invoice-items-table td {
border-bottom: 1px solid var(--line);
text-align: left;
padding: 7px;
white-space: nowrap;
}
.invoice-items-table th {
font-size: 10px;
color: var(--text-soft);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.invoice-raw-text {
margin: 9px 0 0;
border-radius: 10px;
background: rgba(16, 26, 19, 0.87);
color: #d9f4d5;
font-family: 'IBM Plex Mono', monospace;
font-size: 11px;
padding: 10px;
white-space: pre-wrap;
word-break: break-word;
}
.invoice-json-card summary {
cursor: pointer;
font-size: 12px;
color: var(--accent-2);
}
.invoice-json-card pre {
margin: 8px 0 0;
border-radius: 10px;
background: rgba(16, 26, 19, 0.9);
color: #d8f6d3;
font-family: 'IBM Plex Mono', monospace;
font-size: 11px;
padding: 9px;
overflow: auto;
}
.invoice-meta-card dl {
margin: 9px 0 0;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 7px;
}
.invoice-meta-card dl div {
border: 1px solid var(--line);
border-radius: 10px;
padding: 7px;
background: rgba(255, 255, 255, 0.84);
}
.invoice-meta-card dt {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--text-soft);
}
.invoice-meta-card dd {
margin: 4px 0 0;
font-size: 12px;
}
.invoice-record-card p {
margin: 8px 0 0;
font-size: 12px;
}
.invoice-history-list {
list-style: none;
margin: 8px 0 0;
padding: 0;
display: grid;
gap: 6px;
}
.invoice-history-list li {
border: 1px solid var(--line);
border-radius: 10px;
padding: 7px;
background: rgba(255, 255, 255, 0.84);
display: flex;
justify-content: space-between;
gap: 8px;
}
.invoice-history-list span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 12px;
}
.invoice-history-list strong {
font-size: 12px;
}
.marketplace-demo-root {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
padding: 12px;
gap: 12px;
}
.marketplace-demo-header {
border: 1px solid rgba(31, 143, 78, 0.2);
border-radius: 16px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(233, 248, 242, 0.78));
padding: 13px 14px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.marketplace-demo-header h3 {
margin: 0;
font-size: 16px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketplace-demo-header p {
margin: 4px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.marketplace-demo-layout {
flex: 1;
min-height: 0;
display: grid;
grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
gap: 12px;
}
.marketplace-input-panel,
.marketplace-output-panel {
border: 1px solid var(--line);
border-radius: 16px;
background: rgba(255, 255, 255, 0.74);
min-height: 0;
}
.marketplace-input-panel {
overflow: auto;
padding: 12px;
display: grid;
align-content: start;
gap: 10px;
}
.marketplace-output-panel {
overflow: auto;
padding: 12px;
display: grid;
align-content: start;
gap: 10px;
}
.marketplace-output-panel > header h4 {
margin: 0;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: 15px;
}
.marketplace-output-panel > header p {
margin: 4px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.marketplace-field-block {
display: grid;
gap: 7px;
}
.marketplace-field-block > span {
font-size: 12px;
color: var(--text-soft);
}
.marketplace-filter-block {
border: 1px solid rgba(15, 109, 139, 0.18);
border-radius: 12px;
background: rgba(255, 255, 255, 0.8);
padding: 9px;
display: grid;
gap: 8px;
}
.marketplace-filter-block h4 {
margin: 0;
font-size: 12px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketplace-filter-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
.marketplace-filter-grid label {
display: grid;
gap: 6px;
}
.marketplace-filter-grid label span {
font-size: 11px;
color: var(--text-soft);
}
.marketplace-action-row {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.marketplace-recent-block h4 {
margin: 0;
font-size: 12px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketplace-chip-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 8px;
}
.marketplace-note,
.marketplace-error,
.marketplace-empty {
border-radius: 12px;
padding: 9px 10px;
font-size: 12px;
}
.marketplace-note {
border: 1px solid rgba(31, 143, 78, 0.28);
color: #145f39;
background: rgba(232, 249, 238, 0.86);
}
.marketplace-error {
border: 1px solid rgba(166, 54, 24, 0.36);
color: #892d19;
background: rgba(255, 237, 232, 0.87);
}
.marketplace-empty {
border: 1px dashed rgba(15, 109, 139, 0.3);
color: var(--text-soft);
background: rgba(240, 249, 253, 0.8);
}
.marketplace-stats-card,
.marketplace-result-card,
.marketplace-meta-card {
border: 1px solid rgba(15, 109, 139, 0.22);
border-radius: 12px;
background: rgba(255, 255, 255, 0.88);
padding: 10px;
}
.marketplace-stats-card h5,
.marketplace-result-card h5,
.marketplace-meta-card h5 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.marketplace-stat-grid {
margin-top: 9px;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
.marketplace-stat-grid div {
border: 1px solid var(--line);
border-radius: 10px;
padding: 8px;
background: rgba(255, 255, 255, 0.86);
}
.marketplace-stat-grid span {
display: block;
font-size: 10px;
color: var(--text-soft);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.marketplace-stat-grid strong {
display: block;
margin-top: 4px;
font-size: 13px;
}
.marketplace-card-grid {
margin-top: 9px;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.marketplace-entity-card {
border: 1px solid var(--line);
border-radius: 11px;
background: rgba(255, 255, 255, 0.86);
padding: 9px;
}
.marketplace-entity-card header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 8px;
}
.marketplace-entity-card header strong {
min-width: 0;
font-size: 13px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.marketplace-entity-card header span {
font-size: 10px;
color: var(--text-soft);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.marketplace-metric-row {
margin-top: 7px;
display: flex;
justify-content: space-between;
gap: 8px;
}
.marketplace-metric-row span {
font-size: 11px;
color: var(--text-soft);
}
.marketplace-metric-row strong {
font-size: 12px;
text-align: right;
}
.marketplace-score-track {
margin-top: 8px;
}
.marketplace-score-track small {
font-size: 10px;
color: var(--text-soft);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.marketplace-score-track > div {
margin-top: 5px;
height: 7px;
border-radius: 999px;
background: rgba(22, 66, 27, 0.1);
overflow: hidden;
}
.marketplace-score-track > div span {
display: block;
height: 100%;
border-radius: 999px;
background: linear-gradient(90deg, #1f8f4e, #0f6d8b);
}
.marketplace-help-text {
margin: 8px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.marketplace-meta-card dl {
margin: 9px 0 0;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 7px;
}
.marketplace-meta-card dl div {
border: 1px solid var(--line);
border-radius: 10px;
padding: 7px;
background: rgba(255, 255, 255, 0.86);
}
.marketplace-meta-card dt {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--text-soft);
}
.marketplace-meta-card dd {
margin: 4px 0 0;
font-size: 12px;
}
.marketplace-meta-card details {
margin-top: 8px;
}
.marketplace-meta-card details summary {
cursor: pointer;
font-size: 12px;
color: var(--accent-2);
}
.marketplace-meta-card pre {
margin: 8px 0 0;
border-radius: 10px;
background: rgba(16, 26, 19, 0.88);
color: #d8f7d4;
font-family: 'IBM Plex Mono', monospace;
font-size: 11px;
padding: 9px;
overflow: auto;
}
.voice-demo-root {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
gap: 10px;
position: relative;
padding: 12px;
}
.voice-walk-video {
border-radius: 16px;
border: 1px solid rgba(31, 143, 78, 0.24);
background: linear-gradient(155deg, rgba(244, 252, 247, 0.94), rgba(230, 245, 251, 0.9));
padding: 10px;
display: grid;
gap: 8px;
animation: slide-in 220ms ease;
}
.voice-walk-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
}
.voice-walk-head h3 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.voice-walk-head small {
margin-left: 6px;
color: var(--text-soft);
font-size: 10px;
font-family: 'IBM Plex Mono', monospace;
}
.voice-walk-actions {
display: flex;
gap: 6px;
}
.voice-walk-icon-btn {
width: 28px;
height: 28px;
border-radius: 999px;
border: 1px solid rgba(19, 67, 36, 0.28);
background: rgba(255, 255, 255, 0.82);
color: #1c5f39;
display: grid;
place-items: center;
cursor: pointer;
font-family: 'IBM Plex Mono', monospace;
font-size: 11px;
}
.voice-walk-icon-btn:disabled {
opacity: 0.45;
cursor: not-allowed;
}
.voice-walk-frame {
border-radius: 14px;
border: 1px solid rgba(19, 56, 30, 0.3);
background: linear-gradient(170deg, rgba(12, 24, 19, 0.96), rgba(19, 39, 34, 0.96));
overflow: hidden;
}
.voice-walk-windowbar {
display: flex;
align-items: center;
gap: 5px;
border-bottom: 1px solid rgba(255, 255, 255, 0.12);
padding: 8px 10px;
}
.voice-walk-windowbar > span {
width: 9px;
height: 9px;
border-radius: 999px;
display: block;
}
.voice-walk-windowbar > span:nth-child(1) {
background: #f87171;
}
.voice-walk-windowbar > span:nth-child(2) {
background: #fbbf24;
}
.voice-walk-windowbar > span:nth-child(3) {
background: #4ade80;
}
.voice-walk-windowbar small {
margin-left: 4px;
color: rgba(235, 248, 238, 0.8);
font-family: 'IBM Plex Mono', monospace;
font-size: 10px;
}
.voice-walk-canvas {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 7px;
padding: 9px;
min-height: 156px;
}
.voice-walk-lane {
border-radius: 11px;
border: 1px solid rgba(184, 222, 193, 0.28);
background: linear-gradient(150deg, rgba(255, 255, 255, 0.08), rgba(205, 236, 230, 0.08));
padding: 8px;
display: grid;
gap: 6px;
align-content: start;
transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
}
.voice-walk-lane-index {
width: 18px;
height: 18px;
border-radius: 999px;
border: 1px solid rgba(223, 248, 232, 0.45);
background: rgba(255, 255, 255, 0.08);
color: rgba(225, 246, 235, 0.88);
font-size: 10px;
font-family: 'IBM Plex Mono', monospace;
display: grid;
place-items: center;
}
.voice-walk-lane-label {
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: rgba(214, 241, 226, 0.86);
}
.voice-walk-step-copy {
display: grid;
gap: 4px;
margin-top: 2px;
}
.voice-walk-step-copy strong {
font-size: 11px;
color: rgba(230, 248, 237, 0.96);
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.voice-walk-step-copy p {
margin: 0;
font-size: 11px;
line-height: 1.35;
color: rgba(214, 236, 223, 0.9);
}
.voice-walk-step-copy small {
font-size: 10px;
line-height: 1.35;
color: rgba(176, 213, 195, 0.92);
}
.voice-walk-wave {
display: flex;
align-items: end;
gap: 4px;
height: 54px;
}
.voice-walk-wave span {
width: 6px;
height: 18px;
border-radius: 999px;
background: linear-gradient(180deg, rgba(166, 237, 194, 0.95), rgba(66, 161, 106, 0.9));
animation: voice-walk-wave 1.1s ease-in-out infinite;
}
.voice-walk-mic {
width: 26px;
height: 26px;
border-radius: 999px;
border: 1px solid rgba(135, 224, 169, 0.56);
background: rgba(135, 224, 169, 0.22);
display: grid;
place-items: center;
}
.voice-walk-mic span {
width: 12px;
height: 12px;
border-radius: 999px;
background: rgba(135, 224, 169, 0.86);
animation: pulse 1.1s ease-in-out infinite;
}
.voice-walk-route-nodes {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
}
.voice-walk-route-nodes span {
min-height: 18px;
display: grid;
place-items: center;
padding: 2px 4px;
font-size: 9px;
line-height: 1.2;
color: rgba(209, 235, 249, 0.92);
border-radius: 7px;
border: 1px solid rgba(157, 202, 231, 0.3);
background: rgba(25, 54, 72, 0.66);
}
.voice-walk-route-flow {
height: 9px;
border-radius: 999px;
border: 1px solid rgba(136, 239, 175, 0.3);
background: rgba(21, 48, 33, 0.85);
overflow: hidden;
}
.voice-walk-route-flow span {
display: block;
height: 100%;
width: 44%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(136, 239, 175, 0.25), rgba(136, 239, 175, 0.9));
animation: voice-walk-flow 1.7s ease-in-out infinite;
}
.voice-walk-route-chips {
display: flex;
gap: 4px;
flex-wrap: wrap;
}
.voice-walk-route-chips span {
min-height: 14px;
padding: 2px 6px;
font-size: 9px;
line-height: 1.2;
color: rgba(197, 231, 247, 0.92);
border: 1px solid rgba(145, 216, 236, 0.36);
border-radius: 999px;
background: rgba(145, 216, 236, 0.18);
}
.voice-walk-card {
border-radius: 9px;
border: 1px solid rgba(174, 220, 185, 0.25);
background: rgba(34, 60, 43, 0.8);
padding: 7px;
display: grid;
gap: 6px;
}
.voice-walk-card-head strong {
font-size: 11px;
color: rgba(230, 248, 237, 0.96);
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.voice-walk-card-body {
margin: 0;
font-size: 10px;
line-height: 1.35;
color: rgba(208, 234, 219, 0.9);
}
.voice-walk-line {
height: 8px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(171, 228, 247, 0.33), rgba(217, 245, 228, 0.45), rgba(171, 228, 247, 0.33));
background-size: 160% 100%;
animation: chat-demo-shimmer 1.8s linear infinite;
}
.voice-walk-line.lg {
width: 94%;
}
.voice-walk-line.md {
width: 72%;
}
.voice-walk-line.sm {
width: 50%;
}
.voice-walk-chip-row {
display: flex;
gap: 4px;
flex-wrap: wrap;
}
.voice-walk-chip-row span {
border: 1px solid rgba(145, 216, 236, 0.36);
padding: 2px 6px;
font-size: 9px;
color: rgba(197, 231, 247, 0.92);
line-height: 1.25;
border-radius: 999px;
background: rgba(140, 214, 255, 0.18);
}
.voice-walk-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 4px;
}
.voice-walk-grid span {
min-height: 36px;
display: grid;
align-content: center;
justify-items: center;
gap: 2px;
padding: 3px;
border-radius: 7px;
background: rgba(191, 245, 208, 0.24);
border: 1px solid rgba(191, 245, 208, 0.3);
}
.voice-walk-grid span small {
font-size: 8px;
color: rgba(205, 238, 217, 0.86);
}
.voice-walk-grid span strong {
font-size: 10px;
color: rgba(230, 249, 237, 0.95);
}
.voice-walk-card-note {
margin: 0;
font-size: 9px;
line-height: 1.3;
color: rgba(176, 213, 195, 0.92);
}
.voice-walk-frame[data-scene='listen'] .voice-walk-lane.listen,
.voice-walk-frame[data-scene='route'] .voice-walk-lane.route,
.voice-walk-frame[data-scene='cards'] .voice-walk-lane.cards {
border-color: rgba(136, 239, 175, 0.58);
transform: translateY(-2px);
box-shadow: 0 0 0 1px rgba(136, 239, 175, 0.22);
}
.voice-walk-meta {
display: grid;
gap: 7px;
}
.voice-walk-caption {
margin: 0;
font-size: 11px;
color: var(--text-soft);
text-align: center;
}
.voice-walk-progress-track {
height: 7px;
border-radius: 999px;
border: 1px solid rgba(31, 143, 78, 0.26);
background: rgba(255, 255, 255, 0.66);
overflow: hidden;
}
.voice-walk-progress-track span {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, rgba(31, 143, 78, 0.9), rgba(15, 109, 139, 0.9));
transition: width 120ms linear;
}
.voice-walk-scene-dots {
display: flex;
justify-content: center;
gap: 6px;
}
.voice-walk-scene-dot {
width: 20px;
height: 20px;
padding: 0;
border-radius: 999px;
border: 1px solid rgba(15, 109, 139, 0.25);
background: rgba(15, 109, 139, 0.08);
display: grid;
place-items: center;
cursor: pointer;
}
.voice-walk-scene-dot span {
width: 6px;
height: 6px;
border-radius: 999px;
background: #589db6;
}
.voice-walk-scene-dot.active {
border-color: rgba(31, 143, 78, 0.45);
background: rgba(31, 143, 78, 0.16);
}
.voice-walk-scene-dot.active span {
background: #1f8f4e;
}
.voice-walk-scene-dot.complete {
border-color: rgba(31, 143, 78, 0.25);
background: rgba(31, 143, 78, 0.08);
}
.voice-walk-scene-dot.complete span {
background: #2f9b5b;
}
.voice-walk-collapsed {
border-radius: 14px;
border: 1px dashed rgba(31, 143, 78, 0.35);
background: rgba(244, 252, 247, 0.86);
padding: 10px 12px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.voice-walk-mini-markers {
display: flex;
gap: 4px;
}
.voice-walk-mini-markers span {
width: 8px;
height: 8px;
border-radius: 999px;
background: rgba(31, 143, 78, 0.35);
}
.voice-walk-collapsed p {
margin: 0;
color: var(--text-soft);
font-size: 12px;
}
.voice-launcher-wrap {
margin: auto;
width: min(420px, 100%);
display: grid;
place-items: center;
}
.voice-launcher-btn {
width: 100%;
border: 1px solid rgba(31, 143, 78, 0.32);
border-radius: 18px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(226, 244, 232, 0.94));
color: var(--text);
padding: 16px;
display: flex;
gap: 12px;
align-items: center;
cursor: pointer;
box-shadow: 0 16px 34px rgba(20, 84, 45, 0.15);
transition: 140ms transform ease;
}
.voice-launcher-btn:hover {
transform: translateY(-1px);
}
.voice-launcher-ring {
width: 42px;
height: 42px;
border-radius: 999px;
background: radial-gradient(circle at 35% 30%, #4fc27f, #1f8f4e 65%);
box-shadow: 0 0 0 8px rgba(79, 194, 127, 0.2);
animation: pulse 1.8s ease infinite;
}
.voice-launcher-text strong {
display: block;
font-size: 14px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.voice-launcher-text small {
display: block;
font-size: 12px;
color: var(--text-soft);
margin-top: 2px;
}
.voice-dialog {
width: 100%;
min-height: 0;
border: 1px solid rgba(31, 143, 78, 0.22);
border-radius: 18px;
background: linear-gradient(155deg, rgba(255, 255, 255, 0.95), rgba(235, 248, 240, 0.84));
display: flex;
flex-direction: column;
overflow: hidden;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), 0 20px 38px rgba(21, 75, 44, 0.13);
}
.voice-dialog-header {
padding: 14px;
display: flex;
align-items: start;
justify-content: space-between;
border-bottom: 1px solid rgba(31, 143, 78, 0.16);
}
.voice-dialog-header h3 {
margin: 0;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: 15px;
}
.voice-status-chip {
margin-top: 6px;
font-size: 11px;
border-radius: 999px;
border: 1px solid rgba(15, 109, 139, 0.25);
background: rgba(15, 109, 139, 0.08);
color: #0f5a73;
padding: 4px 9px;
display: inline-flex;
}
.voice-close-btn {
border: 1px solid var(--line);
border-radius: 999px;
background: rgba(255, 255, 255, 0.78);
padding: 6px 12px;
font-size: 12px;
cursor: pointer;
}
.voice-thread-shell {
flex: 1;
min-height: 0;
position: relative;
padding: 10px 12px 12px;
}
.voice-thread {
height: 100%;
min-height: 0;
overflow: auto;
border: 1px solid rgba(31, 143, 78, 0.16);
border-radius: 14px;
background: rgba(255, 255, 255, 0.7);
padding: 10px;
display: grid;
align-content: start;
gap: 8px;
}
.voice-empty-hint {
margin: 0;
color: var(--text-soft);
font-size: 12px;
}
.voice-entry {
border-radius: 12px;
border: 1px solid var(--line);
padding: 10px;
background: rgba(255, 255, 255, 0.85);
}
.voice-entry header {
display: flex;
justify-content: space-between;
align-items: center;
text-transform: uppercase;
letter-spacing: 0.06em;
font-size: 10px;
color: var(--text-soft);
margin-bottom: 6px;
}
.voice-entry p {
margin: 0;
font-size: 13px;
line-height: 1.45;
}
.voice-entry.user {
border-color: rgba(15, 109, 139, 0.3);
background: rgba(220, 242, 250, 0.72);
}
.voice-entry.system {
border-style: dashed;
background: rgba(233, 247, 236, 0.76);
}
.voice-tool-card {
margin-top: 8px;
border-radius: 12px;
padding: 10px;
border: 1px solid rgba(31, 143, 78, 0.22);
background: rgba(255, 255, 255, 0.9);
}
.voice-tool-card header h4 {
margin: 0;
font-size: 13px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.voice-tool-card header p {
margin: 5px 0 0;
color: var(--text-soft);
font-size: 12px;
}
.voice-tool-card.toolkit ul {
margin: 8px 0 0;
padding: 0 0 0 16px;
}
.voice-tool-card.toolkit li {
margin-bottom: 4px;
font-size: 12px;
}
.voice-product-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
margin-top: 8px;
}
.voice-product-grid span {
display: block;
font-size: 10px;
color: var(--text-soft);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.voice-product-grid strong {
font-size: 13px;
}
.voice-stats-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 7px;
margin-top: 8px;
}
.voice-stats-grid article {
border: 1px solid var(--line);
border-radius: 10px;
padding: 7px;
background: rgba(255, 255, 255, 0.86);
}
.voice-stats-grid span {
display: block;
font-size: 10px;
color: var(--text-soft);
}
.voice-stats-grid strong {
font-size: 13px;
}
.voice-action-row {
margin-top: 9px;
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.voice-action-row button {
border: 1px solid rgba(15, 109, 139, 0.28);
border-radius: 999px;
background: rgba(15, 109, 139, 0.08);
color: #0f5c77;
padding: 4px 8px;
font-size: 11px;
cursor: pointer;
}
.voice-activity-overlay {
position: absolute;
inset: 10px 12px 12px;
border-radius: 14px;
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(3px);
display: grid;
place-content: center;
text-align: center;
pointer-events: none;
}
.voice-activity-overlay h4 {
margin: 11px 0 0;
font-size: 15px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
}
.voice-activity-overlay p {
margin: 4px 0 0;
font-size: 12px;
color: var(--text-soft);
}
.voice-activity-overlay.listening h4 {
color: #145d36;
}
.voice-activity-overlay.thinking h4 {
color: #98600d;
}
.voice-activity-orb {
width: 94px;
height: 94px;
border-radius: 999px;
margin: 0 auto;
display: grid;
place-items: center;
position: relative;
background: radial-gradient(circle at 30% 30%, rgba(79, 194, 127, 0.35), rgba(15, 109, 139, 0.2));
}
.voice-activity-orb span {
position: absolute;
border-radius: 999px;
border: 1px solid rgba(31, 143, 78, 0.35);
}
.voice-activity-orb span:nth-child(1) {
inset: 4px;
animation: spin 3.3s linear infinite;
}
.voice-activity-orb span:nth-child(2) {
inset: 14px;
animation: spin 2.1s linear infinite reverse;
}
.voice-activity-orb span:nth-child(3) {
inset: 26px;
background: rgba(31, 143, 78, 0.68);
border: 0;
animation: pulse 0.95s ease infinite;
}
.voice-footer {
border-top: 1px solid rgba(31, 143, 78, 0.16);
padding: 12px;
display: grid;
gap: 10px;
justify-items: center;
}
.voice-footer-actions {
width: 100%;
display: flex;
gap: 8px;
justify-content: center;
flex-wrap: wrap;
}
.voice-mic-shell {
position: relative;
width: 84px;
height: 84px;
display: grid;
place-items: center;
}
.voice-mic-glow {
position: absolute;
width: 72px;
height: 72px;
border-radius: 999px;
background: rgba(79, 194, 127, 0.45);
filter: blur(14px);
transition: transform 120ms linear;
}
.voice-mic-btn {
width: 64px;
height: 64px;
border-radius: 999px;
border: 1px solid rgba(31, 143, 78, 0.35);
background: linear-gradient(155deg, rgba(255, 255, 255, 0.96), rgba(224, 245, 233, 0.96));
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: 12px;
color: #165e37;
cursor: pointer;
}
.voice-mic-btn.recording {
border-color: rgba(166, 54, 24, 0.45);
color: #91361d;
background: linear-gradient(155deg, rgba(255, 243, 240, 0.98), rgba(255, 228, 222, 0.95));
}
textarea {
resize: vertical;
min-height: 74px;
max-height: 180px;
padding: 10px;
}
.composer-actions {
display: flex;
justify-content: space-between;
gap: 10px;
}
.primary-btn,
.ghost-btn {
border-radius: 999px;
padding: 8px 14px;
font-family: 'Sora', 'IBM Plex Sans', sans-serif;
font-size: 12px;
border: 1px solid transparent;
cursor: pointer;
}
.primary-btn {
background: linear-gradient(135deg, #1f8f4e, #167d99);
color: #f8fff8;
min-width: 120px;
}
.primary-btn:disabled {
cursor: not-allowed;
opacity: 0.55;
}
.ghost-btn {
background: rgba(255, 255, 255, 0.8);
border-color: var(--line);
color: var(--text);
}
.trace-panel {
display: flex;
flex-direction: column;
min-height: 0;
}
.trace-list {
list-style: none;
margin: 0;
padding: 0 12px 12px;
overflow: auto;
display: grid;
gap: 8px;
}
.trace-list li {
border-radius: 12px;
border: 1px solid var(--line);
padding: 10px;
background: rgba(255, 255, 255, 0.8);
}
.trace-list li header {
display: grid;
grid-template-columns: auto 1fr auto;
gap: 8px;
align-items: baseline;
}
.trace-list .kind {
text-transform: uppercase;
font-size: 10px;
letter-spacing: 0.07em;
color: var(--text-soft);
}
.trace-list strong {
font-size: 12px;
}
.trace-list time {
font-family: 'IBM Plex Mono', monospace;
font-size: 10px;
color: var(--text-soft);
}
.trace-list p {
margin: 6px 0;
font-size: 12px;
color: var(--text-soft);
}
.trace-list details summary {
cursor: pointer;
font-size: 11px;
color: var(--accent-2);
}
.trace-list pre {
margin: 8px 0 0;
background: rgba(16, 26, 19, 0.88);
color: #d8f7d4;
border-radius: 8px;
padding: 9px;
overflow: auto;
font-size: 11px;
font-family: 'IBM Plex Mono', monospace;
}
.trace-running {
border-color: rgba(202, 122, 18, 0.35);
}
.trace-ok {
border-color: rgba(31, 143, 78, 0.25);
}
.trace-error {
border-color: rgba(166, 54, 24, 0.35);
}
.trace-empty {
padding: 14px;
color: var(--text-soft);
font-size: 12px;
}
.mobile-only {
display: none;
}
@media (max-width: 1200px) {
.tab-row {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.marketing-studio-layout {
grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
}
.invoice-demo-layout {
grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
}
.marketplace-demo-layout {
grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
}
}
@media (max-width: 1060px) {
.workspace,
.trace-hidden .workspace {
grid-template-columns: minmax(0, 1fr);
}
.marketing-studio-layout {
grid-template-columns: minmax(0, 1fr);
}
.invoice-demo-layout {
grid-template-columns: minmax(0, 1fr);
}
.marketplace-demo-layout {
grid-template-columns: minmax(0, 1fr);
}
.controls-panel,
.trace-panel {
position: fixed;
left: 12px;
right: 12px;
z-index: 12;
max-height: 65vh;
overflow: auto;
transform: translateY(110%);
transition: transform 180ms ease;
}
.controls-panel {
bottom: 12px;
}
.trace-panel {
bottom: 12px;
}
.controls-open .controls-panel {
transform: translateY(0);
}
.trace-open:not(.controls-open) .trace-panel {
transform: translateY(0);
}
.mobile-only {
display: inline-flex;
}
}
@media (max-width: 820px) {
.demo-root {
padding: 12px;
}
.tab-row {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.composer-actions {
flex-direction: column;
align-items: stretch;
}
.chat-demo-video,
.chat-demo-collapsed {
margin: 8px;
}
.chat-demo-canvas {
grid-template-columns: minmax(0, 1fr);
min-height: auto;
}
.chat-demo-head-actions {
width: 100%;
}
.chat-demo-cursor {
display: none;
}
.voice-demo-root {
padding: 8px 6px;
}
.voice-walk-canvas {
grid-template-columns: minmax(0, 1fr);
min-height: auto;
}
.voice-walk-actions {
width: 100%;
justify-content: flex-end;
}
.voice-dialog-header {
padding: 12px;
}
.voice-thread-shell {
padding: 8px;
}
.voice-stats-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.marketing-walk-canvas,
.invoice-walk-canvas,
.market-walk-canvas {
grid-template-columns: minmax(0, 1fr);
min-height: auto;
}
.marketing-walk-actions,
.invoice-walk-actions,
.market-walk-actions {
width: 100%;
justify-content: flex-end;
}
.marketing-studio-root {
padding: 8px 6px;
gap: 8px;
}
.marketing-studio-header {
padding: 10px 11px;
}
.marketing-studio-layout {
grid-template-columns: minmax(0, 1fr);
}
.marketing-config-row,
.marketing-deck-grid,
.marketing-image-grid,
.marketing-meta-card dl {
grid-template-columns: minmax(0, 1fr);
}
.invoice-demo-root {
padding: 8px 6px;
gap: 8px;
}
.invoice-demo-header {
padding: 10px 11px;
}
.invoice-metric-grid,
.invoice-preview-grid,
.invoice-meta-card dl {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.marketplace-demo-root {
padding: 8px 6px;
gap: 8px;
}
.marketplace-demo-header {
padding: 10px 11px;
}
.marketplace-filter-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.marketplace-stat-grid,
.marketplace-card-grid,
.marketplace-meta-card dl {
grid-template-columns: minmax(0, 1fr);
}
}
@media (max-width: 620px) {
.chat-demo-collapsed {
flex-direction: column;
align-items: stretch;
}
.chat-demo-head-actions {
display: grid;
width: 100%;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.marketing-walk-collapsed,
.invoice-walk-collapsed,
.market-walk-collapsed {
flex-direction: column;
align-items: stretch;
}
.marketing-walk-actions,
.invoice-walk-actions,
.market-walk-actions {
display: grid;
width: 100%;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.voice-walk-collapsed {
flex-direction: column;
align-items: stretch;
}
.voice-walk-actions {
display: grid;
width: 100%;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.invoice-metric-grid,
.invoice-preview-grid,
.invoice-meta-card dl {
grid-template-columns: minmax(0, 1fr);
}
.marketplace-filter-grid {
grid-template-columns: minmax(0, 1fr);
}
}
@media (prefers-reduced-motion: reduce) {
.chat-demo-cursor,
.chat-demo-prompt-bubble::after,
.chat-demo-line,
.chat-demo-flow span,
.chat-demo-action-dot,
.voice-walk-wave span,
.voice-walk-route-flow span,
.voice-walk-mic span,
.voice-walk-line,
.marketing-walk-line,
.marketing-walk-stream-pill,
.invoice-walk-line,
.invoice-walk-stream-pill,
.invoice-walk-ocr-flow span,
.market-walk-line,
.market-walk-stream-pill,
.market-walk-rank-flow span {
animation: none;
}
}
@keyframes pulse {
0%,
100% {
opacity: 0.4;
transform: translateY(0);
}
50% {
opacity: 1;
transform: translateY(-2px);
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes fade-up {
from {
opacity: 0;
transform: translateY(6px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes float {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(9px);
}
}
@keyframes slide-in {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes chat-demo-type {
0%,
100% {
transform: scaleX(0.24);
opacity: 0.6;
}
50% {
transform: scaleX(1);
opacity: 1;
}
}
@keyframes chat-demo-shimmer {
0%,
100% {
background-position: 0% 0%;
}
50% {
background-position: 100% 0%;
}
}
@keyframes chat-demo-cursor-path {
0%,
18% {
left: 14%;
top: 22%;
}
28%,
50% {
left: 48%;
top: 34%;
}
62%,
82% {
left: 81%;
top: 42%;
}
100% {
left: 14%;
top: 22%;
}
}
@keyframes voice-walk-wave {
0%,
100% {
height: 16px;
opacity: 0.5;
}
50% {
height: 52px;
opacity: 1;
}
}
@keyframes voice-walk-flow {
0% {
transform: translateX(-90%);
opacity: 0.5;
}
50% {
transform: translateX(30%);
opacity: 1;
}
100% {
transform: translateX(120%);
opacity: 0.4;
}
}
@keyframes invoice-walk-flow {
0% {
transform: translateX(-90%);
opacity: 0.5;
}
50% {
transform: translateX(30%);
opacity: 1;
}
100% {
transform: translateX(120%);
opacity: 0.4;
}
}
@keyframes market-walk-flow {
0% {
transform: translateX(-90%);
opacity: 0.5;
}
50% {
transform: translateX(30%);
opacity: 1;
}
100% {
transform: translateX(120%);
opacity: 0.4;
}
}