cyberai-1 commited on
Commit
98ecda7
Β·
1 Parent(s): fe2e5eb
Files changed (1) hide show
  1. templates/index.html +46 -43
templates/index.html CHANGED
@@ -7,6 +7,9 @@
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
  <link href="https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Rajdhani:wght@400;500;600;700&family=Exo+2:wght@300;400;600&display=swap" rel="stylesheet">
9
  <style>
 
 
 
10
  /* ══ TOKENS ══ */
11
  :root {
12
  --g0:#000000; --g1:#050d05; --g2:#0a150a; --g3:#0f1f0f; --g4:#1a2e1a;
@@ -56,29 +59,29 @@
56
  }
57
 
58
  /* ══ WRAPPER β€” flex column, full height ══ */
59
- .wrapper {
60
- position: relative; z-index: 1;
61
- width: 100%; max-width: 1200px;
62
- margin: 0 auto;
63
- padding: 0 1.5rem;
64
- height: 100vh;
65
- display: flex;
66
- flex-direction: column;
67
- gap: 0;
68
- }
69
 
70
  /* ══ HEADER β€” compact, fixed height ══ */
71
  header {
72
  flex-shrink: 0;
73
- border-bottom: 1px solid var(--border);
74
- padding: .75rem 0;
75
  display: flex; align-items: center; justify-content: space-between;
76
  animation: fadeIn .5s ease both;
77
  }
78
  .logo { display:flex; align-items:center; gap:.75rem; }
79
  .logo-icon {
80
- width:32px; height:32px; border:1.5px solid var(--green);
81
- display:grid; place-items:center; font-size:.95rem;
82
  box-shadow: 0 0 14px var(--green-glow), inset 0 0 8px var(--green-glow);
83
  animation: pulse-box 3s ease-in-out infinite;
84
  }
@@ -87,7 +90,7 @@
87
  50%{box-shadow:0 0 22px rgba(0,255,65,.3),inset 0 0 14px rgba(0,255,65,.2);}
88
  }
89
  .logo-text {
90
- font-family:var(--ff-head); font-size:1.5rem; font-weight:700;
91
  letter-spacing:.15em; text-shadow:0 0 20px rgba(0,255,65,.6);
92
  }
93
  .logo-text span { color:var(--green3); }
@@ -101,16 +104,16 @@
101
 
102
  .header-right { display:flex; align-items:center; gap:1.2rem; }
103
  .status-dot {
104
- display:flex; align-items:center; gap:.4rem;
105
- font-family:var(--ff-mono); font-size:0.5rem; color:var(--muted);
106
  }
107
  .dot {
108
- width:6px; height:6px; border-radius:50%;
109
  background:var(--green); box-shadow:0 0 8px var(--green);
110
  animation:blink 2s step-end infinite;
111
  }
112
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
113
- .version { font-family:var(--ff-mono); font-size:.58rem; color:var(--green-dim); letter-spacing:.1em; }
114
 
115
  /* ── Classes strip row β€” sits between header and grid ── */
116
  .classes-bar {
@@ -120,11 +123,11 @@
120
  border-bottom: 1px solid var(--border);
121
  animation: fadeIn .6s ease .1s both;
122
  }
123
- .cs-label { font-family:var(--ff-mono); font-size:.52rem; color:var(--green-dim); letter-spacing:.15em; white-space:nowrap; }
124
  .cs-pills { display:flex; gap:.35rem; flex-wrap:wrap; }
125
  .cs-pill {
126
- font-family:var(--ff-mono); font-size:.55rem;
127
- padding:.15rem .5rem;
128
  border:1px solid var(--border); border-radius:2px;
129
  color:var(--green-dim); transition:all .2s; cursor:default;
130
  }
@@ -158,7 +161,7 @@
158
  }
159
  .panel-title {
160
  flex-shrink: 0;
161
- font-family:var(--ff-mono); font-size:.58rem;
162
  letter-spacing:.2em; color:var(--green3);
163
  text-transform:uppercase; margin-bottom:.75rem;
164
  display:flex; align-items:center; gap:.6rem;
@@ -192,9 +195,9 @@
192
  box-shadow:0 0 16px rgba(0,255,65,.12),inset 0 0 12px rgba(0,255,65,.04);
193
  }
194
  .model-card.active .mc-name { color:var(--green); }
195
- .mc-icon { font-size:1rem; }
196
- .mc-name { font-family:var(--ff-head); font-weight:600; font-size:.9rem; color:var(--green2); transition:color .2s; }
197
- .mc-sub { font-family:var(--ff-mono); font-size:.54rem; color:var(--muted); }
198
 
199
  /* ── INPUT TABS ── */
200
  .input-tabs {
@@ -202,9 +205,9 @@
202
  border:1px solid var(--border); border-radius:var(--r); overflow:hidden;
203
  }
204
  .tab-btn {
205
- flex:1; padding:.45rem; background:var(--g1);
206
  border:none; color:var(--muted); font-family:var(--ff-mono);
207
- font-size:0.5rem; letter-spacing:.1em; cursor:pointer;
208
  transition:all .2s; text-transform:uppercase;
209
  }
210
  .tab-btn:hover { background:var(--g3); color:var(--green2); }
@@ -216,7 +219,7 @@
216
  /* ── DROP ZONE β€” reduced height ── */
217
  .drop-zone {
218
  border:1.5px dashed var(--border2); border-radius:var(--r);
219
- height: 130px; /* fixed, no min-height */
220
  display:flex; flex-direction:column;
221
  align-items:center; justify-content:center;
222
  gap:.5rem; cursor:pointer;
@@ -245,8 +248,8 @@
245
  border-radius:50%; display:grid; place-items:center;
246
  font-size:1rem; color:var(--green3);
247
  }
248
- .dz-ph p { font-family:var(--ff-mono); font-size:.65rem; color:var(--muted); }
249
- .dz-ph em { font-family:var(--ff-mono); font-size:.56rem; color:var(--green-dim); font-style:normal; }
250
  #file-input { display:none; }
251
 
252
  /* ── URL INPUT ── */
@@ -257,7 +260,7 @@
257
  border:1px solid var(--border2); border-radius:var(--r);
258
  background:var(--g1); overflow:hidden;
259
  }
260
- .url-prefix { font-family:var(--ff-mono); font-size:0.5rem; color:var(--green3); padding:0 .6rem; white-space:nowrap; border-right:1px solid var(--border); }
261
  .url-input {
262
  flex:1; background:transparent; border:none; outline:none;
263
  color:var(--green); font-family:var(--ff-mono); font-size:.72rem;
@@ -267,7 +270,7 @@
267
  .url-load-btn {
268
  padding:.55rem .8rem; background:rgba(0,255,65,.1); border:none;
269
  border-left:1px solid var(--border);
270
- color:var(--green2); font-family:var(--ff-mono); font-size:0.5rem;
271
  cursor:pointer; transition:background .2s; white-space:nowrap;
272
  }
273
  .url-load-btn:hover { background:rgba(0,255,65,.2); }
@@ -285,7 +288,7 @@
285
  background:linear-gradient(135deg,var(--green3),var(--green-dim));
286
  border:1px solid var(--green3); border-radius:var(--r);
287
  color:var(--green); font-family:var(--ff-head);
288
- font-size:1rem; font-weight:700; letter-spacing:.1em;
289
  cursor:pointer; position:relative; overflow:hidden;
290
  transition:all .2s; text-transform:uppercase;
291
  }
@@ -320,8 +323,8 @@
320
  align-items:flex-start; justify-content:center;
321
  flex:1; gap:.5rem; padding:.5rem 0;
322
  }
323
- .result-waiting .rw-title { font-family:var(--ff-head); font-size:.95rem; font-weight:600; color:var(--green3); }
324
- .result-waiting .rw-sub { font-family:var(--ff-mono); font-size:.66rem; color:var(--green-dim); line-height:1.75; }
325
  .terminal-cursor {
326
  display:inline-block; width:7px; height:13px;
327
  background:var(--green); margin-left:2px;
@@ -339,12 +342,12 @@
339
  .rc-header { display:flex; flex-direction:column; gap:.2rem; }
340
  .rc-label { font-family:var(--ff-mono); font-size:.58rem; letter-spacing:.2em; color:var(--green3); }
341
  .rc-class {
342
- font-family:var(--ff-head); font-size:2.6rem; font-weight:700;
343
  letter-spacing:-.01em; line-height:1; color:var(--green);
344
  text-shadow:0 0 30px rgba(0,255,65,.5);
345
  }
346
- .rc-conf { font-family:var(--ff-mono); font-size:.72rem; color:var(--muted); margin-top:.1rem; }
347
- .rc-conf strong { color:var(--green2); font-size:.85rem; }
348
 
349
  .conf-track {
350
  height:3px; background:var(--g4); border-radius:99px; overflow:hidden; margin-top:.4rem;
@@ -363,11 +366,11 @@
363
  .prob-row { display:flex; flex-direction:column; gap:.18rem; }
364
  .prob-meta { display:flex; justify-content:space-between; align-items:baseline; }
365
  .prob-name {
366
- font-family:var(--ff-body); font-size:.76rem; font-weight:400;
367
  color:var(--muted); display:flex; align-items:center; gap:.35rem; text-transform:capitalize;
368
  }
369
  .prob-row.top .prob-name { color:var(--green); font-weight:600; }
370
- .prob-pct { font-family:var(--ff-mono); font-size:.65rem; color:var(--green-dim); }
371
  .prob-row.top .prob-pct { color:var(--green2); }
372
  .prob-track { height:4px; background:var(--g4); border-radius:99px; overflow:hidden; }
373
  .prob-fill {
@@ -392,11 +395,11 @@
392
  .footer-bar {
393
  flex-shrink: 0;
394
  border-top: 1px solid var(--border);
395
- padding: .35rem 0;
396
  display: flex; justify-content: space-between; align-items: center;
397
  animation: fadeIn .8s ease .25s both;
398
  }
399
- .footer-bar p { font-family:var(--ff-mono); font-size:.55rem; color:var(--green-dim); }
400
 
401
  @keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
402
  </style>
 
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
  <link href="https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Rajdhani:wght@400;500;600;700&family=Exo+2:wght@300;400;600&display=swap" rel="stylesheet">
9
  <style>
10
+
11
+
12
+
13
  /* ══ TOKENS ══ */
14
  :root {
15
  --g0:#000000; --g1:#050d05; --g2:#0a150a; --g3:#0f1f0f; --g4:#1a2e1a;
 
59
  }
60
 
61
  /* ══ WRAPPER β€” flex column, full height ══ */
62
+ .wrapper {
63
+ width: 100%;
64
+ max-width: 1320px;
65
+ margin: 0 auto;
66
+ padding: 0 1.2rem;
67
+ height: 100vh;
68
+ display: flex;
69
+ flex-direction: column;
70
+ gap: 0;
71
+ }
72
 
73
  /* ══ HEADER β€” compact, fixed height ══ */
74
  header {
75
  flex-shrink: 0;
76
+ border-bottom: 10px solid var(--border);
77
+ padding: 1rem 0;
78
  display: flex; align-items: center; justify-content: space-between;
79
  animation: fadeIn .5s ease both;
80
  }
81
  .logo { display:flex; align-items:center; gap:.75rem; }
82
  .logo-icon {
83
+ width:42px; height:42px; border:1.5px solid var(--green);
84
+ display:grid; place-items:center; font-size:1.1rem;
85
  box-shadow: 0 0 14px var(--green-glow), inset 0 0 8px var(--green-glow);
86
  animation: pulse-box 3s ease-in-out infinite;
87
  }
 
90
  50%{box-shadow:0 0 22px rgba(0,255,65,.3),inset 0 0 14px rgba(0,255,65,.2);}
91
  }
92
  .logo-text {
93
+ font-family:var(--ff-head); font-size:2rem; font-weight:700;
94
  letter-spacing:.15em; text-shadow:0 0 20px rgba(0,255,65,.6);
95
  }
96
  .logo-text span { color:var(--green3); }
 
104
 
105
  .header-right { display:flex; align-items:center; gap:1.2rem; }
106
  .status-dot {
107
+ display:flex; align-items:center; gap:.9rem;
108
+ font-family:var(--ff-mono); font-size:0.72rem; color:var(--muted);
109
  }
110
  .dot {
111
+ width:7px; height:7px; border-radius:50%;
112
  background:var(--green); box-shadow:0 0 8px var(--green);
113
  animation:blink 2s step-end infinite;
114
  }
115
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
116
+ .version { font-family:var(--ff-mono); font-size:.7rem; color:var(--green-dim); letter-spacing:.1em; }
117
 
118
  /* ── Classes strip row β€” sits between header and grid ── */
119
  .classes-bar {
 
123
  border-bottom: 1px solid var(--border);
124
  animation: fadeIn .6s ease .1s both;
125
  }
126
+ .cs-label { font-family:var(--ff-mono); font-size:.72rem; color:var(--green-dim); letter-spacing:.15em; white-space:nowrap; }
127
  .cs-pills { display:flex; gap:.35rem; flex-wrap:wrap; }
128
  .cs-pill {
129
+ font-family:var(--ff-mono); font-size:.72rem;
130
+ padding:.22rem .65rem;
131
  border:1px solid var(--border); border-radius:2px;
132
  color:var(--green-dim); transition:all .2s; cursor:default;
133
  }
 
161
  }
162
  .panel-title {
163
  flex-shrink: 0;
164
+ font-family:var(--ff-mono); font-size:.82rem;
165
  letter-spacing:.2em; color:var(--green3);
166
  text-transform:uppercase; margin-bottom:.75rem;
167
  display:flex; align-items:center; gap:.6rem;
 
195
  box-shadow:0 0 16px rgba(0,255,65,.12),inset 0 0 12px rgba(0,255,65,.04);
196
  }
197
  .model-card.active .mc-name { color:var(--green); }
198
+ .mc-icon { font-size:1.2rem; }
199
+ .mc-name { font-family:var(--ff-head); font-weight:600; font-size:1.1rem; color:var(--green2); transition:color .2s; }
200
+ .mc-sub { font-family:var(--ff-mono); font-size:.72rem; color:var(--muted); }
201
 
202
  /* ── INPUT TABS ── */
203
  .input-tabs {
 
205
  border:1px solid var(--border); border-radius:var(--r); overflow:hidden;
206
  }
207
  .tab-btn {
208
+ flex:1; padding:.55rem; background:var(--g1);
209
  border:none; color:var(--muted); font-family:var(--ff-mono);
210
+ font-size:0.72rem; letter-spacing:.1em; cursor:pointer;
211
  transition:all .2s; text-transform:uppercase;
212
  }
213
  .tab-btn:hover { background:var(--g3); color:var(--green2); }
 
219
  /* ── DROP ZONE β€” reduced height ── */
220
  .drop-zone {
221
  border:1.5px dashed var(--border2); border-radius:var(--r);
222
+ height: 180px; /* fixed, no min-height */
223
  display:flex; flex-direction:column;
224
  align-items:center; justify-content:center;
225
  gap:.5rem; cursor:pointer;
 
248
  border-radius:50%; display:grid; place-items:center;
249
  font-size:1rem; color:var(--green3);
250
  }
251
+ .dz-ph p { font-family:var(--ff-mono); font-size:.82rem; color:var(--muted); }
252
+ .dz-ph em { font-family:var(--ff-mono); font-size:.68rem; color:var(--green-dim); font-style:normal; }
253
  #file-input { display:none; }
254
 
255
  /* ── URL INPUT ── */
 
260
  border:1px solid var(--border2); border-radius:var(--r);
261
  background:var(--g1); overflow:hidden;
262
  }
263
+ .url-prefix { font-family:var(--ff-mono); font-size:0.72rem; color:var(--green3); padding:0 .6rem; white-space:nowrap; border-right:1px solid var(--border); }
264
  .url-input {
265
  flex:1; background:transparent; border:none; outline:none;
266
  color:var(--green); font-family:var(--ff-mono); font-size:.72rem;
 
270
  .url-load-btn {
271
  padding:.55rem .8rem; background:rgba(0,255,65,.1); border:none;
272
  border-left:1px solid var(--border);
273
+ color:var(--green2); font-family:var(--ff-mono); font-size:0.72rem;
274
  cursor:pointer; transition:background .2s; white-space:nowrap;
275
  }
276
  .url-load-btn:hover { background:rgba(0,255,65,.2); }
 
288
  background:linear-gradient(135deg,var(--green3),var(--green-dim));
289
  border:1px solid var(--green3); border-radius:var(--r);
290
  color:var(--green); font-family:var(--ff-head);
291
+ font-size:1.15rem; font-weight:700; letter-spacing:.1em;
292
  cursor:pointer; position:relative; overflow:hidden;
293
  transition:all .2s; text-transform:uppercase;
294
  }
 
323
  align-items:flex-start; justify-content:center;
324
  flex:1; gap:.5rem; padding:.5rem 0;
325
  }
326
+ .result-waiting .rw-title { font-family:var(--ff-head); font-size:1.15rem; font-weight:600; color:var(--green3); }
327
+ .result-waiting .rw-sub { font-family:var(--ff-mono); font-size:.82rem; color:var(--green-dim); line-height:1.75; }
328
  .terminal-cursor {
329
  display:inline-block; width:7px; height:13px;
330
  background:var(--green); margin-left:2px;
 
342
  .rc-header { display:flex; flex-direction:column; gap:.2rem; }
343
  .rc-label { font-family:var(--ff-mono); font-size:.58rem; letter-spacing:.2em; color:var(--green3); }
344
  .rc-class {
345
+ font-family:var(--ff-head); font-size:3.4rem; font-weight:700;
346
  letter-spacing:-.01em; line-height:1; color:var(--green);
347
  text-shadow:0 0 30px rgba(0,255,65,.5);
348
  }
349
+ .rc-conf { font-family:var(--ff-mono); font-size:.9rem; color:var(--muted); margin-top:.1rem; }
350
+ .rc-conf strong { color:var(--green2); font-size:1rem; }
351
 
352
  .conf-track {
353
  height:3px; background:var(--g4); border-radius:99px; overflow:hidden; margin-top:.4rem;
 
366
  .prob-row { display:flex; flex-direction:column; gap:.18rem; }
367
  .prob-meta { display:flex; justify-content:space-between; align-items:baseline; }
368
  .prob-name {
369
+ font-family:var(--ff-body); font-size:.9rem; font-weight:400;
370
  color:var(--muted); display:flex; align-items:center; gap:.35rem; text-transform:capitalize;
371
  }
372
  .prob-row.top .prob-name { color:var(--green); font-weight:600; }
373
+ .prob-pct { font-family:var(--ff-mono); font-size:.78rem; color:var(--green-dim); }
374
  .prob-row.top .prob-pct { color:var(--green2); }
375
  .prob-track { height:4px; background:var(--g4); border-radius:99px; overflow:hidden; }
376
  .prob-fill {
 
395
  .footer-bar {
396
  flex-shrink: 0;
397
  border-top: 1px solid var(--border);
398
+ padding: .25rem 0;
399
  display: flex; justify-content: space-between; align-items: center;
400
  animation: fadeIn .8s ease .25s both;
401
  }
402
+ .footer-bar p { font-family:var(--ff-mono); font-size:.72rem; color:var(--green-dim); }
403
 
404
  @keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
405
  </style>