anentrypoint-design 0.0.145 → 0.0.147
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.
- package/app-shell.css +157 -22
- package/colors_and_type.css +21 -1
- package/community.css +106 -4
- package/dist/247420.css +339 -30
- package/dist/247420.js +12 -11
- package/package.json +1 -1
- package/src/components/chat.js +2 -2
- package/src/components/community.js +104 -4
- package/src/components/content.js +17 -8
- package/src/components/editor-primitives.js +2 -2
- package/src/components/form-primitives.js +25 -12
- package/src/components/freddie/runtime.js +101 -0
- package/src/components/freddie.js +614 -27
- package/src/components/overlay-primitives.js +91 -2
- package/src/components/shell.js +40 -5
- package/src/components/voice.js +25 -0
- package/src/components.js +7 -5
- package/src/kits/os/freddie/pages-chat.js +1 -1
- package/src/kits/os/freddie/pages-core.js +1 -1
- package/src/kits/os/freddie-dashboard.js +3 -3
- package/src/kits/os/shell.js +2 -0
package/dist/247420.css
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
|
|
10
10
|
|
|
11
11
|
.ds-247420 {
|
|
12
|
+
/* Tree view indentation tokens */
|
|
13
|
+
--tree-indent: 12px;
|
|
14
|
+
--tree-base-indent: 6px;
|
|
15
|
+
|
|
12
16
|
/* Paper / Ink — cool stone scale; lets lore palette pop. */
|
|
13
17
|
--paper: #F6F5F1;
|
|
14
18
|
--paper-2: #ECEBE6;
|
|
@@ -138,6 +142,18 @@
|
|
|
138
142
|
--z-overlay: 1000;
|
|
139
143
|
|
|
140
144
|
--measure: 68ch;
|
|
145
|
+
--measure-wide: 940px;
|
|
146
|
+
--measure-narrow: 760px;
|
|
147
|
+
|
|
148
|
+
--sidebar-width: 220px;
|
|
149
|
+
--sidebar-width-collapsed: 64px;
|
|
150
|
+
|
|
151
|
+
--lh-tall: 1.4;
|
|
152
|
+
|
|
153
|
+
/* Control size scale — heights for status/topbar/crumb + controls. */
|
|
154
|
+
--size-sm: 32px;
|
|
155
|
+
--size-base: 42px;
|
|
156
|
+
--size-lg: 56px;
|
|
141
157
|
}
|
|
142
158
|
|
|
143
159
|
/* ============================================================
|
|
@@ -168,7 +184,7 @@
|
|
|
168
184
|
.ds-247420 textarea:focus-visible,
|
|
169
185
|
.ds-247420 select:focus-visible {
|
|
170
186
|
outline: 2px solid var(--accent);
|
|
171
|
-
outline-offset:
|
|
187
|
+
outline-offset: 2px;
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
/* Interactive element focus-visible */
|
|
@@ -200,6 +216,10 @@
|
|
|
200
216
|
--danger: oklch(0.68 0.19 25);
|
|
201
217
|
}
|
|
202
218
|
|
|
219
|
+
/* NOTE: the [data-theme="auto"] block below intentionally duplicates the
|
|
220
|
+
[data-theme="ink"/"dark"] block above. They are NOT literally identical —
|
|
221
|
+
the explicit-dark block also overrides --danger for contrast — so they are
|
|
222
|
+
kept separate rather than consolidated to avoid a behavior change. */
|
|
203
223
|
@media (prefers-color-scheme: dark) {
|
|
204
224
|
.ds-247420[data-theme="auto"] {
|
|
205
225
|
--bg: var(--ink);
|
|
@@ -311,6 +331,7 @@
|
|
|
311
331
|
============================================================ */
|
|
312
332
|
.ds-247420 * { box-sizing: border-box; }
|
|
313
333
|
.ds-247420, .ds-247420 body { margin: 0; padding: 0; }
|
|
334
|
+
.ds-247420 button, .ds-247420 input, .ds-247420 select, .ds-247420 textarea { font: inherit; }
|
|
314
335
|
|
|
315
336
|
/* ============================================================
|
|
316
337
|
Accessibility — Skip Link
|
|
@@ -330,7 +351,7 @@
|
|
|
330
351
|
}
|
|
331
352
|
.ds-247420 .skip-link:focus {
|
|
332
353
|
top: 10px;
|
|
333
|
-
outline: 2px solid var(--
|
|
354
|
+
outline: 2px solid var(--accent);
|
|
334
355
|
outline-offset: 2px;
|
|
335
356
|
}
|
|
336
357
|
.ds-247420 body {
|
|
@@ -373,7 +394,7 @@
|
|
|
373
394
|
|
|
374
395
|
.ds-247420 .lede, .ds-247420 .t-lede {
|
|
375
396
|
font-family: var(--ff-body); font-size: var(--fs-xl);
|
|
376
|
-
line-height:
|
|
397
|
+
line-height: var(--lh-tall); max-width: 38ch; font-weight: 400; color: var(--fg-2);
|
|
377
398
|
margin: 0;
|
|
378
399
|
}
|
|
379
400
|
|
|
@@ -429,8 +450,8 @@
|
|
|
429
450
|
|
|
430
451
|
.ds-247420 pre {
|
|
431
452
|
font-family: var(--ff-mono);
|
|
432
|
-
background: var(--
|
|
433
|
-
color: var(--
|
|
453
|
+
background: var(--panel-bg, #15151a);
|
|
454
|
+
color: var(--panel-text, inherit);
|
|
434
455
|
padding: var(--space-5);
|
|
435
456
|
overflow-x: auto;
|
|
436
457
|
line-height: 1.55;
|
|
@@ -460,9 +481,9 @@
|
|
|
460
481
|
}
|
|
461
482
|
|
|
462
483
|
.ds-247420 {
|
|
463
|
-
--app-status-h:
|
|
464
|
-
--app-topbar-h:
|
|
465
|
-
--app-crumb-h:
|
|
484
|
+
--app-status-h: var(--size-base);
|
|
485
|
+
--app-topbar-h: var(--size-lg);
|
|
486
|
+
--app-crumb-h: var(--size-sm);
|
|
466
487
|
}
|
|
467
488
|
|
|
468
489
|
.ds-247420 .app-topbar {
|
|
@@ -531,8 +552,11 @@
|
|
|
531
552
|
.ds-247420 .app-crumb .crumb-right { margin-left: auto; color: var(--fg-3); }
|
|
532
553
|
|
|
533
554
|
.ds-247420 .app-side-shell { background: var(--bg); }
|
|
534
|
-
.ds-247420 .app-body { display: grid; grid-template-columns:
|
|
555
|
+
.ds-247420 .app-body { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: stretch; align-content: stretch; flex: 1; min-height: 0; }
|
|
535
556
|
.ds-247420 .app-body.no-side { grid-template-columns: minmax(0, 1fr); }
|
|
557
|
+
/* When there is no sidebar, the empty side-shell must not occupy a grid row,
|
|
558
|
+
otherwise main wraps to a second (collapsed) row. Remove it from layout. */
|
|
559
|
+
.ds-247420 .app-body.no-side .app-side-shell { display: none; }
|
|
536
560
|
|
|
537
561
|
.ds-247420 .app-side {
|
|
538
562
|
display: flex; flex-direction: column; gap: var(--space-4);
|
|
@@ -572,23 +596,34 @@
|
|
|
572
596
|
.ds-247420 .app-main {
|
|
573
597
|
padding: var(--space-5) var(--pad-x) 0;
|
|
574
598
|
min-width: 0;
|
|
599
|
+
/* Full-height flex column so a single flex:1 child (e.g. .chat) fills the
|
|
600
|
+
region between crumb and status instead of floating at content height. */
|
|
601
|
+
display: flex; flex-direction: column;
|
|
602
|
+
min-height: 0;
|
|
603
|
+
align-self: stretch;
|
|
604
|
+
height: 100%;
|
|
575
605
|
}
|
|
576
|
-
.ds-247420 .app-main
|
|
606
|
+
.ds-247420 .app-main > * { min-height: 0; }
|
|
607
|
+
.ds-247420 .app-main.narrow { max-width: var(--measure-narrow); margin: 0 auto; }
|
|
577
608
|
|
|
578
609
|
@media (min-width: 1400px) {
|
|
579
610
|
.ds-247420 .app { max-width: 1400px; margin-left: auto; margin-right: auto; }
|
|
580
611
|
.ds-247420 .app-main .chat,
|
|
581
612
|
.ds-247420 .app-main > .chat-area,
|
|
582
613
|
.ds-247420 .app-main > .main-content { max-width: none; margin: 0; width: 100%; }
|
|
583
|
-
|
|
614
|
+
/* Status bar inherits the .app max-width cap above and stretches edge-to-edge
|
|
615
|
+
within it; no separate width constraint (which previously narrowed it). */
|
|
616
|
+
.ds-247420 .app-status { width: 100%; }
|
|
584
617
|
}
|
|
585
618
|
|
|
586
619
|
.ds-247420 .app-status {
|
|
587
620
|
display: flex; align-items: center; gap: var(--space-3);
|
|
621
|
+
width: 100%;
|
|
588
622
|
min-height: var(--app-status-h);
|
|
589
623
|
padding: 10px var(--pad-x);
|
|
590
624
|
font-family: var(--ff-mono); font-size: var(--fs-xs);
|
|
591
625
|
color: var(--fg-3);
|
|
626
|
+
border-top: 1px solid var(--rule);
|
|
592
627
|
}
|
|
593
628
|
.ds-247420 .app-status .item { color: inherit; }
|
|
594
629
|
.ds-247420 .app-status .item:first-of-type { color: var(--accent); }
|
|
@@ -620,6 +655,54 @@
|
|
|
620
655
|
outline-offset: 2px;
|
|
621
656
|
}
|
|
622
657
|
|
|
658
|
+
/* ============================================================
|
|
659
|
+
IconButton — square icon-only button
|
|
660
|
+
============================================================ */
|
|
661
|
+
.ds-247420 .ds-icon-btn {
|
|
662
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
663
|
+
padding: 0; border: none; cursor: pointer;
|
|
664
|
+
border-radius: var(--r-1, 6px);
|
|
665
|
+
background: transparent; color: var(--fg);
|
|
666
|
+
width: 32px; height: 32px;
|
|
667
|
+
}
|
|
668
|
+
.ds-247420 .ds-icon-btn-xs { width: 22px; height: 22px; }
|
|
669
|
+
.ds-247420 .ds-icon-btn-sm { width: 26px; height: 26px; }
|
|
670
|
+
.ds-247420 .ds-icon-btn-base { width: 32px; height: 32px; }
|
|
671
|
+
.ds-247420 .ds-icon-btn-lg { width: 40px; height: 40px; }
|
|
672
|
+
.ds-247420 .ds-icon-btn-xl { width: 48px; height: 48px; }
|
|
673
|
+
.ds-247420 .ds-icon-btn-ghost { background: transparent; }
|
|
674
|
+
.ds-247420 .ds-icon-btn-ghost:hover { background: var(--bg-2); }
|
|
675
|
+
.ds-247420 .ds-icon-btn-primary { background: var(--accent); color: var(--accent-fg); }
|
|
676
|
+
.ds-247420 .ds-icon-btn-primary:hover { background: var(--fg); color: var(--bg); }
|
|
677
|
+
.ds-247420 .ds-icon-btn-danger { background: var(--flame); color: var(--paper); }
|
|
678
|
+
.ds-247420 .ds-icon-btn-danger:hover { filter: brightness(1.1); }
|
|
679
|
+
.ds-247420 .ds-icon-btn:active { transform: translateY(1px); }
|
|
680
|
+
.ds-247420 .ds-icon-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
681
|
+
.ds-247420 .ds-icon-btn:disabled, .ds-247420 .ds-icon-btn.is-disabled {
|
|
682
|
+
opacity: 0.5; cursor: not-allowed; pointer-events: none;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/* ============================================================
|
|
686
|
+
Badge — small inline count/status pill
|
|
687
|
+
============================================================ */
|
|
688
|
+
.ds-247420 .ds-badge {
|
|
689
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
690
|
+
min-width: 18px; height: 18px; padding: 0 6px;
|
|
691
|
+
font-size: 11px; font-weight: 600; line-height: 1;
|
|
692
|
+
border-radius: 999px;
|
|
693
|
+
background: var(--bg-3); color: var(--fg-2);
|
|
694
|
+
}
|
|
695
|
+
.ds-247420 .ds-badge.tone-green { background: var(--green-tint); color: var(--green-deep); }
|
|
696
|
+
.ds-247420 .ds-badge.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
697
|
+
.ds-247420 .ds-badge.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
698
|
+
.ds-247420 .ds-badge.tone-sun { background: var(--sun); color: var(--ink); }
|
|
699
|
+
.ds-247420 .ds-badge.tone-flame { background: var(--flame); color: var(--paper); }
|
|
700
|
+
.ds-247420 .ds-badge.tone-live { background: var(--green-tint); color: var(--green-deep); }
|
|
701
|
+
.ds-247420 .ds-badge.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
702
|
+
.ds-247420 .ds-badge.tone-error { background: var(--flame); color: var(--paper); }
|
|
703
|
+
.ds-247420 .ds-badge.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
704
|
+
.ds-247420 .ds-badge.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
705
|
+
|
|
623
706
|
.ds-247420 .chip {
|
|
624
707
|
display: inline-flex; align-items: center; gap: 6px;
|
|
625
708
|
padding: 3px 10px;
|
|
@@ -636,6 +719,12 @@
|
|
|
636
719
|
.ds-247420 .chip.tone-flame { background: var(--flame); color: var(--paper); }
|
|
637
720
|
.ds-247420 .chip.tone-live { background: var(--green-tint); color: var(--green-deep); }
|
|
638
721
|
.ds-247420 .chip.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
722
|
+
.ds-247420 .chip.tone-error { background: var(--flame); color: var(--paper); }
|
|
723
|
+
.ds-247420 .chip.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
724
|
+
.ds-247420 .chip.tone-disabled { background: var(--bg-3); color: var(--fg-3); }
|
|
725
|
+
.ds-247420 .chip.tone-ok { background: var(--green-tint); color: var(--green-deep); }
|
|
726
|
+
.ds-247420 .chip.tone-miss { background: var(--flame); color: var(--paper); }
|
|
727
|
+
.ds-247420 .chip.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
639
728
|
|
|
640
729
|
.ds-247420 .glyph {
|
|
641
730
|
display: inline-flex; align-items: center; justify-content: center;
|
|
@@ -696,6 +785,9 @@
|
|
|
696
785
|
.ds-247420 .row:hover::before { background: var(--rule-strong); }
|
|
697
786
|
.ds-247420 .row.active { background: color-mix(in oklab, var(--accent) 10%, var(--bg-2)); }
|
|
698
787
|
.ds-247420 .row.active::before { background: var(--accent); }
|
|
788
|
+
.ds-247420 .row.row-state-disabled { opacity: 0.5; pointer-events: none; }
|
|
789
|
+
.ds-247420 .row.row-state-error { background: color-mix(in oklab, var(--flame) 10%, var(--bg-2)); }
|
|
790
|
+
.ds-247420 .row.row-state-error::before { background: var(--flame); }
|
|
699
791
|
.ds-247420 .row-grid { /* explicit grid-template-columns set inline */ }
|
|
700
792
|
|
|
701
793
|
.ds-247420 .row .code { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); }
|
|
@@ -711,7 +803,7 @@
|
|
|
711
803
|
.ds-247420 .ds-hero {
|
|
712
804
|
padding: var(--space-9) 0 var(--space-8);
|
|
713
805
|
display: grid; gap: var(--space-5);
|
|
714
|
-
max-width:
|
|
806
|
+
max-width: var(--measure-wide);
|
|
715
807
|
}
|
|
716
808
|
.ds-247420 .ds-hero-title {
|
|
717
809
|
font-family: var(--ff-body); font-weight: 600;
|
|
@@ -725,6 +817,8 @@
|
|
|
725
817
|
color: var(--fg-2);
|
|
726
818
|
}
|
|
727
819
|
.ds-247420 .ds-hero-accent { color: var(--accent); font-weight: 500; }
|
|
820
|
+
.ds-247420 .ds-hero-actions { display: flex; gap: var(--space-2, 10px); flex-wrap: wrap; margin-top: var(--space-2, 8px); }
|
|
821
|
+
.ds-247420 .ds-chat-title { margin: 0; font-size: inherit; }
|
|
728
822
|
|
|
729
823
|
/* ============================================================
|
|
730
824
|
Section grouping
|
|
@@ -890,6 +984,21 @@
|
|
|
890
984
|
.ds-247420 .row-form input:focus,
|
|
891
985
|
.ds-247420 .row-form textarea:focus { box-shadow: inset 0 0 0 2px var(--accent); }
|
|
892
986
|
|
|
987
|
+
/* Field char counter (TextField maxLength) */
|
|
988
|
+
.ds-247420 .ds-field-count {
|
|
989
|
+
font-size: var(--fs-tiny, 12px);
|
|
990
|
+
color: var(--fg-3, var(--fg-2));
|
|
991
|
+
text-align: right;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
/* Multi-column form layout (Form columns prop) */
|
|
995
|
+
.ds-247420 .row-form[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
|
|
996
|
+
.ds-247420 .row-form[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
|
|
997
|
+
@media (max-width: 600px) {
|
|
998
|
+
.ds-247420 .row-form[data-columns="2"],
|
|
999
|
+
.ds-247420 .row-form[data-columns="3"] { grid-template-columns: 1fr; }
|
|
1000
|
+
}
|
|
1001
|
+
|
|
893
1002
|
/* ============================================================
|
|
894
1003
|
Responsive Design — Mobile (480px), Tablet (1024px), Desktop (1440px+)
|
|
895
1004
|
============================================================ */
|
|
@@ -970,7 +1079,6 @@
|
|
|
970
1079
|
/* Chat */
|
|
971
1080
|
.ds-247420 .chat-stack { max-width: 100%; min-width: 0; }
|
|
972
1081
|
.ds-247420 .chat-bubble {
|
|
973
|
-
max-width: clamp(200px, 85vw, 320px);
|
|
974
1082
|
padding: 10px 12px; font-size: var(--fs-sm);
|
|
975
1083
|
}
|
|
976
1084
|
.ds-247420 .chat-avatar { width: 28px; height: 28px; font-size: 11px; }
|
|
@@ -1080,7 +1188,6 @@
|
|
|
1080
1188
|
/* Chat Bubbles */
|
|
1081
1189
|
.ds-247420 .chat-stack { max-width: min(75%, 420px); }
|
|
1082
1190
|
.ds-247420 .chat-bubble {
|
|
1083
|
-
max-width: clamp(220px, 75vw, 420px);
|
|
1084
1191
|
padding: 11px 14px; font-size: var(--fs-sm);
|
|
1085
1192
|
}
|
|
1086
1193
|
.ds-247420 .chat-avatar { width: 32px; height: 32px; font-size: 12px; }
|
|
@@ -1111,15 +1218,29 @@
|
|
|
1111
1218
|
}
|
|
1112
1219
|
}
|
|
1113
1220
|
|
|
1221
|
+
/* ────────────────────────────────────────────────────────────────────
|
|
1222
|
+
Mid Breakpoint (768px and below) — collapse sidebar + simplify row grid
|
|
1223
|
+
────────────────────────────────────────────────────────────────────── */
|
|
1224
|
+
@media (max-width: 768px) {
|
|
1225
|
+
/* Sidebar stacks above main rather than sitting beside it */
|
|
1226
|
+
.ds-247420 .app-body { grid-template-columns: 1fr; }
|
|
1227
|
+
.ds-247420 .app-side { width: 100%; max-width: none; }
|
|
1228
|
+
|
|
1229
|
+
/* Row drops the leading code column; title + meta share the line */
|
|
1230
|
+
.ds-247420 .row {
|
|
1231
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
1232
|
+
gap: var(--space-2);
|
|
1233
|
+
}
|
|
1234
|
+
.ds-247420 .row .code { display: none; }
|
|
1235
|
+
.ds-247420 .row .sub { grid-column: 1 / -1; }
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1114
1238
|
/* ────────────────────────────────────────────────────────────────────
|
|
1115
1239
|
Desktop Breakpoint Enhancements (1025px and up)
|
|
1116
1240
|
────────────────────────────────────────────────────────────────────── */
|
|
1117
1241
|
@media (min-width: 1025px) {
|
|
1118
1242
|
/* Chat Bubbles */
|
|
1119
1243
|
.ds-247420 .chat-stack { max-width: min(70%, 480px); }
|
|
1120
|
-
.ds-247420 .chat-bubble {
|
|
1121
|
-
max-width: clamp(240px, 70vw, 480px);
|
|
1122
|
-
}
|
|
1123
1244
|
|
|
1124
1245
|
/* KPI Cards */
|
|
1125
1246
|
.ds-247420 .kpi {
|
|
@@ -1398,7 +1519,7 @@
|
|
|
1398
1519
|
border-radius: var(--r-2); color: var(--fg);
|
|
1399
1520
|
font-family: inherit; font-size: var(--fs-sm);
|
|
1400
1521
|
}
|
|
1401
|
-
.ds-247420 .ds-modal-input:focus { outline: 2px solid var(--accent); outline-offset:
|
|
1522
|
+
.ds-247420 .ds-modal-input:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
1402
1523
|
.ds-247420 .btn-primary.danger {
|
|
1403
1524
|
background: var(--warn);
|
|
1404
1525
|
border-color: var(--warn);
|
|
@@ -1487,7 +1608,7 @@
|
|
|
1487
1608
|
border-radius: var(--r-pill); color: var(--fg);
|
|
1488
1609
|
font-family: inherit; font-size: var(--fs-xs);
|
|
1489
1610
|
}
|
|
1490
|
-
.ds-247420 .ds-filter-input:focus { outline: 2px solid var(--accent); outline-offset:
|
|
1611
|
+
.ds-247420 .ds-filter-input:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
1491
1612
|
|
|
1492
1613
|
/* Loading skeleton — placeholder rows while a directory loads. */
|
|
1493
1614
|
.ds-247420 .ds-file-grid-loading { display: flex; flex-direction: column; gap: 4px; }
|
|
@@ -1676,7 +1797,7 @@
|
|
|
1676
1797
|
border-radius: 14px; line-height: 1.55;
|
|
1677
1798
|
word-wrap: break-word; overflow-wrap: anywhere;
|
|
1678
1799
|
font-size: var(--fs-sm);
|
|
1679
|
-
max-width:
|
|
1800
|
+
max-width: clamp(220px, min(75vw, 28em), 480px);
|
|
1680
1801
|
min-width: 0;
|
|
1681
1802
|
transition: transform 0.12s ease, box-shadow 0.12s ease;
|
|
1682
1803
|
}
|
|
@@ -1950,6 +2071,8 @@
|
|
|
1950
2071
|
font-family: inherit; font-size: var(--fs-sm);
|
|
1951
2072
|
line-height: 1.4; resize: none;
|
|
1952
2073
|
min-height: 44px; max-height: 200px;
|
|
2074
|
+
box-sizing: border-box; overflow-y: auto;
|
|
2075
|
+
scrollbar-width: thin;
|
|
1953
2076
|
}
|
|
1954
2077
|
.ds-247420 .chat-composer textarea::placeholder { color: var(--fg-3); }
|
|
1955
2078
|
.ds-247420 .chat-composer textarea:focus {
|
|
@@ -2497,6 +2620,12 @@
|
|
|
2497
2620
|
.ds-247420 .ds-spinner-sm { height: 12px; gap: 2px; }
|
|
2498
2621
|
.ds-247420 .ds-spinner-sm span { width: 2px; height: 2px; }
|
|
2499
2622
|
|
|
2623
|
+
.ds-247420 .ds-spinner-xs { height: 8px; gap: 1px; }
|
|
2624
|
+
.ds-247420 .ds-spinner-xs span { width: 1.5px; height: 1.5px; }
|
|
2625
|
+
|
|
2626
|
+
.ds-247420 .ds-spinner-xl { height: 32px; gap: 8px; }
|
|
2627
|
+
.ds-247420 .ds-spinner-xl span { width: 8px; height: 8px; }
|
|
2628
|
+
|
|
2500
2629
|
@keyframes ds-bounce {
|
|
2501
2630
|
0%, 80%, 100% { transform: translateY(0); }
|
|
2502
2631
|
40% { transform: translateY(-8px); }
|
|
@@ -2622,7 +2751,7 @@
|
|
|
2622
2751
|
.ds-247420 .app-main { padding-left: var(--space-3); padding-right: var(--space-3); }
|
|
2623
2752
|
}
|
|
2624
2753
|
|
|
2625
|
-
/* Drawer scrim */
|
|
2754
|
+
/* Drawer scrim — lives inside .app-body, shown when drawer open ≤900px */
|
|
2626
2755
|
.ds-247420 .app-side-scrim {
|
|
2627
2756
|
display: none;
|
|
2628
2757
|
position: fixed; inset: 0;
|
|
@@ -2630,8 +2759,34 @@
|
|
|
2630
2759
|
z-index: 49;
|
|
2631
2760
|
}
|
|
2632
2761
|
@media (max-width: 900px) {
|
|
2633
|
-
.ds-247420 .app-body.side-open
|
|
2634
|
-
|
|
2762
|
+
.ds-247420 .app-body.side-open .app-side-scrim { display: block; }
|
|
2763
|
+
}
|
|
2764
|
+
|
|
2765
|
+
/* Mobile nav toggle (hamburger) — hidden on desktop, shown ≤900px */
|
|
2766
|
+
.ds-247420 .app-side-toggle {
|
|
2767
|
+
display: none;
|
|
2768
|
+
position: fixed; top: calc((var(--app-topbar-h) - 32px) / 2); left: 10px;
|
|
2769
|
+
z-index: 51;
|
|
2770
|
+
width: 36px; height: 36px;
|
|
2771
|
+
align-items: center; justify-content: center;
|
|
2772
|
+
font-size: 18px; line-height: 1;
|
|
2773
|
+
background: var(--bg-2); color: var(--fg);
|
|
2774
|
+
border: 1px solid var(--rule, color-mix(in oklab, var(--fg) 12%, transparent));
|
|
2775
|
+
border-radius: var(--r-1, 6px);
|
|
2776
|
+
cursor: pointer;
|
|
2777
|
+
}
|
|
2778
|
+
.ds-247420 .app-side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
2779
|
+
@media (max-width: 900px) {
|
|
2780
|
+
.ds-247420 .app-side-toggle { display: inline-flex; }
|
|
2781
|
+
.ds-247420 .app-topbar .brand { margin-left: 44px; }
|
|
2782
|
+
}
|
|
2783
|
+
|
|
2784
|
+
/* Desktop: independent scroll for side rail and main, so a short viewport
|
|
2785
|
+
keeps the bottom nav items reachable and main scrolls on its own. */
|
|
2786
|
+
@media (min-width: 901px) {
|
|
2787
|
+
.ds-247420 .app-body { min-height: 0; max-height: calc(100vh - var(--app-topbar-h) - var(--app-crumb-h, 0px) - var(--app-status-h, 0px)); }
|
|
2788
|
+
.ds-247420 .app-side-shell { overflow-y: auto; max-height: 100%; }
|
|
2789
|
+
.ds-247420 .app-main { overflow-y: auto; max-height: 100%; }
|
|
2635
2790
|
}
|
|
2636
2791
|
|
|
2637
2792
|
/* Mobile (≤480) status bar compact; hide tail item */
|
|
@@ -3171,7 +3326,7 @@
|
|
|
3171
3326
|
width: 20px;
|
|
3172
3327
|
height: 20px;
|
|
3173
3328
|
border-radius: 50%;
|
|
3174
|
-
background: var(--bg-3);
|
|
3329
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3175
3330
|
color: var(--fg-2);
|
|
3176
3331
|
display: inline-flex;
|
|
3177
3332
|
align-items: center;
|
|
@@ -3304,7 +3459,7 @@
|
|
|
3304
3459
|
width: 32px;
|
|
3305
3460
|
height: 32px;
|
|
3306
3461
|
border-radius: 50%;
|
|
3307
|
-
background: var(--bg-3);
|
|
3462
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3308
3463
|
color: var(--fg-2);
|
|
3309
3464
|
display: inline-flex;
|
|
3310
3465
|
align-items: center;
|
|
@@ -3508,7 +3663,7 @@
|
|
|
3508
3663
|
width: 28px;
|
|
3509
3664
|
height: 28px;
|
|
3510
3665
|
border-radius: 50%;
|
|
3511
|
-
background: var(--bg-3);
|
|
3666
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3512
3667
|
color: var(--fg-2);
|
|
3513
3668
|
display: inline-flex;
|
|
3514
3669
|
align-items: center;
|
|
@@ -3569,7 +3724,7 @@
|
|
|
3569
3724
|
width: 56px;
|
|
3570
3725
|
height: 56px;
|
|
3571
3726
|
border-radius: 50%;
|
|
3572
|
-
background: var(--bg-3);
|
|
3727
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3573
3728
|
color: var(--fg-2);
|
|
3574
3729
|
display: inline-flex;
|
|
3575
3730
|
align-items: center;
|
|
@@ -4080,6 +4235,108 @@
|
|
|
4080
4235
|
color: var(--green); font-weight: 700; letter-spacing: var(--tr-caps);
|
|
4081
4236
|
}
|
|
4082
4237
|
|
|
4238
|
+
/* VoiceControls — vx-vc-* */
|
|
4239
|
+
.ds-247420 .vx-vc {
|
|
4240
|
+
display: flex; align-items: center; gap: var(--space-1);
|
|
4241
|
+
padding: var(--space-1) var(--space-2);
|
|
4242
|
+
background: var(--bg-2);
|
|
4243
|
+
border-top: var(--bw-hair) solid var(--rule);
|
|
4244
|
+
}
|
|
4245
|
+
.ds-247420 .vx-vc-btn {
|
|
4246
|
+
width: 36px; height: 36px;
|
|
4247
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
4248
|
+
border: var(--bw-hair) solid var(--rule-strong);
|
|
4249
|
+
border-radius: var(--r-1);
|
|
4250
|
+
background: var(--bg-3); color: var(--fg);
|
|
4251
|
+
cursor: pointer; font-size: 16px; line-height: 1;
|
|
4252
|
+
}
|
|
4253
|
+
.ds-247420 .vx-vc-btn:hover { background: var(--bg-4, var(--bg-3)); }
|
|
4254
|
+
.ds-247420 .vx-vc-on { background: var(--accent); color: var(--accent-fg, #fff); border-color: var(--accent); }
|
|
4255
|
+
.ds-247420 .vx-vc-disabled, .ds-247420 .vx-vc-btn:disabled { opacity: .4; cursor: not-allowed; }
|
|
4256
|
+
.ds-247420 .vx-vc-leave { margin-left: auto; background: var(--danger, #d04545); color: #fff; border-color: var(--danger, #d04545); }
|
|
4257
|
+
.ds-247420 .vx-vc-glyph { pointer-events: none; }
|
|
4258
|
+
|
|
4259
|
+
/* ThreadPanel — cm-thread-panel / cm-tp-* */
|
|
4260
|
+
.ds-247420 .cm-thread-panel {
|
|
4261
|
+
display: flex; flex-direction: column;
|
|
4262
|
+
height: 100%; min-height: 0;
|
|
4263
|
+
background: var(--bg-2); color: var(--fg);
|
|
4264
|
+
border-left: var(--bw-hair) solid var(--rule);
|
|
4265
|
+
}
|
|
4266
|
+
.ds-247420 .cm-tp-head {
|
|
4267
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
4268
|
+
padding: var(--space-2); border-bottom: var(--bw-hair) solid var(--rule);
|
|
4269
|
+
}
|
|
4270
|
+
.ds-247420 .cm-tp-title { font-weight: 700; font-size: var(--fs-1, 14px); }
|
|
4271
|
+
.ds-247420 .cm-tp-head-actions { display: flex; gap: var(--space-1); }
|
|
4272
|
+
.ds-247420 .cm-tp-new, .ds-247420 .cm-tp-close {
|
|
4273
|
+
border: none; background: transparent; color: var(--fg-2, var(--fg));
|
|
4274
|
+
cursor: pointer; font-size: 16px; width: 24px; height: 24px; border-radius: var(--r-1);
|
|
4275
|
+
}
|
|
4276
|
+
.ds-247420 .cm-tp-new:hover, .ds-247420 .cm-tp-close:hover { background: var(--bg-3); color: var(--fg); }
|
|
4277
|
+
.ds-247420 .cm-tp-list { flex: 1; min-height: 0; overflow-y: auto; }
|
|
4278
|
+
.ds-247420 .cm-tp-item {
|
|
4279
|
+
display: flex; flex-direction: column; gap: 2px;
|
|
4280
|
+
width: 100%; text-align: left; cursor: pointer;
|
|
4281
|
+
padding: var(--space-2); border: none; background: transparent;
|
|
4282
|
+
border-bottom: var(--bw-hair) solid var(--rule);
|
|
4283
|
+
color: var(--fg);
|
|
4284
|
+
}
|
|
4285
|
+
.ds-247420 .cm-tp-item:hover { background: var(--bg-3); }
|
|
4286
|
+
.ds-247420 .cm-tp-item.is-active { background: var(--bg-3); box-shadow: inset 3px 0 0 var(--accent); }
|
|
4287
|
+
.ds-247420 .cm-tp-item.is-unread .cm-tp-item-title { font-weight: 700; }
|
|
4288
|
+
.ds-247420 .cm-tp-dot { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
|
|
4289
|
+
.ds-247420 .cm-tp-item-title { font-size: var(--fs-1, 14px); }
|
|
4290
|
+
.ds-247420 .cm-tp-item-snippet { font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4291
|
+
.ds-247420 .cm-tp-item-meta { display: flex; gap: var(--space-2); font-size: var(--fs-micro, 11px); color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
4292
|
+
.ds-247420 .cm-tp-empty, .ds-247420 .cm-forum-empty { padding: var(--space-3); text-align: center; color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
4293
|
+
|
|
4294
|
+
/* ForumView — cm-forum / cm-forum-* */
|
|
4295
|
+
.ds-247420 .cm-forum { display: flex; flex-direction: column; height: 100%; min-height: 0; background: var(--bg-1, var(--bg-2)); color: var(--fg); }
|
|
4296
|
+
.ds-247420 .cm-forum-toolbar { display: flex; gap: var(--space-2); align-items: center; padding: var(--space-2); border-bottom: var(--bw-hair) solid var(--rule); }
|
|
4297
|
+
.ds-247420 .cm-forum-search { flex: 1; padding: var(--space-1) var(--space-2); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
|
|
4298
|
+
.ds-247420 .cm-forum-sort { padding: var(--space-1); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
|
|
4299
|
+
.ds-247420 .cm-forum-new { padding: var(--space-1) var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg, #fff); cursor: pointer; }
|
|
4300
|
+
.ds-247420 .cm-forum-list { flex: 1; min-height: 0; overflow-y: auto; }
|
|
4301
|
+
.ds-247420 .cm-forum-item { display: flex; flex-direction: column; gap: var(--space-1); width: 100%; text-align: left; cursor: pointer; padding: var(--space-2) var(--space-3); border: none; background: transparent; border-bottom: var(--bw-hair) solid var(--rule); color: var(--fg); }
|
|
4302
|
+
.ds-247420 .cm-forum-item:hover { background: var(--bg-3); }
|
|
4303
|
+
.ds-247420 .cm-forum-item-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
|
|
4304
|
+
.ds-247420 .cm-forum-item-title { font-weight: 700; font-size: var(--fs-1, 14px); }
|
|
4305
|
+
.ds-247420 .cm-forum-item-replies { font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); opacity: .8; white-space: nowrap; }
|
|
4306
|
+
.ds-247420 .cm-forum-item-snippet { font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); opacity: .85; }
|
|
4307
|
+
.ds-247420 .cm-forum-item-meta { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; font-size: var(--fs-micro, 11px); color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
4308
|
+
.ds-247420 .cm-forum-item-tags { display: inline-flex; gap: 4px; }
|
|
4309
|
+
.ds-247420 .cm-forum-tag { padding: 1px 6px; border-radius: var(--r-1); background: var(--bg-3); border: var(--bw-hair) solid var(--rule); }
|
|
4310
|
+
|
|
4311
|
+
/* PageView — cm-page / cm-page-* */
|
|
4312
|
+
.ds-247420 .cm-page { display: flex; flex-direction: column; height: 100%; min-height: 0; overflow-y: auto; background: var(--bg-1, var(--bg-2)); color: var(--fg); }
|
|
4313
|
+
.ds-247420 .cm-page-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: var(--space-3); border-bottom: var(--bw-hair) solid var(--rule); }
|
|
4314
|
+
.ds-247420 .cm-page-title { margin: 0; font-size: var(--fs-3, 20px); font-weight: 700; }
|
|
4315
|
+
.ds-247420 .cm-page-edit { padding: var(--space-1) var(--space-2); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); cursor: pointer; }
|
|
4316
|
+
.ds-247420 .cm-page-body { padding: var(--space-3); line-height: 1.6; }
|
|
4317
|
+
.ds-247420 .cm-page-empty { color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
4318
|
+
|
|
4319
|
+
/* ============================================================
|
|
4320
|
+
freddie pages — layout for FREDDIE_PAGES renderers.
|
|
4321
|
+
Scoped under .ds-247420 by the build prefixer. Tokens only.
|
|
4322
|
+
============================================================ */
|
|
4323
|
+
.ds-247420 .fd-page-root { display: block; height: 100%; }
|
|
4324
|
+
.ds-247420 .fd-page-inner { display: flex; flex-direction: column; gap: var(--space-3, 16px); padding: var(--space-3, 16px); max-width: 1100px; }
|
|
4325
|
+
.ds-247420 .fd-page-inner > * { min-width: 0; }
|
|
4326
|
+
.ds-247420 .fd-loading { display: flex; align-items: center; gap: var(--space-2, 10px); padding: var(--space-4, 24px); color: var(--fg-2, var(--fg)); }
|
|
4327
|
+
.ds-247420 .fd-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2, 10px); padding: var(--space-5, 32px) var(--space-3, 16px); color: var(--fg-2, var(--fg)); text-align: center; }
|
|
4328
|
+
.ds-247420 .fd-empty-glyph { font-size: 28px; opacity: .55; line-height: 1; }
|
|
4329
|
+
.ds-247420 .fd-pre { margin: 0; padding: var(--space-2, 10px); background: var(--bg-3, var(--panel-bg-2)); border: var(--bw-hair, 1px) solid var(--rule, var(--panel-accent)); border-radius: var(--r-1, 6px); overflow: auto; max-height: 460px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-family: var(--font-mono, ui-monospace, monospace); font-size: 12px; line-height: 1.5; }
|
|
4330
|
+
.ds-247420 .fd-skill-body { max-height: 320px; }
|
|
4331
|
+
.ds-247420 .fd-row-actions { display: inline-flex; gap: var(--space-1, 6px); align-items: center; }
|
|
4332
|
+
.ds-247420 .fd-chat { display: flex; flex-direction: column; gap: var(--space-2, 10px); height: 100%; min-height: 0; }
|
|
4333
|
+
.ds-247420 .fd-chat-thread { flex: 1 1 auto; min-height: 240px; overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-2, 10px); padding: var(--space-2, 10px); }
|
|
4334
|
+
.ds-247420 .fd-page-error { white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
4335
|
+
/* page-level responsive: tighten padding on narrow viewports */
|
|
4336
|
+
@media (max-width: 640px) {
|
|
4337
|
+
.ds-247420 .fd-page-inner { padding: var(--space-2, 10px); gap: var(--space-2, 10px); }
|
|
4338
|
+
}
|
|
4339
|
+
|
|
4083
4340
|
/* chat.css */
|
|
4084
4341
|
/* chat.css — chat-specific styles. Currently empty; all chat styles live in
|
|
4085
4342
|
app-shell.css under the .chat-* prefix. Reserved for future split. */
|
|
@@ -4099,7 +4356,7 @@
|
|
|
4099
4356
|
border-bottom: 1px solid var(--rule);
|
|
4100
4357
|
font: var(--fs-tiny, 12px)/var(--lh-base, 1.4) var(--ff-mono, monospace);
|
|
4101
4358
|
}
|
|
4102
|
-
.ds-247420 .ds-ep-toolbar.dense { padding: 4px
|
|
4359
|
+
.ds-247420 .ds-ep-toolbar.dense { padding: 2px 4px; gap: 2px; }
|
|
4103
4360
|
.ds-247420 .ds-ep-toolbar-leading,
|
|
4104
4361
|
.ds-247420 .ds-ep-toolbar-center,
|
|
4105
4362
|
.ds-247420 .ds-ep-toolbar-trailing { display: flex; align-items: center; gap: 4px; }
|
|
@@ -4109,7 +4366,8 @@
|
|
|
4109
4366
|
/* Tabs */
|
|
4110
4367
|
.ds-247420 .ds-ep-tabs { display: flex; flex-direction: column; min-height: 0; height: 100%; }
|
|
4111
4368
|
.ds-247420 .ds-ep-tabs-head {
|
|
4112
|
-
display: flex; flex-shrink: 0;
|
|
4369
|
+
display: flex; flex-shrink: 0; flex-wrap: nowrap;
|
|
4370
|
+
overflow-x: auto; scroll-behavior: smooth;
|
|
4113
4371
|
background: var(--panel-1);
|
|
4114
4372
|
border-bottom: 1px solid var(--rule);
|
|
4115
4373
|
}
|
|
@@ -4136,6 +4394,7 @@
|
|
|
4136
4394
|
overflow: auto;
|
|
4137
4395
|
}
|
|
4138
4396
|
.ds-247420 .ds-ep-tree-item { display: flex; flex-direction: column; }
|
|
4397
|
+
.ds-247420 .ds-ep-tree-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
4139
4398
|
.ds-247420 .ds-ep-tree-row {
|
|
4140
4399
|
display: flex; align-items: center; gap: 6px;
|
|
4141
4400
|
padding: 4px 8px 4px 0;
|
|
@@ -4175,7 +4434,7 @@
|
|
|
4175
4434
|
}
|
|
4176
4435
|
.ds-247420 .ds-ep-propfield {
|
|
4177
4436
|
display: grid;
|
|
4178
|
-
grid-template-columns: 120px 1fr;
|
|
4437
|
+
grid-template-columns: minmax(80px, 120px) 1fr;
|
|
4179
4438
|
gap: 4px 10px;
|
|
4180
4439
|
align-items: center;
|
|
4181
4440
|
}
|
|
@@ -4238,6 +4497,14 @@
|
|
|
4238
4497
|
}
|
|
4239
4498
|
.ds-247420 .ds-ep-dock-center > * { pointer-events: auto; }
|
|
4240
4499
|
|
|
4500
|
+
/* Mobile — stack dock regions vertically instead of the 3x3 grid */
|
|
4501
|
+
@media (max-width: 600px) {
|
|
4502
|
+
.ds-247420 .ds-ep-dock {
|
|
4503
|
+
display: flex;
|
|
4504
|
+
flex-direction: column;
|
|
4505
|
+
}
|
|
4506
|
+
}
|
|
4507
|
+
|
|
4241
4508
|
/* IconButtonGroup */
|
|
4242
4509
|
.ds-247420 .ds-ep-btngrp {
|
|
4243
4510
|
display: inline-flex;
|
|
@@ -4297,6 +4564,8 @@
|
|
|
4297
4564
|
.ds-247420 .ds-ep-split.horiz { flex-direction: row; }
|
|
4298
4565
|
.ds-247420 .ds-ep-split.vert { flex-direction: column; }
|
|
4299
4566
|
.ds-247420 .ds-ep-split-pane { overflow: auto; }
|
|
4567
|
+
.ds-247420 .ds-ep-split.horiz > .ds-ep-split-pane:not(.grow) { width: var(--split-size); }
|
|
4568
|
+
.ds-247420 .ds-ep-split.vert > .ds-ep-split-pane:not(.grow) { height: var(--split-size); }
|
|
4300
4569
|
.ds-247420 .ds-ep-split-pane.grow { flex: 1 1 0; }
|
|
4301
4570
|
|
|
4302
4571
|
/* ---------------------------------------------------------------
|
|
@@ -4934,3 +5203,43 @@
|
|
|
4934
5203
|
border: 0; border-radius: var(--r-1, 10px);
|
|
4935
5204
|
padding: var(--space-2, 8px); font: inherit;
|
|
4936
5205
|
}
|
|
5206
|
+
|
|
5207
|
+
/* AuthModal — ov-auth-* */
|
|
5208
|
+
.ds-247420 .ov-auth-backdrop {
|
|
5209
|
+
position: fixed; inset: 0; z-index: var(--z-overlay, 1000);
|
|
5210
|
+
display: flex; align-items: center; justify-content: center;
|
|
5211
|
+
background: rgba(0,0,0,.55);
|
|
5212
|
+
}
|
|
5213
|
+
.ds-247420 .ov-auth-panel {
|
|
5214
|
+
width: min(420px, 92vw);
|
|
5215
|
+
display: flex; flex-direction: column;
|
|
5216
|
+
background: var(--bg-2); color: var(--fg);
|
|
5217
|
+
border: 1px solid var(--rule); border-radius: var(--r-2, 8px);
|
|
5218
|
+
box-shadow: var(--shadow-2, 0 12px 40px rgba(0,0,0,.4));
|
|
5219
|
+
overflow: hidden;
|
|
5220
|
+
}
|
|
5221
|
+
.ds-247420 .ov-auth-head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3); border-bottom: 1px solid var(--rule); }
|
|
5222
|
+
.ds-247420 .ov-auth-title { margin: 0; font-size: var(--fs-2, 16px); font-weight: 700; }
|
|
5223
|
+
.ds-247420 .ov-auth-x { border: none; background: transparent; color: var(--fg-2, var(--fg)); font-size: 22px; line-height: 1; cursor: pointer; }
|
|
5224
|
+
.ds-247420 .ov-auth-x:hover { color: var(--fg); }
|
|
5225
|
+
.ds-247420 .ov-auth-tabs { display: flex; gap: var(--space-1); padding: var(--space-2) var(--space-3) 0; }
|
|
5226
|
+
.ds-247420 .ov-auth-tab { flex: 1; padding: var(--space-1) var(--space-2); border: 1px solid var(--rule); border-bottom: none; border-radius: var(--r-1) var(--r-1) 0 0; background: var(--bg-3); color: var(--fg-2, var(--fg)); cursor: pointer; }
|
|
5227
|
+
.ds-247420 .ov-auth-tab.is-active { background: var(--bg-2); color: var(--fg); font-weight: 700; }
|
|
5228
|
+
.ds-247420 .ov-auth-body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); }
|
|
5229
|
+
.ds-247420 .ov-auth-hint { margin: 0; font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); }
|
|
5230
|
+
.ds-247420 .ov-auth-input { padding: var(--space-2); border: 1px solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
|
|
5231
|
+
.ds-247420 .ov-auth-primary { padding: var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg, #fff); font-weight: 700; cursor: pointer; }
|
|
5232
|
+
.ds-247420 .ov-auth-primary:disabled { opacity: .6; cursor: progress; }
|
|
5233
|
+
.ds-247420 .ov-auth-error { margin: 0 var(--space-3) var(--space-3); padding: var(--space-2); border-radius: var(--r-1); background: var(--danger-bg, rgba(208,69,69,.15)); color: var(--danger, #d04545); font-size: var(--fs-0, 12px); }
|
|
5234
|
+
|
|
5235
|
+
/* VideoLightbox — ov-lightbox-* */
|
|
5236
|
+
.ds-247420 .ov-lightbox-backdrop {
|
|
5237
|
+
position: fixed; inset: 0; z-index: var(--z-overlay-top, 1100);
|
|
5238
|
+
display: flex; align-items: center; justify-content: center;
|
|
5239
|
+
background: rgba(0,0,0,.85);
|
|
5240
|
+
}
|
|
5241
|
+
.ds-247420 .ov-lightbox-x { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: none; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
|
|
5242
|
+
.ds-247420 .ov-lightbox-x:hover { background: rgba(255,255,255,.24); }
|
|
5243
|
+
.ds-247420 .ov-lightbox-stage { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); max-width: 92vw; max-height: 90vh; }
|
|
5244
|
+
.ds-247420 .ov-lightbox-video { max-width: 92vw; max-height: 82vh; border-radius: var(--r-1); background: #000; }
|
|
5245
|
+
.ds-247420 .ov-lightbox-label { color: #fff; font-size: var(--fs-0, 12px); opacity: .85; }
|