gaard-api 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1041 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --bg: #f7f8fa;
4
+ --panel: #ffffff;
5
+ --panel-strong: #eef2f6;
6
+ --text: #18202a;
7
+ --muted: #647181;
8
+ --line: #d8dee7;
9
+ --accent: #176b87;
10
+ --accent-strong: #10536a;
11
+ --danger: #a33b3b;
12
+ --ok: #24745a;
13
+ --shadow: 0 8px 24px rgba(24, 32, 42, 0.08);
14
+ font-family:
15
+ Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
16
+ sans-serif;
17
+ }
18
+
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ body {
24
+ margin: 0;
25
+ min-width: 320px;
26
+ background: var(--bg);
27
+ color: var(--text);
28
+ }
29
+
30
+ button,
31
+ input,
32
+ select,
33
+ textarea {
34
+ font: inherit;
35
+ }
36
+
37
+ button {
38
+ border: 1px solid var(--line);
39
+ background: var(--panel);
40
+ color: var(--text);
41
+ min-height: 36px;
42
+ padding: 0 12px;
43
+ border-radius: 6px;
44
+ cursor: pointer;
45
+ }
46
+
47
+ button:hover {
48
+ border-color: var(--accent);
49
+ }
50
+
51
+ button.primary {
52
+ background: var(--accent);
53
+ border-color: var(--accent);
54
+ color: white;
55
+ }
56
+
57
+ button.primary:hover {
58
+ background: var(--accent-strong);
59
+ }
60
+
61
+ button.danger {
62
+ color: var(--danger);
63
+ }
64
+
65
+ button.icon-button {
66
+ width: 32px;
67
+ min-width: 32px;
68
+ height: 32px;
69
+ min-height: 32px;
70
+ display: inline-grid;
71
+ place-items: center;
72
+ padding: 0;
73
+ }
74
+
75
+ button.icon-button svg {
76
+ width: 16px;
77
+ height: 16px;
78
+ fill: none;
79
+ stroke: currentColor;
80
+ stroke-width: 2;
81
+ stroke-linecap: round;
82
+ stroke-linejoin: round;
83
+ }
84
+
85
+ input,
86
+ textarea {
87
+ width: 100%;
88
+ border: 1px solid var(--line);
89
+ border-radius: 6px;
90
+ background: white;
91
+ color: var(--text);
92
+ padding: 9px 10px;
93
+ }
94
+
95
+ textarea {
96
+ min-height: 190px;
97
+ resize: vertical;
98
+ font-family:
99
+ "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
100
+ font-size: 13px;
101
+ line-height: 1.45;
102
+ }
103
+
104
+ label {
105
+ display: grid;
106
+ gap: 6px;
107
+ color: var(--muted);
108
+ font-size: 13px;
109
+ font-weight: 600;
110
+ }
111
+
112
+ .login-shell {
113
+ min-height: 100vh;
114
+ display: grid;
115
+ place-items: center;
116
+ padding: 24px;
117
+ }
118
+
119
+ .login-panel {
120
+ width: min(420px, 100%);
121
+ background: var(--panel);
122
+ border: 1px solid var(--line);
123
+ border-radius: 8px;
124
+ padding: 24px;
125
+ box-shadow: var(--shadow);
126
+ }
127
+
128
+ .login-panel h1 {
129
+ margin: 0 0 4px;
130
+ font-size: 24px;
131
+ }
132
+
133
+ .login-panel p {
134
+ margin: 0 0 20px;
135
+ color: var(--muted);
136
+ }
137
+
138
+ .form-grid {
139
+ display: grid;
140
+ gap: 14px;
141
+ }
142
+
143
+ .form-actions {
144
+ display: flex;
145
+ gap: 10px;
146
+ justify-content: flex-end;
147
+ align-items: center;
148
+ }
149
+
150
+ .button-row {
151
+ display: flex;
152
+ gap: 10px;
153
+ flex-wrap: wrap;
154
+ align-items: center;
155
+ }
156
+
157
+ .subgrid {
158
+ display: grid;
159
+ grid-template-columns: repeat(2, minmax(0, 1fr));
160
+ gap: 12px;
161
+ }
162
+
163
+ .inline-check {
164
+ display: flex;
165
+ grid-template-columns: none;
166
+ flex-direction: row;
167
+ align-items: center;
168
+ gap: 8px;
169
+ }
170
+
171
+ .inline-check input {
172
+ width: auto;
173
+ }
174
+
175
+ .muted {
176
+ color: var(--muted);
177
+ font-size: 13px;
178
+ }
179
+
180
+ .textarea-small {
181
+ min-height: 84px;
182
+ }
183
+
184
+ .schema-editor {
185
+ display: grid;
186
+ grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
187
+ gap: 16px;
188
+ align-items: start;
189
+ }
190
+
191
+ .schema-object-list {
192
+ min-width: 0;
193
+ border: 1px solid var(--line);
194
+ border-radius: 8px;
195
+ background: #fbfcfd;
196
+ overflow: hidden;
197
+ }
198
+
199
+ .schema-object-list-header {
200
+ padding: 12px;
201
+ border-bottom: 1px solid var(--line);
202
+ }
203
+
204
+ .schema-object-list-body {
205
+ display: grid;
206
+ gap: 2px;
207
+ max-height: 520px;
208
+ overflow-y: auto;
209
+ padding: 6px;
210
+ }
211
+
212
+ .schema-object-row {
213
+ display: grid;
214
+ grid-template-columns: auto minmax(0, 1fr);
215
+ align-items: center;
216
+ gap: 8px;
217
+ padding: 4px 6px;
218
+ border-radius: 6px;
219
+ }
220
+
221
+ .schema-object-row.active {
222
+ background: #edf8fb;
223
+ }
224
+
225
+ .schema-object-row input {
226
+ width: auto;
227
+ }
228
+
229
+ .schema-object-row button {
230
+ width: 100%;
231
+ min-width: 0;
232
+ min-height: 34px;
233
+ display: flex;
234
+ align-items: center;
235
+ justify-content: space-between;
236
+ gap: 8px;
237
+ padding: 0;
238
+ border: 0;
239
+ background: transparent;
240
+ text-align: left;
241
+ }
242
+
243
+ .schema-object-row button:hover {
244
+ color: var(--accent);
245
+ }
246
+
247
+ .schema-object-name {
248
+ min-width: 0;
249
+ overflow: hidden;
250
+ text-overflow: ellipsis;
251
+ white-space: nowrap;
252
+ font-size: 13px;
253
+ font-weight: 700;
254
+ }
255
+
256
+ .schema-object-empty {
257
+ margin: 8px;
258
+ }
259
+
260
+ .schema-object-details {
261
+ min-width: 0;
262
+ display: grid;
263
+ gap: 14px;
264
+ align-content: start;
265
+ }
266
+
267
+ .schema-object-detail-header {
268
+ display: flex;
269
+ align-items: flex-start;
270
+ justify-content: space-between;
271
+ gap: 12px;
272
+ }
273
+
274
+ .schema-object-detail-header h3 {
275
+ margin: 0 0 6px;
276
+ font-size: 16px;
277
+ }
278
+
279
+ .schema-object-columns {
280
+ padding: 10px;
281
+ border: 1px solid var(--line);
282
+ border-radius: 6px;
283
+ background: #fbfcfd;
284
+ color: var(--muted);
285
+ font-size: 12px;
286
+ line-height: 1.45;
287
+ }
288
+
289
+ .error {
290
+ color: var(--danger);
291
+ font-size: 13px;
292
+ }
293
+
294
+ .success {
295
+ color: var(--ok);
296
+ font-size: 13px;
297
+ }
298
+
299
+ .app-shell {
300
+ min-height: 100vh;
301
+ display: grid;
302
+ grid-template-columns: 260px minmax(0, 1fr);
303
+ }
304
+
305
+ .sidebar {
306
+ background: #202833;
307
+ color: white;
308
+ padding: 18px 14px;
309
+ display: flex;
310
+ flex-direction: column;
311
+ gap: 14px;
312
+ }
313
+
314
+ .sidebar-header {
315
+ display: contents;
316
+ }
317
+
318
+ .brand {
319
+ padding: 4px 8px 12px;
320
+ border-bottom: 1px solid rgba(255, 255, 255, 0.12);
321
+ }
322
+
323
+ .brand strong {
324
+ display: block;
325
+ font-size: 18px;
326
+ }
327
+
328
+ .brand span {
329
+ display: block;
330
+ margin-top: 2px;
331
+ color: rgba(255, 255, 255, 0.66);
332
+ font-size: 12px;
333
+ }
334
+
335
+ .menu-toggle {
336
+ display: none;
337
+ }
338
+
339
+ .nav {
340
+ display: grid;
341
+ gap: 4px;
342
+ }
343
+
344
+ .nav button {
345
+ min-height: 38px;
346
+ width: 100%;
347
+ border: 0;
348
+ background: transparent;
349
+ color: rgba(255, 255, 255, 0.76);
350
+ text-align: left;
351
+ padding: 0 10px;
352
+ }
353
+
354
+ .nav button.active,
355
+ .nav button:hover {
356
+ background: rgba(255, 255, 255, 0.1);
357
+ color: white;
358
+ }
359
+
360
+ .sidebar-footer {
361
+ margin-top: auto;
362
+ display: grid;
363
+ gap: 8px;
364
+ padding: 8px;
365
+ color: rgba(255, 255, 255, 0.7);
366
+ font-size: 12px;
367
+ }
368
+
369
+ .main {
370
+ min-width: 0;
371
+ display: grid;
372
+ grid-template-rows: auto 1fr;
373
+ }
374
+
375
+ .topbar {
376
+ min-height: 64px;
377
+ padding: 14px 22px;
378
+ background: var(--panel);
379
+ border-bottom: 1px solid var(--line);
380
+ display: flex;
381
+ align-items: center;
382
+ justify-content: space-between;
383
+ gap: 12px;
384
+ }
385
+
386
+ .topbar h1 {
387
+ margin: 0;
388
+ font-size: 20px;
389
+ }
390
+
391
+ .topbar-actions {
392
+ display: flex;
393
+ align-items: center;
394
+ gap: 10px;
395
+ color: var(--muted);
396
+ font-size: 13px;
397
+ }
398
+
399
+ .content {
400
+ min-width: 0;
401
+ padding: 22px;
402
+ display: grid;
403
+ gap: 18px;
404
+ align-content: start;
405
+ }
406
+
407
+ .toolbar {
408
+ display: flex;
409
+ justify-content: space-between;
410
+ align-items: center;
411
+ gap: 12px;
412
+ flex-wrap: wrap;
413
+ }
414
+
415
+ .overview-toolbar {
416
+ justify-content: flex-end;
417
+ }
418
+
419
+ .refresh-status {
420
+ min-height: 20px;
421
+ display: inline-flex;
422
+ align-items: center;
423
+ gap: 8px;
424
+ color: var(--muted);
425
+ font-size: 13px;
426
+ font-weight: 700;
427
+ }
428
+
429
+ .spinner {
430
+ width: 14px;
431
+ height: 14px;
432
+ border: 2px solid var(--line);
433
+ border-top-color: var(--accent);
434
+ border-radius: 999px;
435
+ animation: spin 0.8s linear infinite;
436
+ }
437
+
438
+ @keyframes spin {
439
+ to {
440
+ transform: rotate(360deg);
441
+ }
442
+ }
443
+
444
+ .panel {
445
+ background: var(--panel);
446
+ border: 1px solid var(--line);
447
+ border-radius: 8px;
448
+ box-shadow: var(--shadow);
449
+ }
450
+
451
+ .panel-header {
452
+ padding: 14px 16px;
453
+ border-bottom: 1px solid var(--line);
454
+ display: flex;
455
+ justify-content: space-between;
456
+ align-items: center;
457
+ gap: 12px;
458
+ }
459
+
460
+ .panel-header h2 {
461
+ margin: 0;
462
+ font-size: 16px;
463
+ }
464
+
465
+ .audit-controls {
466
+ display: flex;
467
+ justify-content: flex-end;
468
+ align-items: center;
469
+ gap: 10px;
470
+ flex-wrap: wrap;
471
+ }
472
+
473
+ .audit-controls input {
474
+ min-width: 180px;
475
+ }
476
+
477
+ .panel-body {
478
+ padding: 16px;
479
+ }
480
+
481
+ .stats {
482
+ display: grid;
483
+ grid-template-columns: repeat(4, minmax(0, 1fr));
484
+ gap: 12px;
485
+ }
486
+
487
+ .overview-grid,
488
+ .widget-grid {
489
+ display: grid;
490
+ grid-template-columns: repeat(4, minmax(0, 1fr));
491
+ gap: 12px;
492
+ }
493
+
494
+ .overview-widget-slot {
495
+ min-height: 150px;
496
+ align-content: start;
497
+ }
498
+
499
+ .overview-loading {
500
+ grid-column: 1 / -1;
501
+ min-height: 180px;
502
+ border: 1px dashed var(--line);
503
+ border-radius: 8px;
504
+ background: rgba(255, 255, 255, 0.58);
505
+ display: inline-flex;
506
+ align-items: center;
507
+ justify-content: center;
508
+ gap: 8px;
509
+ color: var(--muted);
510
+ font-size: 13px;
511
+ font-weight: 700;
512
+ }
513
+
514
+ .overview-widget-table,
515
+ .overview-widget-timeseries {
516
+ min-height: 280px;
517
+ }
518
+
519
+ .widget-card {
520
+ background: var(--panel);
521
+ border: 1px solid var(--line);
522
+ border-radius: 8px;
523
+ padding: 14px;
524
+ display: grid;
525
+ gap: 12px;
526
+ box-shadow: var(--shadow);
527
+ }
528
+
529
+ .widget-card-header {
530
+ display: flex;
531
+ align-items: flex-start;
532
+ justify-content: space-between;
533
+ gap: 10px;
534
+ }
535
+
536
+ .widget-card-header span {
537
+ display: block;
538
+ color: var(--muted);
539
+ font-size: 12px;
540
+ }
541
+
542
+ .widget-card-header strong {
543
+ display: block;
544
+ margin-top: 4px;
545
+ font-size: 15px;
546
+ }
547
+
548
+ .widget-card-main span {
549
+ display: block;
550
+ color: var(--muted);
551
+ font-size: 12px;
552
+ }
553
+
554
+ .widget-card-main .widget-card-value {
555
+ display: block;
556
+ margin-top: 6px;
557
+ font-size: 24px;
558
+ font-weight: 700;
559
+ overflow-wrap: anywhere;
560
+ }
561
+
562
+ .widget-card-main .widget-card-interpretation {
563
+ font-size: 14px;
564
+ font-weight: 600;
565
+ line-height: 1.5;
566
+ white-space: pre-wrap;
567
+ }
568
+
569
+ .widget-card-value a,
570
+ .overview-table-wrap td a {
571
+ color: var(--accent);
572
+ font-weight: 700;
573
+ }
574
+
575
+ .widget-card-value ul,
576
+ .overview-table-wrap td ul {
577
+ margin: 6px 0;
578
+ padding-left: 18px;
579
+ }
580
+
581
+ .widget-card-value ul {
582
+ font-size: 14px;
583
+ line-height: 1.4;
584
+ }
585
+
586
+ .widget-card-value li + li,
587
+ .overview-table-wrap td li + li {
588
+ margin-top: 4px;
589
+ }
590
+
591
+ .overview-empty-slot {
592
+ min-height: 150px;
593
+ border: 1px dashed var(--line);
594
+ border-radius: 8px;
595
+ background: rgba(255, 255, 255, 0.58);
596
+ display: grid;
597
+ align-content: center;
598
+ justify-items: center;
599
+ gap: 12px;
600
+ padding: 12px;
601
+ }
602
+
603
+ .overview-empty-slot > button {
604
+ width: 44px;
605
+ min-width: 44px;
606
+ height: 44px;
607
+ min-height: 44px;
608
+ padding: 0;
609
+ border-radius: 999px;
610
+ font-size: 24px;
611
+ line-height: 1;
612
+ color: var(--accent);
613
+ }
614
+
615
+ .overview-placement-panel {
616
+ width: 100%;
617
+ display: grid;
618
+ gap: 10px;
619
+ }
620
+
621
+ .widgets-editor {
622
+ align-items: start;
623
+ }
624
+
625
+ .widget-config-list {
626
+ gap: 8px;
627
+ }
628
+
629
+ .widget-config-row {
630
+ display: grid;
631
+ grid-template-columns: auto minmax(0, 1fr) auto;
632
+ align-items: center;
633
+ gap: 8px;
634
+ }
635
+
636
+ .widget-config-row > input {
637
+ width: auto;
638
+ }
639
+
640
+ .widget-config-select {
641
+ min-height: 54px;
642
+ text-align: left;
643
+ }
644
+
645
+ .widget-config-row.active .widget-config-select {
646
+ border-color: var(--accent);
647
+ background: var(--panel-strong);
648
+ }
649
+
650
+ .widget-config-delete {
651
+ align-self: stretch;
652
+ }
653
+
654
+ .widget-config-row strong,
655
+ .widget-config-row span {
656
+ display: block;
657
+ }
658
+
659
+ .widget-config-row span {
660
+ margin-top: 4px;
661
+ color: var(--muted);
662
+ font-size: 12px;
663
+ }
664
+
665
+ .widget-card-actions,
666
+ .panel-actions {
667
+ display: flex;
668
+ align-items: center;
669
+ gap: 10px;
670
+ }
671
+
672
+ .widget-card-actions {
673
+ justify-content: flex-end;
674
+ }
675
+
676
+ .panel-actions {
677
+ justify-content: space-between;
678
+ }
679
+
680
+ .widget-card-actions button,
681
+ .panel-actions button {
682
+ white-space: nowrap;
683
+ }
684
+
685
+ .modal-backdrop {
686
+ position: fixed;
687
+ inset: 0;
688
+ z-index: 20;
689
+ display: grid;
690
+ place-items: center;
691
+ padding: 24px;
692
+ background: rgba(24, 32, 42, 0.44);
693
+ }
694
+
695
+ .modal-panel {
696
+ width: min(760px, 100%);
697
+ max-height: min(760px, calc(100vh - 48px));
698
+ overflow: auto;
699
+ background: var(--panel);
700
+ border: 1px solid var(--line);
701
+ border-radius: 8px;
702
+ box-shadow: 0 24px 80px rgba(24, 32, 42, 0.26);
703
+ }
704
+
705
+ .modal-panel-small {
706
+ width: min(560px, 100%);
707
+ }
708
+
709
+ .modal-header {
710
+ display: flex;
711
+ justify-content: space-between;
712
+ align-items: flex-start;
713
+ gap: 16px;
714
+ padding: 16px;
715
+ border-bottom: 1px solid var(--line);
716
+ }
717
+
718
+ .modal-header h2 {
719
+ margin: 0;
720
+ font-size: 18px;
721
+ }
722
+
723
+ .modal-header p {
724
+ margin: 4px 0 0;
725
+ color: var(--muted);
726
+ font-size: 13px;
727
+ }
728
+
729
+ .modal-panel form {
730
+ padding: 16px;
731
+ }
732
+
733
+ .chart {
734
+ display: grid;
735
+ gap: 12px;
736
+ }
737
+
738
+ .chart-row {
739
+ display: grid;
740
+ grid-template-columns: minmax(90px, 130px) minmax(0, 1fr);
741
+ gap: 12px;
742
+ align-items: center;
743
+ }
744
+
745
+ .chart-date {
746
+ color: var(--muted);
747
+ font-size: 12px;
748
+ font-weight: 700;
749
+ }
750
+
751
+ .chart-bars {
752
+ display: grid;
753
+ gap: 6px;
754
+ }
755
+
756
+ .chart-bar {
757
+ min-width: 4px;
758
+ min-height: 26px;
759
+ border-radius: 5px;
760
+ background: var(--accent);
761
+ color: white;
762
+ display: flex;
763
+ align-items: center;
764
+ padding: 0 8px;
765
+ white-space: nowrap;
766
+ }
767
+
768
+ .chart-bar span {
769
+ overflow: hidden;
770
+ text-overflow: ellipsis;
771
+ font-size: 12px;
772
+ font-weight: 700;
773
+ }
774
+
775
+ .chart-legend {
776
+ display: flex;
777
+ gap: 8px;
778
+ flex-wrap: wrap;
779
+ margin-top: 12px;
780
+ }
781
+
782
+ .chart-legend span,
783
+ .empty-state {
784
+ color: var(--muted);
785
+ font-size: 12px;
786
+ }
787
+
788
+ .overview-table-widget .panel-body {
789
+ display: grid;
790
+ gap: 12px;
791
+ }
792
+
793
+ .overview-table-wrap table {
794
+ min-width: 640px;
795
+ }
796
+
797
+ .table-pagination {
798
+ display: flex;
799
+ align-items: center;
800
+ justify-content: space-between;
801
+ gap: 12px;
802
+ flex-wrap: wrap;
803
+ }
804
+
805
+ .table-pagination-info {
806
+ color: var(--muted);
807
+ font-size: 12px;
808
+ font-weight: 700;
809
+ }
810
+
811
+ .stat {
812
+ background: var(--panel);
813
+ border: 1px solid var(--line);
814
+ border-radius: 8px;
815
+ padding: 14px;
816
+ }
817
+
818
+ .stat span {
819
+ display: block;
820
+ color: var(--muted);
821
+ font-size: 12px;
822
+ }
823
+
824
+ .stat strong {
825
+ display: block;
826
+ margin-top: 6px;
827
+ font-size: 20px;
828
+ }
829
+
830
+ .split {
831
+ display: grid;
832
+ grid-template-columns: 300px minmax(0, 1fr);
833
+ gap: 16px;
834
+ }
835
+
836
+ .list {
837
+ display: grid;
838
+ gap: 8px;
839
+ }
840
+
841
+ .list button {
842
+ min-height: 48px;
843
+ text-align: left;
844
+ }
845
+
846
+ .list button.active {
847
+ border-color: var(--accent);
848
+ background: #edf8fb;
849
+ }
850
+
851
+ .table-wrap {
852
+ overflow: auto;
853
+ }
854
+
855
+ table {
856
+ width: 100%;
857
+ min-width: 760px;
858
+ border-collapse: collapse;
859
+ }
860
+
861
+ th,
862
+ td {
863
+ border-bottom: 1px solid var(--line);
864
+ padding: 10px 12px;
865
+ text-align: left;
866
+ vertical-align: top;
867
+ font-size: 13px;
868
+ }
869
+
870
+ th {
871
+ color: var(--muted);
872
+ font-weight: 700;
873
+ background: var(--panel-strong);
874
+ }
875
+
876
+ code {
877
+ font-family:
878
+ "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
879
+ font-size: 12px;
880
+ }
881
+
882
+ .metadata-json {
883
+ max-width: 360px;
884
+ max-height: 220px;
885
+ overflow: auto;
886
+ margin: 0;
887
+ padding: 8px;
888
+ border: 1px solid var(--line);
889
+ border-radius: 6px;
890
+ background: #f7f9fb;
891
+ color: var(--text);
892
+ font-size: 12px;
893
+ line-height: 1.45;
894
+ white-space: pre-wrap;
895
+ }
896
+
897
+ .mono {
898
+ font-family:
899
+ "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
900
+ font-size: 12px;
901
+ white-space: pre-wrap;
902
+ }
903
+
904
+ .badge {
905
+ display: inline-flex;
906
+ align-items: center;
907
+ min-height: 24px;
908
+ padding: 0 8px;
909
+ border-radius: 999px;
910
+ background: var(--panel-strong);
911
+ color: var(--muted);
912
+ font-size: 12px;
913
+ font-weight: 700;
914
+ }
915
+
916
+ .badge.ok {
917
+ color: var(--ok);
918
+ }
919
+
920
+ .badge.planned {
921
+ color: #8c5b12;
922
+ }
923
+
924
+ @media (max-width: 920px) {
925
+ .app-shell {
926
+ grid-template-columns: 1fr;
927
+ }
928
+
929
+ .sidebar {
930
+ position: sticky;
931
+ top: 0;
932
+ z-index: 3;
933
+ padding: 12px 14px;
934
+ gap: 10px;
935
+ box-shadow: var(--shadow);
936
+ }
937
+
938
+ .sidebar-header {
939
+ display: flex;
940
+ align-items: center;
941
+ justify-content: space-between;
942
+ gap: 12px;
943
+ }
944
+
945
+ .brand {
946
+ min-width: 0;
947
+ padding: 0;
948
+ border-bottom: 0;
949
+ }
950
+
951
+ .brand strong {
952
+ font-size: 16px;
953
+ }
954
+
955
+ .menu-toggle {
956
+ width: 40px;
957
+ min-width: 40px;
958
+ height: 40px;
959
+ min-height: 40px;
960
+ display: inline-grid;
961
+ place-items: center;
962
+ gap: 4px;
963
+ padding: 9px;
964
+ border-color: rgba(255, 255, 255, 0.24);
965
+ background: rgba(255, 255, 255, 0.08);
966
+ color: white;
967
+ }
968
+
969
+ .menu-toggle:hover {
970
+ border-color: rgba(255, 255, 255, 0.46);
971
+ }
972
+
973
+ .menu-toggle span {
974
+ width: 18px;
975
+ height: 2px;
976
+ display: block;
977
+ border-radius: 999px;
978
+ background: currentColor;
979
+ }
980
+
981
+ .nav {
982
+ display: none;
983
+ max-height: calc(100vh - 96px);
984
+ overflow-y: auto;
985
+ padding-top: 10px;
986
+ border-top: 1px solid rgba(255, 255, 255, 0.12);
987
+ grid-template-columns: 1fr;
988
+ }
989
+
990
+ .sidebar.menu-open .nav {
991
+ display: grid;
992
+ }
993
+
994
+ .sidebar-footer {
995
+ display: none;
996
+ }
997
+
998
+ .stats,
999
+ .overview-grid,
1000
+ .widget-grid,
1001
+ .split,
1002
+ .schema-editor {
1003
+ grid-template-columns: 1fr;
1004
+ }
1005
+
1006
+ .overview-widget-slot {
1007
+ grid-column: span 1 !important;
1008
+ }
1009
+
1010
+ .schema-object-list-body {
1011
+ max-height: 280px;
1012
+ }
1013
+ }
1014
+
1015
+ @media (max-width: 560px) {
1016
+ .content,
1017
+ .topbar {
1018
+ padding: 14px;
1019
+ }
1020
+
1021
+ .nav {
1022
+ grid-template-columns: 1fr;
1023
+ }
1024
+
1025
+ .topbar {
1026
+ align-items: flex-start;
1027
+ flex-direction: column;
1028
+ }
1029
+
1030
+ .form-actions {
1031
+ justify-content: stretch;
1032
+ }
1033
+
1034
+ .form-actions button {
1035
+ flex: 1;
1036
+ }
1037
+
1038
+ .subgrid {
1039
+ grid-template-columns: 1fr;
1040
+ }
1041
+ }