File size: 4,234 Bytes
469a4d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
<!DOCTYPE html>
<html lang="ro">
<head>
<link rel="icon" type="image/svg+xml" href="favicon.svg">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>IDEA | 503</title>
<link rel="stylesheet" href="style.css">
<style>
  body {
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    min-height:100dvh; padding:28px 20px;
    text-align:center;
  }

  .e-logo {
    width:38px; height:38px; opacity:0.18;
    margin-bottom:28px;
    animation:fadeIn 0.6s ease both;
  }

  .e-code {
    font-family:'Cormorant Garamond', serif;
    font-size:96px; font-weight:600;
    line-height:1; letter-spacing:10px;
    color:rgba(240,240,240,0.05);
    animation:fadeIn 0.6s ease 0.05s both;
    user-select:none;
  }

  .e-title {
    font-family:'Cormorant Garamond', serif;
    font-size:26px; letter-spacing:3px;
    margin-top:4px; margin-bottom:10px;
    animation:fadeIn 0.6s ease 0.1s both;
  }

  .e-sub {
    font-size:10px; color:var(--white-dim);
    letter-spacing:2px; line-height:2.4;
    margin-bottom:0;
    animation:fadeIn 0.6s ease 0.15s both;
  }

  /* Banner mentenanță — mai jos, bine spațiat */
  .maintenance-banner {
    display:none;
    margin-top:32px; margin-bottom:0;
    padding:14px 24px;
    border:1px solid rgba(255,200,60,0.28);
    background:rgba(35,26,4,0.7);
    font-size:9px; letter-spacing:2px;
    color:rgba(255,205,60,0.85);
    animation:fadeIn 0.5s ease 0.2s both;
  }
  .maintenance-banner .mb-dot {
    display:inline-block;
    width:6px; height:6px; border-radius:50%;
    background:rgba(255,200,60,0.8);
    margin-right:8px; vertical-align:middle;
    animation:blink 1.6s ease-in-out infinite;
  }

  /* Status DB */
  .db-status {
    margin-top:32px;
    font-size:9px; color:var(--white-faint);
    letter-spacing:1px; line-height:2.6;
    animation:fadeIn 0.6s ease 0.25s both;
  }
  .db-ok  { color:rgba(77,154,77,0.7); }
  .db-err { color:rgba(180,60,60,0.7); }

  /* Buton */
  .e-actions {
    margin-top:36px;
    animation:fadeIn 0.6s ease 0.3s both;
    display:flex; gap:10px; justify-content:center; flex-wrap:wrap;
  }
</style>
</head>
<body>

<img src="logo.svg" class="e-logo" alt="IDEA">

<div class="e-code">503</div>
<div class="e-title">Serviciu Indisponibil</div>
<div class="e-sub">
  Serverul este temporar indisponibil sau în mentenanță.<br>
  Te rugăm să revii în câteva minute.
</div>

<div class="maintenance-banner" id="maintenance-banner">
  <span class="mb-dot"></span>
  SERVER ÎN MENTENANȚĂ &nbsp;·&nbsp; REVENIRE ÎN ~15 MINUTE
</div>

<div class="db-status">
  <div><span class="db-ok"></span>&nbsp; Firebase Firestore — ACTIV</div>
  <div><span class="db-ok"></span>&nbsp; Cloudinary Storage — ACTIV</div>
  <div id="server-line"><span class="db-ok"></span>&nbsp; Server Flask — SE VERIFICĂ</div>
</div>

<div class="e-actions" id="e-actions">
  <a href="index.html" class="btn-primary" style="text-decoration:none;padding:13px 28px;letter-spacing:3px;">
    ← LOGIN
  </a>
</div>

<script>
const isMaintenance = localStorage.getItem('idea_maintenance') === '1';
const isAdmin = sessionStorage.getItem('vs_role') === 'admin';

if (isMaintenance) {
  document.getElementById('maintenance-banner').style.display = 'block';
}

if (isAdmin) {
  document.getElementById('e-actions').innerHTML = `
    <a href="admin-dashboard.html" class="btn-primary" style="text-decoration:none;padding:13px 28px;letter-spacing:3px;">
      ADMIN PANEL →
    </a>
    <a href="index.html" class="btn-ghost" style="text-decoration:none;padding:13px 20px;">
      LOGIN
    </a>`;
}

// Ping server
fetch('/drive/test', { signal: AbortSignal.timeout(5000) })
  .then(r => {
    const line = document.getElementById('server-line');
    if (r.ok) {
      line.innerHTML = '<span class="db-ok">✓</span>&nbsp; Server Flask — ACTIV';
    } else {
      line.innerHTML = '<span class="db-err">✕</span>&nbsp; Server Flask — EROARE ' + r.status;
    }
  })
  .catch(() => {
    document.getElementById('server-line').innerHTML =
      '<span class="db-err">✕</span>&nbsp; Server Flask — INACTIV';
  });
</script>
</body>
</html>