diff --git a/frontend/src/style.css b/frontend/src/style.css index ca086b3..204e4ca 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -1,244 +1,156 @@ :root { - color-scheme: dark; + color: #172033; + background: #f5f7fb; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; - background: #090909; - color: #f5f5f5; + line-height: 1.5; } -* { - box-sizing: border-box; -} - -body { - margin: 0; - min-height: 100vh; - background: #090909; -} - -button, -textarea { - font: inherit; -} - -button { - cursor: pointer; -} +* { box-sizing: border-box; } +body { margin: 0; min-width: 320px; } +button, input, textarea { font: inherit; } +button, a { transition: 0.18s ease; } .loading { min-height: 100vh; display: grid; place-items: center; - color: #b8b8b8; + color: #526070; } -.app-shell { - min-height: 100vh; +.product-shell { + width: min(1180px, calc(100% - 32px)); + margin: 0 auto; + padding: 32px 0 56px; +} + +.hero { display: grid; - grid-template-columns: minmax(260px, 340px) 1fr; + grid-template-columns: minmax(0, 1fr) 320px; + gap: 24px; + align-items: stretch; + margin-bottom: 24px; } -.sidebar { - min-height: 100vh; - border-right: 1px solid #222; - background: #0d0d0d; - padding: 28px; - display: grid; - align-content: start; - gap: 28px; +.hero > div:first-child, .session-card, .builder-card, .result-card, .history-card { + background: rgba(255, 255, 255, 0.92); + border: 1px solid #dfe7f2; + border-radius: 24px; + box-shadow: 0 18px 50px rgba(31, 46, 78, 0.08); } -.eyebrow { - margin: 0 0 10px; - color: #8bd8c6; - font-size: 12px; - letter-spacing: 0; - text-transform: uppercase; -} +.hero > div:first-child { padding: 34px; } +.hero h1 { font-size: clamp(2rem, 4vw, 4rem); line-height: 1.02; margin: 8px 0 16px; letter-spacing: -0.05em; } +.hero p { color: #526070; font-size: 1.05rem; max-width: 760px; } +.eyebrow { margin: 0; color: #4f46e5; text-transform: uppercase; font-size: 0.78rem; letter-spacing: 0.13em; font-weight: 800; } -h1, -h2, -h3, -p { - margin-top: 0; -} - -h1 { - margin-bottom: 10px; - font-size: clamp(32px, 5vw, 56px); - line-height: 0.95; - letter-spacing: 0; -} - -h2 { - margin-bottom: 0; - font-size: 30px; - letter-spacing: 0; -} - -h3 { - margin-bottom: 12px; - color: #d7d7d7; - font-size: 14px; - letter-spacing: 0; -} - -.agent-meta { - margin-bottom: 0; - color: #a6a6a6; -} - -.skill-list { - display: grid; - gap: 10px; -} - -.skill { - width: 100%; - min-height: 58px; - border: 1px solid #252525; - border-radius: 8px; - background: #121212; - color: #f3f3f3; - padding: 12px 14px; +.session-card { + padding: 24px; display: flex; + flex-direction: column; + justify-content: center; + gap: 8px; +} +.session-card span { color: #64748b; font-size: 0.9rem; } +.session-card strong { word-break: break-word; } +.session-card a, button { + border: 0; + border-radius: 14px; + background: #4f46e5; + color: white; + text-decoration: none; + font-weight: 800; + padding: 12px 16px; + cursor: pointer; + text-align: center; +} +button:hover, .session-card a:hover { background: #4338ca; transform: translateY(-1px); } +button:disabled { background: #a5b4fc; cursor: not-allowed; transform: none; } + +.grid { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(360px, 0.8fr); + gap: 24px; +} + +.builder-card, .result-card, .history-card { padding: 24px; } +.field { display: grid; gap: 8px; margin-bottom: 18px; } +label { font-weight: 800; color: #24324a; } +input[type="text"], input:not([type]), textarea, .schema-input { + width: 100%; + border: 1px solid #cad5e2; + border-radius: 16px; + background: #fbfdff; + color: #111827; + padding: 12px 14px; +} +input[type="file"] { border: 1px dashed #9aa8bd; padding: 18px; border-radius: 16px; width: 100%; background: #fbfdff; } +small { color: #64748b; } +.schema-input { min-height: 330px; resize: vertical; font-family: "SFMono-Regular", Consolas, monospace; font-size: 0.92rem; } +.builder-card button { width: 100%; margin-top: 4px; } + +.alert { + border-radius: 16px; + background: #eef2ff; + color: #3730a3; + padding: 12px 14px; + margin: 12px 0; + font-weight: 650; +} +.alert.error { background: #fef2f2; color: #b91c1c; } + +.card-header { + display: flex; + gap: 16px; align-items: center; justify-content: space-between; - gap: 16px; - text-align: left; + margin-bottom: 18px; } +.card-header h2 { margin: 4px 0 0; } +.card-header button { background: #0f172a; padding: 10px 13px; font-size: 0.9rem; } -.skill:hover, -.skill.active { - border-color: #5bb7a7; - background: #15201d; +.result-body dl { + display: grid; + gap: 10px; + margin: 0 0 22px; } - -.skill span { - overflow-wrap: anywhere; +dl div { + display: grid; + grid-template-columns: 120px 1fr; + gap: 10px; + padding: 10px 0; + border-bottom: 1px solid #e5edf6; } +dt { color: #64748b; font-weight: 800; } +dd { margin: 0; word-break: break-word; } -.skill small { - color: #9d9d9d; +.mapping-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; } +.mapping-list li { + display: flex; + justify-content: space-between; + gap: 12px; + padding: 12px; + background: #f8fafc; + border: 1px solid #e5edf6; + border-radius: 14px; } +.mapping-list span { color: #64748b; } +.empty { color: #64748b; } -.session { - border: 1px solid #252525; - border-radius: 8px; - padding: 14px; - color: #a6a6a6; +.history-card { margin-top: 24px; } +.receipt-list { display: grid; gap: 10px; } +.receipt-list article { display: grid; gap: 4px; -} - -.session strong { - color: #f3f3f3; - overflow-wrap: anywhere; -} - -.workbench { - padding: 28px; - display: grid; - align-content: start; - gap: 22px; -} - -.toolbar { - display: flex; - align-items: center; - justify-content: space-between; - gap: 18px; -} - -.toolbar a, -.runner button { - border: 1px solid #e8e8e8; - border-radius: 7px; - background: #f4f4f4; - color: #111; - padding: 10px 14px; - text-decoration: none; - white-space: nowrap; -} - -.runner { - display: grid; - gap: 12px; -} - -.runner label { - display: grid; - gap: 10px; - color: #d7d7d7; -} - -.runner textarea { - width: 100%; - min-height: 170px; - resize: vertical; - border: 1px solid #252525; - border-radius: 8px; - background: #070707; - color: #eeeeee; + border: 1px solid #e5edf6; + border-radius: 14px; + background: #f8fafc; padding: 14px; - line-height: 1.5; - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; } +.receipt-list span { color: #334155; } -.runner button { - justify-self: start; -} - -.runner button:disabled { - cursor: wait; - opacity: 0.72; -} - -.panels { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 16px; -} - -.panel { - min-width: 0; - border: 1px solid #252525; - border-radius: 8px; - padding: 16px; - background: #0d0d0d; -} - -pre { - min-height: 260px; - max-height: 420px; - margin: 0; - overflow: auto; - color: #dcdcdc; - line-height: 1.5; - font-size: 13px; - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; -} - -.empty { - color: #aaa; -} - -@media (max-width: 820px) { - .app-shell { - grid-template-columns: 1fr; - } - - .sidebar { - min-height: auto; - border-right: 0; - border-bottom: 1px solid #222; - } - - .panels { - grid-template-columns: 1fr; - } - - .toolbar { - align-items: flex-start; - flex-direction: column; - } +@media (max-width: 900px) { + .hero, .grid { grid-template-columns: 1fr; } + .product-shell { width: min(100% - 20px, 760px); padding-top: 16px; } + .hero > div:first-child, .session-card, .builder-card, .result-card, .history-card { border-radius: 18px; padding: 20px; } + dl div { grid-template-columns: 1fr; gap: 2px; } }