source: lan-frontend/src/styles/theme.css@ 2058e5c

Last change on this file since 2058e5c was 2058e5c, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Working / before login

  • Property mode set to 100644
File size: 9.4 KB
Line 
1/* =========================
2 LAN Security Monitor Theme
3 Dark Navy + Light Blue
4 ========================= */
5
6:root{
7 --bg0: #070b16;
8 --bg1: #0a1020;
9 --bg2: #0e1730;
10
11 --panel: rgba(15,23,42,0.62);
12 --panel2: rgba(2,6,23,0.35);
13
14 --border: rgba(96,165,250,0.18);
15 --border2: rgba(147,197,253,0.28);
16
17 --text: rgba(255,255,255,0.92);
18 --muted: rgba(191,219,254,0.82);
19 --dim: rgba(148,163,184,0.85);
20
21 --accent: rgba(96,165,250,0.95); /* light blue */
22 --accent2: rgba(34,211,238,0.80); /* cyan */
23 --danger: rgba(239,68,68,0.95);
24 --warn: rgba(245,158,11,0.95);
25 --ok: rgba(34,197,94,0.95);
26
27 --shadow: 0 18px 45px rgba(0,0,0,0.32);
28 --shadow2: 0 10px 25px rgba(0,0,0,0.22);
29
30 --r12: 12px;
31 --r16: 16px;
32 --r18: 18px;
33}
34
35*{ box-sizing: border-box; }
36html, body { height: 100%; }
37body{
38 margin:0;
39 color: var(--text);
40 background:
41 radial-gradient(900px 460px at 20% -10%, rgba(96,165,250,0.18), transparent 60%),
42 radial-gradient(800px 420px at 80% 0%, rgba(34,211,238,0.10), transparent 55%),
43 radial-gradient(1000px 700px at 50% 120%, rgba(30,64,175,0.16), transparent 60%),
44 linear-gradient(180deg, var(--bg0), var(--bg1) 45%, #060913 100%);
45 font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
46}
47
48/* Layout */
49.app-wrap{
50 max-width: 1200px;
51 margin: 0 auto;
52 padding: 16px 18px 40px;
53}
54
55/* =========================
56 Panels
57 ========================= */
58.panel{
59 background: var(--panel);
60 border: 1px solid var(--border);
61 border-radius: var(--r18);
62 box-shadow: var(--shadow2);
63 overflow: hidden;
64 backdrop-filter: blur(10px);
65}
66.panel-head{
67 display:flex;
68 align-items:center;
69 justify-content: space-between;
70 gap: 12px;
71 padding: 14px 16px;
72 border-bottom: 1px solid rgba(96,165,250,0.14);
73 background: linear-gradient(180deg, rgba(2,6,23,0.32), rgba(2,6,23,0.12));
74}
75.panel-title{
76 font-weight: 900;
77 letter-spacing: 0.3px;
78 color: rgba(255,255,255,0.95);
79}
80.panel-body{
81 padding: 16px;
82}
83
84/* small helpers */
85.pill{
86 display:inline-flex;
87 align-items:center;
88 gap: 10px;
89 padding: 8px 12px;
90 border-radius: 999px;
91 background: rgba(30,41,59,0.60);
92 border: 1px solid rgba(96,165,250,0.22);
93 color: rgba(255,255,255,0.92);
94 font-weight: 800;
95 font-size: 12px;
96 box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
97}
98.small{
99 font-size: 12px;
100 color: var(--dim);
101 line-height: 1.35;
102}
103.dim{ color: var(--dim); font-weight: 700; }
104
105/* =========================
106 Inputs / Selects / Buttons
107 ========================= */
108.input, .select{
109 width: 100%;
110 padding: 10px 12px;
111 border-radius: var(--r12);
112 border: 1px solid rgba(96,165,250,0.18);
113 background: rgba(2,6,23,0.35);
114 color: rgba(255,255,255,0.92);
115 outline: none;
116 font-weight: 700;
117 transition: border-color .12s ease, background .12s ease, transform .12s ease;
118}
119.input::placeholder{ color: rgba(148,163,184,0.75); }
120.input:focus, .select:focus{
121 border-color: rgba(96,165,250,0.42);
122 background: rgba(2,6,23,0.46);
123}
124
125.btn{
126 appearance: none;
127 border: 1px solid rgba(96,165,250,0.22);
128 background: rgba(15,23,42,0.55);
129 color: rgba(255,255,255,0.92);
130 padding: 9px 12px;
131 border-radius: var(--r12);
132 font-weight: 900;
133 font-size: 13px;
134 cursor: pointer;
135 transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
136 box-shadow: 0 8px 20px rgba(0,0,0,0.18);
137}
138.btn:hover{
139 transform: translateY(-1px);
140 background: rgba(30,41,59,0.65);
141 border-color: rgba(96,165,250,0.38);
142}
143.btn:disabled{
144 opacity: .6;
145 cursor: not-allowed;
146 transform: none;
147}
148.btn.primary{
149 background: linear-gradient(135deg, rgba(37,99,235,0.95), rgba(56,189,248,0.70));
150 border-color: rgba(147,197,253,0.35);
151 color: rgba(5,12,24,0.95);
152}
153.btn.primary:hover{
154 background: linear-gradient(135deg, rgba(59,130,246,0.95), rgba(34,211,238,0.75));
155}
156
157/* Filters row */
158.filters{
159 display:grid;
160 grid-template-columns: 1.6fr 0.6fr auto;
161 gap: 10px;
162}
163@media (max-width: 820px){
164 .filters{ grid-template-columns: 1fr; }
165}
166
167/* =========================
168 Stats grid
169 ========================= */
170.stats-grid{
171 display: grid;
172 grid-template-columns: repeat(3, minmax(0, 1fr));
173 gap: 12px;
174 margin: 14px 0;
175}
176@media (max-width: 900px){
177 .stats-grid{ grid-template-columns: 1fr; }
178}
179
180.stat-card{
181 background:
182 radial-gradient(500px 180px at 20% 0%, rgba(96,165,250,0.16), transparent 55%),
183 rgba(15,23,42,0.58);
184 border: 1px solid rgba(96,165,250,0.18);
185 border-radius: var(--r18);
186 padding: 14px 16px;
187 box-shadow: var(--shadow2);
188 backdrop-filter: blur(10px);
189}
190.stat-card .label{
191 color: var(--dim);
192 font-size: 12px;
193 font-weight: 900;
194 letter-spacing: .8px;
195 text-transform: uppercase;
196}
197.stat-card .value{
198 font-size: 28px;
199 font-weight: 1000;
200 margin: 8px 0 2px;
201 color: rgba(255,255,255,0.95);
202}
203.stat-card .sub{
204 color: var(--muted);
205 font-size: 12px;
206}
207
208/* =========================
209 Computers grid + Card
210 ========================= */
211.computers-grid{
212 display:grid;
213 grid-template-columns: repeat(3, minmax(0, 1fr));
214 gap: 12px;
215}
216@media (max-width: 980px){
217 .computers-grid{ grid-template-columns: 1fr; }
218}
219
220.card{
221 width:100%;
222 text-align:left;
223 border-radius: var(--r18);
224 border: 1px solid rgba(96,165,250,0.18);
225 background:
226 radial-gradient(520px 220px at 20% 0%, rgba(96,165,250,0.14), transparent 55%),
227 rgba(15,23,42,0.54);
228 box-shadow: var(--shadow2);
229 padding: 14px;
230 cursor: pointer;
231 transition: transform .14s ease, border-color .14s ease, background .14s ease;
232 backdrop-filter: blur(10px);
233}
234.card:hover{
235 transform: translateY(-3px);
236 border-color: rgba(96,165,250,0.38);
237 background:
238 radial-gradient(520px 220px at 20% 0%, rgba(34,211,238,0.12), transparent 55%),
239 rgba(15,23,42,0.62);
240}
241.card:active{ transform: translateY(-1px); }
242
243.card-head{
244 display:flex;
245 justify-content: space-between;
246 align-items:center;
247 gap: 10px;
248 margin-bottom: 10px;
249}
250.card-title{
251 font-weight: 1000;
252 color: rgba(255,255,255,0.95);
253 letter-spacing: .2px;
254}
255.dot{
256 width: 10px;
257 height: 10px;
258 border-radius: 999px;
259 box-shadow: 0 0 0 4px rgba(255,255,255,0.04);
260}
261.dot.online{ background: var(--ok); box-shadow: 0 0 0 4px rgba(34,197,94,0.12); }
262.dot.idle{ background: var(--warn); box-shadow: 0 0 0 4px rgba(245,158,11,0.12); }
263.dot.offline{ background: rgba(148,163,184,0.8); box-shadow: 0 0 0 4px rgba(148,163,184,0.10); }
264
265.meta{
266 display:grid;
267 gap: 6px;
268 color: rgba(226,232,240,0.92);
269 font-size: 13px;
270 line-height: 1.25;
271}
272
273.kpis{
274 display:grid;
275 grid-template-columns: repeat(3, minmax(0, 1fr));
276 gap: 10px;
277 margin-top: 12px;
278 padding-top: 12px;
279 border-top: 1px solid rgba(96,165,250,0.14);
280}
281.kpi{
282 border-radius: var(--r16);
283 border: 1px solid rgba(96,165,250,0.14);
284 background: rgba(2,6,23,0.30);
285 padding: 10px 10px;
286}
287.kpi .k{
288 font-size: 11px;
289 color: var(--dim);
290 font-weight: 900;
291 letter-spacing: .6px;
292 text-transform: uppercase;
293}
294.kpi .v{
295 margin-top: 6px;
296 font-size: 18px;
297 font-weight: 1000;
298 color: rgba(255,255,255,0.95);
299}
300
301/* =========================
302 Modal (shared classes)
303 ========================= */
304.backdrop{
305 position: fixed;
306 inset: 0;
307 background: rgba(2,6,23,0.72);
308 backdrop-filter: blur(6px);
309 display:flex;
310 align-items:center;
311 justify-content:center;
312 padding: 20px;
313 z-index: 60;
314}
315.modal{
316 width: min(920px, 96vw);
317 border-radius: var(--r18);
318 background:
319 radial-gradient(900px 420px at 20% 0%, rgba(96,165,250,0.18), transparent 60%),
320 radial-gradient(700px 350px at 80% 10%, rgba(34,211,238,0.10), transparent 55%),
321 rgba(10,16,32,0.92);
322 border: 1px solid rgba(96,165,250,0.22);
323 box-shadow: 0 30px 80px rgba(0,0,0,0.45);
324 overflow: hidden;
325}
326.modal-head{
327 padding: 14px 16px;
328 display:flex;
329 align-items:center;
330 justify-content: space-between;
331 gap: 10px;
332 border-bottom: 1px solid rgba(96,165,250,0.18);
333}
334.modal-title{
335 font-weight: 1000;
336 color: rgba(255,255,255,0.95);
337 letter-spacing: .2px;
338}
339.modal-sub{
340 margin-top: 2px;
341 font-size: 12px;
342 color: var(--muted);
343}
344
345/* If you have drawer classes */
346.ai-drawer{
347 position: fixed;
348 top: 0;
349 right: 0;
350 height: 100vh;
351 width: min(420px, 92vw);
352 background:
353 radial-gradient(700px 400px at 20% 0%, rgba(96,165,250,0.18), transparent 55%),
354 rgba(10,16,32,0.94);
355 border-left: 1px solid rgba(96,165,250,0.20);
356 box-shadow: -20px 0 60px rgba(0,0,0,0.35);
357 z-index: 70;
358 padding: 14px;
359}
360.ai-header{
361 font-weight: 1000;
362 color: rgba(255,255,255,0.95);
363 margin-bottom: 10px;
364}
365.ai-messages{
366 height: calc(100vh - 160px);
367 overflow: auto;
368 border-radius: var(--r16);
369 border: 1px solid rgba(96,165,250,0.14);
370 background: rgba(2,6,23,0.28);
371 padding: 10px;
372}
373.ai-msg{
374 color: rgba(226,232,240,0.92);
375 font-size: 13px;
376 line-height: 1.35;
377 padding: 10px;
378 border-radius: 12px;
379 border: 1px solid rgba(96,165,250,0.12);
380 background: rgba(15,23,42,0.45);
381 margin-bottom: 10px;
382}
383.ai-input{
384 width: 100%;
385 margin-top: 10px;
386 padding: 10px 12px;
387 border-radius: var(--r12);
388 border: 1px solid rgba(96,165,250,0.18);
389 background: rgba(2,6,23,0.35);
390 color: rgba(255,255,255,0.92);
391 outline: none;
392 font-weight: 700;
393}
394.ai-input::placeholder{ color: rgba(148,163,184,0.75); }
395
396/* Scrollbars (nice) */
397*::-webkit-scrollbar{ width: 10px; height: 10px; }
398*::-webkit-scrollbar-thumb{
399 background: rgba(96,165,250,0.20);
400 border: 2px solid rgba(2,6,23,0.35);
401 border-radius: 999px;
402}
403*::-webkit-scrollbar-track{ background: rgba(2,6,23,0.25); }
Note: See TracBrowser for help on using the repository browser.