Download frontend/src/style.css from finerobotics/annotation-studio: direct link, hf CLI and curl.
- Browser
- Download file 46.5 kB
-
https://huggingface.co/spaces/finerobotics/annotation-studio/resolve/main/frontend/src/style.css
- Command line
-
hf download hf://spaces/finerobotics/annotation-studio/frontend/src/style.css
-
curl -L -o style.css https://huggingface.co/spaces/finerobotics/annotation-studio/resolve/main/frontend/src/style.css
46.5 kB
| /* Surface and annotation-color tokens adapted from LeRobot Dataset Visualizer. | |
| See THIRD_PARTY.md and VISUALIZER-LICENSE. Layout and components are new. */ | |
| :root { | |
| font-family: | |
| Inter, | |
| -apple-system, | |
| BlinkMacSystemFont, | |
| "Segoe UI", | |
| sans-serif; | |
| color: var(--fg); | |
| background: var(--bg); | |
| font-synthesis: none; | |
| text-rendering: optimizeLegibility; | |
| -webkit-font-smoothing: antialiased; | |
| --bg: #f8f9fb; | |
| --surface-0: #fff; | |
| --surface-1: #f9fafb; | |
| --surface-2: #f3f4f6; | |
| --fg: #111827; | |
| --fg-soft: #374151; | |
| --fg-muted: #6b7280; | |
| --fg-faint: #788293; | |
| --line: #e5e7eb; | |
| --line-subtle: #f0f2f5; | |
| --line-strong: #d1d5db; | |
| --accent: #e6af13; | |
| --accent-fill: #fffbeb; | |
| --primary: #19212f; | |
| --primary-fg: #fff; | |
| --green: #15805e; | |
| --shadow: 0 2px 3px #11182702, 0 1px 2px #11182703; | |
| color-scheme: light; | |
| } | |
| :root.dark { | |
| color-scheme: dark; | |
| --bg: #0b0f19; | |
| --surface-0: #101623; | |
| --surface-1: #141c2e; | |
| --surface-2: #1b2536; | |
| --fg: #e5e7eb; | |
| --fg-soft: #d1d5db; | |
| --fg-muted: #9ca3af; | |
| --fg-faint: #778399; | |
| --line: #263143; | |
| --line-subtle: #202a3a; | |
| --line-strong: #3a485c; | |
| --accent: #e7b433; | |
| --accent-fill: #302813; | |
| --primary: #ffd76f; | |
| --primary-fg: #171b23; | |
| --green: #64d7ac; | |
| --shadow: none; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| } | |
| button, | |
| input, | |
| select { | |
| font: inherit; | |
| } | |
| button, | |
| a, | |
| input, | |
| select { | |
| outline-offset: 4px; | |
| } | |
| button:focus-visible, | |
| a:focus-visible, | |
| input:focus-visible, | |
| select:focus-visible { | |
| outline: 2px solid #66aafc; | |
| } | |
| button, | |
| a { | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| button { | |
| cursor: pointer; | |
| } | |
| a { | |
| color: inherit; | |
| text-decoration: none; | |
| } | |
| button { | |
| color: inherit; | |
| } | |
| button:disabled { | |
| opacity: 0.48; | |
| cursor: not-allowed; | |
| } | |
| svg { | |
| flex-shrink: 0; | |
| } | |
| h1, | |
| h2, | |
| p { | |
| margin: 0; | |
| } | |
| input, | |
| select { | |
| width: 100%; | |
| height: 41px; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 7px; | |
| padding: 0 12px; | |
| background: var(--surface-0); | |
| color: var(--fg); | |
| font-size: 13px; | |
| transition: border-color 0.15s; | |
| } | |
| input:hover, | |
| select:hover { | |
| border-color: var(--fg-faint); | |
| } | |
| input:focus, | |
| select:focus { | |
| border-color: #b7a348; | |
| box-shadow: 0 0 0 3px #e6af1313; | |
| } | |
| input::placeholder { | |
| color: var(--fg-faint); | |
| } | |
| input[type="checkbox"], | |
| input[type="radio"] { | |
| accent-color: #ce9d11; | |
| width: 16px; | |
| height: 16px; | |
| flex-shrink: 0; | |
| padding: 0; | |
| box-shadow: none; | |
| } | |
| button { | |
| border: 0; | |
| background: none; | |
| } | |
| code { | |
| font-family: "SFMono-Regular", Consolas, monospace; | |
| font-size: 0.9em; | |
| } | |
| small { | |
| font-size: 13px; | |
| } | |
| .app-shell { | |
| min-height: 100vh; | |
| } | |
| .sidebar { | |
| width: 224px; | |
| position: fixed; | |
| inset: 0 auto 0 0; | |
| background: #111722; | |
| color: #b1b9c9; | |
| border-right: 1px solid #27303f; | |
| display: flex; | |
| flex-direction: column; | |
| padding: 27px 16px 17px; | |
| z-index: 30; | |
| } | |
| .brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 11px; | |
| color: white; | |
| padding: 0 8px; | |
| font-weight: 680; | |
| letter-spacing: -0.5px; | |
| font-size: 23px; | |
| } | |
| .brand-mark { | |
| width: 39px; | |
| height: 39px; | |
| display: grid; | |
| place-items: center; | |
| border-radius: 10px; | |
| color: #151b24; | |
| background: #ffd66b; | |
| box-shadow: inset 0 0 0 1px #ffe9ab; | |
| } | |
| .brand-sub { | |
| display: block; | |
| font-size: 10px; | |
| letter-spacing: 1.55px; | |
| font-weight: 500; | |
| color: #99a3b4; | |
| margin-top: 5px; | |
| } | |
| .workspace-label { | |
| display: flex; | |
| gap: 9px; | |
| align-items: center; | |
| margin: 36px 0 25px; | |
| border: 1px solid #2c3545; | |
| border-radius: 7px; | |
| padding: 11px 9px; | |
| color: #e2e6ee; | |
| font-size: 13px; | |
| font-weight: 570; | |
| } | |
| .workspace-label small { | |
| display: block; | |
| font-size: 12px; | |
| font-weight: 400; | |
| color: #8491a6; | |
| margin-top: 3px; | |
| } | |
| .workspace-label > svg { | |
| margin-left: auto; | |
| color: #8190a4; | |
| } | |
| .workspace-avatar { | |
| background: #29364b; | |
| border: 1px solid #3e4f68; | |
| color: #c7d4e9; | |
| border-radius: 5px; | |
| width: 26px; | |
| height: 26px; | |
| display: grid; | |
| place-items: center; | |
| } | |
| .nav-caption { | |
| font-size: 11px; | |
| letter-spacing: 1.2px; | |
| color: #6e7b90; | |
| font-weight: 600; | |
| padding: 0 12px; | |
| margin-bottom: 10px; | |
| } | |
| .nav-caption.second { | |
| margin-top: 32px; | |
| } | |
| .sidebar nav { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| } | |
| .sidebar nav button, | |
| .sidebar nav a { | |
| display: flex; | |
| width: 100%; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 11px 12px; | |
| text-align: left; | |
| font-size: 14px; | |
| font-weight: 450; | |
| border-radius: 6px; | |
| transition: background 0.15s; | |
| } | |
| .sidebar nav button:hover, | |
| .sidebar nav a:hover { | |
| background: #1d2636; | |
| color: #fff; | |
| } | |
| .sidebar nav .active { | |
| background: #2e2a20; | |
| color: #ffda7c; | |
| box-shadow: inset 2px 0 #e9bd52; | |
| } | |
| .sidebar nav a > svg:last-child { | |
| margin-left: auto; | |
| opacity: 0.5; | |
| } | |
| .shortcut { | |
| font-size: 11px; | |
| margin-left: auto; | |
| border: 1px solid #514734; | |
| border-radius: 3px; | |
| padding: 1px 4px; | |
| } | |
| .nav-count { | |
| margin-left: auto; | |
| background: #374256; | |
| padding: 2px 5px; | |
| border-radius: 3px; | |
| font-size: 12px; | |
| } | |
| .sidebar-bottom { | |
| margin-top: auto; | |
| padding-top: 48px; | |
| } | |
| .powered { | |
| border: 1px solid #2b3444; | |
| border-radius: 9px; | |
| background: linear-gradient(135deg, #1d2635, #171e2b); | |
| padding: 15px; | |
| } | |
| .powered-symbol { | |
| color: #e7c06a; | |
| margin-bottom: 12px; | |
| } | |
| .powered strong { | |
| display: block; | |
| font-size: 13px; | |
| color: #e9edf4; | |
| margin-bottom: 7px; | |
| } | |
| .powered > span { | |
| font-size: 12px; | |
| color: #96a0b2; | |
| } | |
| .powered-tags { | |
| display: flex; | |
| gap: 5px; | |
| margin-top: 14px; | |
| } | |
| .powered-tags span { | |
| font-size: 10px; | |
| border: 1px solid #3c4350; | |
| border-radius: 3px; | |
| padding: 4px 5px; | |
| color: #b2bac9; | |
| } | |
| .source-link { | |
| font-size: 13px; | |
| display: flex; | |
| gap: 8px; | |
| align-items: center; | |
| padding: 19px 10px 0; | |
| color: #7f8a9d; | |
| } | |
| .source-link > svg:last-child { | |
| margin-left: auto; | |
| } | |
| .workspace { | |
| margin-left: 224px; | |
| } | |
| .topbar { | |
| height: 65px; | |
| padding: 0 36px; | |
| border-bottom: 1px solid var(--line); | |
| background: var(--surface-0); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 15px; | |
| } | |
| .breadcrumb, | |
| .top-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 13px; | |
| font-size: 13px; | |
| } | |
| .breadcrumb { | |
| color: var(--fg-faint); | |
| } | |
| .breadcrumb strong { | |
| font-weight: 500; | |
| color: var(--fg-soft); | |
| } | |
| .top-actions { | |
| color: var(--fg-muted); | |
| gap: 14px; | |
| } | |
| .beta-label { | |
| font-size: 10px; | |
| letter-spacing: 1px; | |
| border: 1px solid var(--line); | |
| border-radius: 4px; | |
| padding: 4px 6px; | |
| color: var(--fg-muted); | |
| font-weight: 600; | |
| } | |
| .icon-button { | |
| display: grid; | |
| place-items: center; | |
| width: 29px; | |
| height: 29px; | |
| border-radius: 5px; | |
| color: var(--fg-muted); | |
| } | |
| .icon-button:hover { | |
| background: var(--surface-2); | |
| } | |
| .top-divider { | |
| width: 1px; | |
| height: 20px; | |
| background: var(--line); | |
| } | |
| .signin-top { | |
| display: flex; | |
| align-items: center; | |
| gap: 7px; | |
| color: var(--fg-soft); | |
| font-weight: 550; | |
| } | |
| .user-avatar { | |
| width: 26px; | |
| height: 26px; | |
| display: grid; | |
| place-items: center; | |
| border: 1px solid #d8b64e; | |
| border-radius: 50%; | |
| background: #ffedb7; | |
| color: #755823; | |
| font-size: 12px; | |
| } | |
| .username { | |
| font-size: 13px; | |
| } | |
| .mobile-menu { | |
| display: none; | |
| } | |
| main { | |
| max-width: 1520px; | |
| margin: 0 auto; | |
| padding: 38px 36px 0; | |
| } | |
| .page-heading { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 16px; | |
| margin-bottom: 29px; | |
| } | |
| .overline { | |
| font-size: 11px; | |
| font-weight: 600; | |
| letter-spacing: 1.7px; | |
| color: var(--fg-faint); | |
| margin-bottom: 10px; | |
| } | |
| h1 { | |
| font-size: 29px; | |
| letter-spacing: -0.85px; | |
| line-height: 1.2; | |
| font-weight: 620; | |
| color: var(--fg); | |
| } | |
| .page-heading p { | |
| font-size: 14px; | |
| color: var(--fg-muted); | |
| margin-top: 10px; | |
| line-height: 1.6; | |
| } | |
| .status-pill { | |
| display: flex; | |
| align-items: center; | |
| white-space: nowrap; | |
| border: 1px solid var(--line); | |
| background: var(--surface-0); | |
| padding: 7px 10px; | |
| font-size: 12px; | |
| border-radius: 20px; | |
| color: var(--fg-muted); | |
| gap: 7px; | |
| } | |
| .status-pill > span { | |
| width: 5px; | |
| height: 5px; | |
| background: var(--green); | |
| border-radius: 50%; | |
| } | |
| .steps { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| margin-bottom: 26px; | |
| font-size: 12px; | |
| color: var(--fg-faint); | |
| } | |
| .steps > span { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| white-space: nowrap; | |
| } | |
| .steps b { | |
| display: grid; | |
| place-items: center; | |
| width: 20px; | |
| height: 20px; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 50%; | |
| font-size: 11px; | |
| font-weight: 500; | |
| } | |
| .steps > i { | |
| width: 42px; | |
| height: 1px; | |
| background: var(--line-strong); | |
| } | |
| .steps .current { | |
| color: var(--fg-soft); | |
| font-weight: 550; | |
| } | |
| .steps .current b { | |
| background: var(--primary); | |
| color: var(--primary-fg); | |
| border-color: var(--primary); | |
| } | |
| .builder-grid { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) 300px; | |
| gap: 23px; | |
| align-items: start; | |
| } | |
| .configuration { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; | |
| min-width: 0; | |
| } | |
| .card { | |
| background: var(--surface-0); | |
| border: 1px solid var(--line); | |
| border-radius: 10px; | |
| box-shadow: var(--shadow); | |
| padding: 23px; | |
| } | |
| .section-head { | |
| display: flex; | |
| align-items: center; | |
| gap: 11px; | |
| margin-bottom: 22px; | |
| } | |
| .section-icon { | |
| width: 35px; | |
| height: 35px; | |
| border-radius: 8px; | |
| background: var(--surface-1); | |
| border: 1px solid var(--line); | |
| display: grid; | |
| place-items: center; | |
| color: var(--fg-muted); | |
| flex-shrink: 0; | |
| } | |
| h2 { | |
| font-size: 14px; | |
| line-height: 1.3; | |
| font-weight: 620; | |
| letter-spacing: -0.15px; | |
| } | |
| .section-head p { | |
| font-size: 13px; | |
| color: var(--fg-muted); | |
| margin-top: 5px; | |
| line-height: 1.5; | |
| } | |
| .quiet-badge { | |
| margin-left: auto; | |
| font-size: 11px; | |
| white-space: nowrap; | |
| padding: 4px 6px; | |
| background: var(--surface-1); | |
| border: 1px solid var(--line); | |
| border-radius: 4px; | |
| color: var(--fg-muted); | |
| } | |
| .field-label { | |
| font-size: 13px; | |
| color: var(--fg-soft); | |
| font-weight: 550; | |
| display: flex; | |
| justify-content: space-between; | |
| margin-bottom: 8px; | |
| line-height: 1.4; | |
| } | |
| .field-label > span { | |
| color: var(--fg-faint); | |
| font-weight: 400; | |
| font-size: 12px; | |
| } | |
| .dataset-input { | |
| display: flex; | |
| align-items: center; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 7px; | |
| height: 43px; | |
| padding: 0 12px; | |
| gap: 10px; | |
| color: var(--fg-faint); | |
| background: var(--surface-0); | |
| } | |
| .dataset-input:focus-within { | |
| outline: 2px solid #e6af1330; | |
| border-color: #c2a858; | |
| } | |
| .dataset-input input { | |
| border: 0; | |
| background: transparent; | |
| padding: 0; | |
| box-shadow: none; | |
| font-family: ui-monospace, monospace; | |
| font-size: 13px; | |
| outline: none; | |
| } | |
| .field-help { | |
| font-size: 12px; | |
| color: var(--fg-faint); | |
| margin-top: 7px; | |
| line-height: 1.5; | |
| } | |
| .field-help code { | |
| color: var(--fg-muted); | |
| } | |
| .fields-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 15px; | |
| margin: 22px 0 18px; | |
| } | |
| .fields-row label { | |
| font-size: 13px; | |
| font-weight: 550; | |
| color: var(--fg-soft); | |
| } | |
| .fields-row input, | |
| .fields-row select { | |
| margin-top: 8px; | |
| } | |
| .fields-row small { | |
| display: block; | |
| color: var(--fg-faint); | |
| font-size: 11px; | |
| line-height: 1.5; | |
| margin-top: 7px; | |
| font-weight: 400; | |
| } | |
| .select-wrap { | |
| display: flex; | |
| align-items: center; | |
| position: relative; | |
| color: var(--fg-muted); | |
| } | |
| .select-wrap > svg { | |
| position: absolute; | |
| left: 12px; | |
| pointer-events: none; | |
| } | |
| .select-wrap > svg:last-child { | |
| left: auto; | |
| right: 12px; | |
| } | |
| .select-wrap select { | |
| appearance: none; | |
| padding-left: 38px; | |
| padding-right: 32px; | |
| font-size: 13px; | |
| } | |
| .metadata-note { | |
| display: flex; | |
| gap: 7px; | |
| align-items: center; | |
| margin-top: 18px; | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| line-height: 1.5; | |
| } | |
| .metadata-note > svg { | |
| color: #919eac; | |
| } | |
| .success-text { | |
| color: var(--green); | |
| } | |
| .dataset-loaded { | |
| margin-top: 20px; | |
| border: 1px solid var(--line); | |
| background: var(--surface-1); | |
| border-radius: 7px; | |
| padding: 15px; | |
| } | |
| .loaded-top { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 10px; | |
| font-size: 11px; | |
| color: var(--fg-muted); | |
| } | |
| .loaded-top > span, | |
| .loaded-top a { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| } | |
| .live-dot { | |
| width: 5px; | |
| height: 5px; | |
| border-radius: 50%; | |
| background: #36ac81; | |
| display: inline-block; | |
| } | |
| .loaded-top a { | |
| color: var(--fg-soft); | |
| } | |
| .dataset-metrics { | |
| display: grid; | |
| grid-template-columns: 1.1fr 1fr 1fr; | |
| gap: 8px; | |
| margin: 17px 0; | |
| } | |
| .dataset-metrics strong { | |
| font-size: 17px; | |
| font-weight: 560; | |
| letter-spacing: -0.4px; | |
| display: block; | |
| } | |
| .dataset-metrics span { | |
| font-size: 11px; | |
| color: var(--fg-faint); | |
| margin-top: 4px; | |
| display: block; | |
| } | |
| .duration-chart { | |
| height: 34px; | |
| display: flex; | |
| align-items: end; | |
| gap: 2px; | |
| } | |
| .duration-chart i { | |
| flex: 1; | |
| min-width: 0; | |
| background: #bbc8d9; | |
| border-radius: 2px 2px 0 0; | |
| opacity: 0.85; | |
| } | |
| .dark .duration-chart i { | |
| background: #5d718d; | |
| } | |
| .chart-caption { | |
| font-size: 10px; | |
| color: var(--fg-faint); | |
| display: flex; | |
| justify-content: space-between; | |
| margin-top: 6px; | |
| } | |
| .feature-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 11px; | |
| } | |
| .feature { | |
| position: relative; | |
| display: flex; | |
| flex-direction: column; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| padding: 15px; | |
| cursor: pointer; | |
| transition: | |
| background 0.15s, | |
| border-color 0.15s; | |
| min-height: 151px; | |
| } | |
| .feature:hover { | |
| border-color: var(--line-strong); | |
| background: var(--surface-1); | |
| } | |
| .feature.selected { | |
| border-color: #dfbc5e; | |
| background: var(--accent-fill); | |
| box-shadow: 0 0 0 1px #dfbc5e0d; | |
| } | |
| .feature input { | |
| position: absolute; | |
| opacity: 0; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| cursor: pointer; | |
| margin: 0; | |
| } | |
| .feature:focus-within { | |
| outline: 2px solid #66aafc; | |
| outline-offset: 2px; | |
| } | |
| .feature-icon { | |
| display: grid; | |
| place-items: center; | |
| width: 31px; | |
| height: 31px; | |
| border-radius: 7px; | |
| margin-bottom: 12px; | |
| } | |
| .amber { | |
| background: #fdf0c8; | |
| color: #b57a13; | |
| } | |
| .blue { | |
| background: #e9efff; | |
| color: #5b8cff; | |
| } | |
| .purple { | |
| background: #f0eaff; | |
| color: #9668d8; | |
| } | |
| .cyan { | |
| background: #e5f7fb; | |
| color: #279bbd; | |
| } | |
| .rose { | |
| background: #ffebee; | |
| color: #d86b7c; | |
| } | |
| .green { | |
| background: #e5f5ee; | |
| color: #259674; | |
| } | |
| .dark .feature-icon { | |
| background: var(--surface-2); | |
| } | |
| .feature strong { | |
| font-size: 13px; | |
| font-weight: 600; | |
| margin-bottom: 6px; | |
| } | |
| .feature > span:not(.feature-icon):not(.feature-check) { | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| line-height: 1.5; | |
| } | |
| .feature small { | |
| font-size: 10px; | |
| color: var(--fg-faint); | |
| margin-top: 9px; | |
| line-height: 1.5; | |
| } | |
| .feature-check { | |
| position: absolute; | |
| top: 15px; | |
| right: 14px; | |
| width: 15px; | |
| height: 15px; | |
| border: 1px solid var(--line-strong); | |
| background: var(--surface-0); | |
| border-radius: 4px; | |
| display: grid; | |
| place-items: center; | |
| } | |
| .selected .feature-check { | |
| background: #d5a52b; | |
| border-color: #d5a52b; | |
| color: #fff; | |
| } | |
| .dependency-note { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 8px; | |
| color: var(--fg-faint); | |
| font-size: 12px; | |
| line-height: 1.6; | |
| margin-top: 17px; | |
| } | |
| .dependency-note > svg { | |
| margin-top: 1px; | |
| } | |
| .output-options { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 9px; | |
| } | |
| .output-options label { | |
| display: flex; | |
| gap: 11px; | |
| align-items: center; | |
| border: 1px solid var(--line); | |
| border-radius: 7px; | |
| padding: 13px; | |
| position: relative; | |
| cursor: pointer; | |
| } | |
| .output-options label.chosen { | |
| border-color: var(--line-strong); | |
| background: var(--surface-1); | |
| } | |
| .output-options input { | |
| position: absolute; | |
| opacity: 0; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| margin: 0; | |
| cursor: pointer; | |
| } | |
| .output-options label:focus-within { | |
| outline: 2px solid #66aafc; | |
| } | |
| .output-options svg { | |
| color: var(--fg-muted); | |
| } | |
| .output-options strong { | |
| font-size: 13px; | |
| display: block; | |
| font-weight: 550; | |
| } | |
| .output-options small { | |
| font-size: 12px; | |
| display: block; | |
| margin-top: 5px; | |
| color: var(--fg-faint); | |
| } | |
| .radio-indicator { | |
| margin-left: auto; | |
| border: 1px solid var(--line-strong); | |
| width: 14px; | |
| height: 14px; | |
| border-radius: 50%; | |
| flex-shrink: 0; | |
| } | |
| .chosen .radio-indicator { | |
| border: 4px solid #788293; | |
| background: var(--surface-0); | |
| } | |
| .model-presets { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-bottom: 22px; | |
| } | |
| .model-presets button { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 12px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: var(--surface-0); | |
| text-align: left; | |
| font-size: 12px; | |
| } | |
| .model-presets button.selected { | |
| background: var(--accent-fill); | |
| border-color: var(--accent); | |
| } | |
| .model-presets button span { | |
| font-weight: 600; | |
| } | |
| .model-presets small { | |
| color: var(--fg-muted); | |
| white-space: nowrap; | |
| font-size: 10px; | |
| } | |
| .model-picker select { | |
| width: 100%; | |
| } | |
| .model-description { | |
| color: var(--fg-muted); | |
| font-size: 12px; | |
| line-height: 1.6; | |
| margin: 12px 0 16px; | |
| } | |
| .model-specs { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: var(--surface-1); | |
| } | |
| .model-specs > div { | |
| padding: 13px; | |
| } | |
| .model-specs > div + div { | |
| border-left: 1px solid var(--line); | |
| } | |
| .model-specs span { | |
| color: var(--fg-muted); | |
| font-size: 10px; | |
| display: block; | |
| margin-bottom: 6px; | |
| } | |
| .model-specs strong { | |
| font-size: 13px; | |
| font-weight: 550; | |
| } | |
| .model-links, | |
| .model-links span, | |
| .model-links a { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| } | |
| .model-links { | |
| justify-content: space-between; | |
| margin: 16px 0; | |
| font-size: 11px; | |
| } | |
| .model-links span { | |
| color: var(--green); | |
| } | |
| .model-links a { | |
| color: var(--fg-muted); | |
| white-space: nowrap; | |
| } | |
| .model-unavailable { | |
| border-top: 1px solid var(--line); | |
| padding-top: 13px; | |
| font-size: 11px; | |
| color: var(--fg-muted); | |
| margin-bottom: 12px; | |
| } | |
| .model-unavailable summary { | |
| cursor: pointer; | |
| } | |
| .model-unavailable p { | |
| line-height: 1.6; | |
| } | |
| @media (max-width: 700px) { | |
| .model-presets button { | |
| align-items: flex-start; | |
| flex-direction: column; | |
| } | |
| .model-specs > div { | |
| padding: 9px; | |
| } | |
| .model-specs strong { | |
| font-size: 11px; | |
| } | |
| .model-links { | |
| align-items: flex-start; | |
| gap: 12px; | |
| } | |
| } | |
| .model-row { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| border-top: 1px solid var(--line-subtle); | |
| margin-top: 19px; | |
| padding-top: 18px; | |
| } | |
| .model-avatar { | |
| display: grid; | |
| place-items: center; | |
| width: 35px; | |
| height: 35px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| color: var(--fg-muted); | |
| background: var(--surface-1); | |
| } | |
| .model-row strong { | |
| font-size: 13px; | |
| font-weight: 550; | |
| display: flex; | |
| align-items: center; | |
| gap: 7px; | |
| flex-wrap: wrap; | |
| } | |
| .model-row small { | |
| font-size: 11px; | |
| color: var(--fg-faint); | |
| display: block; | |
| margin-top: 5px; | |
| line-height: 1.5; | |
| } | |
| .model-row > svg { | |
| margin-left: auto; | |
| color: var(--fg-faint); | |
| } | |
| .tuned { | |
| font-size: 7px; | |
| letter-spacing: 0.5px; | |
| font-weight: 600; | |
| background: #eeeaf8; | |
| border: 1px solid #e2daef; | |
| color: #8865a5; | |
| border-radius: 3px; | |
| padding: 3px 4px; | |
| } | |
| .dark .tuned { | |
| background: #302d44; | |
| border-color: #48385e; | |
| color: #c6a2f0; | |
| } | |
| .disclosure { | |
| display: flex; | |
| gap: 8px; | |
| align-items: center; | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| padding: 19px 0 0; | |
| width: 100%; | |
| text-align: left; | |
| } | |
| .disclosure > svg:last-child { | |
| margin-left: auto; | |
| transition: transform 0.2s; | |
| } | |
| .rotated { | |
| transform: rotate(180deg); | |
| } | |
| .advanced { | |
| margin-top: 10px; | |
| } | |
| .advanced p { | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| line-height: 1.7; | |
| } | |
| .inline-warning { | |
| font-size: 12px; | |
| color: #b47917; | |
| background: var(--accent-fill); | |
| border: 1px solid #e6b95450; | |
| padding: 10px; | |
| border-radius: 5px; | |
| margin-top: 12px; | |
| line-height: 1.6; | |
| } | |
| .configure-footer { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 10px; | |
| } | |
| .configure-footer > span { | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| display: flex; | |
| gap: 7px; | |
| align-items: center; | |
| } | |
| .button { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| min-height: 37px; | |
| border-radius: 6px; | |
| padding: 10px 13px; | |
| font-size: 13px; | |
| line-height: 1.3; | |
| font-weight: 550; | |
| transition: | |
| filter 0.15s, | |
| background 0.15s; | |
| border: 1px solid transparent; | |
| white-space: nowrap; | |
| } | |
| .button:hover { | |
| filter: brightness(1.12); | |
| } | |
| .primary { | |
| background: var(--primary); | |
| color: var(--primary-fg); | |
| box-shadow: 0 1px 2px #00000016; | |
| } | |
| .primary:disabled { | |
| filter: none; | |
| } | |
| .secondary { | |
| border-color: var(--line-strong); | |
| background: var(--surface-0); | |
| color: var(--fg-soft); | |
| box-shadow: var(--shadow); | |
| } | |
| .secondary:hover { | |
| background: var(--surface-1); | |
| } | |
| .danger { | |
| background: #bd333a; | |
| color: white; | |
| } | |
| .full { | |
| width: 100%; | |
| } | |
| .summary-column { | |
| position: sticky; | |
| top: 22px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| min-width: 0; | |
| } | |
| .summary { | |
| padding: 21px; | |
| } | |
| .summary-title { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 28px; | |
| } | |
| .summary-title h2 { | |
| font-size: 14px; | |
| } | |
| .price-label { | |
| font-size: 10px; | |
| letter-spacing: 1.05px; | |
| font-weight: 600; | |
| color: var(--fg-faint); | |
| } | |
| .price { | |
| font-size: 30px; | |
| letter-spacing: -1.5px; | |
| line-height: 1.35; | |
| font-weight: 600; | |
| margin-top: 9px; | |
| font-variant-numeric: tabular-nums; | |
| white-space: nowrap; | |
| } | |
| .price > span { | |
| color: var(--fg-faint); | |
| font-weight: 300; | |
| display: inline-block; | |
| margin: 0 6px; | |
| font-size: 24px; | |
| vertical-align: 2px; | |
| } | |
| .placeholder-price { | |
| color: var(--fg-faint); | |
| letter-spacing: 0; | |
| font-weight: 300; | |
| } | |
| .price-description { | |
| font-size: 12px; | |
| line-height: 1.7; | |
| color: var(--fg-muted); | |
| margin-top: 8px; | |
| } | |
| .cost-lines { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 11px; | |
| margin-top: 22px; | |
| } | |
| .cost-lines > div { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| font-size: 12px; | |
| gap: 8px; | |
| } | |
| .cost-lines > div > span { | |
| color: var(--fg-muted); | |
| display: flex; | |
| align-items: center; | |
| gap: 4px; | |
| } | |
| .cost-lines strong { | |
| font-weight: 500; | |
| font-size: 12px; | |
| } | |
| .cost-lines .muted { | |
| color: var(--fg-faint); | |
| font-size: 11px; | |
| } | |
| .info-tooltip { | |
| display: inline-flex; | |
| } | |
| .summary-divider { | |
| height: 1px; | |
| background: var(--line-subtle); | |
| margin: 20px 0; | |
| } | |
| .summary-facts { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 13px; | |
| } | |
| .summary-facts > div { | |
| display: flex; | |
| align-items: center; | |
| font-size: 12px; | |
| gap: 8px; | |
| color: var(--fg-muted); | |
| } | |
| .summary-facts > div > svg { | |
| color: var(--fg-faint); | |
| } | |
| .summary-facts strong { | |
| margin-left: auto; | |
| color: var(--fg-soft); | |
| font-weight: 500; | |
| } | |
| .currency-input { | |
| display: flex; | |
| align-items: center; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 7px; | |
| padding: 0 11px; | |
| gap: 5px; | |
| height: 39px; | |
| } | |
| .currency-input span { | |
| font-size: 14px; | |
| color: var(--fg-muted); | |
| } | |
| .currency-input input { | |
| border: 0; | |
| box-shadow: none; | |
| background: transparent; | |
| padding: 0; | |
| height: 34px; | |
| font-size: 14px; | |
| outline: none; | |
| } | |
| .currency-input:focus-within { | |
| outline: 2px solid #e6af1350; | |
| } | |
| .microcopy { | |
| font-size: 11px; | |
| color: var(--fg-faint); | |
| line-height: 1.7; | |
| margin-top: 8px; | |
| } | |
| .budget-hint { | |
| font-size: 11px; | |
| line-height: 1.6; | |
| padding: 9px; | |
| color: #ac7b1e; | |
| background: var(--accent-fill); | |
| border-radius: 5px; | |
| margin-top: 12px; | |
| } | |
| .launch-area { | |
| margin-top: 20px; | |
| } | |
| .launch-area > .button { | |
| width: 100%; | |
| min-height: 41px; | |
| font-size: 12px; | |
| } | |
| .launch-area input + .button { | |
| margin-top: 12px; | |
| } | |
| .hf { | |
| font-size: 16px; | |
| } | |
| .billed-to { | |
| text-align: center; | |
| font-size: 11px; | |
| color: var(--fg-faint); | |
| margin-top: 10px; | |
| } | |
| .billed-to strong { | |
| font-weight: 500; | |
| color: var(--fg-muted); | |
| } | |
| .summary-fineprint { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 7px; | |
| font-size: 11px; | |
| line-height: 1.7; | |
| color: var(--fg-faint); | |
| border-top: 1px solid var(--line-subtle); | |
| margin-top: 19px; | |
| padding-top: 15px; | |
| } | |
| .summary-fineprint > svg { | |
| margin-top: 2px; | |
| } | |
| .help-card { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 10px; | |
| padding: 2px 8px; | |
| color: var(--fg-muted); | |
| } | |
| .help-card > svg { | |
| color: var(--fg-faint); | |
| margin-top: 2px; | |
| } | |
| .help-card strong { | |
| font-size: 12px; | |
| font-weight: 550; | |
| color: var(--fg-soft); | |
| } | |
| .help-card p { | |
| font-size: 12px; | |
| line-height: 1.6; | |
| margin-top: 7px; | |
| color: var(--fg-faint); | |
| } | |
| .help-card button { | |
| display: flex; | |
| gap: 6px; | |
| align-items: center; | |
| font-size: 11px; | |
| color: var(--fg-soft); | |
| padding: 0; | |
| margin-top: 10px; | |
| } | |
| .pricing-link { | |
| font-size: 10px; | |
| color: var(--fg-faint); | |
| text-align: center; | |
| line-height: 1.9; | |
| margin-top: 1px; | |
| } | |
| .pricing-link a { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 2px; | |
| text-decoration: underline; | |
| text-decoration-color: var(--line-strong); | |
| text-underline-offset: 3px; | |
| } | |
| footer { | |
| padding: 31px 0 20px; | |
| font-size: 11px; | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| color: var(--fg-faint); | |
| } | |
| footer > span { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| } | |
| .footer-dot { | |
| margin: 0 4px; | |
| } | |
| .message { | |
| display: flex; | |
| gap: 9px; | |
| align-items: flex-start; | |
| padding: 13px 16px; | |
| border-radius: 7px; | |
| margin-bottom: 22px; | |
| font-size: 14px; | |
| line-height: 1.6; | |
| } | |
| .message > svg { | |
| margin-top: 2px; | |
| } | |
| .message > span { | |
| flex: 1; | |
| } | |
| .message > button { | |
| margin-left: auto; | |
| display: flex; | |
| padding: 3px; | |
| align-items: center; | |
| } | |
| .error { | |
| background: #fff1f0; | |
| border: 1px solid #f3cccc; | |
| color: #a43139; | |
| } | |
| .notice { | |
| background: #eef8f3; | |
| border: 1px solid #cce6d8; | |
| color: #226b4f; | |
| } | |
| .dark .error { | |
| background: #331e25; | |
| border-color: #603440; | |
| color: #ffadb2; | |
| } | |
| .dark .notice { | |
| background: #183027; | |
| border-color: #2c4e40; | |
| color: #87d9b7; | |
| } | |
| .heading-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 9px; | |
| } | |
| .empty-state { | |
| min-height: 370px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-direction: column; | |
| text-align: center; | |
| padding: 50px 25px; | |
| } | |
| .empty-icon { | |
| height: 70px; | |
| width: 70px; | |
| display: grid; | |
| place-items: center; | |
| border: 1px solid var(--line); | |
| border-radius: 17px; | |
| background: var(--surface-1); | |
| color: var(--fg-faint); | |
| margin-bottom: 24px; | |
| box-shadow: 0 0 0 8px var(--surface-1); | |
| } | |
| .empty-state h2 { | |
| font-size: 20px; | |
| letter-spacing: -0.4px; | |
| } | |
| .empty-state p { | |
| font-size: 14px; | |
| color: var(--fg-muted); | |
| line-height: 1.6; | |
| max-width: 340px; | |
| margin: 12px 0 23px; | |
| } | |
| .section-footnote { | |
| font-size: 12px; | |
| color: var(--fg-faint); | |
| line-height: 1.7; | |
| margin-top: 18px; | |
| } | |
| .jobs-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 15px; | |
| } | |
| .job-head { | |
| display: flex; | |
| gap: 12px; | |
| align-items: center; | |
| } | |
| .job-head h2 { | |
| font-size: 13px; | |
| } | |
| .job-head p { | |
| font-size: 12px; | |
| color: var(--fg-faint); | |
| margin-top: 6px; | |
| } | |
| .job-status { | |
| margin-left: auto; | |
| font-size: 11px; | |
| text-transform: capitalize; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 20px; | |
| padding: 5px 9px; | |
| display: flex; | |
| gap: 5px; | |
| align-items: center; | |
| color: var(--fg-muted); | |
| } | |
| .job-status.running, | |
| .job-status.completed { | |
| background: #edfbf3; | |
| border-color: #bfe7ce; | |
| color: #25875a; | |
| } | |
| .dark .job-status.running, | |
| .dark .job-status.completed { | |
| background: #1c362b; | |
| border-color: #3f7557; | |
| color: #89d1a7; | |
| } | |
| .job-status.error { | |
| background: #fff1f0; | |
| border-color: #f3cccc; | |
| color: #a43139; | |
| } | |
| .job-actions { | |
| display: flex; | |
| gap: 8px; | |
| align-items: center; | |
| margin-top: 22px; | |
| flex-wrap: wrap; | |
| } | |
| .job-actions .button { | |
| font-size: 12px; | |
| min-height: 32px; | |
| padding: 7px 10px; | |
| } | |
| .text-danger { | |
| margin-left: auto; | |
| font-size: 12px; | |
| color: #bd5960; | |
| } | |
| .job-progress { | |
| margin-top: 23px; | |
| font-size: 13px; | |
| } | |
| .job-progress > div { | |
| display: flex; | |
| justify-content: space-between; | |
| margin-bottom: 9px; | |
| } | |
| .job-progress strong { | |
| font-weight: 500; | |
| text-transform: capitalize; | |
| } | |
| .job-progress progress { | |
| width: 100%; | |
| height: 7px; | |
| accent-color: #d0a745; | |
| display: block; | |
| margin-bottom: 8px; | |
| } | |
| .job-progress small { | |
| color: var(--fg-faint); | |
| font-size: 11px; | |
| } | |
| .guide-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 18px; | |
| } | |
| .guide-card { | |
| padding: 27px; | |
| } | |
| .guide-card h2 { | |
| margin-top: 22px; | |
| margin-bottom: 10px; | |
| } | |
| .guide-card p, | |
| .guide-note p { | |
| font-size: 14px; | |
| color: var(--fg-muted); | |
| line-height: 1.9; | |
| } | |
| .guide-note { | |
| margin-top: 20px; | |
| padding: 28px; | |
| } | |
| .guide-note h2 { | |
| margin: 0 0 12px; | |
| } | |
| .guide-note p { | |
| margin-bottom: 17px; | |
| } | |
| .guide-note h2:not(:first-child) { | |
| margin-top: 27px; | |
| } | |
| .review-dialog { | |
| padding: 0; | |
| border: 1px solid var(--line); | |
| border-radius: 14px; | |
| background: var(--surface-0); | |
| color: var(--fg); | |
| width: min(530px, calc(100% - 30px)); | |
| max-height: calc(100vh - 30px); | |
| box-shadow: 0 35px 100px #0005; | |
| } | |
| .review-dialog::backdrop { | |
| background: #10172595; | |
| backdrop-filter: blur(3px); | |
| } | |
| .modal-top { | |
| padding: 20px 25px 0; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .modal-body { | |
| padding: 22px 28px 28px; | |
| } | |
| .modal-body h2 { | |
| font-size: 23px; | |
| letter-spacing: -0.5px; | |
| margin-top: 5px; | |
| } | |
| .modal-body > p:not(.microcopy) { | |
| font-size: 14px; | |
| color: var(--fg-muted); | |
| line-height: 1.6; | |
| margin-top: 8px; | |
| } | |
| .modal-body dl { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 14px; | |
| border-top: 1px solid var(--line); | |
| border-bottom: 1px solid var(--line); | |
| padding: 20px 0; | |
| margin: 22px 0; | |
| } | |
| .modal-body dl > div { | |
| display: grid; | |
| grid-template-columns: 120px 1fr; | |
| gap: 12px; | |
| font-size: 13px; | |
| line-height: 1.6; | |
| } | |
| .modal-body dt { | |
| color: var(--fg-muted); | |
| } | |
| .modal-body dd { | |
| margin: 0; | |
| overflow-wrap: anywhere; | |
| color: var(--fg-soft); | |
| } | |
| .private-tag { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 3px; | |
| font-size: 10px; | |
| color: var(--fg-faint); | |
| border: 1px solid var(--line); | |
| padding: 0 4px; | |
| border-radius: 3px; | |
| margin-left: 5px; | |
| } | |
| .consent { | |
| display: flex; | |
| gap: 10px; | |
| align-items: flex-start; | |
| font-size: 13px; | |
| line-height: 1.7; | |
| color: var(--fg-soft); | |
| cursor: pointer; | |
| } | |
| .consent input { | |
| margin-top: 3px; | |
| } | |
| .modal-body .full { | |
| margin-top: 20px; | |
| min-height: 43px; | |
| } | |
| .modal-backdrop { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 50; | |
| background: #10172590; | |
| display: grid; | |
| place-items: center; | |
| padding: 20px; | |
| backdrop-filter: blur(3px); | |
| } | |
| .cancel-dialog { | |
| width: min(420px, 100%); | |
| } | |
| .cancel-dialog h2 { | |
| font-size: 18px; | |
| } | |
| .cancel-dialog p { | |
| font-size: 14px; | |
| color: var(--fg-muted); | |
| line-height: 1.8; | |
| margin: 13px 0 25px; | |
| } | |
| .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| @media (min-width: 1500px) { | |
| main { | |
| padding-left: 55px; | |
| padding-right: 55px; | |
| } | |
| .builder-grid { | |
| grid-template-columns: minmax(0, 1fr) 340px; | |
| gap: 28px; | |
| } | |
| .summary { | |
| padding: 25px; | |
| } | |
| .feature-grid { | |
| grid-template-columns: repeat(3, 1fr); | |
| } | |
| .price { | |
| font-size: 34px; | |
| } | |
| } | |
| @media (max-width: 1150px) { | |
| .sidebar { | |
| width: 195px; | |
| padding-left: 12px; | |
| padding-right: 12px; | |
| } | |
| .workspace { | |
| margin-left: 195px; | |
| } | |
| .brand { | |
| font-size: 20px; | |
| } | |
| .brand-sub { | |
| font-size: 7px; | |
| } | |
| .brand-mark { | |
| width: 34px; | |
| height: 34px; | |
| } | |
| .topbar { | |
| padding: 0 25px; | |
| } | |
| main { | |
| padding: 29px 25px 0; | |
| } | |
| .builder-grid { | |
| grid-template-columns: minmax(0, 1fr) 275px; | |
| gap: 18px; | |
| } | |
| .card { | |
| padding: 19px; | |
| } | |
| .summary { | |
| padding: 18px; | |
| } | |
| .page-heading .status-pill { | |
| display: none; | |
| } | |
| .price { | |
| font-size: 28px; | |
| } | |
| .feature { | |
| padding: 12px; | |
| min-height: 155px; | |
| } | |
| .feature small { | |
| font-size: 10px; | |
| } | |
| .configure-footer { | |
| align-items: end; | |
| } | |
| .configure-footer > span { | |
| max-width: 120px; | |
| line-height: 1.5; | |
| } | |
| .section-head .quiet-badge { | |
| display: none; | |
| } | |
| .powered { | |
| padding: 12px; | |
| } | |
| .powered-tags { | |
| flex-wrap: wrap; | |
| } | |
| } | |
| @media (max-width: 960px) { | |
| .sidebar { | |
| width: 68px; | |
| padding: 23px 9px 16px; | |
| } | |
| .brand { | |
| padding: 0; | |
| justify-content: center; | |
| } | |
| .brand > span:last-child, | |
| .workspace-label, | |
| .nav-caption, | |
| .sidebar nav button > span, | |
| .sidebar nav a > svg:last-child, | |
| .sidebar-bottom { | |
| display: none; | |
| } | |
| .sidebar nav button, | |
| .sidebar nav a { | |
| font-size: 0; | |
| justify-content: center; | |
| padding: 14px 0; | |
| gap: 0; | |
| } | |
| .sidebar nav { | |
| margin-top: 30px; | |
| } | |
| .sidebar nav button > svg, | |
| .sidebar nav a > svg { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .workspace { | |
| margin-left: 68px; | |
| } | |
| main { | |
| padding: 27px 23px 0; | |
| } | |
| .topbar { | |
| padding: 0 23px; | |
| } | |
| .builder-grid { | |
| gap: 17px; | |
| grid-template-columns: minmax(0, 1fr) 270px; | |
| } | |
| .brand-mark { | |
| width: 34px; | |
| height: 34px; | |
| } | |
| .feature { | |
| min-height: 160px; | |
| } | |
| .feature small { | |
| font-size: 10px; | |
| } | |
| .page-heading { | |
| margin-bottom: 25px; | |
| } | |
| h1 { | |
| font-size: 26px; | |
| } | |
| .dataset-metrics strong { | |
| font-size: 15px; | |
| } | |
| .loaded-top { | |
| flex-wrap: wrap; | |
| } | |
| } | |
| @media (max-width: 780px) { | |
| .builder-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .summary-column { | |
| position: static; | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| } | |
| .summary { | |
| padding: 24px; | |
| } | |
| .price { | |
| font-size: 38px; | |
| } | |
| .summary-facts { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 16px; | |
| } | |
| .summary-facts > div { | |
| font-size: 13px; | |
| } | |
| .summary-facts > div:nth-child(odd) { | |
| padding-right: 16px; | |
| } | |
| .summary-divider { | |
| margin: 21px 0; | |
| } | |
| .feature { | |
| min-height: 145px; | |
| padding: 17px; | |
| } | |
| .feature strong { | |
| font-size: 14px; | |
| } | |
| .feature > span:not(.feature-icon):not(.feature-check) { | |
| font-size: 13px; | |
| } | |
| .feature small { | |
| font-size: 11px; | |
| } | |
| .card { | |
| padding: 22px; | |
| } | |
| .summary-column .help-card, | |
| .summary-column .pricing-link { | |
| display: none; | |
| } | |
| .configure-footer > span { | |
| max-width: none; | |
| } | |
| .page-heading { | |
| align-items: start; | |
| } | |
| .page-heading p { | |
| max-width: 400px; | |
| } | |
| .summary-fineprint { | |
| font-size: 12px; | |
| } | |
| .microcopy { | |
| font-size: 12px; | |
| } | |
| .cost-lines > div, | |
| .cost-lines strong { | |
| font-size: 13px; | |
| } | |
| .cost-lines .muted { | |
| font-size: 12px; | |
| } | |
| .launch-area > .button { | |
| font-size: 14px; | |
| } | |
| .price-description { | |
| font-size: 13px; | |
| } | |
| .field-label { | |
| font-size: 14px; | |
| } | |
| .guide-grid { | |
| gap: 14px; | |
| } | |
| .heading-actions .button { | |
| font-size: 12px; | |
| padding: 9px; | |
| } | |
| .page-heading .heading-actions { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| } | |
| @media (max-width: 520px) { | |
| .sidebar { | |
| display: none; | |
| } | |
| .sidebar.open { | |
| display: flex; | |
| width: 224px; | |
| top: 65px; | |
| padding: 20px 16px; | |
| box-shadow: 12px 0 30px #0004; | |
| } | |
| .sidebar.open .brand { | |
| display: none; | |
| } | |
| .sidebar.open .workspace-label { | |
| display: flex; | |
| margin-top: 0; | |
| } | |
| .sidebar.open .nav-caption { | |
| display: block; | |
| } | |
| .sidebar.open nav { | |
| margin-top: 0; | |
| } | |
| .sidebar.open nav button, | |
| .sidebar.open nav a { | |
| font-size: 14px; | |
| padding: 12px; | |
| justify-content: start; | |
| gap: 10px; | |
| } | |
| .sidebar.open nav button > span { | |
| display: block; | |
| } | |
| .sidebar.open .sidebar-bottom { | |
| display: block; | |
| } | |
| .workspace { | |
| margin-left: 0; | |
| } | |
| .mobile-menu { | |
| display: grid; | |
| } | |
| .topbar { | |
| height: 61px; | |
| padding: 0 17px; | |
| } | |
| .top-actions { | |
| gap: 10px; | |
| } | |
| .breadcrumb { | |
| gap: 7px; | |
| font-size: 12px; | |
| } | |
| .top-actions .beta-label, | |
| .top-divider, | |
| .username { | |
| display: none; | |
| } | |
| .signin-top { | |
| font-size: 12px; | |
| } | |
| main { | |
| padding: 26px 16px 0; | |
| } | |
| h1 { | |
| font-size: 25px; | |
| } | |
| .overline { | |
| font-size: 10px; | |
| letter-spacing: 1.45px; | |
| } | |
| .page-heading p { | |
| font-size: 13px; | |
| line-height: 1.75; | |
| } | |
| .page-heading { | |
| margin-bottom: 22px; | |
| } | |
| .steps { | |
| gap: 8px; | |
| font-size: 10px; | |
| justify-content: space-between; | |
| } | |
| .steps > i { | |
| width: 12px; | |
| } | |
| .steps > span { | |
| gap: 5px; | |
| } | |
| .steps b { | |
| width: 18px; | |
| height: 18px; | |
| font-size: 10px; | |
| } | |
| .configuration { | |
| gap: 15px; | |
| } | |
| .card { | |
| padding: 18px; | |
| border-radius: 9px; | |
| } | |
| .section-head { | |
| gap: 9px; | |
| margin-bottom: 21px; | |
| } | |
| .section-head p { | |
| font-size: 12px; | |
| } | |
| .section-icon { | |
| height: 32px; | |
| width: 32px; | |
| } | |
| .field-label { | |
| font-size: 13px; | |
| } | |
| .dataset-input input { | |
| font-size: 12px; | |
| } | |
| .fields-row { | |
| gap: 12px; | |
| } | |
| .fields-row label { | |
| font-size: 12px; | |
| } | |
| .fields-row small { | |
| font-size: 10px; | |
| } | |
| .feature-grid { | |
| gap: 9px; | |
| } | |
| .feature { | |
| padding: 12px; | |
| min-height: 159px; | |
| } | |
| .feature strong { | |
| font-size: 13px; | |
| } | |
| .feature > span:not(.feature-icon):not(.feature-check) { | |
| font-size: 12px; | |
| } | |
| .feature small { | |
| font-size: 10px; | |
| } | |
| .feature-icon { | |
| width: 29px; | |
| height: 29px; | |
| margin-bottom: 11px; | |
| } | |
| .feature-check { | |
| top: 13px; | |
| right: 12px; | |
| } | |
| .dependency-note { | |
| font-size: 11px; | |
| } | |
| .model-row strong { | |
| font-size: 12px; | |
| } | |
| .model-row small { | |
| font-size: 10px; | |
| } | |
| .output-options small { | |
| font-size: 11px; | |
| line-height: 1.5; | |
| } | |
| .output-options strong { | |
| font-size: 12px; | |
| } | |
| .output-options label { | |
| gap: 9px; | |
| padding: 12px; | |
| } | |
| .configure-footer { | |
| flex-direction: column-reverse; | |
| align-items: stretch; | |
| gap: 12px; | |
| } | |
| .configure-footer > .button { | |
| width: 100%; | |
| min-height: 41px; | |
| } | |
| .configure-footer > span { | |
| justify-content: center; | |
| font-size: 11px; | |
| } | |
| .summary { | |
| padding: 21px; | |
| } | |
| .builder-grid { | |
| gap: 20px; | |
| } | |
| .summary-title { | |
| margin-bottom: 25px; | |
| } | |
| .summary-facts { | |
| gap: 13px; | |
| } | |
| .summary-facts > div { | |
| font-size: 11px; | |
| gap: 6px; | |
| } | |
| .summary-facts > div:nth-child(odd) { | |
| padding-right: 0; | |
| } | |
| .summary-facts svg { | |
| width: 13px; | |
| } | |
| .price { | |
| font-size: 34px; | |
| } | |
| .price > span { | |
| font-size: 26px; | |
| } | |
| .summary-fineprint { | |
| font-size: 11px; | |
| } | |
| .summary-facts strong { | |
| font-size: 11px; | |
| } | |
| .dataset-metrics strong { | |
| font-size: 16px; | |
| } | |
| footer { | |
| font-size: 10px; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| line-height: 1.7; | |
| text-align: center; | |
| } | |
| .guide-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .guide-card h2 { | |
| margin-top: 17px; | |
| } | |
| .guide-card p, | |
| .guide-note p { | |
| font-size: 13px; | |
| } | |
| .empty-state { | |
| min-height: 330px; | |
| padding: 35px 20px; | |
| } | |
| .empty-state h2 { | |
| font-size: 18px; | |
| } | |
| .empty-state p { | |
| font-size: 13px; | |
| } | |
| .job-head { | |
| gap: 9px; | |
| flex-wrap: wrap; | |
| } | |
| .job-head h2 { | |
| font-size: 13px; | |
| } | |
| .job-head p { | |
| font-size: 11px; | |
| } | |
| .job-status { | |
| font-size: 10px; | |
| } | |
| .job-actions { | |
| gap: 7px; | |
| } | |
| .job-actions .button { | |
| font-size: 11px; | |
| } | |
| .text-danger { | |
| margin-left: 0; | |
| } | |
| .modal-body { | |
| padding: 20px; | |
| } | |
| .modal-body h2 { | |
| font-size: 21px; | |
| } | |
| .modal-body dl > div { | |
| grid-template-columns: 95px 1fr; | |
| gap: 10px; | |
| font-size: 12px; | |
| } | |
| .modal-top { | |
| padding: 18px 20px 0; | |
| } | |
| .consent { | |
| font-size: 12px; | |
| } | |
| .heading-actions .button { | |
| font-size: 11px; | |
| padding: 7px; | |
| } | |
| .page-heading .heading-actions { | |
| gap: 6px; | |
| } | |
| .message { | |
| font-size: 13px; | |
| padding: 11px; | |
| } | |
| .section-footnote { | |
| font-size: 11px; | |
| } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| * { | |
| animation: none ; | |
| transition: none ; | |
| } | |
| } | |
| /* Prompt customization and concrete annotation previews. */ | |
| .feature-shell { | |
| min-width: 0; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .feature-shell .feature { | |
| flex: 1; | |
| border-radius: 8px 8px 0 0; | |
| } | |
| .edit-prompt { | |
| display: flex; | |
| align-items: center; | |
| gap: 7px; | |
| width: 100%; | |
| padding: 10px 13px; | |
| border: 1px solid var(--line); | |
| border-top: 0; | |
| border-radius: 0 0 8px 8px; | |
| background: var(--surface-1); | |
| font-size: 11px; | |
| color: var(--fg-muted); | |
| text-align: left; | |
| } | |
| .edit-prompt:hover { | |
| background: var(--surface-2); | |
| color: var(--fg); | |
| } | |
| .edit-prompt b, | |
| .prompt-default { | |
| margin-left: auto; | |
| font-size: 10px; | |
| } | |
| .edit-prompt b { | |
| color: var(--green); | |
| font-weight: 600; | |
| } | |
| .prompt-default { | |
| color: var(--fg-faint); | |
| } | |
| .annotation-examples { | |
| border-top: 1px solid var(--line); | |
| margin-top: 23px; | |
| padding-top: 22px; | |
| } | |
| .examples-heading { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| flex-wrap: wrap; | |
| color: var(--fg-soft); | |
| } | |
| .examples-heading h3 { | |
| font-size: 13px; | |
| margin: 0; | |
| font-weight: 600; | |
| } | |
| .examples-heading > span { | |
| font-size: 10px; | |
| color: var(--fg-faint); | |
| margin-left: auto; | |
| } | |
| .example-tabs { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 5px; | |
| margin: 17px 0 13px; | |
| } | |
| .example-tabs button { | |
| font-size: 10px; | |
| padding: 6px 9px; | |
| border-radius: 5px; | |
| color: var(--fg-muted); | |
| border: 1px solid transparent; | |
| } | |
| .example-tabs button:hover { | |
| background: var(--surface-2); | |
| } | |
| .example-tabs button.active { | |
| background: var(--surface-2); | |
| color: var(--fg); | |
| border-color: var(--line); | |
| font-weight: 600; | |
| } | |
| .examples-explanation { | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| line-height: 1.65; | |
| margin-bottom: 16px; | |
| } | |
| .example-pair { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); | |
| gap: 12px; | |
| } | |
| .example-card { | |
| background: var(--surface-1); | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| padding: 15px; | |
| min-width: 0; | |
| } | |
| .example-kicker { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| font-size: 9px; | |
| letter-spacing: 1px; | |
| font-weight: 600; | |
| color: var(--fg-faint); | |
| } | |
| .example-kicker span { | |
| display: flex; | |
| gap: 4px; | |
| align-items: center; | |
| letter-spacing: 0; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .example-card h4 { | |
| font-size: 12px; | |
| line-height: 1.5; | |
| margin: 10px 0 14px; | |
| font-weight: 600; | |
| color: var(--fg-soft); | |
| } | |
| .example-timeline { | |
| display: flex; | |
| gap: 3px; | |
| height: 8px; | |
| margin-bottom: 17px; | |
| border-radius: 3px; | |
| overflow: hidden; | |
| } | |
| .example-timeline span { | |
| min-width: 2px; | |
| } | |
| .phase-0 { | |
| background: #82a8ee; | |
| } | |
| .phase-1 { | |
| background: #b193df; | |
| } | |
| .phase-2 { | |
| background: #e9b25e; | |
| } | |
| .phase-3 { | |
| background: #62b99f; | |
| } | |
| .example-rows { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .example-rows > div { | |
| display: grid; | |
| grid-template-columns: 6px 1fr; | |
| align-items: start; | |
| column-gap: 7px; | |
| row-gap: 3px; | |
| } | |
| .phase-dot { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 2px; | |
| margin-top: 4px; | |
| } | |
| .example-rows code { | |
| color: var(--fg-muted); | |
| font-size: 10px; | |
| } | |
| .example-rows > div > span:last-child { | |
| grid-column: 2; | |
| color: var(--fg-soft); | |
| font-size: 11px; | |
| line-height: 1.5; | |
| } | |
| .example-output { | |
| white-space: pre-wrap; | |
| overflow-wrap: anywhere; | |
| color: var(--fg-soft); | |
| font-size: 12px; | |
| line-height: 1.8; | |
| } | |
| .example-footnote { | |
| font-size: 10px; | |
| color: var(--fg-faint); | |
| margin-top: 13px; | |
| line-height: 1.6; | |
| } | |
| .prompt-dialog { | |
| width: min(790px, calc(100% - 30px)); | |
| } | |
| .prompt-notice { | |
| font-size: 12px; | |
| line-height: 1.65; | |
| color: var(--fg-soft); | |
| background: var(--accent-fill); | |
| border: 1px solid var(--line); | |
| padding: 12px 14px; | |
| border-radius: 7px; | |
| margin-top: 17px; | |
| } | |
| .prompt-field { | |
| margin: 24px 0; | |
| } | |
| .prompt-field-heading { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 10px; | |
| margin-bottom: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .prompt-field-heading label { | |
| font-size: 13px; | |
| font-weight: 600; | |
| } | |
| .prompt-field-heading button { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-size: 11px; | |
| color: var(--fg-muted); | |
| padding: 4px 0; | |
| } | |
| .prompt-field-heading button:hover { | |
| color: var(--fg); | |
| } | |
| .prompt-field textarea { | |
| width: 100%; | |
| min-height: 300px; | |
| resize: vertical; | |
| padding: 15px; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 8px; | |
| background: var(--surface-1); | |
| color: var(--fg-soft); | |
| font: | |
| 12px/1.75 "SFMono-Regular", | |
| Consolas, | |
| monospace; | |
| tab-size: 2; | |
| } | |
| .prompt-field textarea:focus-visible { | |
| outline: 2px solid #66aafc; | |
| outline-offset: 2px; | |
| } | |
| .placeholder-list { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 6px; | |
| margin-top: 9px; | |
| color: var(--fg-muted); | |
| font-size: 11px; | |
| } | |
| .placeholder-list code { | |
| background: var(--surface-2); | |
| padding: 3px 5px; | |
| border-radius: 4px; | |
| overflow-wrap: anywhere; | |
| max-width: 100%; | |
| } | |
| .prompt-actions { | |
| display: flex; | |
| justify-content: flex-end; | |
| gap: 9px; | |
| margin-top: 22px; | |
| } | |
| @media (max-width: 1150px) and (min-width: 961px), (max-width: 520px) { | |
| .example-pair { | |
| grid-template-columns: minmax(0, 1fr); | |
| } | |
| } | |
| @media (max-width: 520px) { | |
| .examples-heading > span { | |
| width: 100%; | |
| margin-left: 24px; | |
| } | |
| .example-tabs button { | |
| padding: 7px; | |
| } | |
| .prompt-dialog .modal-body { | |
| padding: 18px; | |
| } | |
| .prompt-dialog h2 { | |
| font-size: 21px; | |
| } | |
| .prompt-field textarea { | |
| min-height: 260px; | |
| font-size: 12px; | |
| } | |
| } | |
| .camera-status { | |
| display: flex; | |
| align-items: center; | |
| gap: 5px; | |
| font-size: 11px; | |
| color: var(--green); | |
| margin-top: 10px; | |
| line-height: 1.6; | |
| } | |
| .camera-status:empty { | |
| display: none; | |
| } | |
| .camera-error { | |
| color: var(--fg-muted); | |
| } | |
| .camera-error button { | |
| font-size: inherit; | |
| text-decoration: underline; | |
| color: var(--fg); | |
| padding: 0 4px; | |
| } | |
| #camera-help { | |
| line-height: 1.6; | |
| margin-top: 6px; | |
| } | |
| .job-cost { | |
| margin: 16px 0; | |
| padding: 18px; | |
| background: var(--surface-1); | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| } | |
| .job-cost-total { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| .job-cost-total > div { | |
| display: flex; | |
| align-items: baseline; | |
| gap: 12px; | |
| } | |
| .job-cost-total strong { | |
| font-size: 23px; | |
| font-variant-numeric: tabular-nums; | |
| letter-spacing: -0.5px; | |
| } | |
| .job-cost-total span { | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| } | |
| .job-cost-breakdown { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 12px 28px; | |
| margin-top: 16px; | |
| font-size: 12px; | |
| color: var(--fg-muted); | |
| } | |
| .job-cost-breakdown b { | |
| font-weight: 550; | |
| color: var(--fg-soft); | |
| margin-left: 8px; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .job-cost p { | |
| font-size: 11px; | |
| color: var(--fg-faint); | |
| line-height: 1.6; | |
| margin-top: 14px; | |
| } | |
| .job-cost p a { | |
| text-decoration: underline; | |
| white-space: nowrap; | |
| } | |
| .job-cost .cost-uncertain { | |
| color: var(--fg-soft); | |
| } | |
| @media (max-width: 520px) { | |
| .job-cost-total { | |
| align-items: flex-start; | |
| } | |
| .job-cost-total > div { | |
| flex-direction: column; | |
| gap: 5px; | |
| } | |
| .job-cost-breakdown { | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| } | |
| .job-status.partial { | |
| background: var(--accent-fill); | |
| color: var(--fg-soft); | |
| border-color: var(--line); | |
| } | |