fb-slides 0.8.0 → 0.9.1

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.
@@ -1228,16 +1228,99 @@ body.edit-open #deck-edit { transform: none; }
1228
1228
  transition: flex-grow 0.25s ease, flex-basis 0.25s ease,
1229
1229
  padding 0.25s ease, border-width 0.25s ease;
1230
1230
  }
1231
- #deck-edit-source { flex: 1 1 0; }
1231
+ /* The slide box is the wrapper syntax.js builds around the textarea — or the
1232
+ bare textarea itself, on a deck with no highlight plugin to build one, which
1233
+ is what the child combinator tells apart. */
1234
+ #deck-edit > #deck-edit-source,
1235
+ #deck-edit .deck-edit-code { flex: 1 1 0; }
1232
1236
  #deck-edit-notes { flex: 0 0 120px; }
1233
- #deck-edit[data-focus='notes'] #deck-edit-source {
1237
+ #deck-edit[data-focus='notes'] > #deck-edit-source,
1238
+ #deck-edit[data-focus='notes'] .deck-edit-code {
1234
1239
  flex: 0 0 0px;
1235
- padding-block: 0;
1236
1240
  border-width: 0;
1237
- overflow: hidden;
1238
1241
  }
1242
+ #deck-edit[data-focus='notes'] > #deck-edit-source { padding-block: 0; overflow: hidden; }
1239
1243
  #deck-edit[data-focus='notes'] #deck-edit-notes { flex: 1 1 0; }
1240
1244
 
1245
+ /* --- the slide box, coloured ---------------------------------------------
1246
+ syntax.js wraps the slide's textarea in `.deck-edit-code` and slips a <pre>
1247
+ of the same text under it, highlighted as markdown. The wrapper is the box
1248
+ you see — background, border, radius, and the flex sizing above; the two
1249
+ layers inside are stacked on it, sharing a font, a padding and a wrapping
1250
+ mode so the letters land on each other. The textarea keeps its ink
1251
+ transparent and lends only its caret, its selection and its scrollbar.
1252
+
1253
+ Without the highlight plugin the wrapper is never built and the plain
1254
+ textarea rules above are the whole story. */
1255
+ #deck-edit .deck-edit-code {
1256
+ position: relative;
1257
+ margin: 0 12px;
1258
+ min-height: 0;
1259
+ overflow: hidden;
1260
+ font: 400 13px/1.55 var(--mono);
1261
+ background: color-mix(in srgb, var(--card) 70%, transparent);
1262
+ border: 1px solid var(--line);
1263
+ border-radius: 8px;
1264
+ transition: flex-grow 0.25s ease, flex-basis 0.25s ease, border-width 0.25s ease;
1265
+ }
1266
+ #deck-edit .deck-edit-code:focus-within { border-color: color-mix(in srgb, var(--accent) 55%, transparent); }
1267
+ #deck-edit .deck-edit-code > textarea,
1268
+ #deck-edit .deck-edit-ink {
1269
+ position: absolute;
1270
+ inset: 0;
1271
+ margin: 0;
1272
+ padding: 10px 12px;
1273
+ font: inherit;
1274
+ border: 0;
1275
+ background: transparent;
1276
+ white-space: pre-wrap;
1277
+ overflow-wrap: break-word;
1278
+ -moz-tab-size: 2;
1279
+ tab-size: 2;
1280
+ }
1281
+ /* The layer never scrolls itself — syntax.js hands it the textarea's offset —
1282
+ and it stops short of the scrollbar's width, or the two would wrap at
1283
+ different columns. Nothing on it can be clicked: the textarea is the page. */
1284
+ #deck-edit .deck-edit-ink {
1285
+ right: var(--code-gutter, 0px);
1286
+ overflow: hidden;
1287
+ pointer-events: none;
1288
+ color: var(--text);
1289
+ }
1290
+ /* The browser gives <code> a monospace of its own choosing, which is not the
1291
+ one the textarea is wearing — half a pixel of advance is all it takes to
1292
+ walk the two layers apart down a long line. */
1293
+ #deck-edit .deck-edit-ink > code { font: inherit; }
1294
+ #deck-edit .deck-edit-code > textarea {
1295
+ color: transparent;
1296
+ caret-color: var(--text);
1297
+ }
1298
+ /* A solid selection would paint over the colours; this one is a wash. */
1299
+ #deck-edit .deck-edit-code > textarea::selection {
1300
+ background: color-mix(in srgb, var(--accent) 30%, transparent);
1301
+ }
1302
+
1303
+ /* The markdown palette is this theme's, not the monokai the slides wear: these
1304
+ selectors outrank that stylesheet's single classes, so the drawer follows
1305
+ whatever the deck is dressed in — a light reveal theme included. Bold and
1306
+ italic are safe in a monospace face, where they keep the same advance. */
1307
+ .deck-edit-ink .hljs-section { color: var(--accent); font-weight: 600; }
1308
+ .deck-edit-ink .hljs-bullet { color: var(--accent); font-weight: 600; }
1309
+ .deck-edit-ink .hljs-strong { color: var(--text); font-weight: 700; }
1310
+ .deck-edit-ink .hljs-emphasis { color: var(--accent-2); font-style: italic; font-weight: 400; }
1311
+ .deck-edit-ink .hljs-quote { color: var(--muted); font-style: italic; font-weight: 400; }
1312
+ .deck-edit-ink .hljs-code { color: var(--accent-2); font-weight: 400; }
1313
+ .deck-edit-ink .hljs-link { color: var(--accent); font-weight: 400; }
1314
+ .deck-edit-ink .hljs-string,
1315
+ .deck-edit-ink .hljs-symbol { color: var(--accent-2); font-weight: 400; }
1316
+ /* The HTML a slide drops into its markdown, and the `<!-- .element -->`
1317
+ comments that steer reveal: chrome, not content. */
1318
+ .deck-edit-ink .hljs-tag { color: var(--muted); font-weight: 400; }
1319
+ .deck-edit-ink .hljs-name { color: var(--accent); font-weight: 600; }
1320
+ .deck-edit-ink .hljs-attr { color: var(--accent-2); font-weight: 400; }
1321
+ .deck-edit-ink .hljs-comment,
1322
+ .deck-edit-ink .hljs-meta { color: var(--muted); font-weight: 400; }
1323
+
1241
1324
  #deck-edit > footer {
1242
1325
  display: flex;
1243
1326
  align-items: center;
@@ -1319,13 +1402,21 @@ body.edit-open #deck-edit { transform: none; }
1319
1402
  }
1320
1403
  .deck-edit-confirm-delete:hover { background: #f2555a; }
1321
1404
 
1322
- /* The label line over the slide box carries the block picker's `+`. */
1405
+ /* The label line over the slide box carries the block picker's `+` and the
1406
+ drop button beside it. */
1323
1407
  .deck-edit-row {
1324
1408
  display: flex;
1325
1409
  align-items: center;
1326
1410
  justify-content: space-between;
1327
1411
  padding-right: 12px;
1328
1412
  }
1413
+ .deck-edit-row-acts {
1414
+ display: flex;
1415
+ align-items: center;
1416
+ gap: 6px;
1417
+ }
1418
+ .deck-edit-drop[hidden] { display: none; }
1419
+ .deck-edit-drop,
1329
1420
  .deck-edit-snip {
1330
1421
  display: grid;
1331
1422
  place-items: center;
@@ -1338,10 +1429,12 @@ body.edit-open #deck-edit { transform: none; }
1338
1429
  color: var(--muted);
1339
1430
  cursor: pointer;
1340
1431
  }
1432
+ .deck-edit-drop:hover,
1341
1433
  .deck-edit-snip:hover {
1342
1434
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
1343
1435
  color: var(--text);
1344
1436
  }
1437
+ .deck-edit-drop svg,
1345
1438
  .deck-edit-snip svg { display: block; width: 14px; height: 14px; }
1346
1439
 
1347
1440
  /* The block picker (snippets.js) — over the drawer, like the delete question,
@@ -1388,6 +1481,7 @@ body.edit-open #deck-edit { transform: none; }
1388
1481
  border-radius: 8px;
1389
1482
  cursor: pointer;
1390
1483
  }
1484
+ .deck-snip-list[hidden],
1391
1485
  .deck-snip-list li[hidden] { display: none; }
1392
1486
  .deck-snip-list li span { font: 600 13px/1.3 var(--sans); color: var(--text); }
1393
1487
  .deck-snip-list li small { font: 400 11.5px/1.45 var(--sans); color: var(--muted); }
@@ -1395,21 +1489,386 @@ body.edit-open #deck-edit { transform: none; }
1395
1489
  the pointer moving over an entry takes it. */
1396
1490
  .deck-snip-list li.is-current { background: color-mix(in srgb, var(--accent) 18%, transparent); }
1397
1491
 
1492
+ /* The group headers are furniture between the rows — quiet, and never a target. */
1493
+ .deck-snip-list li.deck-snip-head {
1494
+ padding: 10px 10px 2px;
1495
+ font: 600 10.5px/1.3 var(--sans);
1496
+ letter-spacing: 0.08em;
1497
+ text-transform: uppercase;
1498
+ color: color-mix(in srgb, var(--muted) 75%, transparent);
1499
+ cursor: default;
1500
+ }
1501
+
1502
+ /* Under the list: the markup the highlighted row would write, and the line
1503
+ for a search that came back with nothing. */
1504
+ .deck-snip-preview {
1505
+ flex: 0 0 auto;
1506
+ max-height: 140px;
1507
+ overflow: auto;
1508
+ margin: 0;
1509
+ padding: 9px 12px;
1510
+ font: 400 11px/1.55 var(--mono);
1511
+ color: var(--muted);
1512
+ background: color-mix(in srgb, var(--card) 80%, transparent);
1513
+ border: 1px solid var(--line);
1514
+ border-radius: 8px;
1515
+ white-space: pre;
1516
+ }
1517
+ .deck-snip-preview[hidden] { display: none; }
1518
+ .deck-snip-preview:empty { display: none; }
1519
+
1520
+ .deck-snip-empty {
1521
+ margin: 0;
1522
+ padding: 2px 10px;
1523
+ font: 400 12.5px/1.4 var(--sans);
1524
+ color: var(--muted);
1525
+ }
1526
+ .deck-snip-empty[hidden] { display: none; }
1527
+
1398
1528
  /* The hairline the outline list and the drawer's boxes wear. */
1399
- .deck-snip-list::-webkit-scrollbar { width: 5px; }
1400
- .deck-snip-list::-webkit-scrollbar-track { background: transparent; }
1401
- .deck-snip-list::-webkit-scrollbar-thumb {
1529
+ .deck-snip-list::-webkit-scrollbar,
1530
+ .deck-snip-preview::-webkit-scrollbar { width: 5px; height: 5px; }
1531
+ .deck-snip-list::-webkit-scrollbar-track,
1532
+ .deck-snip-preview::-webkit-scrollbar-track { background: transparent; }
1533
+ .deck-snip-list::-webkit-scrollbar-thumb,
1534
+ .deck-snip-preview::-webkit-scrollbar-thumb {
1402
1535
  border-radius: 999px;
1403
1536
  background: var(--outline-bar);
1404
1537
  }
1405
- .deck-snip-list::-webkit-scrollbar-thumb:hover { background: var(--outline-bar-hover); }
1538
+ .deck-snip-list::-webkit-scrollbar-thumb:hover,
1539
+ .deck-snip-preview::-webkit-scrollbar-thumb:hover { background: var(--outline-bar-hover); }
1406
1540
  @supports not selector(::-webkit-scrollbar) {
1407
- .deck-snip-list {
1541
+ .deck-snip-list,
1542
+ .deck-snip-preview {
1408
1543
  scrollbar-width: thin;
1409
1544
  scrollbar-color: var(--outline-bar) transparent;
1410
1545
  }
1411
1546
  }
1412
1547
 
1548
+
1549
+ /* --- dropping files into assets/ (assets.js) -------------------------------
1550
+ The panel is the picker's neighbour — an overlay inside the drawer — and the
1551
+ sheet is the whole page: while the drawer is open, a file dragged anywhere
1552
+ over the deck is a file for this talk, and the folders are the targets. */
1553
+
1554
+ .deck-assets {
1555
+ position: absolute;
1556
+ inset: 0;
1557
+ z-index: 3;
1558
+ display: flex;
1559
+ flex-direction: column;
1560
+ gap: 10px;
1561
+ padding: 14px 12px;
1562
+ background: color-mix(in srgb, var(--bg) 80%, transparent);
1563
+ backdrop-filter: blur(6px);
1564
+ }
1565
+ .deck-assets[hidden] { display: none; }
1566
+
1567
+ .deck-assets > header {
1568
+ display: flex;
1569
+ align-items: center;
1570
+ justify-content: space-between;
1571
+ }
1572
+ .deck-assets-title,
1573
+ .deck-assets-where label {
1574
+ font: 600 10px/1 var(--sans);
1575
+ letter-spacing: 0.12em;
1576
+ text-transform: uppercase;
1577
+ color: var(--muted);
1578
+ }
1579
+ .deck-assets-close {
1580
+ display: grid;
1581
+ place-items: center;
1582
+ width: 24px;
1583
+ height: 24px;
1584
+ padding: 0;
1585
+ border: 0;
1586
+ border-radius: 999px;
1587
+ background: transparent;
1588
+ color: var(--muted);
1589
+ cursor: pointer;
1590
+ }
1591
+ .deck-assets-close:hover { background: color-mix(in srgb, var(--text) 10%, transparent); color: var(--text); }
1592
+ .deck-assets-close svg { display: block; width: 14px; height: 14px; }
1593
+
1594
+ .deck-assets-where {
1595
+ display: flex;
1596
+ align-items: center;
1597
+ gap: 10px;
1598
+ }
1599
+ .deck-assets-dir,
1600
+ .deck-assets-new {
1601
+ flex: 1;
1602
+ min-width: 0;
1603
+ padding: 7px 10px;
1604
+ font: 400 12.5px/1.3 var(--mono);
1605
+ color: var(--text);
1606
+ background: color-mix(in srgb, var(--card) 80%, transparent);
1607
+ border: 1px solid var(--line);
1608
+ border-radius: 8px;
1609
+ }
1610
+ .deck-assets-dir:focus,
1611
+ .deck-assets-new:focus {
1612
+ outline: none;
1613
+ border-color: color-mix(in srgb, var(--accent) 55%, transparent);
1614
+ }
1615
+
1616
+ .deck-assets-name-row { display: flex; gap: 8px; }
1617
+ .deck-assets-name-row[hidden] { display: none; }
1618
+ .deck-assets-go {
1619
+ flex: 0 0 auto;
1620
+ padding: 7px 12px;
1621
+ font: 600 12px/1 var(--sans);
1622
+ color: #fff;
1623
+ background: var(--accent);
1624
+ border: 0;
1625
+ border-radius: 8px;
1626
+ cursor: pointer;
1627
+ }
1628
+ .deck-assets-go[hidden] { display: none; }
1629
+ .deck-assets-go:hover { background: color-mix(in srgb, var(--accent) 85%, #fff); }
1630
+
1631
+ .deck-assets-waiting {
1632
+ margin: -4px 0 0;
1633
+ font: 400 11.5px/1.4 var(--sans);
1634
+ color: var(--accent-2);
1635
+ }
1636
+ .deck-assets-waiting[hidden] { display: none; }
1637
+
1638
+ /* The zone is a reminder more than a control: the gesture is the drag, and the
1639
+ click is for the times the file is not in a window you can drag from. */
1640
+ .deck-assets-zone {
1641
+ display: flex;
1642
+ flex-direction: column;
1643
+ gap: 4px;
1644
+ align-items: center;
1645
+ padding: 20px 12px;
1646
+ font: 500 13px/1.4 var(--sans);
1647
+ color: var(--muted);
1648
+ background: transparent;
1649
+ border: 1px dashed color-mix(in srgb, var(--text) 22%, transparent);
1650
+ border-radius: 10px;
1651
+ cursor: pointer;
1652
+ }
1653
+ .deck-assets-zone:hover {
1654
+ border-color: color-mix(in srgb, var(--accent) 55%, transparent);
1655
+ color: var(--text);
1656
+ }
1657
+ .deck-assets-zone small { font: 400 11.5px/1.4 var(--sans); }
1658
+
1659
+ .deck-assets-list {
1660
+ flex: 1 1 auto;
1661
+ display: flex;
1662
+ flex-direction: column;
1663
+ gap: 4px;
1664
+ margin: 0;
1665
+ padding: 0;
1666
+ list-style: none;
1667
+ overflow-y: auto;
1668
+ }
1669
+ .deck-assets-list li {
1670
+ display: flex;
1671
+ align-items: center;
1672
+ justify-content: space-between;
1673
+ gap: 8px;
1674
+ padding: 7px 10px;
1675
+ border-radius: 8px;
1676
+ background: color-mix(in srgb, var(--card) 55%, transparent);
1677
+ }
1678
+ .deck-assets-list code {
1679
+ min-width: 0;
1680
+ font: 500 11.5px/1.5 var(--mono);
1681
+ color: var(--accent-2);
1682
+ overflow: hidden;
1683
+ text-overflow: ellipsis;
1684
+ white-space: nowrap;
1685
+ }
1686
+ .deck-assets-file {
1687
+ min-width: 0;
1688
+ font: 400 12px/1.5 var(--sans);
1689
+ color: var(--text);
1690
+ overflow: hidden;
1691
+ text-overflow: ellipsis;
1692
+ white-space: nowrap;
1693
+ }
1694
+ .deck-assets-pct,
1695
+ .deck-assets-size {
1696
+ flex: 0 0 auto;
1697
+ font: 400 11px/1.5 var(--mono);
1698
+ color: var(--muted);
1699
+ }
1700
+ /* The row grows to the path and the size is pinned right of it, so a long name
1701
+ truncates rather than pushing the buttons off the edge. */
1702
+ .deck-assets-list li code { flex: 1 1 auto; }
1703
+ /* Put there in this session — the row you are most likely reaching for. */
1704
+ .deck-assets-list li.is-fresh { background: color-mix(in srgb, var(--accent) 14%, transparent); }
1705
+ .deck-assets-none {
1706
+ justify-content: center;
1707
+ padding: 14px 10px;
1708
+ font: 400 12px/1.5 var(--sans);
1709
+ color: var(--muted);
1710
+ background: none;
1711
+ }
1712
+ .deck-assets-list li.is-failed { background: color-mix(in srgb, #e5484d 16%, transparent); }
1713
+ .deck-assets-list li.is-failed .deck-assets-pct { color: #ff8589; }
1714
+
1715
+ .deck-assets-acts {
1716
+ flex: 0 0 auto;
1717
+ display: flex;
1718
+ gap: 4px;
1719
+ }
1720
+ .deck-assets-copy,
1721
+ .deck-assets-insert,
1722
+ .deck-assets-trash {
1723
+ display: grid;
1724
+ place-items: center;
1725
+ width: 24px;
1726
+ height: 24px;
1727
+ padding: 0;
1728
+ border: 1px solid var(--line);
1729
+ border-radius: 999px;
1730
+ background: transparent;
1731
+ color: var(--muted);
1732
+ cursor: pointer;
1733
+ }
1734
+ .deck-assets-copy:hover,
1735
+ .deck-assets-insert:hover {
1736
+ border-color: color-mix(in srgb, var(--accent) 55%, transparent);
1737
+ color: var(--text);
1738
+ }
1739
+ /* The one button here that takes something away wears the colour that says so. */
1740
+ .deck-assets-trash:hover { border-color: #e5484d; color: #ff8589; }
1741
+ /* The one moment of feedback a copy can have: the button answers for a beat. */
1742
+ .deck-assets-copy.is-done {
1743
+ border-color: var(--accent);
1744
+ color: var(--accent);
1745
+ }
1746
+ .deck-assets-copy svg,
1747
+ .deck-assets-insert svg,
1748
+ .deck-assets-trash svg { display: block; width: 13px; height: 13px; }
1749
+
1750
+ /* Deleting is the only thing in this drawer a reload cannot undo, so it is a
1751
+ layer of its own over the list — and the word has to be typed. */
1752
+ .deck-assets-confirm {
1753
+ position: absolute;
1754
+ inset: 0;
1755
+ z-index: 1;
1756
+ display: flex;
1757
+ flex-direction: column;
1758
+ align-items: center;
1759
+ justify-content: center;
1760
+ gap: 14px;
1761
+ padding: 24px;
1762
+ text-align: center;
1763
+ background: color-mix(in srgb, var(--bg) 80%, transparent);
1764
+ backdrop-filter: blur(5px);
1765
+ }
1766
+ .deck-assets-confirm[hidden] { display: none; }
1767
+ .deck-assets-confirm p {
1768
+ margin: 0;
1769
+ font: 400 13px/1.6 var(--sans);
1770
+ color: var(--text);
1771
+ }
1772
+ .deck-assets-confirm p code {
1773
+ font: 500 12px var(--mono);
1774
+ color: var(--accent-2);
1775
+ overflow-wrap: anywhere;
1776
+ }
1777
+ .deck-assets-word {
1778
+ width: 190px;
1779
+ padding: 8px 12px;
1780
+ font: 600 13px/1.2 var(--mono);
1781
+ letter-spacing: 0.14em;
1782
+ text-align: center;
1783
+ color: var(--text);
1784
+ background: color-mix(in srgb, var(--card) 80%, transparent);
1785
+ border: 1px solid var(--line);
1786
+ border-radius: 8px;
1787
+ }
1788
+ .deck-assets-word:focus {
1789
+ outline: none;
1790
+ border-color: color-mix(in srgb, #e5484d 60%, transparent);
1791
+ }
1792
+ .deck-assets-confirm > div { display: flex; gap: 10px; }
1793
+ .deck-assets-cancel,
1794
+ .deck-assets-confirm-delete {
1795
+ padding: 8px 16px;
1796
+ font: 600 12.5px/1 var(--sans);
1797
+ border-radius: 8px;
1798
+ cursor: pointer;
1799
+ }
1800
+ .deck-assets-cancel {
1801
+ color: var(--text);
1802
+ background: transparent;
1803
+ border: 1px solid var(--line);
1804
+ }
1805
+ .deck-assets-cancel:hover { background: color-mix(in srgb, var(--text) 10%, transparent); }
1806
+ .deck-assets-confirm-delete {
1807
+ color: #fff;
1808
+ background: #e5484d;
1809
+ border: 0;
1810
+ }
1811
+ .deck-assets-confirm-delete:hover { background: #f2555a; }
1812
+ /* Until the word is typed it is a button that plainly does nothing yet. */
1813
+ .deck-assets-confirm-delete:disabled {
1814
+ opacity: 0.4;
1815
+ cursor: default;
1816
+ background: #e5484d;
1817
+ }
1818
+
1819
+ /* The sheet — over everything, drawer included: the drop is the whole page. */
1820
+ #deck-drop {
1821
+ position: fixed;
1822
+ inset: 0;
1823
+ z-index: 70;
1824
+ display: grid;
1825
+ place-items: center;
1826
+ background: color-mix(in srgb, var(--bg) 74%, transparent);
1827
+ backdrop-filter: blur(8px);
1828
+ }
1829
+ #deck-drop[hidden] { display: none; }
1830
+
1831
+ .deck-drop-sheet {
1832
+ width: min(620px, 80vw);
1833
+ text-align: center;
1834
+ }
1835
+ .deck-drop-sheet h2 {
1836
+ margin: 0 0 18px;
1837
+ font: 600 17px/1.35 var(--sans);
1838
+ color: var(--text);
1839
+ }
1840
+ .deck-drop-sheet h2 code { font: 600 16px var(--mono); color: var(--accent-2); }
1841
+
1842
+ .deck-drop-targets {
1843
+ display: flex;
1844
+ flex-wrap: wrap;
1845
+ gap: 10px;
1846
+ justify-content: center;
1847
+ margin: 0;
1848
+ padding: 0;
1849
+ list-style: none;
1850
+ }
1851
+ .deck-drop-targets li {
1852
+ min-width: 130px;
1853
+ padding: 16px 18px;
1854
+ font: 500 13px/1.3 var(--mono);
1855
+ color: var(--muted);
1856
+ background: color-mix(in srgb, var(--card) 70%, transparent);
1857
+ border: 1px dashed color-mix(in srgb, var(--text) 24%, transparent);
1858
+ border-radius: 12px;
1859
+ transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease;
1860
+ }
1861
+ /* Where the last drop went: the one you probably mean again. */
1862
+ .deck-drop-targets li.is-last { color: var(--text); border-style: solid; }
1863
+ .deck-drop-targets li.is-new { font-family: var(--sans); }
1864
+ .deck-drop-targets li.is-over {
1865
+ color: var(--text);
1866
+ background: color-mix(in srgb, var(--accent) 22%, transparent);
1867
+ border-color: var(--accent);
1868
+ border-style: solid;
1869
+ transform: scale(1.04);
1870
+ }
1871
+
1413
1872
  /* The open drawer's button wears the accent — it draws in nothing, like the
1414
1873
  pointer's; the id outweighs the generic armed-tool rule. */
1415
1874
  #tool-edit[aria-pressed='true'] {
@@ -1647,6 +2106,7 @@ html.deck-pointer-on * { cursor: none !important; }
1647
2106
  #deck-tools,
1648
2107
  #deck-menu,
1649
2108
  #deck-outline,
2109
+ #deck-drop,
1650
2110
  #deck-edit { display: none; }
1651
2111
  /* The signature stays on the exported PDF — but the pill behind it does not
1652
2112
  survive a white page. */