:root { --bg: #f4f1ea; --surface: #fffdf8; --surface-2: #ebe5d9; --ink: #171717; --muted: #6f6a60; --line: #d8d0c2; --line-strong: #b9ad9c; --accent: #0f766e; --accent-strong: #115e59; --accent-soft: #d9f0eb; --warn: #a16207; --dark: #1f2421; --shadow: 0 18px 50px rgba(42, 38, 31, 0.08); --sans: "Aptos", "Segoe UI", ui-sans-serif, system-ui, -apple-system, sans-serif; --mono: "Cascadia Code", "JetBrains Mono", "SFMono-Regular", Consolas, monospace; color: var(--ink); background: var(--bg); font-family: var(--sans); } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; background: linear-gradient(180deg, rgba(255, 253, 248, 0.84), rgba(244, 241, 234, 0.96) 34rem), var(--bg); } button, input { font: inherit; } button { min-height: 42px; border: 1px solid var(--dark); border-radius: 8px; background: var(--dark); color: #fffdf8; font-weight: 750; cursor: pointer; transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease; } button:hover { transform: translateY(-1px); } button.secondary { background: transparent; color: var(--ink); border-color: var(--line-strong); } button.dark { background: var(--accent-strong); border-color: var(--accent-strong); } button:disabled { opacity: 0.55; cursor: not-allowed; } input { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 12px; color: var(--ink); background: #fff; outline: none; } input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14); } .page { max-width: 1240px; margin: 0 auto; padding: 20px 22px 42px; } .nav { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); margin-bottom: 30px; } .brand { display: flex; align-items: center; gap: 12px; } .brand span { display: block; font-size: 1rem; font-weight: 850; } .brand small { display: block; margin-top: 2px; color: var(--muted); font-family: var(--mono); font-size: 0.72rem; } .brandMark { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--dark); border-radius: 9px; color: #fffdf8; background: var(--dark); font-family: var(--mono); font-weight: 900; } .navPills { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; } .navPills span, .eyebrow { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 999px; padding: 7px 10px; background: rgba(255, 253, 248, 0.8); color: var(--muted); font-family: var(--mono); font-size: 0.72rem; font-weight: 650; } .eyebrow span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); } .workspaceHeader { display: grid; grid-template-columns: minmax(0, 1fr) minmax(430px, 0.95fr); gap: 24px; align-items: end; margin-bottom: 18px; } .titleBlock h1 { margin: 14px 0 10px; max-width: 720px; font-size: clamp(2.2rem, 4.8vw, 4.25rem); line-height: 0.98; letter-spacing: 0; font-weight: 880; } .titleBlock p, .panel p, .workspace p, .accountCard p, footer { color: var(--muted); line-height: 1.55; font-size: 0.98rem; } .topGrid { display: grid; grid-template-columns: minmax(340px, 0.8fr) minmax(0, 1.2fr); gap: 14px; margin: 18px 0; } .accountCard, .panel, .workspace, .resultCard, .sessionNotice, .jobCard { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); } .accountCard, .panel, .workspace { padding: 20px; } .accountCard form, .panel form { display: grid; gap: 11px; } .accountSignedIn { display: flex; align-items: center; justify-content: space-between; gap: 14px; } .accountSignedIn h2 { margin-bottom: 2px; } .tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .tabs button { background: transparent; color: var(--muted); border: 1px solid var(--line); box-shadow: none; } .tabs button.active { color: #fffdf8; background: var(--dark); border-color: var(--dark); } .kicker { color: var(--accent-strong); text-transform: uppercase; font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0; font-weight: 900; } .sectionHead { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; } .sectionHead h2, .panel h2, .accountCard h2, .resultsHead h2 { margin: 7px 0 4px; font-size: 1.2rem; font-weight: 820; } .notice, .busy { border-radius: 8px; padding: 12px 14px; margin: 14px 0; font-weight: 700; } .notice { border: 1px solid #9dc9c0; background: #edf8f5; color: #115e59; } .notice.danger { border-color: #efc4b3; background: #fff4ef; color: #9f3412; } .busy { border: 1px solid #d6c38e; color: var(--warn); background: #fff9e8; } .sessionNotice { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; box-shadow: none; } .sessionNotice p { margin: 4px 0 0; color: var(--muted); } .sessionNotice strong { color: var(--ink); font-family: var(--mono); } .sessionNotice button { min-width: 126px; } .metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow); } .metric { min-height: 92px; padding: 16px; border-right: 1px solid var(--line); } .metric:last-child { border-right: 0; } .metric span { display: block; color: var(--muted); font-size: 0.78rem; } .metric strong { display: block; margin-top: 8px; font-family: var(--mono); font-size: 1.2rem; } .jobCard { padding: 16px; margin: 14px 0; box-shadow: none; } .jobCard.completed { border-color: #9dc9a8; } .jobCard.failed { border-color: #efc4b3; } .jobTop { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; } .jobTop h2 { margin: 6px 0 4px; } .jobTop p { margin: 0; color: var(--muted); } .jobTop strong { color: var(--accent-strong); font-family: var(--mono); font-size: 1.1rem; } .progressTrack { height: 8px; border-radius: 999px; background: var(--surface-2); overflow: hidden; margin: 14px 0 10px; } .progressTrack div { height: 100%; border-radius: inherit; background: var(--accent); transition: width 0.25s ease; } .jobMeta { display: flex; flex-wrap: wrap; gap: 8px; } .jobMeta span { border: 1px solid var(--line); border-radius: 999px; color: var(--muted); padding: 5px 9px; font-size: 0.78rem; font-weight: 700; } .jobError { margin-top: 12px; color: #9f3412; background: #fff4ef; border: 1px solid #efc4b3; border-radius: 8px; padding: 12px; } .workspace { margin: 18px 0; } .indexGrid, .queryGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } .panel label { display: grid; gap: 8px; color: var(--ink); font-size: 0.88rem; font-weight: 780; } .queryGrid { align-items: start; margin-top: 18px; } .searchForm, .chatForm { margin-top: 14px; } .controls { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } .controls label { grid-template-columns: 1fr; } input[type="range"] { min-height: auto; padding: 0; accent-color: var(--accent); box-shadow: none; } .resultsHead { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 24px 0 12px; } .resultsHead > span { color: var(--muted); font-family: var(--mono); font-size: 0.78rem; } .results { display: grid; gap: 12px; margin: 0 0 20px; } .resultCard { padding: 18px; box-shadow: none; } .resultTop { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 14px; } .resultTop h3 { margin: 0 0 4px; font-weight: 820; } .resultTop p { margin: 0; color: var(--muted); } .resultTop a { color: var(--accent-strong); font-weight: 800; text-decoration: none; } .excerpt { border-left: 3px solid var(--accent); background: #faf7f0; padding: 12px 14px; margin-top: 10px; } .excerpt span { display: block; color: var(--muted); font-size: 0.78rem; font-family: var(--mono); font-weight: 700; margin-bottom: 8px; } .excerpt p { margin: 0; white-space: pre-wrap; } .answer { margin-top: 14px; border-radius: 8px; background: #faf7f0; border: 1px solid var(--line); padding: 14px; line-height: 1.65; white-space: pre-wrap; } .answerTop { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; } .answerTop span { border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px; color: var(--muted); background: var(--surface); font-family: var(--mono); font-size: 0.72rem; } .groundedBadge.grounded { border-color: #8fbc9b; color: #166534; background: #eef8ef; } .groundedBadge.partially_grounded { border-color: #d6c38e; color: #854d0e; background: #fff9e8; } .groundedBadge.insufficient_evidence { border-color: #efc4b3; color: #9f3412; background: #fff4ef; } .answer > p { margin: 0; } .citations, .unsupportedClaims { display: grid; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); } .citation { border-left: 3px solid var(--line-strong); padding-left: 10px; } .citation strong { display: block; margin-bottom: 4px; font-size: 0.86rem; } .citation p { margin: 0; color: var(--muted); font-size: 0.92rem; } .unsupportedClaims ul { margin: 0; padding-left: 18px; color: var(--muted); } footer { margin-top: 26px; color: var(--muted); font-family: var(--mono); font-size: 0.76rem; } @media (max-width: 960px) { .workspaceHeader, .topGrid, .indexGrid, .queryGrid, .controls { grid-template-columns: 1fr; } .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .metric:nth-child(2) { border-right: 0; } .metric:nth-child(-n + 2) { border-bottom: 1px solid var(--line); } } @media (max-width: 680px) { .page { padding: 16px 14px 34px; } .nav { align-items: flex-start; flex-direction: column; padding-bottom: 14px; margin-bottom: 24px; } .navPills { justify-content: flex-start; } .titleBlock h1 { font-size: 2.45rem; } .metrics { grid-template-columns: 1fr; } .metric { border-right: 0; border-bottom: 1px solid var(--line); } .metric:last-child { border-bottom: 0; } .accountSignedIn, .sessionNotice, .resultTop { align-items: stretch; flex-direction: column; } }