File size: 14,954 Bytes
29b9329
 
 
 
 
 
 
 
 
 
 
 
 
 
faedc6d
 
29b9329
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
faedc6d
 
29b9329
c73e8f4
 
29b9329
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c73e8f4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29b9329
 
 
 
 
 
 
 
c73e8f4
 
 
 
 
 
 
29b9329
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
faedc6d
c73e8f4
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
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root { color-scheme:dark; --bg:#101117; --panel:#171820; --line:#2a2b37; --text:#efedf6; --muted:#a09ead; --accent:#b7a2ff; --mint:#8ad3b0; font-family:'DM Sans',system-ui,sans-serif; font-size:14px; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--text); }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; transition:background .15s, border-color .15s; }
button:disabled { cursor:default; opacity:.45; }
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
a { color:inherit; }
p,h1,h2 { margin:0; }
.app-shell { display:grid; grid-template-columns:280px minmax(0,1fr); min-height:100dvh; max-width:1800px; margin:auto; }
.sidebar { background:#14151d; padding:30px 24px 24px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:24px; height:100dvh; overflow-y:auto; scrollbar-color:#393645 transparent; }
.sidebar>* { flex-shrink:0; }
.brand { text-decoration:none; display:flex; align-items:center; gap:10px; font-family:'Space Grotesk',sans-serif; font-size:23px; font-weight:600; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; background:var(--accent); color:#221b34; border-radius:10px; font-size:24px; }
.brand-version { color:var(--muted); margin-left:3px; font-weight:400; }
.brand-tag { margin-left:auto; font:10px 'DM Sans',sans-serif; letter-spacing:1.3px; color:var(--muted); border:1px solid var(--line); padding:4px 6px; border-radius:4px; }
.primary,.secondary { min-height:40px; border:1px solid transparent; border-radius:9px; padding:9px 15px; display:inline-flex; align-items:center; justify-content:center; gap:12px; font-weight:600; }
.primary { background:var(--accent); color:#221b34; }
.primary:hover:not(:disabled) { background:#c8b8ff; }
.secondary { background:transparent; color:var(--text); border-color:#393946; }
.secondary:hover:not(:disabled) { background:#262631; border-color:#595364; }
.new-chat { width:100%; justify-content:flex-start; }
.new-chat>span { font-size:22px; font-weight:400; }
.model-card { padding:17px; background:#1b1c25; border:1px solid #30303c; border-radius:12px; }
.eyebrow { font-size:10px; letter-spacing:1.5px; font-weight:600; color:var(--muted); }
.model-title { display:flex; justify-content:space-between; align-items:center; margin:14px 0 4px; }
.model-title h2 { font-family:'Space Grotesk',sans-serif; font-size:23px; }
.chip { color:#cec3ed; font-size:11px; background:#30293f; border:1px solid #453b58; border-radius:5px; padding:3px 6px; }
.muted { color:var(--muted); line-height:1.5; }
.small { font-size:11px; }
.model-facts { margin:22px 0; font-size:11px; }
.model-facts>div { display:flex; justify-content:space-between; gap:12px; margin:10px 0; }
dt { color:var(--muted); } dd { margin:0; text-align:right; max-width:120px; overflow-wrap:anywhere; }
.model-card button { width:100%; }
#cancel-load { margin-top:8px; }
.model-note { color:var(--muted); font-size:11px; line-height:1.6; margin-top:12px; }
#loading-panel { margin-top:16px; }
.progress-label { display:flex; justify-content:space-between; gap:8px; font-size:11px; margin-bottom:8px; }
#progress-value { color:var(--accent); font-variant-numeric:tabular-nums; }
progress { display:block; width:100%; height:6px; border:0; border-radius:8px; overflow:hidden; background:#34313f; accent-color:var(--accent); }
progress::-webkit-progress-bar { background:#34313f; border-radius:8px; }
progress::-webkit-progress-value { background:var(--accent); border-radius:8px; transition:width .12s; }
progress::-moz-progress-bar { background:var(--accent); }
progress:indeterminate { background:linear-gradient(90deg,#34313f 0%,var(--accent) 45%,#34313f 70%); background-size:200% 100%; animation:loading 1.7s linear infinite; }
progress:indeterminate::-webkit-progress-bar { background:transparent; }
#progress-detail { margin-top:8px; min-height:16px; }
summary { cursor:pointer; color:#ccc8d9; font-size:12px; font-weight:600; }
.setting { margin-top:19px; }
.setting>label { display:flex; justify-content:space-between; font-size:12px; margin-bottom:9px; }
output { color:var(--accent); }
input[type=range] { width:100%; accent-color:var(--accent); margin:0; }
.range-ends { display:flex; justify-content:space-between; color:var(--muted); font-size:10px; margin-top:5px; }
select { width:100%; background:#1c1d27; border:1px solid #353441; border-radius:7px; color:#ded9ec; padding:10px 8px; font-size:11px; }
.setting p { margin-top:7px; }
.privacy { display:flex; align-items:flex-start; gap:9px; margin-top:auto; padding-top:12px; }
.privacy-dot { width:6px; height:6px; background:var(--mint); border-radius:50%; flex-shrink:0; margin-top:5px; }
.privacy strong { font-size:11px; font-weight:500; color:#c5dfd2; }
.privacy p { color:var(--muted); font-size:11px; line-height:1.6; margin-top:6px; }
.model-link { font-size:11px; color:var(--muted); text-decoration:none; }
.model-link:hover { color:var(--accent); }
main { min-width:0; height:100dvh; display:flex; flex-direction:column; overflow:hidden; }
.topbar,.notice,.composer-area { flex-shrink:0; }
.topbar { display:flex; align-items:center; justify-content:space-between; padding:25px 38px 22px; border-bottom:1px solid var(--line); gap:12px; }
.topbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
#export-chat { font-size:11px; min-height:32px; padding:6px 10px; }
.workspace-label { font-size:9px; letter-spacing:1.6px; color:var(--muted); }
h1 { font-weight:500; font-size:15px; margin-top:6px; }
.status-badge { display:inline-flex; align-items:center; gap:7px; color:var(--muted); background:#1b1c24; border:1px solid var(--line); padding:7px 10px; border-radius:30px; font-size:10px; white-space:nowrap; }
.status-badge>span { width:5px; height:5px; background:currentColor; border-radius:50%; }
.status-badge[data-state=ready] { color:var(--mint); border-color:#344d43; background:#18241f; }
.status-badge[data-state=loading],.status-badge[data-state=generating] { color:var(--accent); }
.notice { padding:12px 38px; font-size:12px; color:var(--muted); line-height:1.6; border-bottom:1px solid #24242f; background:#15151d; overflow-wrap:anywhere; }
.notice[data-kind=error] { color:#ffbdbd; background:#261b23; }
.chat { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#393645 transparent; padding:24px 38px; }
.welcome { max-width:730px; margin:clamp(10px,5vh,55px) auto 24px; }
.hero-symbol { display:grid; place-items:center; font:58px 'Space Grotesk',sans-serif; width:80px; height:80px; border-radius:22px; color:var(--accent); background:radial-gradient(ellipse at center,#3c3156,#211d2d 72%); border:1px solid #3e344f; margin-bottom:28px; }
.welcome .eyebrow { color:#b5a0d6; }
.welcome h2 { font-family:'Space Grotesk',sans-serif; font-weight:500; font-size:clamp(30px,4vw,48px); letter-spacing:-1.7px; line-height:1.12; margin:15px 0 19px; }
.welcome-description { color:var(--muted); font-size:14px; line-height:1.8; }
.suggestions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:32px; }
.suggestions button { text-align:left; color:var(--text); background:#1a1b24; padding:17px 14px; border:1px solid #30303d; border-radius:10px; position:relative; }
.suggestions button:hover { border-color:#786393; background:#21202d; }
.suggestion-icon { color:var(--accent); font-family:monospace; display:block; height:29px; }
.suggestions strong { display:block; font-size:11px; font-weight:500; line-height:1.5; }
.suggestion-description { display:block; font-size:10px; color:var(--muted); margin-top:5px; line-height:1.5; }
.suggestions .arrow { position:absolute; right:14px; top:16px; color:#7c768a; font-size:12px; }
#messages { max-width:780px; margin:0 auto; }
.message { padding:18px 0 26px; min-width:0; }
.message+.message { border-top:1px solid #252530; }
.message-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:12px; font-weight:600; }
.avatar { display:grid; place-items:center; width:26px; height:26px; border-radius:7px; background:#302640; color:var(--accent); font-family:'Space Grotesk',sans-serif; }
.message.user .avatar { color:#b8bdcb; background:#292d38; }
.message-body { line-height:1.8; color:#ddd9e9; overflow-wrap:anywhere; font-size:14px; }
.message-body p { margin:0 0 12px; }
.message-body.plain-text p { white-space:pre-wrap; }
.message-body h1,.message-body h2,.message-body h3,.message-body h4,.message-body h5,.message-body h6 { font-family:'Space Grotesk',sans-serif; font-weight:600; line-height:1.4; margin:20px 0 10px; letter-spacing:0; }
.message-body h1 { font-size:24px; } .message-body h2 { font-size:21px; } .message-body h3 { font-size:18px; }
.message-body h4,.message-body h5,.message-body h6 { font-size:15px; }
.message-body ul,.message-body ol { padding-left:25px; margin:10px 0 16px; }
.message-body li { margin:5px 0; } .message-body li>p { margin:4px 0; }
.message-body :not(pre)>code { font:12px/1.6 Consolas,'SFMono-Regular',monospace; color:#decaff; background:#302737; padding:2px 5px; border-radius:4px; }
.message-body a { color:#c9b6ff; text-underline-offset:3px; }
.message-body blockquote { border-left:3px solid #77618f; margin:15px 0; padding:5px 16px; color:#bab0c9; background:#1c1925; }
.message-body blockquote p:last-child { margin-bottom:0; }
.message-body hr { border:0; border-top:1px solid var(--line); margin:20px 0; }
.table-scroll { overflow-x:auto; margin:16px 0; border:1px solid #393240; border-radius:8px; }
.message-body table { border-collapse:collapse; width:100%; font-size:12px; }
.message-body th,.message-body td { padding:9px 12px; text-align:left; border-bottom:1px solid #393240; min-width:95px; }
.message-body th { background:#25212e; color:#ded3ed; }
.message-body tbody tr:last-child td { border-bottom:0; }
.message-body .code-block { margin:14px 0; border:1px solid #383343; border-radius:10px; overflow:hidden; }
.code-head { background:#24212e; display:flex; align-items:center; justify-content:space-between; padding:7px 12px; color:#ada4bb; font:11px system-ui,sans-serif; }
pre { background:#12121a; margin:0; padding:16px; overflow-x:auto; white-space:pre; }
pre code { font:12px/1.75 Consolas,'SFMono-Regular',monospace; color:#d4c6ec; }
.copy { background:transparent; border:0; color:var(--muted); font-size:11px; padding:5px 8px; border-radius:5px; }
.copy:hover { background:#38313f; color:var(--text); }
.message-header .copy { margin-left:auto; }
.message-meta { color:var(--muted); font-size:11px; margin-top:10px; }
.reply-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:12px; }
.reply-actions button { min-height:32px; font-size:11px; padding:6px 10px; }
.previous-replies { margin-top:16px; border:1px solid var(--line); border-radius:8px; padding:12px; }
.previous-replies summary { font-size:11px; }
.previous-reply { padding-top:16px; }
.previous-reply+.previous-reply { margin-top:16px; border-top:1px solid var(--line); }
.previous-reply-label { font-size:10px; color:var(--muted); margin-bottom:12px; }
.thinking { color:var(--muted); animation:breathing 1.4s ease-in-out infinite; }
.composer-area { padding:12px 38px 20px; }
.composer { border:1px solid #44404f; border-radius:13px; background:#1a1b24; padding:15px; max-width:850px; margin:auto; }
.composer:focus-within { border-color:#87709f; box-shadow:0 0 0 3px #b7a2ff08; }
textarea { background:transparent; color:var(--text); outline:none; border:0; resize:none; width:100%; display:block; min-height:50px; max-height:170px; line-height:1.6; padding:0; }
textarea::placeholder { color:#7f7b8e; }
.composer-bottom { display:flex; align-items:center; gap:8px; margin-top:9px; }
#composer-hint { margin-right:auto; font-size:10px; color:var(--muted); }
.composer button { min-height:34px; padding:7px 12px; font-size:12px; }
.composer-footer { display:flex; justify-content:space-between; gap:10px; max-width:850px; margin:12px auto 0; color:#9b94a8; font-size:9px; line-height:1.5; }
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); padding:12px 18px; background:#302a3f; color:var(--text); border:1px solid #695981; border-radius:10px; font-size:12px; z-index:5; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@keyframes loading { from { background-position:100% 0; } to { background-position:-100% 0; } }
@keyframes breathing { 50% { opacity:.4; } }
@media (max-width:1050px) { .sidebar { padding:24px 18px; } .app-shell { grid-template-columns:250px minmax(0,1fr); } .topbar,.chat { padding-left:25px; padding-right:25px; } .notice { padding-left:25px; padding-right:25px; } .composer-area { padding:12px 25px 18px; } .suggestions { grid-template-columns:1fr; gap:7px; margin-top:24px; } .suggestions button { padding:12px 14px 12px 42px; } .suggestion-icon { position:absolute; left:13px; top:14px; } .welcome { margin-top:12px; } }
@media (max-width:680px) { .app-shell { display:block; } .sidebar { border-right:0; border-bottom:1px solid var(--line); padding:18px; gap:16px; } .brand { font-size:20px; } .new-chat { position:absolute; top:18px; right:18px; width:auto; font-size:11px; min-height:34px; } .brand-tag { display:none; } .model-card { display:grid; grid-template-columns:1fr 1fr; column-gap:16px; } .model-card>.eyebrow,.model-title,.model-card>.muted { grid-column:1; } .model-title { margin-top:7px; } .model-facts { grid-column:2; grid-row:1 / 4; margin:0; } .model-card>#load { grid-column:1 / -1; margin-top:15px; } #cancel-load,#loading-panel,.model-note { grid-column:1 / -1; } .privacy,.model-link { display:none; } .settings { padding:0 4px; } main { height:calc(100dvh - 65px); min-height:660px; } .topbar { padding:19px; } .notice { padding:10px 19px; } .chat { padding:20px; } .hero-symbol { width:60px; height:60px; font-size:44px; margin-bottom:20px; } .welcome h2 { font-size:34px; } .welcome-description { font-size:12px; } .composer-area { padding:10px 14px 18px; } .composer-footer { flex-direction:column; gap:2px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media (max-width:680px) { .sidebar { height:auto; overflow:visible; } }
@media (max-width:420px) { .topbar { align-items:flex-start; } .topbar-actions { max-width:135px; gap:7px; } .topbar h1 { font-size:13px; } }