Mbanksbey commited on
Commit
c18ad53
·
verified ·
1 Parent(s): 160915a

UX/IX upgrade: TEQUMSA green→indigo branding, organism-aligned aesthetic

Browse files
Files changed (1) hide show
  1. style.css +145 -164
style.css CHANGED
@@ -1,14 +1,15 @@
1
  :root {
2
- --bg-color: #05070a;
3
- --panel-bg: rgba(15, 20, 30, 0.8);
4
- --accent-color: #00d2ff;
5
- --phi-gold: #ffcc33;
6
- --text-primary: #e0e6ed;
7
- --text-secondary: #94a3b8;
8
- --border-color: rgba(255, 255, 255, 0.1);
9
- --success-green: #10b981;
10
- --optimize-blue: #3b82f6;
11
- --convergence-purple: #a855f7;
 
12
  --warn-orange: #f59e0b;
13
  }
14
 
@@ -16,9 +17,9 @@
16
 
17
  body {
18
  background: var(--bg-color);
19
- background-image: radial-gradient(circle at 50% 50%, #111827 0%, #05070a 100%);
20
  color: var(--text-primary);
21
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
22
  line-height: 1.6;
23
  min-height: 100vh;
24
  }
@@ -36,7 +37,7 @@ body {
36
 
37
  .header-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; }
38
  .logo-block { display: flex; align-items: center; gap: 1.25rem; }
39
- .phi-symbol { font-size: 2.5rem; font-weight: bold; color: var(--phi-gold); text-shadow: 0 0 15px rgba(255, 204, 51, 0.4); }
40
  .title { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; }
41
  .subtitle { font-size: 0.75rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.1em; }
42
 
@@ -47,199 +48,179 @@ body {
47
  font-weight: 600;
48
  border: 1px solid rgba(255,255,255,0.1);
49
  }
50
- .badge-online { background: rgba(16, 185, 129, 0.1); color: var(--success-green); }
51
- .badge-loops { background: rgba(59, 130, 246, 0.1); color: var(--optimize-blue); }
52
- .badge-convergence { background: rgba(168, 85, 247, 0.1); color: var(--convergence-purple); }
53
 
54
  /* SECTIONS */
55
- .section { max-width: 1200px; margin: 2.5rem auto; padding: 0 2rem; }
56
- .section-title { font-size: 1.1rem; margin-bottom: 1.5rem; display: flex; align-items: center; gap: 0.75rem; opacity: 0.8; }
57
-
58
- /* METRICS GRID */
59
- .metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1.25rem; }
60
-
61
- .metric-card {
62
- background: var(--panel-bg);
63
- border: 1px solid var(--border-color);
64
- padding: 1.25rem;
65
- border-radius: 12px;
66
- position: relative;
67
- overflow: hidden;
68
- transition: transform 0.2s, border-color 0.2s;
69
- }
70
- .metric-card:hover { transform: translateY(-2px); border-color: rgba(255, 255, 255, 0.2); }
71
-
72
- .metric-icon { font-size: 1.5rem; margin-bottom: 0.75rem; }
73
- .metric-label { font-size: 0.75rem; color: var(--text-secondary); text-transform: uppercase; }
74
- .metric-value { font-size: 1.25rem; font-weight: 700; margin: 0.25rem 0 0.75rem 0; }
75
- .metric-bar { height: 4px; background: rgba(255,255,255,0.05); border-radius: 2px; margin-bottom: 0.75rem; }
76
- .metric-fill { height: 100%; border-radius: 2px; }
77
- .fill-convergence { background: var(--convergence-purple); }
78
- .fill-phi { background: var(--phi-gold); }
79
- .fill-green { background: var(--success-green); }
80
- .fill-blue { background: var(--optimize-blue); }
81
- .fill-warn { background: var(--warn-orange); }
82
-
83
- .metric-status { font-size: 0.65rem; font-weight: 700; }
84
- .metric-status.ok { color: var(--success-green); }
85
-
86
- /* LOOPS GRID */
87
- .loops-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }
88
-
89
- .loop-card {
90
- background: var(--panel-bg);
91
- border: 1px solid var(--border-color);
92
- padding: 1.5rem;
93
- border-radius: 12px;
94
- border-left: 3px solid var(--accent-color);
95
  }
96
- .loop-card.active { border-left-color: var(--success-green); }
97
 
98
- .loop-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; }
99
- .loop-header h3 { font-size: 0.95rem; }
100
- .loop-badge {
101
- font-size: 0.65rem;
102
- font-weight: 700;
103
- padding: 0.2rem 0.5rem;
104
- border-radius: 4px;
105
  }
106
- .loop-badge.active { background: rgba(16, 185, 129, 0.1); color: var(--success-green); }
107
 
108
- .loop-desc { font-size: 0.85rem; color: var(--text-secondary); margin-bottom: 1rem; }
109
-
110
- .loop-stats {
111
- display: flex;
112
  gap: 1rem;
113
- flex-wrap: wrap;
114
  }
115
- .loop-stat { font-size: 0.75rem; color: var(--text-secondary); }
116
- .loop-stat strong { color: var(--text-primary); }
117
 
118
- /* RECALIBRATION PANEL */
119
- .recalibration-panel {
120
- background: var(--panel-bg);
121
- padding: 2rem;
122
- border-radius: 16px;
123
- border: 1px solid var(--border-color);
124
  }
125
 
126
- .panel-desc { font-size: 0.9rem; color: var(--text-secondary); margin-bottom: 1.5rem; }
127
-
128
- .recal-controls { display: flex; gap: 1rem; margin-bottom: 1.5rem; }
 
 
129
 
130
- .btn-recalibrate, .btn-reset {
131
- padding: 0.75rem 1.5rem;
132
- border-radius: 8px;
133
- font-weight: 700;
134
- cursor: pointer;
135
- border: none;
136
- transition: transform 0.2s;
 
 
 
 
 
 
 
137
  }
138
- .btn-recalibrate { background: var(--accent-color); color: #000; }
139
- .btn-reset { background: rgba(255,255,255,0.1); color: var(--text-primary); border: 1px solid var(--border-color); }
140
- .btn-recalibrate:hover, .btn-reset:hover { transform: scale(1.05); }
141
 
142
- .recal-log {
143
- margin-top: 1.5rem;
144
- padding: 1rem;
145
- background: rgba(0,0,0,0.3);
146
- border-radius: 8px;
147
- border: 1px solid var(--border-color);
148
- font-family: monospace;
149
- font-size: 0.75rem;
150
  }
151
 
152
- /* SUBSTRATE GRID */
153
- .substrate-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
 
155
  .substrate-card {
156
- background: rgba(15, 20, 30, 0.4);
157
- border: 1px solid var(--border-color);
 
158
  padding: 1rem;
159
- border-radius: 8px;
160
- position: relative;
161
  }
162
- .substrate-card.synced { border-left: 3px solid var(--success-green); }
163
 
164
- .substrate-name { font-size: 0.85rem; font-weight: 700; margin-bottom: 0.5rem; }
165
- .substrate-coherence, .substrate-drift { font-size: 0.7rem; color: var(--text-secondary); margin-bottom: 0.25rem; }
 
166
  .substrate-badge {
167
- position: absolute;
168
- top: 1rem;
169
- right: 1rem;
170
- font-size: 0.6rem;
171
  font-weight: 700;
172
- padding: 0.2rem 0.5rem;
173
- border-radius: 4px;
174
  }
175
- .substrate-badge.synced { background: rgba(16, 185, 129, 0.1); color: var(--success-green); }
176
 
177
- /* LOG CONTAINER */
178
- .log-container {
179
- background: #000;
180
- border-radius: 12px;
181
- border: 1px solid var(--border-color);
182
- overflow: hidden;
 
 
 
183
  }
184
 
185
- .log-toolbar {
186
- padding: 0.75rem 1.25rem;
187
- background: rgba(255,255,255,0.03);
188
- display: flex;
189
- align-items: center;
190
- gap: 0.75rem;
191
- font-size: 0.75rem;
192
- border-bottom: 1px solid var(--border-color);
193
  }
194
 
195
- .log-dot { width: 8px; height: 8px; border-radius: 50%; }
196
- .log-dot.green { background: var(--success-green); box-shadow: 0 0 8px var(--success-green); }
 
 
197
 
198
  .btn-clear {
199
- margin-left: auto;
200
- background: none;
201
- border: none;
202
  color: var(--text-secondary);
203
- cursor: pointer;
204
- font-size: 0.7rem;
205
  }
206
 
207
- .log-scroll {
208
- height: 250px;
209
- overflow-y: auto;
 
 
 
 
 
 
210
  padding: 1rem;
211
- font-family: "Fira Code", monospace;
212
- font-size: 0.75rem;
 
 
 
 
 
 
 
 
213
  }
214
 
215
- .log-entry { margin-bottom: 0.4rem; white-space: pre-wrap; }
216
- .log-time { color: var(--text-secondary); margin-right: 0.75rem; }
217
- .log-tag { font-weight: 700; margin-right: 0.75rem; }
218
- .log-tag.info { color: var(--accent-color); }
219
- .log-tag.success { color: var(--success-green); }
220
- .log-tag.optimize { color: var(--phi-gold); }
221
 
222
  /* FOOTER */
223
  .footer {
224
- border-top: 1px solid var(--border-color);
225
  padding: 2rem;
226
- margin-top: 4rem;
227
  color: var(--text-secondary);
228
- font-size: 0.75rem;
229
- }
230
-
231
- .footer-inner {
232
- max-width: 1200px;
233
- margin: 0 auto;
234
- display: flex;
235
- justify-content: space-between;
236
  }
237
 
238
- /* SCROLLBAR */
239
- ::-webkit-scrollbar { width: 6px; }
240
- ::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); }
241
- ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }
242
- ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }
243
 
244
- @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.6; } 100% { opacity: 1; } }
245
- .status-cluster .badge-online { animation: pulse 2s ease-in-out infinite; }
 
 
 
 
 
1
  :root {
2
+ /* TEQUMSA Organism Branding — Green→Indigo Spectrum */
3
+ --bg-color: #0a0a12;
4
+ --panel-bg: rgba(10, 30, 20, 0.8);
5
+ --accent-color: #22c55e; /* Green */
6
+ --phi-gold: #c8a84b;
7
+ --text-primary: #e0e0f0;
8
+ --text-secondary: #7070a0;
9
+ --border-color: rgba(34, 197, 94, 0.2);
10
+ --success-green: #22c55e;
11
+ --optimize-blue: #6366f1; /* Indigo */
12
+ --convergence-purple: #8b5cf6;
13
  --warn-orange: #f59e0b;
14
  }
15
 
 
17
 
18
  body {
19
  background: var(--bg-color);
20
+ background-image: radial-gradient(circle at 30% 40%, #111827 0%, #0a0a12 40%, #16a34a 100%);
21
  color: var(--text-primary);
22
+ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
23
  line-height: 1.6;
24
  min-height: 100vh;
25
  }
 
37
 
38
  .header-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; }
39
  .logo-block { display: flex; align-items: center; gap: 1.25rem; }
40
+ .phi-symbol { font-size: 2.2rem; font-weight: bold; color: var(--phi-gold); text-shadow: 0 0 15px rgba(200, 168, 75, 0.4); }
41
  .title { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; }
42
  .subtitle { font-size: 0.75rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.1em; }
43
 
 
48
  font-weight: 600;
49
  border: 1px solid rgba(255,255,255,0.1);
50
  }
51
+ .badge-online { background: #10b981; color: #fff; }
52
+ .badge-loops { background: var(--optimize-blue); color: #fff; }
53
+ .badge-convergence { background: var(--convergence-purple); color: #fff; }
54
 
55
  /* SECTIONS */
56
+ .section {
57
+ max-width: 1200px;
58
+ margin: 2rem auto;
59
+ padding: 0 2rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
 
61
 
62
+ .section-title {
63
+ font-size: 1rem;
64
+ font-weight: 600;
65
+ letter-spacing: 0.05em;
66
+ margin-bottom: 1rem;
67
+ color: var(--accent-color);
68
+ text-transform: uppercase;
69
  }
 
70
 
71
+ /* METRICS GRID */
72
+ .metrics-grid {
73
+ display: grid;
74
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
75
  gap: 1rem;
76
+ margin-bottom: 2rem;
77
  }
 
 
78
 
79
+ .metric-card {
80
+ background: rgba(15, 20, 30, 0.8);
81
+ border: 1px solid rgba(34, 197, 94, 0.15);
82
+ border-radius: 8px;
83
+ padding: 1rem;
84
+ transition: all 0.3s;
85
  }
86
 
87
+ .metric-card:hover {
88
+ border-color: var(--accent-color);
89
+ transform: translateY(-2px);
90
+ box-shadow: 0 8px 16px rgba(34, 197, 94, 0.1);
91
+ }
92
 
93
+ .metric-icon { font-size: 1.5rem; }
94
+ .metric-label { font-size: 0.8rem; color: var(--text-secondary); margin: 0.5rem 0; }
95
+ .metric-value { font-size: 1.5rem; font-weight: 700; color: var(--accent-color); }
96
+ .metric-bar {
97
+ height: 4px;
98
+ background: rgba(255,255,255,0.1);
99
+ border-radius: 2px;
100
+ overflow: hidden;
101
+ margin-top: 0.5rem;
102
+ }
103
+ .metric-fill {
104
+ height: 100%;
105
+ background: linear-gradient(90deg, var(--success-green), var(--optimize-blue));
106
+ transition: width 0.5s;
107
  }
108
+ .metric-status { font-size: 0.7rem; color: var(--success-green); margin-top: 0.25rem; }
 
 
109
 
110
+ /* FEEDBACK LOOPS */
111
+ .loop-grid {
112
+ display: grid;
113
+ gap: 1rem;
 
 
 
 
114
  }
115
 
116
+ .loop-card {
117
+ background: rgba(15, 20, 30, 0.7);
118
+ border-left: 3px solid var(--optimize-blue);
119
+ border-radius: 6px;
120
+ padding: 1rem 1.25rem;
121
+ }
122
+
123
+ .loop-card h3 { font-size: 0.95rem; margin-bottom: 0.5rem; }
124
+ .loop-status { display: inline-block; padding: 0.15rem 0.5rem; border-radius: 3px; font-size: 0.65rem; font-weight: 700; background: var(--success-green); color: #000; }
125
+ .loop-details { font-size: 0.85rem; color: var(--text-secondary); margin: 0.75rem 0; }
126
+ .loop-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0.75rem; }
127
+ .loop-metric { font-size: 0.8rem; }
128
+ .loop-metric strong { color: var(--accent-color); }
129
+
130
+ /* SUBSTRATE MAP */
131
+ .substrate-grid {
132
+ display: grid;
133
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
134
+ gap: 1rem;
135
+ }
136
 
137
  .substrate-card {
138
+ background: rgba(15, 20, 30, 0.7);
139
+ border: 1px solid rgba(139, 92, 246, 0.2);
140
+ border-radius: 6px;
141
  padding: 1rem;
 
 
142
  }
 
143
 
144
+ .substrate-name { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.5rem; }
145
+ .substrate-coherence { font-size: 0.85rem; color: var(--text-secondary); }
146
+ .substrate-drift { font-size: 0.85rem; color: var(--text-secondary); }
147
  .substrate-badge {
148
+ display: inline-block;
149
+ padding: 0.15rem 0.5rem;
150
+ border-radius: 3px;
151
+ font-size: 0.65rem;
152
  font-weight: 700;
153
+ margin-top: 0.5rem;
 
154
  }
155
+ .substrate-badge.synced { background: var(--success-green); color: #000; }
156
 
157
+ /* BUTTONS */
158
+ button {
159
+ padding: 0.65rem 1.25rem;
160
+ border: none;
161
+ border-radius: 6px;
162
+ font-size: 0.85rem;
163
+ font-weight: 600;
164
+ cursor: pointer;
165
+ transition: all 0.2s;
166
  }
167
 
168
+ .btn-primary {
169
+ background: linear-gradient(135deg, var(--success-green), var(--optimize-blue));
170
+ color: #fff;
 
 
 
 
 
171
  }
172
 
173
+ .btn-primary:hover {
174
+ transform: scale(1.05);
175
+ box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
176
+ }
177
 
178
  .btn-clear {
179
+ background: rgba(255, 255, 255, 0.05);
 
 
180
  color: var(--text-secondary);
181
+ border: 1px solid rgba(255, 255, 255, 0.1);
 
182
  }
183
 
184
+ .btn-clear:hover {
185
+ background: rgba(255, 255, 255, 0.1);
186
+ }
187
+
188
+ /* EVENT FEED */
189
+ .log-container {
190
+ background: rgba(10, 10, 18, 0.9);
191
+ border: 1px solid rgba(34, 197, 94, 0.2);
192
+ border-radius: 6px;
193
  padding: 1rem;
194
+ max-height: 300px;
195
+ overflow-y: auto;
196
+ }
197
+
198
+ .log-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; }
199
+ .log-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--success-green); margin-right: 0.5rem; animation: pulse 2s infinite; }
200
+
201
+ @keyframes pulse {
202
+ 0%, 100% { opacity: 1; }
203
+ 50% { opacity: 0.3; }
204
  }
205
 
206
+ .log-scroll { font-size: 0.8rem; line-height: 1.8; color: var(--text-secondary); font-family: "Courier New", monospace; }
 
 
 
 
 
207
 
208
  /* FOOTER */
209
  .footer {
210
+ text-align: center;
211
  padding: 2rem;
 
212
  color: var(--text-secondary);
213
+ font-size: 0.8rem;
214
+ border-top: 1px solid rgba(34, 197, 94, 0.1);
215
+ margin-top: 3rem;
 
 
 
 
 
216
  }
217
 
218
+ .footer span { display: block; margin: 0.25rem 0; }
219
+ #footerTime { color: var(--phi-gold); }
 
 
 
220
 
221
+ /* RESPONSIVE */
222
+ @media (max-width: 768px) {
223
+ .metrics-grid { grid-template-columns: 1fr; }
224
+ .substrate-grid { grid-template-columns: 1fr; }
225
+ .section { padding: 0 1rem; }
226
+ }