| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| :root { |
| --bg: #faf9f5; |
| --ink: #141413; |
| --accent: #d97757; |
|
|
| --panel: color-mix(in srgb, var(--ink) 4%, var(--bg)); |
| --panel-strong: color-mix(in srgb, var(--ink) 7%, var(--bg)); |
| --line: color-mix(in srgb, var(--ink) 10%, transparent); |
| --line-strong: color-mix(in srgb, var(--ink) 18%, transparent); |
| --muted: color-mix(in srgb, var(--ink) 52%, transparent); |
| --on-accent: #ffffff; |
|
|
| color-scheme: light; |
| } |
|
|
| @media (prefers-color-scheme: dark) { |
| :root { |
| --bg: #262624; |
| --ink: #f5f4ef; |
| --accent: #d97757; |
|
|
| --panel: color-mix(in srgb, var(--ink) 6%, var(--bg)); |
| --panel-strong: color-mix(in srgb, var(--ink) 10%, var(--bg)); |
| --line: color-mix(in srgb, var(--ink) 14%, transparent); |
| --line-strong: color-mix(in srgb, var(--ink) 24%, transparent); |
| --muted: color-mix(in srgb, var(--ink) 55%, transparent); |
|
|
| color-scheme: dark; |
| } |
| } |
|
|
| * { box-sizing: border-box; } |
|
|
| body { |
| margin: 0; |
| background: var(--bg); |
| color: var(--ink); |
| font: 14px/1.6 ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif; |
| -webkit-font-smoothing: antialiased; |
| } |
|
|
| h1, h2 { margin: 0; font-weight: 500; letter-spacing: -0.01em; } |
| h1 { font-size: 15px; } |
| h2 { font-size: 12px; color: var(--muted); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; } |
|
|
| button, select, input, textarea { |
| font: inherit; |
| color: var(--ink); |
| background: transparent; |
| border: 1px solid var(--line-strong); |
| border-radius: 8px; |
| padding: 7px 12px; |
| transition: background .12s ease, border-color .12s ease, opacity .12s ease; |
| } |
| select { background: var(--panel); } |
| button { cursor: pointer; } |
| button:hover:not(:disabled) { background: var(--panel-strong); } |
| button:disabled { opacity: .35; cursor: default; } |
|
|
| button.primary { |
| background: var(--accent); |
| color: var(--on-accent); |
| border-color: var(--accent); |
| font-weight: 500; |
| } |
| button.primary:hover:not(:disabled) { background: color-mix(in srgb, var(--ink) 12%, var(--accent)); } |
| |
| |
| button.danger { border-color: transparent; color: var(--muted); } |
| button.danger:hover:not(:disabled) { color: var(--accent); background: var(--panel-strong); } |
|
|
| :focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; } |
|
|
| .row { display: flex; gap: 8px; align-items: center; } |
| .grow { flex: 1; min-width: 0; } |
| .muted { color: var(--muted); } |
| .mono { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; } |
|
|
| .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--line-strong); flex: none; } |
| .dot.ready { background: var(--accent); } |
| .dot.loading { background: var(--accent); animation: pulse 1.4s ease-in-out infinite; } |
| .dot.error { background: var(--ink); } |
| @keyframes pulse { 50% { opacity: .3; } } |
|
|
| .hint { font-size: 12px; line-height: 1.45; margin-top: 3px; } |
| .bar { height: 2px; background: var(--line); border-radius: 2px; overflow: hidden; } |
| .bar > i { display: block; height: 100%; background: var(--accent); width: 0; transition: width .2s; } |
|
|
| .banner { |
| padding: 10px 12px; |
| border-radius: 8px; |
| border: 1px solid var(--line-strong); |
| background: var(--panel); |
| } |
| .banner.error { border-color: var(--accent); } |
|
|