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