HarbourSOFT commited on
Commit
6e88079
·
verified ·
1 Parent(s): b56c5bc

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +193 -38
style.css CHANGED
@@ -1,60 +1,215 @@
 
 
1
  :root {
2
- --bg: #0b0c10;
3
- --panel: #13151a;
4
- --text: #e7e9ee;
5
- --muted: #a5adba;
6
- --accent: #7c5cff;
7
- --ok: #36c76f;
 
 
 
8
  --warn: #ffb020;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  }
10
 
11
- * { box-sizing: border-box; }
12
- html, body { margin: 0; padding: 0; background: var(--bg); color: var(--text); font-family: system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
 
 
 
 
 
 
 
 
13
 
14
- header { padding: 24px; border-bottom: 1px solid #1f232b; }
15
- h1 { margin: 0 0 6px; font-size: 20px; }
16
- .sub { margin: 0; color: var(--muted); }
 
 
 
 
 
 
 
 
17
 
18
- .panel { padding: 16px 24px; display: grid; gap: 12px; }
19
- .controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
20
 
21
- label { font-size: 13px; color: var(--muted); display: grid; gap: 6px; margin-right: 8px; }
22
- select { background: var(--panel); color: var(--text); border: 1px solid #2a2f3a; padding: 6px 8px; border-radius: 8px; }
 
 
 
23
 
24
- textarea {
25
- width: 100%; resize: vertical; padding: 12px; border-radius: 12px;
26
- border: 1px solid #2a2f3a; background: var(--panel); color: var(--text);
 
 
 
 
 
 
 
 
 
27
  }
28
 
29
- .actions { display: flex; align-items: center; gap: 10px; }
30
- button {
31
- appearance: none; border: none; border-radius: 10px; padding: 10px 14px;
32
- background: var(--accent); color: white; font-weight: 600; cursor: pointer;
 
 
 
 
33
  }
34
- button[disabled] { opacity: 0.6; cursor: progress; }
35
 
36
- #status { color: var(--muted); font-size: 13px; }
 
 
37
 
38
- .results { padding: 0 24px 24px; }
39
- .results h2 { margin-top: 8px; }
40
- #bars { display: grid; gap: 10px; }
 
 
 
41
 
42
- .bar {
43
- background: #1b1f27; border: 1px solid #2a2f3a; border-radius: 10px; padding: 8px 10px;
 
 
44
  }
45
- .bar-line {
46
- height: 10px; border-radius: 6px; background: #232938; overflow: hidden; margin-top: 6px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  .bar-fill {
49
- height: 100%; width: 0%;
50
- background: linear-gradient(90deg, var(--ok), var(--accent));
51
- transition: width 300ms ease;
52
  }
53
- .bar-label { display: flex; justify-content: space-between; font-size: 13px; color: var(--muted); }
54
 
 
 
 
55
  pre#raw {
56
- overflow: auto; background: #0f1117; border-radius: 10px; padding: 12px; border: 1px solid #2a2f3a;
57
- color: #c7c9d1; font-size: 12px;
58
  }
59
 
60
- .disclaimer { padding: 16px 24px 32px; color: var(--muted); font-size: 13px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ---------- Reset & Base ---------- */
2
+ * { box-sizing: border-box; }
3
  :root {
4
+ --bg: #0e1116;
5
+ --bg-2: #0b0d12;
6
+ --card: rgba(18, 20, 28, 0.75);
7
+ --stroke: rgba(255,255,255,0.06);
8
+ --text: #e9ecf1;
9
+ --muted: #a7b0bf;
10
+ --accent: #8b7bff;
11
+ --accent-2: #49d0b0;
12
+ --good: #36c76f;
13
  --warn: #ffb020;
14
+ --bad: #ff5a7a;
15
+ --shadow: 0 10px 30px rgba(0,0,0,0.35);
16
+ --radius: 14px;
17
+ --ring-track: rgba(255,255,255,0.09);
18
+ --ring-size: 100px;
19
+ }
20
+ html, body { height: 100%; }
21
+ body {
22
+ margin: 0;
23
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
24
+ color: var(--text);
25
+ background: var(--bg);
26
+ line-height: 1.5;
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
  }
30
 
31
+ /* ---------- Background Gradient ---------- */
32
+ .bg {
33
+ position: fixed; inset: -20vmax;
34
+ background:
35
+ radial-gradient(60vmax 60vmax at 10% 0%, rgba(139,123,255,0.20), transparent 60%),
36
+ radial-gradient(60vmax 60vmax at 90% 100%, rgba(84,226,190,0.18), transparent 60%),
37
+ radial-gradient(40vmax 40vmax at 50% 30%, rgba(255,255,255,0.06), transparent 60%);
38
+ filter: blur(30px);
39
+ z-index: -1;
40
+ }
41
 
42
+ /* ---------- Top Nav ---------- */
43
+ .nav {
44
+ position: sticky; top: 0; backdrop-filter: blur(10px);
45
+ background: linear-gradient(to bottom, rgba(10,12,18,0.9), rgba(10,12,18,0.5));
46
+ border-bottom: 1px solid var(--stroke);
47
+ display: flex; align-items: center; justify-content: space-between;
48
+ padding: 14px 18px; z-index: 10;
49
+ }
50
+ .brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: 0.2px; }
51
+ .brand .muted { color: var(--muted); font-weight: 600; }
52
+ .brand .dot { opacity: 0.6; }
53
 
54
+ .actions { display: inline-flex; align-items: center; gap: 8px; }
 
55
 
56
+ .icon-btn {
57
+ appearance: none; border: 1px solid var(--stroke); background: rgba(255,255,255,0.03);
58
+ color: var(--text); padding: 8px; border-radius: 10px; cursor: pointer; box-shadow: var(--shadow);
59
+ }
60
+ .icon-btn:hover { background: rgba(255,255,255,0.06); }
61
 
62
+ /* ---------- Chips / Badges ---------- */
63
+ .chip {
64
+ appearance: none; border: 1px solid var(--stroke); background: rgba(255,255,255,0.04);
65
+ color: var(--text); padding: 8px 10px; border-radius: 999px; font-weight: 600; cursor: default;
66
+ }
67
+ .chip.ghost { background: rgba(255,255,255,0.02); cursor: pointer; }
68
+ .chip.ghost:hover { background: rgba(255,255,255,0.06); }
69
+ .badge {
70
+ display: inline-flex; align-items: center; gap: 6px;
71
+ background: linear-gradient(135deg, rgba(139,123,255,0.2), rgba(84,226,190,0.15));
72
+ border: 1px solid var(--stroke);
73
+ padding: 4px 10px; border-radius: 999px; font-weight: 700;
74
  }
75
 
76
+ /* ---------- Layout ---------- */
77
+ .container { max-width: 1000px; margin: 32px auto; padding: 0 16px; display: grid; gap: 16px; }
78
+ .card {
79
+ background: var(--card);
80
+ border: 1px solid var(--stroke);
81
+ border-radius: var(--radius);
82
+ box-shadow: var(--shadow);
83
+ padding: 16px;
84
  }
 
85
 
86
+ .controls .row { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 14px; align-items: end; }
87
+ .controls .group .title { font-weight: 700; font-size: 13px; letter-spacing: 0.2px; color: var(--muted); margin-bottom: 8px; }
88
+ .spacer { flex: 1; }
89
 
90
+ .input .chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
91
+ .row { display: flex; gap: 10px; align-items: center; }
92
+ .row.end { justify-content: space-between; }
93
+ .small { font-size: 12px; }
94
+ .tiny { font-size: 11px; }
95
+ .muted { color: var(--muted); }
96
 
97
+ /* ---------- Segmented Control ---------- */
98
+ .seg {
99
+ display: inline-grid; grid-auto-flow: column; gap: 6px; background: rgba(255,255,255,0.04);
100
+ border: 1px solid var(--stroke); padding: 6px; border-radius: 12px;
101
  }
102
+ .seg input[type="radio"] { display: none; }
103
+ .seg label {
104
+ cursor: pointer; padding: 8px 12px; border-radius: 8px; font-weight: 600; color: var(--muted);
105
+ }
106
+ .seg input:checked + label {
107
+ color: var(--text);
108
+ background: linear-gradient(135deg, rgba(139,123,255,0.20), rgba(73,208,176,0.15));
109
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06);
110
+ }
111
+
112
+ /* ---------- Buttons ---------- */
113
+ .buttons { display: inline-flex; align-items: center; gap: 8px; }
114
+ .btn {
115
+ appearance: none; border: 1px solid var(--stroke); background: rgba(255,255,255,0.03); color: var(--text);
116
+ font-weight: 700; padding: 10px 14px; border-radius: 12px; cursor: pointer; transition: transform 120ms ease;
117
+ }
118
+ .btn:hover { background: rgba(255,255,255,0.06); }
119
+ .btn:active { transform: translateY(1px); }
120
+ .btn.primary {
121
+ background: linear-gradient(135deg, #8b7bff, #49d0b0);
122
+ border: none; color: #0b0d12; text-shadow: 0 1px 0 rgba(255,255,255,0.3);
123
+ }
124
+ .btn.ghost { background: rgba(255,255,255,0.02); }
125
+ .btn.subtle { background: rgba(255,255,255,0.02); }
126
+ .btn.tiny { padding: 6px 10px; font-size: 12px; }
127
+
128
+ .spinner {
129
+ --s: 12px;
130
+ display: inline-block; width: var(--s); height: var(--s); margin-right: 8px; vertical-align: -2px;
131
+ border: 2px solid rgba(255,255,255,0.25); border-top-color: var(--text); border-radius: 50%;
132
+ animation: spin 780ms linear infinite; opacity: 0; transform: scale(0.9);
133
+ }
134
+ .btn.loading .spinner, .chip.loading .spinner { opacity: 1; }
135
+ @keyframes spin { to { transform: rotate(1turn); } }
136
+
137
+ /* ---------- Textarea ---------- */
138
+ textarea {
139
+ width: 100%; background: rgba(9, 11, 16, 0.6); border: 1px solid var(--stroke); color: var(--text);
140
+ border-radius: 12px; padding: 12px 14px; resize: vertical; min-height: 130px; outline: none;
141
+ transition: box-shadow 160ms ease, border-color 160ms ease;
142
  }
143
+ textarea:focus { border-color: rgba(139,123,255,0.55); box-shadow: 0 0 0 4px rgba(139,123,255,0.15); }
144
+
145
+ /* ---------- Results ---------- */
146
+ .result-head { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; }
147
+ .ring {
148
+ width: var(--ring-size); height: var(--ring-size);
149
+ background: conic-gradient(var(--accent) var(--pct, 0%), var(--ring-track) 0%);
150
+ border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--stroke);
151
+ }
152
+ .ring-core {
153
+ width: calc(var(--ring-size) - 22px); height: calc(var(--ring-size) - 22px);
154
+ background: rgba(8,10,15,0.85); border-radius: 50%; display: grid; place-items: center;
155
+ border: 1px solid var(--stroke);
156
+ }
157
+ .ring-core span { font-weight: 800; letter-spacing: 0.5px; }
158
+
159
+ .pred-main { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 800; }
160
+
161
+ .bars { display: grid; gap: 10px; margin-top: 6px; }
162
+ .bar {
163
+ display: grid; gap: 6px; background: rgba(255,255,255,0.03); border: 1px solid var(--stroke);
164
+ border-radius: 12px; padding: 10px 12px;
165
+ }
166
+ .bar-head { display: flex; justify-content: space-between; align-items: baseline; }
167
+ .bar-line { height: 12px; background: rgba(255,255,255,0.06); border-radius: 8px; overflow: hidden; }
168
  .bar-fill {
169
+ height: 100%; width: 0; background: linear-gradient(90deg, #8b7bff, #49d0b0);
170
+ transition: width 260ms ease;
 
171
  }
 
172
 
173
+ .raw { margin-top: 10px; }
174
+ .raw summary { cursor: pointer; }
175
+ .raw .raw-actions { display: flex; justify-content: flex-end; margin: 8px 0; }
176
  pre#raw {
177
+ margin: 0; padding: 12px; font-size: 12px; background: #0f1117; border: 1px solid var(--stroke);
178
+ color: #e1e5ec; border-radius: 12px; overflow: auto; max-height: 320px;
179
  }
180
 
181
+ /* ---------- Disclaimer & Footer ---------- */
182
+ .disclaimer h3 { margin: 0 0 6px; }
183
+ .foot { color: var(--muted); text-align: center; padding: 20px; }
184
+ .foot a { color: var(--text); text-decoration: underline dotted; }
185
+
186
+ .sr-only {
187
+ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0;
188
+ }
189
+
190
+ /* ---------- Responsive ---------- */
191
+ @media (max-width: 860px) {
192
+ .controls .row { grid-template-columns: 1fr; }
193
+ }
194
+
195
+ /* ---------- Light theme ---------- */
196
+ @media (prefers-color-scheme: light) {
197
+ html[data-theme="auto"] body { background: #f6f7fb; color: #12131a; }
198
+ }
199
+
200
+ html[data-theme="light"] {
201
+ --bg: #f6f7fb;
202
+ --bg-2: #ffffff;
203
+ --card: rgba(255,255,255,0.85);
204
+ --stroke: rgba(0,0,0,0.08);
205
+ --text: #12131a;
206
+ --muted: #57607a;
207
+ --ring-track: rgba(0,0,0,0.06);
208
+ --shadow: 0 10px 30px rgba(32,35,43,0.1);
209
+ }
210
+
211
+ /* Reduce motion preference */
212
+ @media (prefers-reduced-motion: reduce) {
213
+ .spinner { animation: none; }
214
+ .bar-fill { transition: none; }
215
+ }