Spaces:
Running
Running
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; } }
|