Repository navigation
Expand file tree
/
Copy pathbookmarklet.html
More file actions
2617 lines (2390 loc) · 170 KB
/
Copy pathbookmarklet.html
File metadata and controls
2617 lines (2390 loc) · 170 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
data:text/html,<html>
<head>
<title>Notes</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
%2F*%20------------------------------------------------------------------%0A%20%20%20Notes%20bookmarklet%0A%20%20%20Themes%20come%20from%20Figma%20color%20palettes%20(figma.com%2Fcolor-palettes).%0A%20%20%20Default%3A%20%22Blank%20Page%22%20(monochromatic)%2C%20following%20system%20light%2Fdark.%0A%20%20%20Each%20theme%20sets%20surfaces%2C%20ink%2C%20and%20one%20accent%3B%20the%20rest%20is%20derived.%0A%20%20%20------------------------------------------------------------------%20*%2F%0A%0A%3Aroot%20%7B%0A%20%20%20%20--font-ui%3A%20ui-sans-serif%2C%20system-ui%2C%20-apple-system%2C%20%22Segoe%20UI%22%2C%20Roboto%2C%20%22Helvetica%20Neue%22%2C%20Arial%2C%20sans-serif%3B%0A%20%20%20%20--font-title%3A%20%22Iowan%20Old%20Style%22%2C%20%22Charter%22%2C%20%22Bitstream%20Charter%22%2C%20%22Sitka%20Text%22%2C%20Cambria%2C%20Georgia%2C%20serif%3B%0A%20%20%20%20--radius%3A%208px%3B%0A%20%20%20%20--sidebar-w%3A%20272px%3B%0A%0A%20%20%20%20%2F*%20Blank%20Page%20%E2%80%94%20%23F2F0EF%20%23C9C8C7%20%23949392%20%2366615E%20*%2F%0A%20%20%20%20--paper%3A%20%23f8f7f6%3B%0A%20%20%20%20--shelf%3A%20%23f2f0ef%3B%0A%20%20%20%20--surface%3A%20%23ffffff%3B%0A%20%20%20%20--selected%3A%20%23ffffff%3B%0A%20%20%20%20--ink%3A%20%23262321%3B%0A%20%20%20%20--muted%3A%20%2366615e%3B%0A%20%20%20%20--faint%3A%20%23a6a4a3%3B%0A%20%20%20%20--line%3A%20%23e0dedc%3B%0A%20%20%20%20--accent%3A%20%23262321%3B%0A%20%20%20%20--accent-ink%3A%20%23f8f7f6%3B%0A%20%20%20%20--danger%3A%20%23a3231b%3B%0A%0A%20%20%20%20--hover%3A%20color-mix(in%20srgb%2C%20var(--ink)%206%25%2C%20transparent)%3B%0A%20%20%20%20--accent-soft%3A%20color-mix(in%20srgb%2C%20var(--accent)%209%25%2C%20transparent)%3B%0A%20%20%20%20--scrim%3A%20rgba(20%2C%2018%2C%2017%2C%200.32)%3B%0A%20%20%20%20--shadow-row%3A%200%201px%202px%20rgba(20%2C%2018%2C%2017%2C%200.07)%2C%200%200%200%201px%20rgba(20%2C%2018%2C%2017%2C%200.04)%3B%0A%20%20%20%20--shadow-float%3A%200%2012px%2032px%20rgba(20%2C%2018%2C%2017%2C%200.16)%2C%200%200%200%201px%20rgba(20%2C%2018%2C%2017%2C%200.06)%3B%0A%20%20%20%20color-scheme%3A%20light%3B%0A%7D%0A%0A%2F*%20Shared%20depth%20for%20dark%20themes%20*%2F%0A%40media%20(prefers-color-scheme%3A%20dark)%20%7B%0A%20%20%20%20%3Aroot%3Anot(%5Bdata-theme%5D)%2C%0A%20%20%20%20%3Aroot%5Bdata-theme%3D%22blank%22%5D%20%7B%0A%20%20%20%20%20%20%20%20--scrim%3A%20rgba(0%2C%200%2C%200%2C%200.5)%3B%0A%20%20%20%20%20%20%20%20--shadow-row%3A%200%200%200%201px%20rgba(255%2C%20255%2C%20255%2C%200.06)%3B%0A%20%20%20%20%20%20%20%20--shadow-float%3A%200%2016px%2040px%20rgba(0%2C%200%2C%200%2C%200.5)%2C%200%200%200%201px%20rgba(255%2C%20255%2C%20255%2C%200.08)%3B%0A%20%20%20%20%20%20%20%20color-scheme%3A%20dark%3B%0A%0A%20%20%20%20%20%20%20%20%2F*%20Blank%20Page%2C%20dark%20*%2F%0A%20%20%20%20%20%20%20%20--paper%3A%20%231c1b1a%3B%0A%20%20%20%20%20%20%20%20--shelf%3A%20%23161514%3B%0A%20%20%20%20%20%20%20%20--surface%3A%20%23262423%3B%0A%20%20%20%20%20%20%20%20--selected%3A%20%232a2827%3B%0A%20%20%20%20%20%20%20%20--ink%3A%20%23edebea%3B%0A%20%20%20%20%20%20%20%20--muted%3A%20%23a3a09e%3B%0A%20%20%20%20%20%20%20%20--faint%3A%20%2366615e%3B%0A%20%20%20%20%20%20%20%20--line%3A%20%232f2d2b%3B%0A%20%20%20%20%20%20%20%20--accent%3A%20%23edebea%3B%0A%20%20%20%20%20%20%20%20--accent-ink%3A%20%231c1b1a%3B%0A%20%20%20%20%20%20%20%20--danger%3A%20%23f0806f%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%3Aroot%5Bdata-theme%3D%22walnut%22%5D%2C%0A%3Aroot%5Bdata-theme%3D%22forest%22%5D%20%7B%0A%20%20%20%20--scrim%3A%20rgba(0%2C%200%2C%200%2C%200.5)%3B%0A%20%20%20%20--shadow-row%3A%200%200%200%201px%20rgba(255%2C%20255%2C%20255%2C%200.06)%3B%0A%20%20%20%20--shadow-float%3A%200%2016px%2040px%20rgba(0%2C%200%2C%200%2C%200.5)%2C%200%200%200%201px%20rgba(255%2C%20255%2C%20255%2C%200.08)%3B%0A%20%20%20%20color-scheme%3A%20dark%3B%0A%7D%0A%0A%2F*%20Emerald%20Spring%20Whisper%20%E2%80%94%20%23135E4B%20%234CB572%20%23A1D8B5%20%23CCDCDB%20*%2F%0A%3Aroot%5Bdata-theme%3D%22spring%22%5D%20%7B%0A%20%20%20%20--paper%3A%20%23f6f9f8%3B%0A%20%20%20%20--shelf%3A%20%23e8efee%3B%0A%20%20%20%20--surface%3A%20%23ffffff%3B%0A%20%20%20%20--selected%3A%20%23ffffff%3B%0A%20%20%20%20--ink%3A%20%2310302a%3B%0A%20%20%20%20--muted%3A%20%2346625a%3B%0A%20%20%20%20--faint%3A%20%2394bfac%3B%0A%20%20%20%20--line%3A%20%23d3e0de%3B%0A%20%20%20%20--accent%3A%20%23135e4b%3B%0A%20%20%20%20--accent-ink%3A%20%23ffffff%3B%0A%20%20%20%20--danger%3A%20%23a3231b%3B%0A%7D%0A%0A%2F*%20Blue%20Cascade%20%E2%80%94%20%236A89A7%20%23516E89%20%238CA4BB%20*%2F%0A%3Aroot%5Bdata-theme%3D%22cascade%22%5D%20%7B%0A%20%20%20%20--paper%3A%20%23f6f8fa%3B%0A%20%20%20%20--shelf%3A%20%23e8edf2%3B%0A%20%20%20%20--surface%3A%20%23ffffff%3B%0A%20%20%20%20--selected%3A%20%23ffffff%3B%0A%20%20%20%20--ink%3A%20%231a2633%3B%0A%20%20%20%20--muted%3A%20%234b6680%3B%0A%20%20%20%20--faint%3A%20%238ca4bb%3B%0A%20%20%20%20--line%3A%20%23d5dee7%3B%0A%20%20%20%20--accent%3A%20%23516e89%3B%0A%20%20%20%20--accent-ink%3A%20%23ffffff%3B%0A%20%20%20%20--danger%3A%20%23a3231b%3B%0A%7D%0A%0A%2F*%20Driftwood%20Pearl%20Morning%20%E2%80%94%20%23BC7B6F%20%23E4A499%20%235A322A%20%23718A9E%20%23CCCDC7%20*%2F%0A%3Aroot%5Bdata-theme%3D%22driftwood%22%5D%20%7B%0A%20%20%20%20--paper%3A%20%23f8f7f4%3B%0A%20%20%20%20--shelf%3A%20%23ebebe6%3B%0A%20%20%20%20--surface%3A%20%23ffffff%3B%0A%20%20%20%20--selected%3A%20%23ffffff%3B%0A%20%20%20%20--ink%3A%20%232f1b16%3B%0A%20%20%20%20--muted%3A%20%235a6b79%3B%0A%20%20%20%20--faint%3A%20%23c9a29a%3B%0A%20%20%20%20--line%3A%20%23dcdcd5%3B%0A%20%20%20%20--accent%3A%20%238f5246%3B%0A%20%20%20%20--accent-ink%3A%20%23ffffff%3B%0A%20%20%20%20--danger%3A%20%23a3231b%3B%0A%7D%0A%0A%2F*%20Rose%20Quartz%20Evening%20%E2%80%94%20%2364242F%20%23B44446%20%23FC8F8F%20%23DFD9D8%20*%2F%0A%3Aroot%5Bdata-theme%3D%22rose%22%5D%20%7B%0A%20%20%20%20--paper%3A%20%23faf8f7%3B%0A%20%20%20%20--shelf%3A%20%23f0ebea%3B%0A%20%20%20%20--surface%3A%20%23ffffff%3B%0A%20%20%20%20--selected%3A%20%23ffffff%3B%0A%20%20%20%20--ink%3A%20%233a141b%3B%0A%20%20%20%20--muted%3A%20%236e5357%3B%0A%20%20%20%20--faint%3A%20%23e0a3a3%3B%0A%20%20%20%20--line%3A%20%23e4dbda%3B%0A%20%20%20%20--accent%3A%20%23b44446%3B%0A%20%20%20%20--accent-ink%3A%20%23ffffff%3B%0A%20%20%20%20--danger%3A%20%238f1d22%3B%0A%7D%0A%0A%2F*%20Amber%20Walnut%20Morning%20%E2%80%94%20%23BB6C43%20%234A413C%20%23EBEFEE%20%23C8906D%20%23CCB499%20*%2F%0A%3Aroot%5Bdata-theme%3D%22walnut%22%5D%20%7B%0A%20%20%20%20--paper%3A%20%232c2623%3B%0A%20%20%20%20--shelf%3A%20%23231e1b%3B%0A%20%20%20%20--surface%3A%20%233a322e%3B%0A%20%20%20%20--selected%3A%20%233a322e%3B%0A%20%20%20%20--ink%3A%20%23ebefee%3B%0A%20%20%20%20--muted%3A%20%23ccb499%3B%0A%20%20%20%20--faint%3A%20%236e6058%3B%0A%20%20%20%20--line%3A%20%233f3631%3B%0A%20%20%20%20--accent%3A%20%23c8906d%3B%0A%20%20%20%20--accent-ink%3A%20%23231e1b%3B%0A%20%20%20%20--danger%3A%20%23f0806f%3B%0A%7D%0A%0A%2F*%20Jade%20Amethyst%20Forest%20%E2%80%94%20%23429155%20%23B69AD2%20%231B1B1B%20%231C4C2D%20%233E2C5C%20%23585858%20*%2F%0A%3Aroot%5Bdata-theme%3D%22forest%22%5D%20%7B%0A%20%20%20%20--paper%3A%20%231b1b1b%3B%0A%20%20%20%20--shelf%3A%20%23151816%3B%0A%20%20%20%20--surface%3A%20%23252826%3B%0A%20%20%20%20--selected%3A%20%231c2e23%3B%0A%20%20%20%20--ink%3A%20%23e8ece9%3B%0A%20%20%20%20--muted%3A%20%239ba59e%3B%0A%20%20%20%20--faint%3A%20%23585858%3B%0A%20%20%20%20--line%3A%20%232a2e2b%3B%0A%20%20%20%20--accent%3A%20%23b69ad2%3B%0A%20%20%20%20--accent-ink%3A%20%231b1b1b%3B%0A%20%20%20%20--danger%3A%20%23f0806f%3B%0A%7D%0A%0A*%20%7B%0A%20%20%20%20margin%3A%200%3B%0A%20%20%20%20padding%3A%200%3B%0A%20%20%20%20box-sizing%3A%20border-box%3B%0A%7D%0A%0Ahtml%2C%0Abody%20%7B%0A%20%20%20%20height%3A%20100%25%3B%0A%7D%0A%0Abody%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20font-family%3A%20var(--font-ui)%3B%0A%20%20%20%20font-size%3A%2015px%3B%0A%20%20%20%20line-height%3A%201.5%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20background%3A%20var(--paper)%3B%0A%20%20%20%20-webkit-font-smoothing%3A%20antialiased%3B%0A%7D%0A%0Abutton%2C%0Ainput%20%7B%0A%20%20%20%20font%3A%20inherit%3B%0A%20%20%20%20color%3A%20inherit%3B%0A%7D%0A%0Abutton%20%7B%0A%20%20%20%20background%3A%20none%3B%0A%20%20%20%20border%3A%200%3B%0A%20%20%20%20cursor%3A%20pointer%3B%0A%7D%0A%0Aa%20%7B%0A%20%20%20%20color%3A%20var(--accent)%3B%0A%20%20%20%20text-underline-offset%3A%202px%3B%0A%7D%0A%0A%3Afocus-visible%20%7B%0A%20%20%20%20outline%3A%202px%20solid%20var(--accent)%3B%0A%20%20%20%20outline-offset%3A%202px%3B%0A%7D%0A%0A.icon%20%7B%0A%20%20%20%20width%3A%2018px%3B%0A%20%20%20%20height%3A%2018px%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20display%3A%20block%3B%0A%7D%0A%0A%2F*%20----------%20Shared%20buttons%20----------%20*%2F%0A%0A.icon-btn%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20justify-content%3A%20center%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20width%3A%2032px%3B%0A%20%20%20%20height%3A%2032px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20transition%3A%20background-color%200.12s%20ease%2C%20color%200.12s%20ease%3B%0A%7D%0A%0A.icon-btn%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.text-btn%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20height%3A%2032px%3B%0A%20%20%20%20padding%3A%200%2010px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20font-weight%3A%20500%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20transition%3A%20background-color%200.12s%20ease%2C%20color%200.12s%20ease%3B%0A%7D%0A%0A.text-btn%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.text-btn%20.icon%20%7B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%7D%0A%0A.solid-btn%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20justify-content%3A%20center%3B%0A%20%20%20%20gap%3A%206px%3B%0A%20%20%20%20height%3A%2036px%3B%0A%20%20%20%20padding%3A%200%2016px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20background%3A%20var(--accent)%3B%0A%20%20%20%20color%3A%20var(--accent-ink)%3B%0A%7D%0A%0A.solid-btn%3Ahover%20%7B%0A%20%20%20%20filter%3A%20brightness(1.08)%3B%0A%7D%0A%0A.solid-btn.danger%20%7B%0A%20%20%20%20background%3A%20var(--danger)%3B%0A%20%20%20%20color%3A%20%23ffffff%3B%0A%7D%0A%0A.ghost-btn%20%7B%0A%20%20%20%20height%3A%2036px%3B%0A%20%20%20%20padding%3A%200%2016px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20font-weight%3A%20500%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20box-shadow%3A%20inset%200%200%200%201px%20var(--line)%3B%0A%7D%0A%0A.ghost-btn%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%7D%0A%0A%2F*%20----------%20Sidebar%20----------%20*%2F%0A%0A.sidebar%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20width%3A%20var(--sidebar-w)%3B%0A%20%20%20%20background%3A%20var(--shelf)%3B%0A%20%20%20%20border-right%3A%201px%20solid%20var(--line)%3B%0A%20%20%20%20transition%3A%20margin-left%200.2s%20ease%3B%0A%7D%0A%0Abody.sidebar-collapsed%20.sidebar%20%7B%0A%20%20%20%20margin-left%3A%20calc(-1%20*%20var(--sidebar-w))%3B%0A%20%20%20%20visibility%3A%20hidden%3B%0A%7D%0A%0A.sidebar-header%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20padding%3A%2014px%2010px%206px%2018px%3B%0A%7D%0A%0A.app-name%20%7B%0A%20%20%20%20font-family%3A%20var(--font-title)%3B%0A%20%20%20%20font-size%3A%2019px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20letter-spacing%3A%20-0.01em%3B%0A%7D%0A%0A.note-count%20%7B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20font-variant-numeric%3A%20tabular-nums%3B%0A%7D%0A%0A.sidebar-header%20.icon-btn%20%7B%0A%20%20%20%20margin-left%3A%20auto%3B%0A%7D%0A%0A.new-row%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%204px%3B%0A%20%20%20%20margin%3A%206px%208px%208px%3B%0A%7D%0A%0A.new-schedule-btn%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%206px%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20height%3A%2038px%3B%0A%20%20%20%20padding%3A%200%2010px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20font-weight%3A%20500%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20transition%3A%20background-color%200.12s%20ease%2C%20color%200.12s%20ease%3B%0A%7D%0A%0A.new-schedule-btn%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.new-schedule-btn%20.icon%20%7B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%7D%0A%0A.new-note-btn%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%2010px%3B%0A%20%20%20%20height%3A%2038px%3B%0A%20%20%20%20padding%3A%200%2010px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20color%3A%20var(--accent)%3B%0A%20%20%20%20text-align%3A%20left%3B%0A%20%20%20%20transition%3A%20background-color%200.12s%20ease%3B%0A%7D%0A%0A.new-note-btn%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--accent-soft)%3B%0A%7D%0A%0A.new-note-btn%20.icon%20%7B%0A%20%20%20%20width%3A%2020px%3B%0A%20%20%20%20height%3A%2020px%3B%0A%20%20%20%20padding%3A%202px%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20background%3A%20var(--accent)%3B%0A%20%20%20%20color%3A%20var(--accent-ink)%3B%0A%7D%0A%0A.entry-list%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20overflow-y%3A%20auto%3B%0A%20%20%20%20padding%3A%200%208px%2012px%3B%0A%7D%0A%0A.entry-list%20%3E%20div%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20gap%3A%202px%3B%0A%7D%0A%0A.entry-item%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20flex-start%3B%0A%20%20%20%20gap%3A%206px%3B%0A%20%20%20%20padding%3A%208px%206px%208px%204px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20cursor%3A%20pointer%3B%0A%20%20%20%20user-select%3A%20none%3B%0A%20%20%20%20transition%3A%20background-color%200.12s%20ease%2C%20box-shadow%200.12s%20ease%3B%0A%7D%0A%0A.entry-item%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%7D%0A%0A.entry-item.active%20%7B%0A%20%20%20%20background%3A%20var(--selected)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-row)%3B%0A%7D%0A%0A.entry-item.dragging%20%7B%0A%20%20%20%20opacity%3A%200.4%3B%0A%7D%0A%0A.entry-item.drag-over%20%7B%0A%20%20%20%20box-shadow%3A%20inset%200%202px%200%20var(--accent)%3B%0A%7D%0A%0A.entry-item-text%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20padding-top%3A%201px%3B%0A%7D%0A%0A.entry-item-title-row%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%205px%3B%0A%20%20%20%20min-width%3A%200%3B%0A%7D%0A%0A.entry-item-title-row%20.entry-item-title%20%7B%0A%20%20%20%20min-width%3A%200%3B%0A%7D%0A%0A.entry-type-icon%20%7B%0A%20%20%20%20width%3A%2014px%3B%0A%20%20%20%20height%3A%2014px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.entry-item-title%2C%0A.entry-item-preview%20%7B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20text-overflow%3A%20ellipsis%3B%0A%7D%0A%0A.entry-item-title%20%7B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%2022px%3B%0A%7D%0A%0A.entry-item-preview%20%7B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20line-height%3A%2018px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.entry-item-title-input%2C%0A.pane-title-input%20%7B%0A%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20border%3A%200%3B%0A%20%20%20%20border-radius%3A%204px%3B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%20%20%20%20box-shadow%3A%200%200%200%202px%20var(--accent)%3B%0A%20%20%20%20outline%3A%20none%3B%0A%7D%0A%0A.entry-item-title-input%20%7B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%2022px%3B%0A%20%20%20%20padding%3A%200%204px%3B%0A%7D%0A%0A.entry-item%20.delete-btn%20%7B%0A%20%20%20%20width%3A%2028px%3B%0A%20%20%20%20height%3A%2028px%3B%0A%20%20%20%20opacity%3A%200%3B%0A%7D%0A%0A.entry-item%20.delete-btn%20.icon%20%7B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%7D%0A%0A.entry-item%3Ahover%20.delete-btn%2C%0A.entry-item%3Afocus-within%20.delete-btn%2C%0A.entry-item.active%20.delete-btn%20%7B%0A%20%20%20%20opacity%3A%201%3B%0A%7D%0A%0A.entry-item%20.delete-btn%3Ahover%20%7B%0A%20%20%20%20color%3A%20var(--danger)%3B%0A%7D%0A%0A%40media%20(hover%3A%20none)%20%7B%0A%20%20%20%20.entry-item%20.delete-btn%20%7B%0A%20%20%20%20%20%20%20%20opacity%3A%201%3B%0A%20%20%20%20%7D%0A%7D%0A%0A.sidebar-footer%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%202px%3B%0A%20%20%20%20padding%3A%208px%3B%0A%20%20%20%20border-top%3A%201px%20solid%20var(--line)%3B%0A%7D%0A%0A.sidebar-footer%20.theme-btn%20%7B%0A%20%20%20%20margin-left%3A%20auto%3B%0A%7D%0A%0A%2F*%20----------%20Color%20dots%20%26%20swatches%20----------%20*%2F%0A%0A.color-dot%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20width%3A%2024px%3B%0A%20%20%20%20height%3A%2024px%3B%0A%20%20%20%20border-radius%3A%2050%25%3B%0A%7D%0A%0A.entry-item%20.color-dot%20%7B%0A%20%20%20%20margin-top%3A%20-1px%3B%0A%7D%0A%0A.color-dot%3A%3Aafter%20%7B%0A%20%20%20%20content%3A%20%22%22%3B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20inset%3A%206px%3B%0A%20%20%20%20border-radius%3A%2050%25%3B%0A%20%20%20%20background%3A%20var(--dot%2C%20transparent)%3B%0A%20%20%20%20transition%3A%20transform%200.12s%20ease%3B%0A%7D%0A%0A.color-dot.color-dot-empty%3A%3Aafter%20%7B%0A%20%20%20%20box-shadow%3A%20inset%200%200%200%201.5px%20var(--faint)%3B%0A%7D%0A%0A.color-dot%3Ahover%3A%3Aafter%20%7B%0A%20%20%20%20transform%3A%20scale(1.2)%3B%0A%7D%0A%0A%2F*%20----------%20Editor%20----------%20*%2F%0A%0A.editor%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20background%3A%20var(--paper)%3B%0A%7D%0A%0A.split-horizontal%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%7D%0A%0A.split-horizontal%20%3E%20.entry-pane%20%2B%20.entry-pane%20%7B%0A%20%20%20%20border-left%3A%201px%20solid%20var(--line)%3B%0A%7D%0A%0A.entry-pane%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20background%3A%20var(--paper)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20--column%3A%20700px%3B%0A%20%20%20%20--gutter%3A%2040px%3B%0A%20%20%20%20--pad%3A%20max(var(--gutter)%2C%20calc((100%25%20-%20var(--column))%20%2F%202))%3B%0A%7D%0A%0A.split-horizontal%20.entry-pane%20%7B%0A%20%20%20%20--gutter%3A%2028px%3B%0A%7D%0A%0A.pane-title%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%204px%3B%0A%20%20%20%20padding%3A%2028px%20var(--pad)%206px%3B%0A%7D%0A%0A.pane-title%20.color-dot%20%7B%0A%20%20%20%20margin-left%3A%20-6px%3B%0A%7D%0A%0A.pane-title-text%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20text-overflow%3A%20ellipsis%3B%0A%20%20%20%20font-family%3A%20var(--font-title)%3B%0A%20%20%20%20font-size%3A%2030px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%201.25%3B%0A%20%20%20%20letter-spacing%3A%20-0.015em%3B%0A%20%20%20%20cursor%3A%20text%3B%0A%20%20%20%20border-radius%3A%204px%3B%0A%7D%0A%0A.pane-title-input%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20font-family%3A%20var(--font-title)%3B%0A%20%20%20%20font-size%3A%2030px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%201.25%3B%0A%20%20%20%20letter-spacing%3A%20-0.015em%3B%0A%20%20%20%20padding%3A%200%206px%3B%0A%20%20%20%20margin-left%3A%20-6px%3B%0A%7D%0A%0A.split-horizontal%20.pane-title-text%2C%0A.split-horizontal%20.pane-title-input%20%7B%0A%20%20%20%20font-size%3A%2022px%3B%0A%7D%0A%0A.split-horizontal%20.pane-title%20%7B%0A%20%20%20%20padding-top%3A%2020px%3B%0A%20%20%20%20cursor%3A%20grab%3B%0A%7D%0A%0A.pane-title-actions%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20gap%3A%202px%3B%0A%20%20%20%20margin-right%3A%20-8px%3B%0A%7D%0A%0A.pane-title-actions%20.swatch-preview%20%7B%0A%20%20%20%20width%3A%2014px%3B%0A%20%20%20%20height%3A%2014px%3B%0A%20%20%20%20border-radius%3A%204px%3B%0A%20%20%20%20box-shadow%3A%20inset%200%200%200%201.5px%20currentColor%3B%0A%7D%0A%0A.reveal-btn%20%7B%0A%20%20%20%20display%3A%20none%3B%0A%20%20%20%20margin-left%3A%20-10px%3B%0A%20%20%20%20margin-right%3A%204px%3B%0A%7D%0A%0Abody.sidebar-collapsed%20.editor%20%3E%20.entry-pane%20.reveal-btn%2C%0Abody.sidebar-collapsed%20.split-horizontal%20%3E%20.entry-pane%3Afirst-child%20.reveal-btn%2C%0Abody.sidebar-collapsed%20.empty-state%20.reveal-btn%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%7D%0A%0A.editor%20%3E%20.entry-pane%20.close-pane-btn%20%7B%0A%20%20%20%20display%3A%20none%3B%0A%7D%0A%0A.content-editable%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20overflow-y%3A%20auto%3B%0A%20%20%20%20padding%3A%2010px%20var(--pad)%2030vh%3B%0A%20%20%20%20font-size%3A%2016px%3B%0A%20%20%20%20line-height%3A%201.7%3B%0A%20%20%20%20outline%3A%20none%3B%0A%20%20%20%20overflow-wrap%3A%20anywhere%3B%0A%20%20%20%20caret-color%3A%20var(--accent)%3B%0A%7D%0A%0A.content-editable%3Afocus-visible%20%7B%0A%20%20%20%20outline%3A%20none%3B%0A%7D%0A%0A.content-editable%20a%20%7B%0A%20%20%20%20color%3A%20inherit%3B%0A%7D%0A%0A.content-editable%20input%5Btype%3D%22checkbox%22%5D%20%7B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%20%20%20%20margin-right%3A%206px%3B%0A%20%20%20%20vertical-align%3A%20-2px%3B%0A%20%20%20%20accent-color%3A%20var(--accent)%3B%0A%20%20%20%20cursor%3A%20pointer%3B%0A%7D%0A%0A%2F*%20Note%20page%20colors%3A%20the%20pane%20adopts%20the%20chosen%20paper%20and%20readable%20ink.%20*%2F%0A.entry-pane.has-page-color%20%7B%0A%20%20%20%20--muted%3A%20currentColor%3B%0A%20%20%20%20--hover%3A%20rgba(127%2C%20127%2C%20127%2C%200.16)%3B%0A%7D%0A%0A.entry-pane.has-page-color%20.icon-btn%20%7B%0A%20%20%20%20color%3A%20inherit%3B%0A%20%20%20%20opacity%3A%200.7%3B%0A%7D%0A%0A.entry-pane.has-page-color%20.icon-btn%3Ahover%20%7B%0A%20%20%20%20opacity%3A%201%3B%0A%7D%0A%0A%2F*%20Drop%20target%20when%20dragging%20a%20note%20onto%20the%20editor%20*%2F%0A.editor.drop-target%3A%3Aafter%20%7B%0A%20%20%20%20content%3A%20%22Drop%20to%20open%20side%20by%20side%22%3B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20inset%3A%2012px%3B%0A%20%20%20%20display%3A%20grid%3B%0A%20%20%20%20place-items%3A%20center%3B%0A%20%20%20%20border%3A%202px%20dashed%20var(--accent)%3B%0A%20%20%20%20border-radius%3A%2014px%3B%0A%20%20%20%20background%3A%20var(--accent-soft)%3B%0A%20%20%20%20color%3A%20var(--accent)%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20pointer-events%3A%20none%3B%0A%20%20%20%20z-index%3A%205%3B%0A%7D%0A%0A%2F*%20Empty%20state%20*%2F%0A.empty-state%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20justify-content%3A%20center%3B%0A%20%20%20%20gap%3A%2014px%3B%0A%20%20%20%20padding%3A%2024px%3B%0A%20%20%20%20text-align%3A%20center%3B%0A%7D%0A%0A.empty-state%20p%20%7B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.empty-actions%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-wrap%3A%20wrap%3B%0A%20%20%20%20justify-content%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%7D%0A%0A.ghost-btn%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20justify-content%3A%20center%3B%0A%20%20%20%20gap%3A%206px%3B%0A%7D%0A%0A.empty-state%20.reveal-btn%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20top%3A%2016px%3B%0A%20%20%20%20left%3A%2020px%3B%0A%20%20%20%20margin%3A%200%3B%0A%7D%0A%0A%2F*%20----------%20Popover%20(note%20colors)%20----------%20*%2F%0A%0A.popover%20%7B%0A%20%20%20%20position%3A%20fixed%3B%0A%20%20%20%20z-index%3A%2030%3B%0A%20%20%20%20width%3A%20268px%3B%0A%20%20%20%20padding%3A%2014px%3B%0A%20%20%20%20border-radius%3A%2012px%3B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-float)%3B%0A%7D%0A%0A.popover-section%20%2B%20.popover-section%20%7B%0A%20%20%20%20margin-top%3A%2014px%3B%0A%7D%0A%0A.popover-label%20%7B%0A%20%20%20%20display%3A%20block%3B%0A%20%20%20%20margin-bottom%3A%208px%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.swatches%20%7B%0A%20%20%20%20display%3A%20grid%3B%0A%20%20%20%20grid-template-columns%3A%20repeat(8%2C%201fr)%3B%0A%20%20%20%20gap%3A%204px%3B%0A%7D%0A%0A.swatch%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20aspect-ratio%3A%201%3B%0A%20%20%20%20border-radius%3A%2050%25%3B%0A%20%20%20%20background%3A%20var(--swatch)%3B%0A%20%20%20%20box-shadow%3A%20inset%200%200%200%201px%20rgba(127%2C%20127%2C%20127%2C%200.28)%3B%0A%7D%0A%0A.swatch%3Ahover%20%7B%0A%20%20%20%20transform%3A%20scale(1.1)%3B%0A%7D%0A%0A.swatch%5Baria-pressed%3D%22true%22%5D%20%7B%0A%20%20%20%20box-shadow%3A%20inset%200%200%200%201px%20rgba(127%2C%20127%2C%20127%2C%200.28)%2C%200%200%200%202px%20var(--surface)%2C%200%200%200%204px%20var(--ink)%3B%0A%7D%0A%0A.swatch.swatch-none%20%7B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%7D%0A%0A.swatch.swatch-none%3A%3Aafter%20%7B%0A%20%20%20%20content%3A%20%22%22%3B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%2050%25%3B%0A%20%20%20%20top%3A%2018%25%3B%0A%20%20%20%20bottom%3A%2018%25%3B%0A%20%20%20%20width%3A%201.5px%3B%0A%20%20%20%20background%3A%20var(--danger)%3B%0A%20%20%20%20transform%3A%20rotate(45deg)%3B%0A%7D%0A%0A.swatch.swatch-custom%20%7B%0A%20%20%20%20background%3A%20conic-gradient(%23e5484d%2C%20%23f5a524%2C%20%2346a758%2C%20%230091ff%2C%20%238e4ec6%2C%20%23e5484d)%3B%0A%7D%0A%0A.swatch-custom%20input%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20inset%3A%200%3B%0A%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20height%3A%20100%25%3B%0A%20%20%20%20opacity%3A%200%3B%0A%20%20%20%20cursor%3A%20pointer%3B%0A%7D%0A%0A%2F*%20----------%20Dialogs%20----------%20*%2F%0A%0A.modal%2C%0A.help-overlay%20%7B%0A%20%20%20%20position%3A%20fixed%3B%0A%20%20%20%20inset%3A%200%3B%0A%20%20%20%20z-index%3A%2040%3B%0A%20%20%20%20display%3A%20grid%3B%0A%20%20%20%20place-items%3A%20center%3B%0A%20%20%20%20padding%3A%2016px%3B%0A%20%20%20%20background%3A%20var(--scrim)%3B%0A%20%20%20%20animation%3A%20fade-in%200.12s%20ease%3B%0A%7D%0A%0A.modal-content%2C%0A.help-card%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20max-height%3A%20calc(100vh%20-%2032px)%3B%0A%20%20%20%20overflow-y%3A%20auto%3B%0A%20%20%20%20border-radius%3A%2014px%3B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-float)%3B%0A%20%20%20%20animation%3A%20rise-in%200.16s%20ease%3B%0A%7D%0A%0A.modal-content%20%7B%0A%20%20%20%20max-width%3A%20380px%3B%0A%20%20%20%20padding%3A%2022px%3B%0A%7D%0A%0A.modal-content%20h2%20%7B%0A%20%20%20%20font-size%3A%2017px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%201.35%3B%0A%20%20%20%20overflow-wrap%3A%20anywhere%3B%0A%7D%0A%0A.modal-content%20p%20%7B%0A%20%20%20%20margin-top%3A%206px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%7D%0A%0A.modal-actions%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20justify-content%3A%20flex-end%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20margin-top%3A%2022px%3B%0A%7D%0A%0A.help-card%20%7B%0A%20%20%20%20max-width%3A%20560px%3B%0A%20%20%20%20padding%3A%2026px%2028px%2022px%3B%0A%7D%0A%0A.help-card%20h2%20%7B%0A%20%20%20%20font-family%3A%20var(--font-title)%3B%0A%20%20%20%20font-size%3A%2024px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20letter-spacing%3A%20-0.01em%3B%0A%7D%0A%0A.help-close%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20top%3A%2014px%3B%0A%20%20%20%20right%3A%2014px%3B%0A%7D%0A%0A.help-list%20%7B%0A%20%20%20%20display%3A%20grid%3B%0A%20%20%20%20grid-template-columns%3A%20128px%201fr%3B%0A%20%20%20%20column-gap%3A%2020px%3B%0A%20%20%20%20margin-top%3A%2018px%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%7D%0A%0A.help-list%20dt%2C%0A.help-list%20dd%20%7B%0A%20%20%20%20padding%3A%2010px%200%3B%0A%20%20%20%20border-top%3A%201px%20solid%20var(--line)%3B%0A%7D%0A%0A.help-list%20dt%20%7B%0A%20%20%20%20font-weight%3A%20600%3B%0A%7D%0A%0A.help-list%20dd%20%7B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0Akbd%20%7B%0A%20%20%20%20display%3A%20inline-block%3B%0A%20%20%20%20min-width%3A%2020px%3B%0A%20%20%20%20padding%3A%200%205px%3B%0A%20%20%20%20border-radius%3A%204px%3B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20box-shadow%3A%20inset%200%20-1px%200%20var(--line)%3B%0A%20%20%20%20font-family%3A%20inherit%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%2020px%3B%0A%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.help-footer%20%7B%0A%20%20%20%20margin-top%3A%2014px%3B%0A%20%20%20%20padding-top%3A%2014px%3B%0A%20%20%20%20border-top%3A%201px%20solid%20var(--line)%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.drawer-scrim%20%7B%0A%20%20%20%20display%3A%20none%3B%0A%7D%0A%0A%40keyframes%20fade-in%20%7B%0A%20%20%20%20from%20%7B%20opacity%3A%200%3B%20%7D%0A%7D%0A%0A%40keyframes%20rise-in%20%7B%0A%20%20%20%20from%20%7B%20opacity%3A%200%3B%20transform%3A%20translateY(6px)%20scale(0.98)%3B%20%7D%0A%7D%0A%0A%40media%20(prefers-reduced-motion%3A%20reduce)%20%7B%0A%20%20%20%20*%2C%0A%20%20%20%20*%3A%3Abefore%2C%0A%20%20%20%20*%3A%3Aafter%20%7B%0A%20%20%20%20%20%20%20%20animation%3A%20none%20!important%3B%0A%20%20%20%20%20%20%20%20transition%3A%20none%20!important%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%2F*%20----------%20Narrow%20screens%3A%20the%20list%20becomes%20a%20drawer%20----------%20*%2F%0A%0A%40media%20(max-width%3A%20720px)%20%7B%0A%20%20%20%20.sidebar%20%7B%0A%20%20%20%20%20%20%20%20position%3A%20fixed%3B%0A%20%20%20%20%20%20%20%20inset%3A%200%20auto%200%200%3B%0A%20%20%20%20%20%20%20%20z-index%3A%2020%3B%0A%20%20%20%20%20%20%20%20width%3A%20min(86vw%2C%20320px)%3B%0A%20%20%20%20%20%20%20%20margin-left%3A%200%3B%0A%20%20%20%20%20%20%20%20transform%3A%20translateX(-100%25)%3B%0A%20%20%20%20%20%20%20%20visibility%3A%20hidden%3B%0A%20%20%20%20%20%20%20%20transition%3A%20transform%200.2s%20ease%2C%20visibility%200.2s%3B%0A%20%20%20%20%20%20%20%20box-shadow%3A%20var(--shadow-float)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20body.sidebar-collapsed%20.sidebar%20%7B%0A%20%20%20%20%20%20%20%20margin-left%3A%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20body.drawer-open%20.sidebar%20%7B%0A%20%20%20%20%20%20%20%20transform%3A%20none%3B%0A%20%20%20%20%20%20%20%20visibility%3A%20visible%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20body.drawer-open%20.drawer-scrim%20%7B%0A%20%20%20%20%20%20%20%20display%3A%20block%3B%0A%20%20%20%20%20%20%20%20position%3A%20fixed%3B%0A%20%20%20%20%20%20%20%20inset%3A%200%3B%0A%20%20%20%20%20%20%20%20z-index%3A%2015%3B%0A%20%20%20%20%20%20%20%20background%3A%20var(--scrim)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.editor%20%3E%20.entry-pane%20.reveal-btn%2C%0A%20%20%20%20.split-horizontal%20%3E%20.entry-pane%3Afirst-child%20.reveal-btn%2C%0A%20%20%20%20.empty-state%20.reveal-btn%20%7B%0A%20%20%20%20%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.split-horizontal%20%7B%0A%20%20%20%20%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.split-horizontal%20%3E%20.entry-pane%20%2B%20.entry-pane%20%7B%0A%20%20%20%20%20%20%20%20border-left%3A%200%3B%0A%20%20%20%20%20%20%20%20border-top%3A%201px%20solid%20var(--line)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.entry-pane%2C%0A%20%20%20%20.split-horizontal%20.entry-pane%20%7B%0A%20%20%20%20%20%20%20%20--gutter%3A%2020px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.pane-title%20%7B%0A%20%20%20%20%20%20%20%20padding-top%3A%2014px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.pane-title-text%2C%0A%20%20%20%20.pane-title-input%20%7B%0A%20%20%20%20%20%20%20%20font-size%3A%2024px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.help-list%20%7B%0A%20%20%20%20%20%20%20%20grid-template-columns%3A%201fr%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.help-list%20dt%20%7B%0A%20%20%20%20%20%20%20%20padding-bottom%3A%202px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.help-list%20dd%20%7B%0A%20%20%20%20%20%20%20%20border-top%3A%200%3B%0A%20%20%20%20%20%20%20%20padding-top%3A%200%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%2F*%20----------%20Theme%20picker%20----------%20*%2F%0A%0A.theme-popover%20%7B%0A%20%20%20%20width%3A%20240px%3B%0A%20%20%20%20padding%3A%206px%3B%0A%7D%0A%0A.theme-option%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%2010px%3B%0A%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20padding%3A%207px%208px%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20text-align%3A%20left%3B%0A%7D%0A%0A.theme-option%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%7D%0A%0A.theme-option%5Baria-pressed%3D%22true%22%5D%20%7B%0A%20%20%20%20font-weight%3A%20600%3B%0A%7D%0A%0A.theme-option%20.theme-check%20%7B%0A%20%20%20%20margin-left%3A%20auto%3B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%20%20%20%20visibility%3A%20hidden%3B%0A%7D%0A%0A.theme-option%5Baria-pressed%3D%22true%22%5D%20.theme-check%20%7B%0A%20%20%20%20visibility%3A%20visible%3B%0A%7D%0A%0A.theme-chips%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20border-radius%3A%205px%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20box-shadow%3A%200%200%200%201px%20rgba(127%2C%20127%2C%20127%2C%200.3)%3B%0A%7D%0A%0A.theme-chips%20span%20%7B%0A%20%20%20%20width%3A%2010px%3B%0A%20%20%20%20height%3A%2020px%3B%0A%7D%0A%0A.theme-note%20%7B%0A%20%20%20%20padding%3A%206px%208px%204px%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A%2F*%20----------%20Schedule%20notes%20----------%20*%2F%0A%0A%5Bhidden%5D%20%7B%0A%20%20%20%20display%3A%20none%20!important%3B%0A%7D%0A%0A.schedule%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20overflow-y%3A%20auto%3B%0A%20%20%20%20padding%3A%204px%20var(--pad)%2030vh%3B%0A%20%20%20%20--ev%3A%20var(--accent)%3B%0A%7D%0A%0A.schedule-head%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20flex-wrap%3A%20wrap%3B%0A%20%20%20%20gap%3A%208px%2012px%3B%0A%7D%0A%0A.schedule-date-wrap%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20min-width%3A%200%3B%0A%7D%0A%0A.schedule-date%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20margin-left%3A%20-6px%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20padding%3A%202px%206px%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20font-size%3A%2015px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20text-align%3A%20left%3B%0A%7D%0A%0A.schedule-date%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.schedule-rel%20%7B%0A%20%20%20%20padding%3A%200%207px%3B%0A%20%20%20%20border-radius%3A%20999px%3B%0A%20%20%20%20background%3A%20var(--accent-soft)%3B%0A%20%20%20%20color%3A%20var(--accent)%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%2020px%3B%0A%7D%0A%0A.has-page-color%20.schedule-rel%20%7B%0A%20%20%20%20background%3A%20rgba(127%2C%20127%2C%20127%2C%200.16)%3B%0A%20%20%20%20color%3A%20inherit%3B%0A%7D%0A%0A.schedule-date-input%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%200%3B%0A%20%20%20%20top%3A%20100%25%3B%0A%20%20%20%20width%3A%201px%3B%0A%20%20%20%20height%3A%201px%3B%0A%20%20%20%20opacity%3A%200%3B%0A%20%20%20%20pointer-events%3A%20none%3B%0A%20%20%20%20border%3A%200%3B%0A%7D%0A%0A.schedule-date-input.visible%20%7B%0A%20%20%20%20width%3A%20auto%3B%0A%20%20%20%20height%3A%20auto%3B%0A%20%20%20%20padding%3A%204px%208px%3B%0A%20%20%20%20opacity%3A%201%3B%0A%20%20%20%20pointer-events%3A%20auto%3B%0A%20%20%20%20z-index%3A%203%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-float)%3B%0A%7D%0A%0A.segmented%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20margin-left%3A%20auto%3B%0A%20%20%20%20padding%3A%202px%3B%0A%20%20%20%20border-radius%3A%208px%3B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%7D%0A%0A.segmented-btn%20%7B%0A%20%20%20%20height%3A%2026px%3B%0A%20%20%20%20padding%3A%200%2010px%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20font-weight%3A%20500%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.segmented-btn%5Baria-pressed%3D%22true%22%5D%20%7B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-row)%3B%0A%7D%0A%0A.has-page-color%20.segmented-btn%5Baria-pressed%3D%22true%22%5D%20%7B%0A%20%20%20%20background%3A%20rgba(255%2C%20255%2C%20255%2C%200.55)%3B%0A%20%20%20%20color%3A%20inherit%3B%0A%7D%0A%0A.schedule-status%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20flex-wrap%3A%20wrap%3B%0A%20%20%20%20gap%3A%206px%2012px%3B%0A%20%20%20%20min-height%3A%2026px%3B%0A%20%20%20%20margin-top%3A%206px%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.status-chip%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20baseline%3B%0A%20%20%20%20gap%3A%204px%3B%0A%20%20%20%20max-width%3A%20100%25%3B%0A%20%20%20%20padding%3A%202px%2010px%3B%0A%20%20%20%20border-radius%3A%20999px%3B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20text-overflow%3A%20ellipsis%3B%0A%7D%0A%0A.status-chip.now%20%7B%0A%20%20%20%20background%3A%20var(--accent)%3B%0A%20%20%20%20color%3A%20var(--accent-ink)%3B%0A%7D%0A%0A.schedule-add%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20margin-top%3A%2014px%3B%0A%20%20%20%20padding%3A%200%2012px%3B%0A%20%20%20%20border-radius%3A%2010px%3B%0A%20%20%20%20background%3A%20var(--surface)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-row)%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.has-page-color%20.schedule-add%20%7B%0A%20%20%20%20background%3A%20rgba(255%2C%20255%2C%20255%2C%200.5)%3B%0A%7D%0A%0A.schedule-add%3Afocus-within%20%7B%0A%20%20%20%20box-shadow%3A%200%200%200%202px%20var(--accent)%3B%0A%7D%0A%0A.schedule-add-input%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20height%3A%2044px%3B%0A%20%20%20%20border%3A%200%3B%0A%20%20%20%20background%3A%20none%3B%0A%20%20%20%20outline%3A%20none%3B%0A%20%20%20%20font-size%3A%2015px%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.has-page-color%20.schedule-add-input%20%7B%0A%20%20%20%20color%3A%20inherit%3B%0A%7D%0A%0A.schedule-add-input%3A%3Aplaceholder%20%7B%0A%20%20%20%20color%3A%20var(--faint)%3B%0A%7D%0A%0A.schedule-add-hint%20%7B%0A%20%20%20%20min-height%3A%2020px%3B%0A%20%20%20%20margin%3A%206px%202px%200%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20white-space%3A%20pre-wrap%3B%0A%7D%0A%0A.schedule-add-hint.active%20%7B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%7D%0A%0A.schedule-add-hint%20strong%20%7B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20color%3A%20var(--accent)%3B%0A%7D%0A%0A.has-page-color%20.schedule-add-hint%20strong%20%7B%0A%20%20%20%20color%3A%20inherit%3B%0A%7D%0A%0A.schedule-body%20%7B%0A%20%20%20%20margin-top%3A%2014px%3B%0A%7D%0A%0A.schedule-foot%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-wrap%3A%20wrap%3B%0A%20%20%20%20gap%3A%204px%3B%0A%20%20%20%20margin%3A%2018px%200%200%20-10px%3B%0A%7D%0A%0A%2F*%20Timeline%20*%2F%0A%0A.timeline%20%7B%0A%20%20%20%20position%3A%20relative%3B%0A%20%20%20%20margin-top%3A%2010px%3B%0A%20%20%20%20user-select%3A%20none%3B%0A%20%20%20%20-webkit-user-select%3A%20none%3B%0A%7D%0A%0A.tl-hour%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%200%3B%0A%20%20%20%20width%3A%2052px%3B%0A%20%20%20%20transform%3A%20translateY(-50%25)%3B%0A%20%20%20%20font-size%3A%2011px%3B%0A%20%20%20%20font-weight%3A%20500%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20font-variant-numeric%3A%20tabular-nums%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%7D%0A%0A.tl-events%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20inset%3A%200%200%200%2060px%3B%0A%20%20%20%20cursor%3A%20cell%3B%0A%20%20%20%20background%3A%0A%20%20%20%20%20%20%20%20repeating-linear-gradient(to%20bottom%2C%20var(--line)%200%201px%2C%20transparent%201px%20var(--hour))%2C%0A%20%20%20%20%20%20%20%20repeating-linear-gradient(to%20bottom%2C%20transparent%200%20calc(var(--hour)%20%2F%202)%2C%20color-mix(in%20srgb%2C%20var(--line)%2055%25%2C%20transparent)%20calc(var(--hour)%20%2F%202)%20calc(var(--hour)%20%2F%202%20%2B%201px)%2C%20transparent%20calc(var(--hour)%20%2F%202%20%2B%201px)%20var(--hour))%3B%0A%7D%0A%0A.has-page-color%20.tl-events%20%7B%0A%20%20%20%20background%3A%0A%20%20%20%20%20%20%20%20repeating-linear-gradient(to%20bottom%2C%20rgba(127%2C%20127%2C%20127%2C%200.28)%200%201px%2C%20transparent%201px%20var(--hour))%2C%0A%20%20%20%20%20%20%20%20repeating-linear-gradient(to%20bottom%2C%20transparent%200%20calc(var(--hour)%20%2F%202)%2C%20rgba(127%2C%20127%2C%20127%2C%200.12)%20calc(var(--hour)%20%2F%202)%20calc(var(--hour)%20%2F%202%20%2B%201px)%2C%20transparent%20calc(var(--hour)%20%2F%202%20%2B%201px)%20var(--hour))%3B%0A%7D%0A%0A.tl-event%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20flex-start%3B%0A%20%20%20%20gap%3A%206px%3B%0A%20%20%20%20padding%3A%204px%208px%204px%206px%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20border-left%3A%203px%20solid%20var(--ev)%3B%0A%20%20%20%20background%3A%20color-mix(in%20srgb%2C%20var(--ev)%2014%25%2C%20var(--paper))%3B%0A%20%20%20%20color%3A%20var(--ink)%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20line-height%3A%201.3%3B%0A%20%20%20%20cursor%3A%20grab%3B%0A%20%20%20%20touch-action%3A%20pan-y%3B%0A%20%20%20%20transition%3A%20box-shadow%200.12s%20ease%2C%20opacity%200.12s%20ease%3B%0A%7D%0A%0A.has-page-color%20.tl-event%20%7B%0A%20%20%20%20background%3A%20color-mix(in%20srgb%2C%20var(--ev)%2018%25%2C%20rgba(255%2C%20255%2C%20255%2C%200.55))%3B%0A%20%20%20%20color%3A%20%231d1b18%3B%0A%7D%0A%0A.tl-event%3Ahover%20%7B%0A%20%20%20%20box-shadow%3A%200%200%200%201px%20color-mix(in%20srgb%2C%20var(--ev)%2045%25%2C%20transparent)%3B%0A%7D%0A%0A.tl-event%3Afocus-visible%20%7B%0A%20%20%20%20outline-offset%3A%201px%3B%0A%7D%0A%0A.tl-event.current%20%7B%0A%20%20%20%20box-shadow%3A%200%200%200%202px%20var(--ev)%3B%0A%7D%0A%0A.tl-event.past%3Anot(.current)%20%7B%0A%20%20%20%20opacity%3A%200.7%3B%0A%7D%0A%0A.tl-event.done%20%7B%0A%20%20%20%20opacity%3A%200.5%3B%0A%7D%0A%0A.tl-event.done%20.tl-title%2C%0A.agenda-row.done%20.agenda-title%20%7B%0A%20%20%20%20text-decoration%3A%20line-through%3B%0A%7D%0A%0A.tl-event.dragging%20%7B%0A%20%20%20%20z-index%3A%202%3B%0A%20%20%20%20cursor%3A%20grabbing%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-float)%3B%0A%20%20%20%20opacity%3A%201%3B%0A%7D%0A%0A.schedule.dragging%2C%0A.schedule.dragging%20*%20%7B%0A%20%20%20%20cursor%3A%20grabbing%3B%0A%7D%0A%0A.tl-event.just-added%2C%0A.agenda-row.just-added%20%7B%0A%20%20%20%20animation%3A%20pop-in%200.5s%20ease%3B%0A%7D%0A%0A%40keyframes%20pop-in%20%7B%0A%20%20%20%200%25%20%7B%20transform%3A%20scale(0.96)%3B%20box-shadow%3A%200%200%200%203px%20var(--ev)%3B%20%7D%0A%20%20%20%20100%25%20%7B%20transform%3A%20none%3B%20%7D%0A%7D%0A%0A.tl-ghost%20%7B%0A%20%20%20%20border-left-style%3A%20dashed%3B%0A%20%20%20%20background%3A%20var(--accent-soft)%3B%0A%20%20%20%20pointer-events%3A%20none%3B%0A%7D%0A%0A.tl-text%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20flex%3A%201%3B%0A%7D%0A%0A.tl-title%20%7B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20text-overflow%3A%20ellipsis%3B%0A%7D%0A%0A.tl-time%20%7B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20white-space%3A%20nowrap%3B%0A%20%20%20%20font-variant-numeric%3A%20tabular-nums%3B%0A%7D%0A%0A.has-page-color%20.tl-time%20%7B%0A%20%20%20%20color%3A%20%235c5650%3B%0A%7D%0A%0A.tl-event.short%20%7B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20padding-top%3A%200%3B%0A%20%20%20%20padding-bottom%3A%200%3B%0A%7D%0A%0A.tl-event.short%20.tl-text%20%7B%0A%20%20%20%20flex-direction%3A%20row%3B%0A%20%20%20%20align-items%3A%20baseline%3B%0A%20%20%20%20gap%3A%208px%3B%0A%7D%0A%0A.tl-event.short%20.tl-title%20%7B%0A%20%20%20%20flex%3A%200%201%20auto%3B%0A%20%20%20%20min-width%3A%202em%3B%0A%7D%0A%0A.tl-event.short%20.tl-time%20%7B%0A%20%20%20%20flex%3A%200%20100%20auto%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20text-overflow%3A%20ellipsis%3B%0A%7D%0A%0A.event-check%20%7B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20width%3A%2014px%3B%0A%20%20%20%20height%3A%2014px%3B%0A%20%20%20%20margin-top%3A%202px%3B%0A%20%20%20%20accent-color%3A%20var(--ev)%3B%0A%20%20%20%20cursor%3A%20pointer%3B%0A%7D%0A%0A.tl-event.short%20.event-check%20%7B%0A%20%20%20%20margin-top%3A%200%3B%0A%7D%0A%0A.tl-ghost%20.event-check%20%7B%0A%20%20%20%20display%3A%20none%3B%0A%7D%0A%0A.tl-resize%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%200%3B%0A%20%20%20%20right%3A%200%3B%0A%20%20%20%20bottom%3A%200%3B%0A%20%20%20%20height%3A%207px%3B%0A%20%20%20%20cursor%3A%20ns-resize%3B%0A%20%20%20%20touch-action%3A%20none%3B%0A%7D%0A%0A.tl-resize%3A%3Aafter%20%7B%0A%20%20%20%20content%3A%20%22%22%3B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%2050%25%3B%0A%20%20%20%20bottom%3A%202px%3B%0A%20%20%20%20width%3A%2018px%3B%0A%20%20%20%20height%3A%202px%3B%0A%20%20%20%20margin-left%3A%20-9px%3B%0A%20%20%20%20border-radius%3A%202px%3B%0A%20%20%20%20background%3A%20var(--ev)%3B%0A%20%20%20%20opacity%3A%200%3B%0A%20%20%20%20transition%3A%20opacity%200.12s%20ease%3B%0A%7D%0A%0A.tl-event%3Ahover%20.tl-resize%3A%3Aafter%20%7B%0A%20%20%20%20opacity%3A%200.6%3B%0A%7D%0A%0A.tl-now%20%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%2056px%3B%0A%20%20%20%20right%3A%200%3B%0A%20%20%20%20height%3A%202px%3B%0A%20%20%20%20margin-top%3A%20-1px%3B%0A%20%20%20%20background%3A%20var(--danger)%3B%0A%20%20%20%20pointer-events%3A%20none%3B%0A%20%20%20%20z-index%3A%203%3B%0A%7D%0A%0A.tl-now%3A%3Abefore%20%7B%0A%20%20%20%20content%3A%20%22%22%3B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20left%3A%20-4px%3B%0A%20%20%20%20top%3A%20-3px%3B%0A%20%20%20%20width%3A%208px%3B%0A%20%20%20%20height%3A%208px%3B%0A%20%20%20%20border-radius%3A%2050%25%3B%0A%20%20%20%20background%3A%20var(--danger)%3B%0A%7D%0A%0A%2F*%20List%20(agenda)%20view%20*%2F%0A%0A.agenda%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20gap%3A%202px%3B%0A%7D%0A%0A.agenda-empty%20%7B%0A%20%20%20%20padding%3A%2024px%200%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.agenda-row%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%2012px%3B%0A%20%20%20%20padding%3A%208px%2010px%3B%0A%20%20%20%20border-radius%3A%20var(--radius)%3B%0A%20%20%20%20border-left%3A%203px%20solid%20var(--ev)%3B%0A%20%20%20%20background%3A%20color-mix(in%20srgb%2C%20var(--ev)%208%25%2C%20transparent)%3B%0A%7D%0A%0A.agenda-row.current%20%7B%0A%20%20%20%20background%3A%20color-mix(in%20srgb%2C%20var(--ev)%2018%25%2C%20transparent)%3B%0A%7D%0A%0A.agenda-row.done%20%7B%0A%20%20%20%20opacity%3A%200.55%3B%0A%7D%0A%0A.agenda-row%20.event-check%20%7B%0A%20%20%20%20margin%3A%200%3B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%7D%0A%0A.agenda-time%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20width%3A%2076px%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20line-height%3A%201.25%3B%0A%20%20%20%20font-variant-numeric%3A%20tabular-nums%3B%0A%7D%0A%0A.agenda-end%20%7B%0A%20%20%20%20font-weight%3A%20400%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.agenda-title%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20padding%3A%202px%204px%3B%0A%20%20%20%20margin%3A%20-2px%20-4px%3B%0A%20%20%20%20border-radius%3A%204px%3B%0A%20%20%20%20text-align%3A%20left%3B%0A%20%20%20%20font-size%3A%2015px%3B%0A%20%20%20%20overflow-wrap%3A%20anywhere%3B%0A%7D%0A%0A.agenda-title%3Ahover%20%7B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%7D%0A%0A.agenda-length%20%7B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.agenda-gap%20%7B%0A%20%20%20%20padding%3A%202px%200%202px%20104px%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20color%3A%20var(--faint)%3B%0A%7D%0A%0A.has-page-color%20.agenda-gap%20%7B%0A%20%20%20%20color%3A%20inherit%3B%0A%20%20%20%20opacity%3A%200.6%3B%0A%7D%0A%0A%2F*%20Event%20editor%20popover%20*%2F%0A%0A.event-popover%20%7B%0A%20%20%20%20width%3A%20300px%3B%0A%7D%0A%0A.event-title-input%20%7B%0A%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20height%3A%2036px%3B%0A%20%20%20%20padding%3A%200%2010px%3B%0A%20%20%20%20border%3A%200%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20font-size%3A%2015px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20outline%3A%20none%3B%0A%7D%0A%0A.event-title-input%3Afocus%20%7B%0A%20%20%20%20box-shadow%3A%200%200%200%202px%20var(--accent)%3B%0A%7D%0A%0A.event-times%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%206px%3B%0A%20%20%20%20margin%3A%2010px%200%2012px%3B%0A%7D%0A%0A.event-time-input%20%7B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20height%3A%2032px%3B%0A%20%20%20%20padding%3A%200%206px%3B%0A%20%20%20%20border%3A%200%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20background%3A%20var(--hover)%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20font-variant-numeric%3A%20tabular-nums%3B%0A%7D%0A%0A.event-dash%20%7B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%7D%0A%0A.event-length%20%7B%0A%20%20%20%20flex%3A%20none%3B%0A%20%20%20%20min-width%3A%2046px%3B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20color%3A%20var(--muted)%3B%0A%20%20%20%20text-align%3A%20right%3B%0A%7D%0A%0A.event-swatches%20%7B%0A%20%20%20%20grid-template-columns%3A%20repeat(7%2C%201fr)%3B%0A%20%20%20%20gap%3A%208px%3B%0A%7D%0A%0A.event-actions%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20justify-content%3A%20space-between%3B%0A%20%20%20%20margin-top%3A%2012px%3B%0A%7D%0A%0A.event-done%20%7B%0A%20%20%20%20display%3A%20inline-flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%20%20%20%20cursor%3A%20pointer%3B%0A%7D%0A%0A.event-done%20input%20%7B%0A%20%20%20%20width%3A%2016px%3B%0A%20%20%20%20height%3A%2016px%3B%0A%20%20%20%20accent-color%3A%20var(--accent)%3B%0A%7D%0A%0A.event-delete%3Ahover%20%7B%0A%20%20%20%20color%3A%20var(--danger)%3B%0A%7D%0A%0A%2F*%20Toasts%20*%2F%0A%0A.toast-host%20%7B%0A%20%20%20%20position%3A%20fixed%3B%0A%20%20%20%20left%3A%2050%25%3B%0A%20%20%20%20bottom%3A%2020px%3B%0A%20%20%20%20z-index%3A%2050%3B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20width%3A%20min(440px%2C%20calc(100vw%20-%2032px))%3B%0A%20%20%20%20transform%3A%20translateX(-50%25)%3B%0A%20%20%20%20pointer-events%3A%20none%3B%0A%7D%0A%0A.toast%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20align-items%3A%20center%3B%0A%20%20%20%20gap%3A%208px%3B%0A%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20padding%3A%208px%206px%208px%2014px%3B%0A%20%20%20%20border-radius%3A%2010px%3B%0A%20%20%20%20background%3A%20var(--ink)%3B%0A%20%20%20%20color%3A%20var(--paper)%3B%0A%20%20%20%20box-shadow%3A%20var(--shadow-float)%3B%0A%20%20%20%20pointer-events%3A%20auto%3B%0A%20%20%20%20animation%3A%20rise-in%200.16s%20ease%3B%0A%7D%0A%0A.toast-body%20%7B%0A%20%20%20%20display%3A%20flex%3B%0A%20%20%20%20flex-direction%3A%20column%3B%0A%20%20%20%20flex%3A%201%3B%0A%20%20%20%20min-width%3A%200%3B%0A%20%20%20%20font-size%3A%2014px%3B%0A%7D%0A%0A.toast-text%20%7B%0A%20%20%20%20font-weight%3A%20600%3B%0A%7D%0A%0A.toast-detail%20%7B%0A%20%20%20%20font-size%3A%2012px%3B%0A%20%20%20%20opacity%3A%200.75%3B%0A%7D%0A%0A.toast-action%20%7B%0A%20%20%20%20height%3A%2030px%3B%0A%20%20%20%20padding%3A%200%2010px%3B%0A%20%20%20%20border-radius%3A%206px%3B%0A%20%20%20%20font-size%3A%2013px%3B%0A%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20color%3A%20inherit%3B%0A%20%20%20%20box-shadow%3A%20inset%200%200%200%201px%20currentColor%3B%0A%7D%0A%0A.toast%20.icon-btn%20%7B%0A%20%20%20%20color%3A%20inherit%3B%0A%20%20%20%20opacity%3A%200.7%3B%0A%7D%0A%0A.toast%20.icon-btn%3Ahover%20%7B%0A%20%20%20%20background%3A%20rgba(127%2C%20127%2C%20127%2C%200.25)%3B%0A%20%20%20%20color%3A%20inherit%3B%0A%20%20%20%20opacity%3A%201%3B%0A%7D%0A%0A%40media%20(max-width%3A%20720px)%20%7B%0A%20%20%20%20.segmented%20%7B%0A%20%20%20%20%20%20%20%20margin-left%3A%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.tl-hour%20%7B%0A%20%20%20%20%20%20%20%20width%3A%2040px%3B%0A%20%20%20%20%20%20%20%20font-size%3A%2010px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.tl-events%20%7B%0A%20%20%20%20%20%20%20%20left%3A%2046px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.tl-now%20%7B%0A%20%20%20%20%20%20%20%20left%3A%2042px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.agenda-time%20%7B%0A%20%20%20%20%20%20%20%20width%3A%2064px%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20.agenda-gap%20%7B%0A%20%20%20%20%20%20%20%20padding-left%3A%2092px%3B%0A%20%20%20%20%7D%0A%7D%0A</style>
</head>
<body>
<aside id="sidebar" class="sidebar" aria-label="Notes">
<div class="sidebar-header">
<span class="app-name">Notes</span>
<span id="note-count" class="note-count"></span>
</div>
<div class="new-row">
<button id="new-entry-button" class="new-note-btn" type="button"></button>
<button id="new-schedule-button" class="new-schedule-btn" type="button" title="Plan a day with a timeline of events"></button>
</div>
<div id="entry-list" class="entry-list"></div>
<div class="sidebar-footer"></div>
</aside>
<div class="drawer-scrim"></div>
<main id="entry-content" class="editor"></main>
<textarea id="entry-content-storage" style="display:none;"></textarea>
<input id="file-input" type="file" style="display: none;">
<script type="text/javascript">
function svgEl(tag, attrs) {
var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
for (var key in attrs) {
el.setAttribute(key, attrs[key]);
}
return el;
}
function createIcon(children) {
var svg = svgEl('svg', {
viewBox: '0 0 24 24',
width: '18',
height: '18',
fill: 'none',
stroke: 'currentColor',
'stroke-width': '1.8',
'stroke-linecap': 'round',
'stroke-linejoin': 'round',
'aria-hidden': 'true'
});
svg.classList.add('icon');
children.forEach(function(child) {
svg.appendChild(svgEl(child.tag, child.attrs));
});
return svg;
}
var ICONS = {
plus: [
{ tag: 'line', attrs: { x1: 12, y1: 5, x2: 12, y2: 19 } },
{ tag: 'line', attrs: { x1: 5, y1: 12, x2: 19, y2: 12 } }
],
trash: [
{ tag: 'path', attrs: { d: 'M4 7h16' } },
{ tag: 'path', attrs: { d: 'M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12' } },
{ tag: 'path', attrs: { d: 'M9 7V4.5A1.5 1.5 0 0 1 10.5 3h3A1.5 1.5 0 0 1 15 4.5V7' } }
],
panel: [
{ tag: 'rect', attrs: { x: 3, y: 4, width: 18, height: 16, rx: 2.5 } },
{ tag: 'path', attrs: { d: 'M9 4v16' } }
],
help: [
{ tag: 'circle', attrs: { cx: 12, cy: 12, r: 9 } },
{ tag: 'path', attrs: { d: 'M9.6 9.3a2.5 2.5 0 0 1 4.8 1c0 1.7-2.4 2.1-2.4 3.4' } },
{ tag: 'path', attrs: { d: 'M12 17h.01' } }
],
close: [
{ tag: 'path', attrs: { d: 'M17 7L7 17' } },
{ tag: 'path', attrs: { d: 'M7 7l10 10' } }
],
exportTxt: [
{ tag: 'path', attrs: { d: 'M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z' } },
{ tag: 'path', attrs: { d: 'M14 3v5h5' } },
{ tag: 'path', attrs: { d: 'M12 11v6' } },
{ tag: 'path', attrs: { d: 'M9.5 14.5L12 17l2.5-2.5' } }
],
palette: [
{ tag: 'path', attrs: { d: 'M12 3a9 9 0 1 0 0 18c1.1 0 1.8-.8 1.8-1.8 0-.5-.2-.9-.5-1.2-.3-.3-.5-.7-.5-1.2 0-1 .8-1.8 1.8-1.8H17a4 4 0 0 0 4-4c0-4.4-4-8-9-8z' } },
{ tag: 'circle', attrs: { cx: 7.5, cy: 11.5, r: 1 } },
{ tag: 'circle', attrs: { cx: 10.5, cy: 7.5, r: 1 } },
{ tag: 'circle', attrs: { cx: 15.5, cy: 8.5, r: 1 } }
],
check: [{ tag: 'path', attrs: { d: 'M5 12.5l4.5 4.5L19 7.5' } }],
download: [
{ tag: 'path', attrs: { d: 'M12 4v11' } },
{ tag: 'path', attrs: { d: 'M7.5 10.5L12 15l4.5-4.5' } },
{ tag: 'path', attrs: { d: 'M5 20h14' } }
],
upload: [
{ tag: 'path', attrs: { d: 'M12 20V9' } },
{ tag: 'path', attrs: { d: 'M7.5 13.5L12 9l4.5 4.5' } },
{ tag: 'path', attrs: { d: 'M5 4h14' } }
],
calendar: [
{ tag: 'rect', attrs: { x: 3.5, y: 5, width: 17, height: 15.5, rx: 2.5 } },
{ tag: 'path', attrs: { d: 'M3.5 10h17' } },
{ tag: 'path', attrs: { d: 'M8 3v4' } },
{ tag: 'path', attrs: { d: 'M16 3v4' } }
],
calendarExport: [
{ tag: 'path', attrs: { d: 'M20.5 12V7.5A2.5 2.5 0 0 0 18 5H6a2.5 2.5 0 0 0-2.5 2.5V18A2.5 2.5 0 0 0 6 20.5h6' } },
{ tag: 'path', attrs: { d: 'M3.5 10h17' } },
{ tag: 'path', attrs: { d: 'M8 3v4' } },
{ tag: 'path', attrs: { d: 'M16 3v4' } },
{ tag: 'path', attrs: { d: 'M18 14.5v6' } },
{ tag: 'path', attrs: { d: 'M15.5 18l2.5 2.5 2.5-2.5' } }
],
copy: [
{ tag: 'rect', attrs: { x: 8.5, y: 8.5, width: 12, height: 12, rx: 2 } },
{ tag: 'path', attrs: { d: 'M15.5 8.5V5.5a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h3' } }
],
arrowRight: [
{ tag: 'path', attrs: { d: 'M5 12h14' } },
{ tag: 'path', attrs: { d: 'M13 6l6 6-6 6' } }
]
};
var DEFAULT_COLOR = '%23ffffff';
var LABEL_COLORS = [
['Red', '%23dc2626'], ['Orange', '%23ea580c'], ['Amber', '%23d97706'], ['Green', '%2316a34a'],
['Blue', '%232563eb'], ['Violet', '%237c3aed']
];
var PAGE_COLORS = [
['Cream', '%23fbf3df'], ['Rose', '%23fbe4e2'], ['Butter', '%23fdf2c4'], ['Mint', '%23dff3e4'],
['Sky', '%23ddeefb'], ['Lavender', '%23ece6fa']
];
var THEMES = [
{ id: 'blank', name: 'Blank Page', chips: ['%23f2f0ef', '%23c9c8c7', '%23949392', '%2366615e'] },
{ id: 'spring', name: 'Spring', chips: ['%23ccdcdb', '%23a1d8b5', '%234cb572', '%23135e4b'] },
{ id: 'cascade', name: 'Cascade', chips: ['%23e8edf2', '%238ca4bb', '%236a89a7', '%23516e89'] },
{ id: 'driftwood', name: 'Driftwood', chips: ['%23cccdc7', '%23e4a499', '%23bc7b6f', '%235a322a'] },
{ id: 'rose', name: 'Rose', chips: ['%23dfd9d8', '%23fc8f8f', '%23b44446', '%2364242f'] },
{ id: 'walnut', name: 'Walnut', chips: ['%234a413c', '%23bb6c43', '%23c8906d', '%23ccb499'] },
{ id: 'forest', name: 'Forest', chips: ['%231b1b1b', '%231c4c2d', '%23429155', '%23b69ad2'] }
];
var DEFAULT_THEME = 'blank';
var currentTheme = DEFAULT_THEME;
function applyTheme(id) {
var known = THEMES.some(function(t) { return t.id === id; });
currentTheme = known ? id : DEFAULT_THEME;
if (currentTheme === DEFAULT_THEME) {
document.documentElement.removeAttribute('data-theme');
} else {
document.documentElement.setAttribute('data-theme', currentTheme);
}
}
var MOBILE_QUERY = window.matchMedia('(max-width: 720px)');
function changeFavicon(url) {
var link = document.createElement('link'),
oldLink = document.querySelector('link[rel="shortcut icon"]') || document.querySelector('link[rel="icon"]');
link.rel = 'shortcut icon';
link.href = url;
if (oldLink) {
document.head.removeChild(oldLink);
}
document.head.appendChild(link);
}
function createIconButton(iconPaths, label) {
var button = document.createElement('button');
button.type = 'button';
button.className = 'icon-btn';
button.title = label;
button.setAttribute('aria-label', label);
button.appendChild(createIcon(iconPaths));
return button;
}
function createTextButton(iconPaths, label, hint) {
var button = document.createElement('button');
button.type = 'button';
button.className = 'text-btn';
if (hint) button.title = hint;
button.appendChild(createIcon(iconPaths));
button.appendChild(document.createTextNode(label));
return button;
}
function savePaneContent() {
var allPanes = entryContent.querySelectorAll('.entry-pane');
allPanes.forEach(pane => {
var entryId = pane.dataset.entryId;
var contentDiv = pane.querySelector('div[contenteditable="true"]');
if (contentDiv && entryId !== undefined) {
var entryIndex = entries.findIndex(entry => entry.id.toString() === entryId);
if (entryIndex !== -1) {
var clone = contentDiv.cloneNode(true);
clone.querySelectorAll('input[type="checkbox"]').forEach(checkbox => {
var textNode = document.createTextNode(checkbox.checked ? '[x]' : '[ ]');
checkbox.parentNode.replaceChild(textNode, checkbox);
});
entries[entryIndex].content = clone.innerHTML;
updateEntryPreview(entries[entryIndex]);
}
}
});
saveEntries();
}
function saveEntries() {
entryContentStorage.value = JSON.stringify(entries);
persistEntries();
}
var HASH_PREFIX = 'n1.';
var WINDOW_NAME_PREFIX = 'text-bookmarklet:';
var HASH_PERSIST_DELAY = 500;
var hashPersistTimer = null;
function bytesToBase64Url(bytes) {
var binary = '';
for (var i = 0; i < bytes.length; i += 0x8000) {
binary += String.fromCharCode.apply(null, bytes.subarray(i, i + 0x8000));
}
return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
}
function base64UrlToBytes(str) {
var binary = atob(str.replace(/-/g, '+').replace(/_/g, '/'));
var bytes = new Uint8Array(binary.length);
for (var i = 0; i < binary.length; i++) {
bytes[i] = binary.charCodeAt(i);
}
return bytes;
}
function compressText(text) {
var stream = new Blob([text]).stream().pipeThrough(new CompressionStream('deflate-raw'));
return new Response(stream).arrayBuffer().then(function(buffer) {
return bytesToBase64Url(new Uint8Array(buffer));
});
}
function decompressText(encoded) {
var stream = new Blob([base64UrlToBytes(encoded)]).stream().pipeThrough(new DecompressionStream('deflate-raw'));
return new Response(stream).text();
}
function persistEntries() {
var snapshot = JSON.stringify({ savedAt: Date.now(), entries: entries, theme: currentTheme });
try {
window.name = WINDOW_NAME_PREFIX + snapshot;
} catch (e) {
console.error('Error saving notes to window.name:', e);
}
clearTimeout(hashPersistTimer);
hashPersistTimer = setTimeout(function() {
compressText(snapshot).then(function(encoded) {
history.replaceState(null, '', location.href.split('%23')[0] + '%23' + HASH_PREFIX + encoded);
}).catch(function(e) {
console.error('Error saving notes to the URL:', e);
});
}, HASH_PERSIST_DELAY);
}
function parseSnapshot(json) {
var snapshot = JSON.parse(json);
return snapshot && Array.isArray(snapshot.entries) ? snapshot : null;
}
function restorePersistedEntries() {
var fromWindowName = null;
if (window.name.indexOf(WINDOW_NAME_PREFIX) === 0) {
try {
fromWindowName = parseSnapshot(window.name.slice(WINDOW_NAME_PREFIX.length));
} catch (e) {
console.error('Error reading notes from window.name:', e);
}
}
var hash = location.hash.slice(1);
var fromHash = hash.indexOf(HASH_PREFIX) === 0
? decompressText(hash.slice(HASH_PREFIX.length)).then(parseSnapshot).catch(function(e) {
console.error('Error reading notes from the URL:', e);
return null;
})
: Promise.resolve(null);
return fromHash.then(function(hashSnapshot) {
var newest = [hashSnapshot, fromWindowName].filter(Boolean).sort(function(a, b) {
return b.savedAt - a.savedAt;
})[0];
if (newest && newest.theme) applyTheme(newest.theme);
return newest ? JSON.stringify(newest.entries) : '';
});
}
function loadEntries() {
var storedEntries = entryContentStorage.value;
if (!storedEntries) {
entries = [];
var defaultEntry = addNewEntry("Notes");
current = 0;
updateEntryList();
clearAndLoadEntry(defaultEntry);
return;
}
try {
entries = JSON.parse(storedEntries);
nextEntryId = entries.reduce(function(max, entry) { return Math.max(max, entry.id); }, -1) + 1;
entries.forEach(function(entry) {
if (isSchedule(entry)) normalizeSchedule(entry);
});
current = entries.length > 0 ? 0 : -1;
updateEntryList();
updateEntryContent();
} catch (e) {
console.error('Error parsing entries:', e);
}
}
function ensureDivWrapper(contentEditableDiv) {
if (!contentEditableDiv) return;
var htmlContent = contentEditableDiv.innerHTML.trim();
if (htmlContent === "" || htmlContent === "<br>") {
contentEditableDiv.innerHTML = "<div><br></div>";
}
}
function addNewEntry(title) {
var newEntry = {
id: nextEntryId++,
title: title,
content: "",
titleBarColor: DEFAULT_COLOR,
contentBackgroundColor: DEFAULT_COLOR
};
entries.push(newEntry);
saveEntries();
return newEntry;
}
function reorderEntries(sourceIndex, targetIndex) {
if (isNaN(sourceIndex) || sourceIndex === targetIndex) return;
var currentEntry = entries[current];
const movedItem = entries.splice(sourceIndex, 1)[0];
entries.splice(targetIndex, 0, movedItem);
current = entries.indexOf(currentEntry);
updateEntryList();
saveEntries();
}
function getContentPreview(html) {
if (!html) return '';
var tempDiv = document.createElement('div');
tempDiv.innerHTML = html;
tempDiv.querySelectorAll('div, p, li, br').forEach(function(el) {
el.before(' ');
});
var text = (tempDiv.textContent || '').replace(/\[[ x]\]/g, '').replace(/\s+/g, ' ').trim();
if (!text) return '';
return text.length > 80 ? text.slice(0, 80) + '\u2026' : text;
}
function updateEntryPreview(entry) {
var idx = entries.indexOf(entry);
if (idx === -1) return;
var row = entryList.querySelector('.entry-item[data-index="' + idx + '"]');
if (!row) return;
var previewEl = row.querySelector('.entry-item-preview');
if (previewEl) previewEl.textContent = entryPreview(entry);
}
function isDefaultColor(color) {
return !color || color.toLowerCase() === DEFAULT_COLOR;
}
function applyColorDotStyle(dotEl, color) {
if (isDefaultColor(color)) {
dotEl.style.removeProperty('--dot');
dotEl.classList.add('color-dot-empty');
} else {
dotEl.style.setProperty('--dot', color);
dotEl.classList.remove('color-dot-empty');
}
}
function applyPageColor(pane, color) {
if (isDefaultColor(color)) {
pane.style.backgroundColor = '';
pane.style.color = '';
pane.classList.remove('has-page-color');
} else {
pane.style.backgroundColor = color;
pane.style.color = isColorLight(color) ? '%231d1b18' : '%23f3efe9';
pane.classList.add('has-page-color');
}
}
function syncEntryColorUI(entry) {
var idx = entries.indexOf(entry);
if (idx !== -1) {
var sidebarDot = entryList.querySelector('.entry-item[data-index="' + idx + '"] .color-dot');
if (sidebarDot) applyColorDotStyle(sidebarDot, entry.titleBarColor);
}
document.querySelectorAll('.entry-pane[data-entry-id="' + entry.id + '"]').forEach(function(pane) {
var titleDot = pane.querySelector('.pane-color-dot');
if (titleDot) applyColorDotStyle(titleDot, entry.titleBarColor);
applyPageColor(pane, entry.contentBackgroundColor);
});
}
function attachInlineRename(entry, spanEl, inputEl, draggableToggleEl, onAfterCommit, trigger) {
function enterEditMode(event) {
if (event) event.stopPropagation();
inputEl.value = entry.title;
spanEl.style.display = 'none';
inputEl.style.display = '';
if (draggableToggleEl) draggableToggleEl.draggable = false;
inputEl.focus();
inputEl.select();
}
function exitEditMode() {
var newTitle = inputEl.value.trim();
if (newTitle && newTitle !== entry.title) {
entry.title = newTitle;
delete entry.autoTitle;
saveEntries();
}
spanEl.textContent = entry.title;
inputEl.style.display = 'none';
spanEl.style.display = '';
if (draggableToggleEl) draggableToggleEl.draggable = true;
if (onAfterCommit) onAfterCommit();
}
spanEl.addEventListener(trigger || 'dblclick', enterEditMode);
spanEl._rename = enterEditMode;
inputEl.addEventListener('blur', exitEditMode);
inputEl.addEventListener('click', function(e) { e.stopPropagation(); });
inputEl.addEventListener('keydown', function(e) {
if (e.key === 'Enter') {
e.preventDefault();
inputEl.blur();
} else if (e.key === 'Escape') {
e.preventDefault();
e.stopPropagation();
inputEl.value = entry.title;
inputEl.blur();
}
});
return { enter: enterEditMode };
}
function openEntry(index) {
current = index;
entryList.querySelectorAll('.entry-item').forEach(function(item) {
item.classList.toggle('active', item.getAttribute('data-index') === String(index));
});
clearAndLoadEntry(entries[index]);
closeDrawer();
}
function updateEntryList() {
var entryListContainer = document.createElement("div");
noteCount.textContent = entries.length;
entries.forEach(function(entry, index) {
var e = document.createElement("div");
e.className = "entry-item" + (isSchedule(entry) ? " is-schedule" : "");
e.setAttribute('data-index', index.toString());
e.draggable = true;
e.ondragstart = function(event) {
event.dataTransfer.setData("text/index", index.toString());
event.dataTransfer.setData("entry-index", index.toString());
e.classList.add('dragging');
};
e.ondragend = function() {
e.classList.remove('dragging');
entryContent.classList.remove('drop-target');
};
e.ondragover = function(event) {
if (event.dataTransfer.types.indexOf('text/index') === -1) return;
event.preventDefault();
e.classList.add('drag-over');
};
e.ondragleave = function() {
e.classList.remove('drag-over');
};
e.ondrop = function(event) {
event.preventDefault();
e.classList.remove('drag-over');
reorderEntries(parseInt(event.dataTransfer.getData("text/index")), index);
};
var colorDot = document.createElement("button");
colorDot.type = "button";
colorDot.className = "color-dot";
colorDot.title = "Note colors";
colorDot.setAttribute('aria-label', 'Colors for ' + entry.title);
applyColorDotStyle(colorDot, entry.titleBarColor);
colorDot.onclick = function(event) {
event.stopPropagation();
showColorPopover(entry, colorDot);
};
e.appendChild(colorDot);
var textWrap = document.createElement("div");
textWrap.className = "entry-item-text";
var titleSpan = document.createElement("span");
titleSpan.className = "entry-item-title";
titleSpan.title = "Double-click to rename";
titleSpan.textContent = entry.title;
var titleInput = document.createElement("input");
titleInput.type = "text";
titleInput.className = "entry-item-title-input";
titleInput.setAttribute('aria-label', 'Note title');
titleInput.style.display = "none";
attachInlineRename(entry, titleSpan, titleInput, e, function() {
document.querySelectorAll('.entry-pane[data-entry-id="' + entry.id + '"] .pane-title-text').forEach(function(el) {
el.textContent = entry.title;
});
});
var titleRow = document.createElement("div");
titleRow.className = "entry-item-title-row";
if (isSchedule(entry)) {
var typeIcon = createIcon(ICONS.calendar);
typeIcon.classList.add('entry-type-icon');
titleRow.appendChild(typeIcon);
}
titleRow.appendChild(titleSpan);
titleRow.appendChild(titleInput);
textWrap.appendChild(titleRow);
var previewSpan = document.createElement("span");
previewSpan.className = "entry-item-preview";
previewSpan.textContent = entryPreview(entry);
textWrap.appendChild(previewSpan);
e.appendChild(textWrap);
var deleteBtn = createIconButton(ICONS.trash, "Delete note");
deleteBtn.className += " delete-btn";
deleteBtn.onclick = function(event) {
event.stopPropagation();
showModal('Delete \u201c' + entry.title + '\u201d?', 'This can\u2019t be undone.', function() {
entries.splice(index, 1);
if (current === index) {
current = entries.length ? Math.min(index, entries.length - 1) : -1;
} else if (current > index) {
current -= 1;
}
updateEntryList();
updateEntryContent();
saveEntries();
});
};
e.appendChild(deleteBtn);
if (index === current) {
e.classList.add("active");
}
e.onclick = function(event) {
if (event.detail > 1) return;
openEntry(index);
};
entryListContainer.appendChild(e);
});
entryList.innerHTML = '';
entryList.appendChild(entryListContainer);
}
function isColorLight(color) {
if (color.startsWith('%23')) {
color = color.substring(1);
}
var r = parseInt(color.substr(0, 2), 16);
var g = parseInt(color.substr(2, 2), 16);
var b = parseInt(color.substr(4, 2), 16);
var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
return yiq >= 128;
}
var openPopover = null;
function closePopover(refocus) {
if (!openPopover) return;
var p = openPopover;
openPopover = null;
p.el.remove();
document.removeEventListener('mousedown', p.onOutside, true);
document.removeEventListener('keydown', p.onKey, true);
if (p.onClose) p.onClose();
if (refocus && document.body.contains(p.anchor)) p.anchor.focus();
}
function showColorPopover(entry, anchor) {
var reopen = openPopover && openPopover.anchor === anchor;
closePopover();
if (reopen) return;
var pop = document.createElement('div');
pop.className = 'popover';
pop.setAttribute('role', 'dialog');
pop.setAttribute('aria-label', 'Colors for ' + entry.title);
function section(label, key, palette) {
var wrap = document.createElement('div');
wrap.className = 'popover-section';
var heading = document.createElement('span');
heading.className = 'popover-label';
heading.textContent = label;
wrap.appendChild(heading);
var grid = document.createElement('div');
grid.className = 'swatches';
function choose(color) {
entry[key] = color;
saveEntries();
syncEntryColorUI(entry);
grid.querySelectorAll('.swatch').forEach(function(s) {
s.setAttribute('aria-pressed', String(s.dataset.color === color.toLowerCase()));
});
}
function addSwatch(name, color, extraClass) {
var b = document.createElement('button');
b.type = 'button';
b.className = 'swatch' + (extraClass ? ' ' + extraClass : '');
b.title = name;
b.setAttribute('aria-label', name);
b.dataset.color = color;
b.style.setProperty('--swatch', color);
b.setAttribute('aria-pressed', String((entry[key] || DEFAULT_COLOR).toLowerCase() === color));
b.onclick = function() { choose(color); };
grid.appendChild(b);
return b;
}
addSwatch('None', DEFAULT_COLOR, 'swatch-none');
palette.forEach(function(c) { addSwatch(c[0], c[1]); });
var custom = document.createElement('label');
custom.className = 'swatch swatch-custom';
custom.title = 'Custom color';
var input = document.createElement('input');
input.type = 'color';
input.setAttribute('aria-label', label + ': custom color');
input.value = isDefaultColor(entry[key]) ? (key === 'titleBarColor' ? '%23b4441c' : '%23fbf3df') : entry[key];
input.oninput = function() { choose(input.value); };
custom.appendChild(input);
grid.appendChild(custom);
wrap.appendChild(grid);
return wrap;
}
pop.appendChild(section('Label', 'titleBarColor', LABEL_COLORS));
pop.appendChild(section('Page', 'contentBackgroundColor', PAGE_COLORS));
presentPopover(pop, anchor, '.swatch[aria-pressed="true"]');
}
function presentPopover(pop, anchor, focusSelector) {
document.body.appendChild(pop);
var r = anchor.getBoundingClientRect();
var w = pop.offsetWidth, h = pop.offsetHeight;
var left = Math.min(Math.max(8, r.left), window.innerWidth - w - 8);
var top = r.bottom + 6;
if (top + h > window.innerHeight - 8) top = Math.max(8, r.top - h - 6);
pop.style.left = left + 'px';
pop.style.top = top + 'px';
var state = {
el: pop,
anchor: anchor,
onOutside: function(ev) {
if (!pop.contains(ev.target) && !anchor.contains(ev.target)) closePopover();
},
onKey: function(ev) {
if (ev.key === 'Escape') {
ev.stopPropagation();
closePopover(true);
}
}
};
openPopover = state;
document.addEventListener('mousedown', state.onOutside, true);
document.addEventListener('keydown', state.onKey, true);
var selected = pop.querySelector(focusSelector) || pop.querySelector('button');
if (selected) selected.focus();
}
function showThemePopover(anchor) {
var reopen = openPopover && openPopover.anchor === anchor;
closePopover();
if (reopen) return;
var pop = document.createElement('div');
pop.className = 'popover theme-popover';
pop.setAttribute('role', 'dialog');
pop.setAttribute('aria-label', 'Theme');
THEMES.forEach(function(theme) {
var b = document.createElement('button');
b.type = 'button';
b.className = 'theme-option';
b.setAttribute('aria-pressed', String(theme.id === currentTheme));
var chips = document.createElement('span');
chips.className = 'theme-chips';
chips.setAttribute('aria-hidden', 'true');
theme.chips.forEach(function(c) {
var chip = document.createElement('span');
chip.style.background = c;
chips.appendChild(chip);
});
b.appendChild(chips);
b.appendChild(document.createTextNode(theme.name));
var check = createIcon(ICONS.check);
check.classList.add('theme-check');
b.appendChild(check);
b.onclick = function() {
applyTheme(theme.id);
persistEntries();
pop.querySelectorAll('.theme-option').forEach(function(o) {
o.setAttribute('aria-pressed', String(o === b));
});
};
pop.appendChild(b);
});
var note = document.createElement('p');
note.className = 'theme-note';
note.textContent = 'Blank Page follows your system\u2019s light or dark setting.';
pop.appendChild(note);
presentPopover(pop, anchor, '.theme-option[aria-pressed="true"]');
}
function reorderPanes(sourcePaneId, targetPaneId) {
if (sourcePaneId === targetPaneId) return;
var sourcePane = entryContent.querySelector(`[data-entry-id='${sourcePaneId}']`);
var targetPane = entryContent.querySelector(`[data-entry-id='${targetPaneId}']`);
if (sourcePane && targetPane) {
var isSourceBeforeTarget = sourcePane.compareDocumentPosition(targetPane) & Node.DOCUMENT_POSITION_FOLLOWING;
if (isSourceBeforeTarget) {
targetPane.parentNode.insertBefore(sourcePane, targetPane.nextSibling);
} else {
targetPane.parentNode.insertBefore(sourcePane, targetPane);
}
adjustPaneSizes();
}
}
function adjustPaneSizes() {
var splitContainers = entryContent.querySelectorAll('.split-horizontal');
splitContainers.forEach(container => {
var panes = Array.from(container.children);
panes.forEach(pane => {
pane.style.flex = '1 1 0';
});
});
}
function renderEmptyState() {
entryContent.innerHTML = '';
var empty = document.createElement('div');
empty.className = 'empty-state';
var reveal = createIconButton(ICONS.panel, 'Show notes list');
reveal.className += ' reveal-btn';
reveal.onclick = toggleSidebar;
empty.appendChild(reveal);
var msg = document.createElement('p');
msg.textContent = entries.length ? 'Pick a note from the list, or start a new one.' : 'No notes yet.';
empty.appendChild(msg);
var btn = document.createElement('button');
btn.type = 'button';
btn.className = 'solid-btn';
btn.appendChild(createIcon(ICONS.plus));
btn.appendChild(document.createTextNode('New note'));
btn.onclick = createNote;
var schedBtn = document.createElement('button');
schedBtn.type = 'button';
schedBtn.className = 'ghost-btn';
schedBtn.appendChild(createIcon(ICONS.calendar));
schedBtn.appendChild(document.createTextNode('New schedule'));
schedBtn.onclick = createSchedule;
var btnRow = document.createElement('div');
btnRow.className = 'empty-actions';
btnRow.appendChild(btn);
btnRow.appendChild(schedBtn);
empty.appendChild(btnRow);
entryContent.appendChild(empty);
}
function updateEntryContent() {
if (current >= 0 && entries[current]) {
clearAndLoadEntry(entries[current]);
} else {
renderEmptyState();
}
}
function trapFocus(container, event) {
if (event.key !== 'Tab') return;
var items = container.querySelectorAll('button, a[href], input');
if (!items.length) return;
var first = items[0], last = items[items.length - 1];
if (event.shiftKey && document.activeElement === first) {
event.preventDefault();
last.focus();
} else if (!event.shiftKey && document.activeElement === last) {
event.preventDefault();
first.focus();
}
}
function showModal(title, detail, onConfirm) {
var returnFocus = document.activeElement;
var modal = document.createElement("div");
modal.className = "modal";
var modalContent = document.createElement("div");
modalContent.className = "modal-content";
modalContent.setAttribute('role', 'alertdialog');
modalContent.setAttribute('aria-modal', 'true');
modalContent.setAttribute('aria-labelledby', 'modal-title');
var heading = document.createElement("h2");
heading.id = 'modal-title';
heading.textContent = title;
var modalText = document.createElement("p");
modalText.textContent = detail;
var confirmButton = document.createElement("button");
confirmButton.type = 'button';
confirmButton.textContent = "Delete";
confirmButton.className = "solid-btn danger";
confirmButton.onclick = function() {
close();
onConfirm();
};
var cancelButton = document.createElement("button");
cancelButton.type = 'button';
cancelButton.textContent = "Cancel";
cancelButton.className = "ghost-btn";
cancelButton.onclick = close;
modalContent.appendChild(heading);
modalContent.appendChild(modalText);
var modalActions = document.createElement("div");
modalActions.className = "modal-actions";
modalActions.appendChild(cancelButton);
modalActions.appendChild(confirmButton);
modalContent.appendChild(modalActions);
modal.appendChild(modalContent);
document.body.appendChild(modal);
cancelButton.focus();
function close() {
modal.remove();
document.removeEventListener('keydown', onKeyDown);
if (returnFocus && document.body.contains(returnFocus)) returnFocus.focus();
}
function onKeyDown(e) {
if (e.key === 'Escape') close();
trapFocus(modalContent, e);
}
document.addEventListener('keydown', onKeyDown);
modal.addEventListener('mousedown', function(event) {
if (event.target === modal) close();
});
}
function downloadFile(filename, text, mime) {
var blob = new Blob([text], { type: mime || 'text/plain;charset=utf-8' });
var a = document.createElement('a');
var url = URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
URL.revokeObjectURL(url);
document.body.removeChild(a);
}
function exportEntryAsText(entry) {
if (isSchedule(entry)) {
downloadFile((entry.title || 'schedule') + '.txt', scheduleAsText(entry));
return;
}
var tempDiv = document.createElement("div");
tempDiv.innerHTML = entry.content;
tempDiv.querySelectorAll('div').forEach(div => {
var checkbox = div.querySelector('input[type="checkbox"]');
if (checkbox) {
div.insertAdjacentText('afterbegin', checkbox.checked ? '[x] ' : '[ ] ');
}
div.appendChild(document.createTextNode('\n'));
});
var plainText = tempDiv.textContent || tempDiv.innerText || "";
plainText = plainText.replace(/ /g, ' ');
var title = entry.title || 'note';
var blob = new Blob([plainText], {type: 'text/plain;charset=utf-8'});
var a = document.createElement('a');
var url = URL.createObjectURL(blob);
a.href = url;
a.download = title + '.txt';
document.body.appendChild(a);
a.click();
URL.revokeObjectURL(url);
document.body.removeChild(a);
}
function closePane(pane) {
var split = pane.parentNode;
pane.remove();
if (split && split.classList.contains('split-horizontal') && split.children.length === 1) {
var remaining = split.firstChild;
split.replaceWith(remaining);
}
var firstPane = entryContent.querySelector('.entry-pane');
if (firstPane) {
var idx = entries.findIndex(function(en) { return en.id.toString() === firstPane.dataset.entryId; });
if (idx !== -1) {
current = idx;
entryList.querySelectorAll('.entry-item').forEach(function(item) {
item.classList.toggle('active', item.getAttribute('data-index') === String(idx));
});
}
}
}
function createPane(entry, entryId) {
var pane = document.createElement('div');
pane.className = 'entry-pane';
pane.dataset.entryId = entryId.toString();
var titleBar = document.createElement('div');
titleBar.className = 'pane-title';
titleBar.draggable = true;
titleBar.ondragstart = function(event) {
event.dataTransfer.setData("pane-id", entryId.toString());
};
var reveal = createIconButton(ICONS.panel, 'Show notes list');
reveal.className += ' reveal-btn';
reveal.onclick = toggleSidebar;
titleBar.appendChild(reveal);
var titleColorDot = document.createElement('button');
titleColorDot.type = 'button';
titleColorDot.className = 'pane-color-dot color-dot';
titleColorDot.title = 'Note colors';
titleColorDot.setAttribute('aria-label', 'Note colors');
applyColorDotStyle(titleColorDot, entry.titleBarColor);
titleColorDot.onclick = function(event) {
event.stopPropagation();
showColorPopover(entry, titleColorDot);
};
titleBar.appendChild(titleColorDot);
var titleTextSpan = document.createElement('span');
titleTextSpan.className = 'pane-title-text';
titleTextSpan.title = 'Click to rename';
titleTextSpan.textContent = entry.title;
var titleTextInput = document.createElement('input');
titleTextInput.type = 'text';
titleTextInput.className = 'pane-title-input';
titleTextInput.setAttribute('aria-label', 'Note title');
titleTextInput.style.display = 'none';
attachInlineRename(entry, titleTextSpan, titleTextInput, titleBar, function() {
updateEntryList();
}, 'click');
titleBar.appendChild(titleTextSpan);
titleBar.appendChild(titleTextInput);
var titleActions = document.createElement('div');
titleActions.className = 'pane-title-actions';
if (isSchedule(entry)) {
var icsBtn = createIconButton(ICONS.calendarExport, 'Export to calendar (.ics)');
icsBtn.onclick = function(event) {
event.stopPropagation();
exportScheduleIcs(entry);
};
titleActions.appendChild(icsBtn);
}
var exportBtn = createIconButton(ICONS.exportTxt, isSchedule(entry) ? 'Save agenda as .txt' : 'Save note as .txt');
exportBtn.onclick = function(event) {
event.stopPropagation();
exportEntryAsText(entry);
};
titleActions.appendChild(exportBtn);
var closeBtn = createIconButton(ICONS.close, 'Close pane');
closeBtn.className += ' close-pane-btn';
closeBtn.onclick = function(event) {
event.stopPropagation();
closePane(pane);
};