@dotit/editor 1.0.0 → 1.2.0

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/dist/style.css CHANGED
@@ -33,12 +33,14 @@
33
33
  GOOGLE DOCS – Visual Editor (TipTap)
34
34
  ═══════════════════════════════════════════════════════════════ */
35
35
 
36
- /* Container fills the panel */
36
+ /* Container fills the panel — a flat, full-bleed Docs-style workspace:
37
+ light-gray canvas, white page sheet floating on it, no rounded corners. */
37
38
  .docs-container {
39
+ --docs-canvas-bg: #f9fbfd;
38
40
  display: flex;
39
41
  flex-direction: column;
40
42
  height: 100%;
41
- background: #f8f9fa;
43
+ background: var(--docs-canvas-bg);
42
44
  }
43
45
 
44
46
  /* ─── Docs Toolbar (formatting bar) ───────────────────────── */
@@ -48,7 +50,7 @@
48
50
  align-items: center;
49
51
  gap: 2px;
50
52
  padding: 4px 12px;
51
- background: rgba(108, 63, 197, 0.08);
53
+ background: #fff;
52
54
  border-bottom: 1px solid #dadce0;
53
55
  flex-shrink: 0;
54
56
  min-height: 40px;
@@ -75,8 +77,8 @@
75
77
  background: rgba(0, 0, 0, 0.06);
76
78
  }
77
79
  .docs-toolbar button.active {
78
- background: rgba(108, 63, 197, 0.12);
79
- color: #6c3fc5;
80
+ background: rgba(26, 115, 232, 0.12);
81
+ color: #1a73e8;
80
82
  }
81
83
  .docs-toolbar select {
82
84
  padding: 0 4px;
@@ -119,11 +121,11 @@
119
121
  cursor: default;
120
122
  }
121
123
  .docs-tb-btn.active {
122
- background: rgba(108, 63, 197, 0.12);
123
- color: #6c3fc5;
124
+ background: rgba(26, 115, 232, 0.12);
125
+ color: #1a73e8;
124
126
  }
125
127
  .docs-tb-btn.active:hover {
126
- background: rgba(108, 63, 197, 0.18);
128
+ background: rgba(26, 115, 232, 0.18);
127
129
  }
128
130
  .docs-tb-sep {
129
131
  width: 1px;
@@ -202,8 +204,8 @@
202
204
  background: #f1f3f4;
203
205
  }
204
206
  .docs-tb-dropdown-item.active {
205
- background: rgba(108, 63, 197, 0.08);
206
- color: #6c3fc5;
207
+ background: rgba(26, 115, 232, 0.08);
208
+ color: #1a73e8;
207
209
  }
208
210
  .docs-style-preview {
209
211
  display: block;
@@ -386,7 +388,8 @@
386
388
  .docs-canvas {
387
389
  flex: 1;
388
390
  overflow: auto;
389
- padding: 20px 0 60px;
391
+ background: var(--docs-canvas-bg, #f9fbfd);
392
+ padding: 14px 0 72px;
390
393
  }
391
394
  /* Auto-hide scrollbars — appear only when scrolling */
392
395
  .docs-canvas {
@@ -430,12 +433,15 @@
430
433
  margin boxes); horizontal margins are padding on the content (.tiptap).
431
434
  Geometry (size + margins) comes inline from the document's page: block. */
432
435
 
436
+ /* The white sheet: hairline edge + soft 1px shadow, square corners (Docs).
437
+ The hairline is a box-shadow ring (NOT a border) so it never shifts the
438
+ content box — page geometry must stay identical to print. */
433
439
  .docs-page {
434
440
  background: #fff;
435
441
  box-shadow:
436
- 0 1px 3px rgba(60, 64, 67, 0.15),
437
- 0 1px 2px rgba(60, 64, 67, 0.1);
438
- border-radius: 2px;
442
+ 0 0 0 1px rgba(60, 64, 67, 0.14),
443
+ 0 1px 3px rgba(60, 64, 67, 0.12);
444
+ border-radius: 0;
439
445
  position: relative;
440
446
  overflow: visible;
441
447
  }
@@ -499,7 +505,7 @@
499
505
  /* The gap reads as "space between two sheets of paper": canvas color with a
500
506
  soft shadow edge on each page card. */
501
507
  .docs-pb-gap {
502
- background: var(--bg-app, #eef0f3);
508
+ background: var(--docs-canvas-bg, #f9fbfd);
503
509
  box-shadow:
504
510
  inset 0 6px 5px -4px rgba(15, 23, 42, 0.14),
505
511
  inset 0 -4px 4px -3px rgba(15, 23, 42, 0.1);
@@ -743,66 +749,124 @@
743
749
  vertical-align: top;
744
750
  }
745
751
 
746
- /* ─── Trust blocks (sign / seal / approve / freeze / amendment) ─── */
752
+ /* ─── Trust blocks (sign / seal / approve / freeze / amendment) ──────────────
753
+ Ink-first, exactly mirroring core's print CSS (document-css.ts .it-approval /
754
+ .it-signature / .it-sealed-banner): hairlines + small-caps labels, no colored
755
+ fills — what you see in the editor is what core prints. */
756
+
747
757
  .docs-page .tiptap .it-doc-trust {
748
758
  display: flex;
749
759
  flex-wrap: wrap;
750
- gap: 8px;
751
- align-items: center;
752
- margin: 10px 0;
753
- padding: 9px 14px;
754
- border: 1px solid #daa520;
755
- border-radius: 8px;
756
- background: #fffdf5;
760
+ gap: 10px;
761
+ align-items: baseline;
757
762
  font-size: 0.9rem;
758
763
  user-select: none;
759
764
  }
760
- .docs-page .tiptap .it-doc-trust--seal {
761
- border: 2px solid #c62828;
762
- background: #fdf5f5;
763
- font-weight: 600;
764
- }
765
+
766
+ /* approve → core .it-approval: single hairline row, ✓ APPROVED label. */
765
767
  .docs-page .tiptap .it-doc-trust--approve {
766
- border-color: #4caf50;
767
- background: #f6fbf6;
768
- }
769
- .docs-page .tiptap .it-doc-trust--freeze {
770
- border-color: #5b8def;
771
- background: #f5f8ff;
768
+ margin: 12px 0;
769
+ padding: 7px 2px;
770
+ border-bottom: 1px solid #ddd;
772
771
  }
773
- .docs-page .tiptap .it-doc-trust--amendment,
774
- .docs-page .tiptap .it-doc-trust--amend {
775
- border-color: #b0b0b0;
776
- background: #fafafa;
772
+ .docs-page .tiptap .it-doc-trust--approve .it-doc-trust__label {
773
+ font-size: 0.7rem;
774
+ font-weight: 700;
775
+ text-transform: uppercase;
776
+ letter-spacing: 0.1em;
777
+ color: #2e7d32;
778
+ flex-shrink: 0;
777
779
  }
778
- .docs-page .tiptap .it-doc-trust__icon {
779
- font-size: 1rem;
780
- line-height: 1;
780
+ .docs-page .tiptap .it-doc-trust--approve .it-doc-trust__label::before {
781
+ content: "✓ ";
781
782
  }
782
- .docs-page .tiptap .it-doc-trust__label {
783
+ .docs-page .tiptap .it-doc-trust__what {
784
+ font-size: 0.9rem;
783
785
  font-weight: 600;
784
- letter-spacing: 0.02em;
786
+ color: #111;
787
+ }
788
+ .docs-page .tiptap .it-doc-trust__who {
789
+ font-size: 0.9rem;
790
+ color: #555;
791
+ }
792
+
793
+ /* sign → core .it-signature: signature rule line (hairline on top). */
794
+ .docs-page .tiptap .it-doc-trust--sign {
795
+ margin: 14px 0 10px;
796
+ padding: 7px 2px 5px;
797
+ border-top: 1px solid #111;
785
798
  }
786
799
  .docs-page .tiptap .it-doc-trust__name {
787
800
  font-weight: 600;
801
+ font-size: 0.95rem;
788
802
  color: #111;
789
803
  }
790
804
  .docs-page .tiptap .it-doc-trust__role {
805
+ font-size: 0.85rem;
791
806
  color: #555;
792
807
  }
793
- .docs-page .tiptap .it-doc-trust__date {
794
- color: #777;
795
- font-size: 0.8rem;
796
- margin-left: auto;
808
+ .docs-page .tiptap .it-doc-trust__status {
809
+ font-size: 0.72rem;
810
+ font-weight: 600;
811
+ margin-inline-start: auto;
812
+ text-transform: uppercase;
813
+ letter-spacing: 0.08em;
814
+ color: #2e7d32;
797
815
  }
798
- .docs-page .tiptap .it-doc-trust__hash {
799
- font-family: ui-monospace, monospace;
800
- font-size: 0.78rem;
801
- color: #444;
816
+
817
+ /* seal / freeze → core .it-sealed-banner: SEALED band, thin top+bottom rules. */
818
+ .docs-page .tiptap .it-doc-trust--seal,
819
+ .docs-page .tiptap .it-doc-trust--freeze {
820
+ gap: 12px;
821
+ margin: 18px 0;
822
+ padding: 8px 2px;
823
+ border-top: 1px solid #111;
824
+ border-bottom: 1px solid #111;
802
825
  }
803
- .docs-page .tiptap .it-doc-trust__meta {
826
+ .docs-page .tiptap .it-doc-trust--seal .it-doc-trust__label,
827
+ .docs-page .tiptap .it-doc-trust--freeze .it-doc-trust__label {
804
828
  font-size: 0.78rem;
829
+ font-weight: 700;
830
+ color: #111;
831
+ text-transform: uppercase;
832
+ letter-spacing: 0.14em;
833
+ }
834
+ .docs-page .tiptap .it-doc-trust--seal .it-doc-trust__date,
835
+ .docs-page .tiptap .it-doc-trust--freeze .it-doc-trust__date {
836
+ margin-inline-start: auto;
837
+ }
838
+ .docs-page .tiptap .it-doc-trust__hash {
839
+ font-family: "SFMono-Regular", ui-monospace, Consolas, monospace;
840
+ font-size: 0.72rem;
841
+ color: #999;
842
+ }
843
+
844
+ /* amendment → muted hairline row. */
845
+ .docs-page .tiptap .it-doc-trust--amendment,
846
+ .docs-page .tiptap .it-doc-trust--amend {
847
+ margin: 12px 0;
848
+ padding: 7px 2px;
849
+ border-bottom: 1px solid #ddd;
850
+ }
851
+ .docs-page .tiptap .it-doc-trust--amendment .it-doc-trust__label,
852
+ .docs-page .tiptap .it-doc-trust--amend .it-doc-trust__label {
853
+ font-size: 0.7rem;
854
+ font-weight: 700;
855
+ text-transform: uppercase;
856
+ letter-spacing: 0.1em;
857
+ color: #555;
858
+ flex-shrink: 0;
859
+ }
860
+
861
+ .docs-page .tiptap .it-doc-trust__date {
805
862
  color: #777;
863
+ font-size: 0.8rem;
864
+ margin-inline-start: auto;
865
+ font-variant-numeric: tabular-nums;
866
+ }
867
+ /* sign rows: status sits at the end — date stays inline. */
868
+ .docs-page .tiptap .it-doc-trust--sign .it-doc-trust__date {
869
+ margin-inline-start: 0;
806
870
  }
807
871
 
808
872
  /* ─── Template variables ({{path}}) ───────────────────────── */
@@ -1052,43 +1116,59 @@
1052
1116
  color: #1d4ed8;
1053
1117
  }
1054
1118
 
1119
+ /* ─── Info callout — quiet variant (parity with core .intent-info) ───
1120
+ The Plain Writing Overrides above flatten every callout; info is the
1121
+ exception — a soft gray panel with an italic body and an ⓘ marker (no loud
1122
+ "NOTE" label), exactly matching core's document-css.ts so editor == print.
1123
+ Declared AFTER the overrides so it wins. */
1124
+ .docs-page .tiptap .it-doc-callout[data-variant="info"] {
1125
+ display: block;
1126
+ margin: 10px 0;
1127
+ padding: 8px 14px 8px 12px;
1128
+ background: #f5f6f8;
1129
+ border: none;
1130
+ border-inline-start: 3px solid #c7ccd3;
1131
+ border-radius: 0 3px 3px 0;
1132
+ }
1133
+ .docs-page .tiptap .it-doc-callout[data-variant="info"] .it-doc-callout-icon {
1134
+ display: none;
1135
+ }
1136
+ .docs-page .tiptap .it-doc-callout[data-variant="info"] .it-doc-callout-text {
1137
+ display: inline;
1138
+ font-style: italic;
1139
+ color: #4f4f4f;
1140
+ }
1141
+ .docs-page
1142
+ .tiptap
1143
+ .it-doc-callout[data-variant="info"]
1144
+ .it-doc-callout-text::before {
1145
+ content: "ⓘ ";
1146
+ font-style: normal;
1147
+ font-weight: 600;
1148
+ color: #6e6e6e;
1149
+ }
1150
+
1055
1151
  /* ═══════════════════════════════════════════════════════════════
1056
- Ribbon — ONE Word-like toolbar with labeled groups
1152
+ Ribbon — ONE compact Docs-style toolbar row
1057
1153
  (Edit | File | Text | Paragraph | Insert | Trust)
1058
1154
  ═══════════════════════════════════════════════════════════════ */
1059
1155
 
1060
1156
  .docs-ribbon {
1061
- align-items: stretch;
1157
+ align-items: center;
1062
1158
  gap: 0;
1063
- padding: 6px 10px 3px;
1159
+ padding: 4px 10px;
1064
1160
  }
1065
1161
  .ribbon-group {
1066
- display: flex;
1067
- flex-direction: column;
1068
- align-items: center;
1069
- justify-content: space-between;
1070
- padding: 0 2px;
1071
- }
1072
- .ribbon-group-row {
1073
1162
  display: flex;
1074
1163
  align-items: center;
1075
1164
  gap: 2px;
1076
- }
1077
- .ribbon-group-label {
1078
- font-size: 9px;
1079
- font-weight: 600;
1080
- letter-spacing: 0.07em;
1081
- text-transform: uppercase;
1082
- color: #9aa0a6;
1083
- margin-top: 2px;
1084
- user-select: none;
1085
- white-space: nowrap;
1165
+ padding: 0 2px;
1086
1166
  }
1087
1167
  .ribbon-sep {
1088
1168
  width: 1px;
1089
- align-self: stretch;
1090
- background: #d8d2c4;
1091
- margin: 2px 7px;
1169
+ height: 22px;
1170
+ background: #dadce0;
1171
+ margin: 0 6px;
1092
1172
  flex-shrink: 0;
1093
1173
  }
1094
1174
  .ribbon-btn-text {
@@ -1116,7 +1196,7 @@
1116
1196
  .ribbon-editing,
1117
1197
  .ribbon-locked {
1118
1198
  display: flex;
1119
- align-items: stretch;
1199
+ align-items: center;
1120
1200
  }
1121
1201
  /* Sealed documents: formatting is read-only. */
1122
1202
  .ribbon-locked {
@@ -1152,59 +1232,6 @@
1152
1232
  white-space: pre-wrap;
1153
1233
  }
1154
1234
 
1155
- /* ═══════════════════════════════════════════════════════════════
1156
- Signature line — sign: blocks render like a signed paper document
1157
- (script autograph over a rule, printed name / role / date below)
1158
- ═══════════════════════════════════════════════════════════════ */
1159
-
1160
- .docs-page .tiptap .it-doc-sign {
1161
- display: inline-block;
1162
- min-width: 300px;
1163
- max-width: 420px;
1164
- margin: 22px 0 8px;
1165
- margin-inline-end: 28px;
1166
- padding: 0;
1167
- border: none;
1168
- background: none;
1169
- font-weight: 400;
1170
- user-select: none;
1171
- }
1172
- .docs-page .tiptap .it-doc-sign__script {
1173
- font-family: "Snell Roundhand", "Savoye LET", "Segoe Script",
1174
- "Brush Script MT", cursive;
1175
- font-size: 23px;
1176
- line-height: 1.15;
1177
- color: #1a2a52;
1178
- padding: 0 6px 2px;
1179
- min-height: 27px;
1180
- }
1181
- .docs-page .tiptap .it-doc-sign__rule {
1182
- border-bottom: 1.5px solid #202124;
1183
- }
1184
- .docs-page .tiptap .it-doc-sign__row {
1185
- display: flex;
1186
- align-items: baseline;
1187
- gap: 8px;
1188
- margin-top: 5px;
1189
- font-size: 0.85rem;
1190
- }
1191
- .docs-page .tiptap .it-doc-sign__name {
1192
- font-weight: 600;
1193
- color: #111;
1194
- }
1195
- .docs-page .tiptap .it-doc-sign__role {
1196
- color: #555;
1197
- }
1198
- .docs-page .tiptap .it-doc-sign__role::before {
1199
- content: "· ";
1200
- color: #9aa0a6;
1201
- }
1202
- .docs-page .tiptap .it-doc-sign__date {
1203
- margin-inline-start: auto;
1204
- color: #777;
1205
- font-size: 0.8rem;
1206
- }
1207
-
1208
1235
  /* ═══════════════════════════════════════════════════════════════
1209
1236
  Document status banner (trust) + document properties strip
1210
1237
  ═══════════════════════════════════════════════════════════════ */
@@ -1336,17 +1363,284 @@
1336
1363
  unicode-bidi: plaintext;
1337
1364
  }
1338
1365
 
1339
- /* ─── Look refresh (folded from the app's 2026 UI refresh overrides) ──────── */
1340
-
1341
- .docs-toolbar {
1342
- background: linear-gradient(90deg, rgba(15, 118, 110, 0.07), rgba(183, 106, 31, 0.08));
1343
- border-bottom: 1px solid rgba(216, 203, 181, 0.95);
1344
- }
1366
+ /* ─── Active-control accent (Docs blue) ───────────────────── */
1345
1367
 
1346
1368
  .docs-toolbar button.active,
1347
1369
  .docs-tb-btn.active {
1348
- background: rgba(15, 118, 110, 0.16);
1349
- color: #0f766e;
1370
+ background: rgba(26, 115, 232, 0.12);
1371
+ color: #1a73e8;
1372
+ }
1373
+
1374
+ /* ═══════════════════════════════════════════════════════════════
1375
+ Horizontal ruler — Google Docs strip above the page
1376
+ ═══════════════════════════════════════════════════════════════ */
1377
+
1378
+ .docs-ruler {
1379
+ flex-shrink: 0;
1380
+ height: 20px;
1381
+ background: #fff;
1382
+ border-bottom: 1px solid #dadce0;
1383
+ overflow: hidden;
1384
+ user-select: none;
1385
+ }
1386
+ /* Exactly as wide as the page sheet (geometry.width × zoom), centered the same
1387
+ way; translated by the canvas' scrollLeft so it stays glued to the sheet. */
1388
+ .docs-ruler-track {
1389
+ position: relative;
1390
+ height: 100%;
1391
+ margin: 0 auto;
1392
+ }
1393
+ .docs-ruler-margin {
1394
+ position: absolute;
1395
+ top: 0;
1396
+ bottom: 0;
1397
+ background: rgba(60, 64, 67, 0.1);
1398
+ }
1399
+ .docs-ruler-tick {
1400
+ position: absolute;
1401
+ bottom: 4px;
1402
+ width: 1px;
1403
+ background: #9aa0a6;
1404
+ }
1405
+ .docs-ruler-tick--minor {
1406
+ height: 4px;
1407
+ }
1408
+ .docs-ruler-tick--major {
1409
+ height: 7px;
1410
+ }
1411
+ .docs-ruler-num {
1412
+ position: absolute;
1413
+ top: 50%;
1414
+ transform: translate(-50%, -50%);
1415
+ font-size: 9px;
1416
+ line-height: 1;
1417
+ color: #80868b;
1418
+ font-variant-numeric: tabular-nums;
1419
+ }
1420
+
1421
+ /* Draggable margin stops (Google-Docs blue markers). */
1422
+ .docs-ruler--draggable .docs-ruler-stop {
1423
+ position: absolute;
1424
+ z-index: 2;
1425
+ }
1426
+ .docs-ruler-stop--h {
1427
+ top: 2px;
1428
+ width: 9px;
1429
+ height: 9px;
1430
+ margin-left: -4.5px;
1431
+ cursor: ew-resize;
1432
+ border-left: 4px solid transparent;
1433
+ border-right: 4px solid transparent;
1434
+ border-top: 7px solid #5b6b8c;
1435
+ }
1436
+ .docs-ruler-stop--h:hover,
1437
+ .docs-ruler-stop--h.dragging {
1438
+ border-top-color: #1a73e8;
1439
+ }
1440
+
1441
+ /* ═══════════════════════════════════════════════════════════════
1442
+ Canvas row — left vertical ruler + the scrollable canvas
1443
+ ═══════════════════════════════════════════════════════════════ */
1444
+ .docs-canvas-row {
1445
+ flex: 1;
1446
+ min-height: 0;
1447
+ display: flex;
1448
+ }
1449
+ .docs-canvas-row .docs-canvas {
1450
+ flex: 1;
1451
+ min-width: 0;
1452
+ }
1453
+
1454
+ .docs-ruler-v {
1455
+ flex-shrink: 0;
1456
+ width: 20px;
1457
+ background: #fff;
1458
+ border-right: 1px solid #dadce0;
1459
+ overflow: hidden;
1460
+ user-select: none;
1461
+ }
1462
+ .docs-ruler-v-track {
1463
+ position: relative;
1464
+ width: 100%;
1465
+ margin: 14px auto 0; /* matches .docs-canvas top padding so 0 aligns to sheet top */
1466
+ }
1467
+ .docs-ruler-margin--v {
1468
+ position: absolute;
1469
+ left: 0;
1470
+ right: 0;
1471
+ top: auto;
1472
+ bottom: auto;
1473
+ width: auto;
1474
+ background: rgba(60, 64, 67, 0.1);
1475
+ }
1476
+ .docs-ruler-tick--v {
1477
+ bottom: auto;
1478
+ left: auto;
1479
+ right: 4px;
1480
+ width: 4px;
1481
+ height: 1px;
1482
+ }
1483
+ .docs-ruler-tick--v.docs-ruler-tick--major {
1484
+ width: 7px;
1485
+ }
1486
+ .docs-ruler-num--v {
1487
+ top: auto;
1488
+ left: 50%;
1489
+ transform: translate(-50%, -50%);
1490
+ writing-mode: vertical-rl;
1491
+ }
1492
+ .docs-ruler-stop--v {
1493
+ position: absolute;
1494
+ z-index: 2;
1495
+ left: 2px;
1496
+ width: 9px;
1497
+ height: 9px;
1498
+ margin-top: -4.5px;
1499
+ cursor: ns-resize;
1500
+ border-top: 4px solid transparent;
1501
+ border-bottom: 4px solid transparent;
1502
+ border-left: 7px solid #5b6b8c;
1503
+ }
1504
+ .docs-ruler-stop--v:hover,
1505
+ .docs-ruler-stop--v.dragging {
1506
+ border-left-color: #1a73e8;
1507
+ }
1508
+
1509
+ /* ═══════════════════════════════════════════════════════════════
1510
+ Trust control — one self-explanatory state button + popover
1511
+ ═══════════════════════════════════════════════════════════════ */
1512
+ .trust-control {
1513
+ position: relative;
1514
+ }
1515
+ .trust-face {
1516
+ gap: 5px;
1517
+ }
1518
+ .trust-face__icon {
1519
+ display: inline-flex;
1520
+ }
1521
+ .trust-face__ok {
1522
+ color: #188038;
1523
+ font-weight: 700;
1524
+ }
1525
+ .trust-face--draft {
1526
+ color: #5f6368;
1527
+ }
1528
+ .trust-face--signed {
1529
+ color: #1a73e8;
1530
+ }
1531
+ .trust-face--sealed {
1532
+ color: #188038;
1533
+ }
1534
+ .trust-face--broken {
1535
+ color: #d93025;
1536
+ }
1537
+ .trust-popover {
1538
+ position: absolute;
1539
+ top: calc(100% + 6px);
1540
+ right: 0;
1541
+ z-index: 50;
1542
+ width: 280px;
1543
+ background: #fff;
1544
+ border: 1px solid #dadce0;
1545
+ border-radius: 10px;
1546
+ box-shadow: 0 6px 24px rgba(0, 0, 0, 0.16);
1547
+ padding: 12px;
1548
+ font-size: 13px;
1549
+ }
1550
+ .trust-popover__state strong {
1551
+ display: block;
1552
+ font-size: 14px;
1553
+ margin-bottom: 2px;
1554
+ }
1555
+ .trust-popover__meta {
1556
+ color: #5f6368;
1557
+ font-size: 12px;
1558
+ line-height: 1.4;
1559
+ }
1560
+ .trust-popover__divider {
1561
+ height: 1px;
1562
+ background: #ececec;
1563
+ margin: 10px 0;
1564
+ }
1565
+ .trust-popover__action {
1566
+ display: flex;
1567
+ align-items: center;
1568
+ gap: 8px;
1569
+ width: 100%;
1570
+ padding: 8px 10px;
1571
+ margin-top: 4px;
1572
+ border: 1px solid #dadce0;
1573
+ border-radius: 7px;
1574
+ background: #fff;
1575
+ cursor: pointer;
1576
+ font-size: 13px;
1577
+ color: #202124;
1578
+ text-align: left;
1579
+ }
1580
+ .trust-popover__action:hover {
1581
+ background: #f1f3f4;
1582
+ }
1583
+ .trust-popover__action:disabled {
1584
+ opacity: 0.5;
1585
+ cursor: default;
1586
+ }
1587
+ .trust-popover__action--primary {
1588
+ background: #1a73e8;
1589
+ border-color: #1a73e8;
1590
+ color: #fff;
1591
+ }
1592
+ .trust-popover__action--primary:hover {
1593
+ background: #1666c8;
1594
+ }
1595
+ .trust-popover__action--warn {
1596
+ color: #b06000;
1597
+ }
1598
+ .trust-popover__verify {
1599
+ font-size: 12px;
1600
+ margin-bottom: 6px;
1601
+ }
1602
+ .trust-verify--ok {
1603
+ color: #188038;
1604
+ }
1605
+ .trust-verify--bad {
1606
+ color: #d93025;
1607
+ }
1608
+ .trust-popover__hash {
1609
+ margin-top: 6px;
1610
+ }
1611
+ .trust-popover__hash summary {
1612
+ cursor: pointer;
1613
+ color: #5f6368;
1614
+ }
1615
+ .trust-popover__hash code {
1616
+ display: block;
1617
+ margin-top: 4px;
1618
+ word-break: break-all;
1619
+ font-size: 11px;
1620
+ color: #5f6368;
1621
+ }
1622
+ .trust-sign-form {
1623
+ display: flex;
1624
+ flex-direction: column;
1625
+ gap: 6px;
1626
+ }
1627
+ .trust-sign-input {
1628
+ width: 100%;
1629
+ padding: 7px 9px;
1630
+ border: 1px solid #dadce0;
1631
+ border-radius: 6px;
1632
+ font-size: 13px;
1633
+ }
1634
+ .trust-sign-input:focus {
1635
+ outline: none;
1636
+ border-color: #1a73e8;
1637
+ }
1638
+ .trust-sign-actions {
1639
+ display: flex;
1640
+ gap: 6px;
1641
+ }
1642
+ .trust-sign-actions .trust-popover__action {
1643
+ margin-top: 2px;
1350
1644
  }
1351
1645
 
1352
1646
  /* ─── Mobile ──────────────────────────────────────────────── */
@@ -1361,4 +1655,7 @@
1361
1655
  .docs-canvas {
1362
1656
  padding: 0;
1363
1657
  }
1658
+ .docs-ruler {
1659
+ display: none;
1660
+ }
1364
1661
  }