this repo has no description
1@import "./tokens.css";
2
3@property --accent {
4 syntax: "<color>";
5 inherits: true;
6 initial-value: #1a1d1d;
7}
8
9@property --secondary {
10 syntax: "<color>";
11 inherits: true;
12 initial-value: #1a1d1d;
13}
14
15*,
16*::before,
17*::after {
18 box-sizing: border-box;
19}
20
21body {
22 margin: 0;
23 font-family:
24 "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
25 font-size: var(--text-base);
26 line-height: var(--leading-normal);
27 color: var(--text-primary);
28 background: var(--bg-primary);
29 -webkit-font-smoothing: antialiased;
30 -moz-osx-font-smoothing: grayscale;
31 transition: background-color 0.3s ease;
32 overflow-wrap: anywhere;
33 word-break: break-word;
34}
35
36h1, h2, h3, h4, h5, h6 {
37 margin: 0;
38 line-height: var(--leading-tight);
39}
40
41h1 {
42 font-size: var(--text-2xl);
43}
44h2 {
45 font-size: var(--text-xl);
46}
47h3 {
48 font-size: var(--text-lg);
49}
50h4 {
51 font-size: var(--text-base);
52}
53
54p {
55 margin: 0;
56}
57
58a {
59 color: var(--accent);
60 text-decoration: underline;
61 text-underline-offset: 2px;
62}
63
64a:hover {
65 color: var(--accent-hover);
66}
67
68::selection {
69 background: var(--secondary-muted);
70}
71
72input,
73select,
74textarea {
75 font-family: inherit;
76 font-size: var(--text-base);
77 line-height: var(--leading-normal);
78 padding: var(--space-4);
79 border: 1px solid var(--border-dark);
80 border-radius: var(--radius-md);
81 background: var(--bg-input);
82 color: var(--text-primary);
83 transition:
84 border-color var(--transition-normal),
85 box-shadow var(--transition-normal);
86 width: 100%;
87}
88
89input:focus,
90select:focus,
91textarea:focus {
92 outline: none;
93 border-color: var(--accent);
94 box-shadow: var(--shadow-focus);
95}
96
97input:disabled,
98select:disabled,
99textarea:disabled {
100 background: var(--bg-input-disabled);
101 color: var(--text-muted);
102 cursor: not-allowed;
103}
104
105input::placeholder,
106textarea::placeholder {
107 color: var(--text-muted);
108}
109
110select {
111 cursor: pointer;
112 appearance: none;
113 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
114 background-repeat: no-repeat;
115 background-position: right var(--space-4) center;
116 padding-right: var(--space-7);
117}
118
119button {
120 font-family: inherit;
121 font-size: var(--text-base);
122 font-weight: var(--font-medium);
123 line-height: var(--leading-normal);
124 padding: var(--space-4) var(--space-6);
125 border: none;
126 border-radius: var(--radius-md);
127 cursor: pointer;
128 transition:
129 background var(--transition-normal),
130 border-color var(--transition-normal),
131 opacity var(--transition-normal);
132 background: var(--accent);
133 color: var(--text-inverse);
134}
135
136button:hover:not(:disabled) {
137 background: var(--accent-hover);
138}
139
140button:disabled {
141 opacity: 0.6;
142 cursor: not-allowed;
143}
144
145button.secondary {
146 background: transparent;
147 color: var(--accent);
148 border: 1px solid var(--accent);
149}
150
151button.secondary:hover:not(:disabled) {
152 background: var(--accent);
153 color: var(--text-inverse);
154}
155
156button.tertiary {
157 background: transparent;
158 color: var(--text-secondary);
159 padding: var(--space-3) var(--space-4);
160}
161
162button.tertiary:hover:not(:disabled) {
163 color: var(--text-primary);
164 background: var(--bg-tertiary);
165}
166
167button.danger {
168 background: var(--error-text);
169}
170
171button.danger:hover:not(:disabled) {
172 background: #900;
173}
174
175button.danger-outline {
176 background: transparent;
177 border: 1px solid var(--error-border);
178 color: var(--error-text);
179}
180
181button.danger-outline:hover:not(:disabled) {
182 background: var(--error-bg);
183 border-color: var(--error-text);
184}
185
186button.ghost {
187 background: transparent;
188 color: var(--text-secondary);
189 border: 1px solid var(--border-dark);
190}
191
192button.ghost:hover:not(:disabled) {
193 background: var(--bg-secondary);
194 color: var(--text-primary);
195}
196
197label {
198 display: block;
199 font-size: var(--text-sm);
200 font-weight: var(--font-medium);
201 color: var(--text-primary);
202 margin-bottom: var(--space-2);
203}
204
205fieldset {
206 border: none;
207 border-left: 3px solid var(--accent);
208 border-radius: var(--radius-lg);
209 padding: var(--space-5);
210 padding-left: var(--space-6);
211 margin: 0;
212 background: var(--bg-secondary);
213}
214
215fieldset legend {
216 font-size: var(--text-xs);
217 font-weight: var(--font-semibold);
218 text-transform: uppercase;
219 letter-spacing: 0.05em;
220 padding: 0;
221 margin-left: calc(-1 * var(--space-1));
222 margin-bottom: var(--space-3);
223 color: var(--text-secondary);
224 float: left;
225 width: 100%;
226}
227
228fieldset legend + * {
229 clear: both;
230}
231
232code {
233 font-family: var(--font-mono);
234 font-size: 0.9em;
235 background: var(--bg-tertiary);
236 padding: var(--space-1) var(--space-2);
237 border-radius: var(--radius-sm);
238}
239
240pre {
241 font-family: var(--font-mono);
242 font-size: var(--text-sm);
243 background: var(--bg-tertiary);
244 padding: var(--space-4);
245 border-radius: var(--radius-md);
246 overflow-x: auto;
247 margin: 0;
248}
249
250hr {
251 border: none;
252 border-top: 1px solid var(--border-color);
253 margin: var(--space-6) 0;
254}
255
256.field {
257 display: flex;
258 flex-direction: column;
259 gap: var(--space-2);
260}
261
262.field + .field {
263 margin-top: var(--space-5);
264}
265
266.form-row .field + .field {
267 margin-top: 0;
268}
269
270.hint {
271 font-size: var(--text-xs);
272 color: var(--text-secondary);
273 margin-top: var(--space-1);
274}
275
276.hint.warning {
277 color: var(--warning-text);
278}
279
280.hint.error {
281 color: var(--error-text);
282}
283
284.message {
285 padding: var(--space-4);
286 border-radius: var(--radius-md);
287 font-size: var(--text-sm);
288}
289
290.message.success {
291 background: var(--success-bg);
292 border: 1px solid var(--success-border);
293 color: var(--success-text);
294}
295
296.message.error {
297 background: var(--error-bg);
298 border: 1px solid var(--error-border);
299 color: var(--error-text);
300}
301
302.message.warning {
303 background: var(--warning-bg);
304 border: 1px solid var(--warning-border);
305 color: var(--warning-text);
306}
307
308.badge {
309 display: inline-block;
310 padding: var(--space-1) var(--space-3);
311 border-radius: var(--radius-md);
312 font-size: var(--text-xs);
313 font-weight: var(--font-medium);
314}
315
316.badge.success {
317 background: var(--success-bg);
318 color: var(--success-text);
319}
320
321.badge.warning {
322 background: var(--warning-bg);
323 color: var(--warning-text);
324}
325
326.badge.error {
327 background: var(--error-bg);
328 color: var(--error-text);
329}
330
331.badge.accent {
332 background: var(--accent);
333 color: var(--text-inverse);
334}
335
336.card {
337 background: var(--bg-card);
338 border: 1px solid var(--border-color);
339 border-radius: var(--radius-xl);
340 padding: var(--space-6);
341 overflow: hidden;
342 min-width: 0;
343}
344
345.section {
346 background: var(--bg-secondary);
347 border-radius: var(--radius-xl);
348 padding: var(--space-6);
349 overflow: hidden;
350 min-width: 0;
351}
352
353.section + .section {
354 margin-top: var(--space-6);
355}
356
357.page {
358 max-width: var(--width-lg);
359 margin: 0 auto;
360 padding: var(--space-7);
361}
362
363.page-sm {
364 max-width: var(--width-md);
365 margin: 0 auto;
366 padding: var(--space-7);
367}
368
369.page-lg {
370 max-width: var(--width-xl);
371 margin: 0 auto;
372 padding: var(--space-7);
373}
374
375.back-link {
376 display: inline-block;
377 color: var(--text-secondary);
378 font-size: var(--text-sm);
379 margin-bottom: var(--space-3);
380 text-decoration: none;
381}
382
383.back-link:hover {
384 color: var(--accent);
385 text-decoration: none;
386}
387
388.text-muted {
389 color: var(--text-muted);
390}
391
392.text-secondary {
393 color: var(--text-secondary);
394}
395
396.text-sm {
397 font-size: var(--text-sm);
398}
399
400.text-xs {
401 font-size: var(--text-xs);
402}
403
404.text-center {
405 text-align: center;
406}
407
408.mono {
409 font-family: var(--font-mono);
410}
411
412.mt-4 {
413 margin-top: var(--space-4);
414}
415.mt-5 {
416 margin-top: var(--space-5);
417}
418.mt-6 {
419 margin-top: var(--space-6);
420}
421.mb-4 {
422 margin-bottom: var(--space-4);
423}
424.mb-5 {
425 margin-bottom: var(--space-5);
426}
427.mb-6 {
428 margin-bottom: var(--space-6);
429}
430
431.split-layout {
432 display: grid;
433 grid-template-columns: 1fr;
434 gap: var(--space-6);
435}
436
437@media (min-width: 800px) {
438 .split-layout {
439 grid-template-columns: 1fr 1fr;
440 align-items: start;
441 }
442 .split-layout.sidebar-right {
443 grid-template-columns: 1.5fr 1fr;
444 }
445 .split-layout.sidebar-left {
446 grid-template-columns: 1fr 1.5fr;
447 }
448}
449
450.split-layout > * {
451 min-width: 0;
452}
453
454.form-row {
455 display: grid;
456 grid-template-columns: 1fr;
457 gap: var(--space-4);
458}
459
460@media (min-width: 600px) {
461 .form-row {
462 grid-template-columns: repeat(2, 1fr);
463 }
464 .form-row.thirds {
465 grid-template-columns: repeat(3, 1fr);
466 }
467}
468
469.full-width {
470 grid-column: 1 / -1;
471}
472
473.info-panel {
474 background: var(--bg-secondary);
475 border-radius: var(--radius-xl);
476 padding: var(--space-6);
477 height: fit-content;
478 overflow: hidden;
479 min-width: 0;
480}
481
482.info-panel h3 {
483 margin: 0 0 var(--space-3) 0;
484 font-size: var(--text-base);
485 font-weight: var(--font-semibold);
486}
487
488.info-panel p {
489 margin: 0 0 var(--space-4) 0;
490 font-size: var(--text-sm);
491 color: var(--text-secondary);
492}
493
494.info-panel p:last-child {
495 margin-bottom: 0;
496}