-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreader.css
More file actions
88 lines (80 loc) · 5.55 KB
/
Copy pathreader.css
File metadata and controls
88 lines (80 loc) · 5.55 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
:root {
--ink:#20303f; --accent:#3a5a9c; --accent-soft:#eaeff7;
--paper:#f3f1ea; --surface:#fff; --line:rgba(40,36,28,.14);
--text:#25201a; --dim:#6b6258; --faint:#9a9189;
--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
--sans:-apple-system,"Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){
:root{--ink:#c9d6e5;--accent:#89a9e6;--accent-soft:#232c3d;--paper:#0f1115;
--surface:#1b1f26;--line:rgba(220,225,235,.14);--text:#e7e3db;--dim:#a8a299;--faint:#6f6a62;}
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--sans);color:var(--text);background:var(--paper);display:flex;flex-direction:column;height:100vh;overflow:hidden}
/* toolbar */
.toolbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}
.tb-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.toolbar .mark{width:22px;height:22px;flex:none}
.doc-title{font-family:var(--serif);font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-center{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:13px;flex:none}
.tb-right{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end}
.toolbar button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:7px;padding:5px 10px;line-height:1}
.toolbar button:hover{border-color:var(--accent);color:var(--accent)}
.toolbar button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.toolbar button.primary:hover{opacity:.9;color:var(--paper)}
#zoomVal{min-width:42px;text-align:center}
.divider{width:1px;height:18px;background:var(--line)}
.page-info{min-width:64px;text-align:center}
.palette{display:inline-flex;gap:4px;margin-right:4px}
.palette .sw{width:18px;height:18px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer}
.palette .sw.active{border-color:var(--ink)}
/* layout */
.body{flex:1;display:flex;min-height:0}
.viewer{flex:1;overflow:auto;padding:24px 0;display:flex;flex-direction:column;align-items:center;gap:18px}
.side{width:340px;flex:none;border-left:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-height:0}
.side.hidden{display:none}
.tabs{display:flex;border-bottom:1px solid var(--line);flex:none}
.tabs button{flex:1;font:inherit;cursor:pointer;background:none;border:none;padding:11px 0;color:var(--dim);border-bottom:2px solid transparent}
.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}
.panel{flex:1;overflow:auto;padding:16px}
.hint{color:var(--faint);font-size:13px;line-height:1.6}
/* page */
.page{position:relative;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.18);flex:none}
.page canvas{display:block}
.hl-layer{position:absolute;inset:0;pointer-events:none;z-index:1}
.hl-rect{position:absolute;border-radius:2px;mix-blend-mode:multiply;pointer-events:none}
.hl-rect.sel{outline:2px solid var(--accent);outline-offset:1px}
/* PDF.js text layer (selectable, transparent, sits above canvas) */
.textLayer{position:absolute;text-align:initial;inset:0;overflow:clip;opacity:1;line-height:1;
text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}
.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}
.textLayer span.markedContent{top:0;height:0}
.textLayer ::selection{background:rgba(58,90,156,.32)}
/* AI content */
.ai-content{font-size:14px;line-height:1.65}
.ai-content h2{font-family:var(--serif);font-size:15px;color:var(--ink);margin:18px 0 6px;font-weight:600}
.ai-content h2:first-child{margin-top:0}
.ai-content ul{margin:6px 0;padding-left:20px}
.ai-content li{margin:3px 0}
.ai-content p{margin:6px 0}
.ai-busy{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:13px}
.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--accent);animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ai-err{color:#b3402f;font-size:13px;line-height:1.6}
/* highlight list */
.hl-item{border:1px solid var(--line);border-radius:9px;padding:10px 11px;margin-bottom:10px;cursor:pointer}
.hl-item:hover{border-color:var(--accent)}
.hl-item .bar{height:4px;border-radius:3px;margin-bottom:7px}
.hl-item .txt{font-size:13px;line-height:1.5;color:var(--text);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.hl-item .pg{font-size:11px;color:var(--faint);margin-top:5px}
.hl-item textarea{width:100%;margin-top:8px;font:inherit;font-size:12.5px;border:1px solid var(--line);border-radius:7px;padding:7px;background:var(--paper);color:var(--text);resize:vertical;min-height:42px}
.hl-item .acts{display:flex;justify-content:flex-end;margin-top:6px}
.hl-item .del{font-size:12px;color:#b3402f;background:none;border:none;cursor:pointer}
/* selection toolbar */
.sel-bar{position:fixed;z-index:50;display:flex;gap:2px;background:var(--ink);border-radius:8px;padding:4px;box-shadow:0 3px 12px rgba(0,0,0,.3)}
.sel-bar button{font:inherit;font-size:12.5px;color:var(--paper);background:none;border:none;cursor:pointer;padding:5px 10px;border-radius:6px}
.sel-bar button:hover{background:rgba(255,255,255,.15)}
/* toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(8px);background:var(--ink);color:var(--paper);font-size:12.5px;padding:8px 14px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}