File size: 15,467 Bytes
673b4f0
 
4a52349
673b4f0
 
 
 
 
 
 
4a52349
673b4f0
4a52349
 
 
 
673b4f0
 
 
 
 
 
4a52349
673b4f0
4a52349
673b4f0
 
 
bfc1c58
673b4f0
 
 
4a52349
bfc1c58
 
4a52349
673b4f0
4a52349
673b4f0
4a52349
673b4f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4a52349
 
673b4f0
 
4a52349
 
 
 
 
 
 
 
5fe2177
4a52349
 
 
 
a6eccd4
4a52349
a6eccd4
 
673b4f0
 
 
 
 
 
 
 
 
 
 
 
 
 
a44c048
7086566
a44c048
673b4f0
 
a44c048
 
 
 
4a52349
 
a44c048
 
7086566
4a52349
a44c048
 
 
 
 
7086566
a44c048
db69a0c
 
 
673b4f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4a52349
bfc1c58
673b4f0
 
 
 
 
 
 
 
 
 
d025295
4a52349
d025295
4a52349
d025295
 
bfc1c58
d025295
 
 
 
 
4a52349
 
 
d025295
 
 
 
 
4a52349
d025295
 
 
 
4a52349
d025295
 
 
db69a0c
d025295
 
 
 
 
 
 
673b4f0
 
 
d025295
673b4f0
4a52349
673b4f0
 
 
 
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
:root{
  --primary:#1f3f87;
  --primary-dark:#12356f;
  --primary-2:#2563c7;
  --teal:#1d9a8a;
  --green:#62b846;
  --cyan:#22a8d8;
  --ink:#102035;
  --muted:#61728a;
  --line:#dfe7f1;
  --bg:#f6f9fc;
  --card:#fff;
  --radius:16px;
  --shadow:0 22px 54px rgba(18,51,86,.12);
  --soft-shadow:0 10px 28px rgba(18,51,86,.08);
  --accent-line:linear-gradient(90deg,var(--primary),var(--teal),var(--green));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-size:16px;
  font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;
  background:linear-gradient(135deg,rgba(31,63,135,.08),rgba(34,168,216,.06) 46%,rgba(98,184,70,.08)),var(--bg);
  min-height:100vh;
}
.wrap{width:min(1180px,92vw);margin:auto;padding:22px 0 96px}
.site-header{position:sticky;top:14px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:14px 20px;flex-wrap:wrap;margin-bottom:34px;padding:14px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);border-radius:20px;box-shadow:0 14px 38px rgba(18,51,86,.1);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.brand strong{display:block;color:var(--primary);font-size:18px}
.brand small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.logo,.login-logo{width:48px;height:48px;border-radius:15px;background:radial-gradient(15px 15px at 28% 22%,rgba(255,255,255,.95),transparent 62%),linear-gradient(135deg,var(--primary),var(--cyan) 56%,var(--green));box-shadow:0 12px 28px rgba(31,63,135,.18);flex:none}
.nav{display:grid;grid-template-columns:repeat(6,minmax(112px,1fr));gap:6px;width:100%;order:2;padding:6px;border:1px solid #dce7f2;background:#f8fbfe;border-radius:16px}
.nav-link{border:0;background:transparent;padding:11px 12px;border-radius:12px;color:#40536e;font:inherit;cursor:pointer;text-align:center;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.nav-link:hover,.nav-link.active{background:#fff;color:var(--primary);box-shadow:0 8px 18px rgba(18,51,86,.09);font-weight:800}
.view{display:none}.view.active{display:block}
.hero{padding:10px 0 20px}
.eyebrow{margin:0 0 6px;color:var(--teal);font-size:13px;font-weight:900}
.hero h1,.section-heading h1{font-size:clamp(29px,4vw,42px);margin:0 0 8px;color:var(--primary-dark);letter-spacing:0}
.hero p,.section-heading p{margin:0;color:var(--muted);line-height:1.75}
.card,.entity-card,.table-wrap{background:rgba(255,255,255,.94);border:1px solid rgba(223,231,241,.92);border-radius:var(--radius);box-shadow:var(--shadow)}
.search-card,.batch-card{padding:22px}
.search-card label,.batch-card label{display:block;font-weight:900;color:var(--primary);margin-bottom:10px}
.search-row{display:flex;gap:10px}
input,textarea{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:14px;background:#fff;outline:none}
input:focus,textarea:focus{border-color:rgba(29,154,138,.65);box-shadow:0 0 0 4px rgba(29,154,138,.13)}
.search-row input{flex:1;padding:14px 16px}
.btn{border:0;border-radius:14px;padding:12px 17px;font:inherit;font-weight:900;cursor:pointer;white-space:nowrap;transition:opacity .2s,transform .1s,box-shadow .2s}
.btn:hover{opacity:.92;box-shadow:var(--soft-shadow)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.primary{background:linear-gradient(135deg,var(--primary),var(--teal));color:#fff}
.secondary{background:#fff;color:var(--primary);border:1px solid var(--line)}
.hint{color:var(--muted);font-size:12.5px;line-height:1.7}
.strong-hint{margin-top:-4px;margin-bottom:12px;color:#35516d}
.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:20px 0}
.metric{background:linear-gradient(180deg,#fff,rgba(250,253,255,.96));border:1px solid #dbe6f1;border-radius:15px;padding:17px;box-shadow:var(--soft-shadow);position:relative;overflow:hidden}
.metric:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--accent-line)}
.metric b{font-size:23px;display:block;color:var(--primary);margin-bottom:3px}
.metric span{color:var(--muted);font-size:12px}
.metric small{display:block;margin-top:8px;color:#526a84;font-size:12.5px;line-height:1.6}
.dashboard-metrics{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.dashboard-metrics .metric{min-height:126px;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:22px 20px;border-radius:18px;background:linear-gradient(180deg,#fff 0%,#f9fcff 100%)}
.dashboard-metrics .metric b{font-size:36px;line-height:1;color:var(--primary-dark)}
.dashboard-metrics .metric span{margin-top:7px;color:var(--primary);font-size:14px;font-weight:950}
.dashboard-metrics .metric:nth-child(1):before{background:linear-gradient(90deg,var(--primary-dark),var(--primary-2))}
.dashboard-metrics .metric:nth-child(2):before{background:linear-gradient(90deg,var(--teal),var(--green))}
.dashboard-metrics .metric:nth-child(3):before{background:linear-gradient(90deg,#245a86,var(--cyan))}
.metric-action{cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}
.metric-action:after{content:"عرض التفاصيل";align-self:center;display:inline-flex;margin-top:12px;padding:5px 12px;border-radius:999px;background:#eefaf7;color:#087b70;font-size:12px;font-weight:950}
.metric-action:hover,.metric-action:focus{transform:translateY(-3px);box-shadow:0 26px 58px rgba(18,51,86,.16);border-color:rgba(29,154,138,.45);outline:none}
.dashboard-details{margin-top:22px}
.dashboard-details.card{padding:22px;border-top:4px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--accent-line) border-box}
.dashboard-detail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}
.dashboard-detail-head h2{margin:0 0 5px;color:var(--primary-dark);font-size:24px}
.dashboard-detail-head p{margin:0;color:var(--muted);font-size:13px}
.dashboard-status-list{gap:9px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:14px;margin:28px 0 14px}
.section-heading h2{margin:0 0 5px;color:var(--primary);font-size:21px}
.results{display:grid;gap:14px}
.empty-state{padding:30px;background:#fff;border:1px dashed #b7c7d9;border-radius:var(--radius);color:var(--muted);text-align:center}
.empty-state.small{padding:18px}
.entity-card{overflow:hidden}
.entity-top{padding:18px 20px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;background:linear-gradient(90deg,rgba(31,63,135,.05),rgba(29,154,138,.04))}
.entity-top h3{margin:0;color:var(--primary);font-size:18px}
.entity-top p{margin:6px 0 0;color:var(--muted);font-size:13px}
.badges{display:flex;gap:7px;flex-wrap:wrap}
.badge{font-size:12px;padding:6px 10px;border-radius:999px;background:#f3f7fb;border:1px solid var(--line);color:#4e627d;white-space:nowrap}
.badge.ok{background:#eefaf2;border-color:#cdeed8;color:#13763d}
.badge.warn{background:#fff8e8;border-color:#f4dfad;color:#886100}
.badge.danger{background:#fff0f0;border-color:#f1c5c5;color:#a82a2a}
.occurrences{border-top:1px solid var(--line);background:#fff}
.occurrence{display:grid;grid-template-columns:1fr 1.25fr 1.2fr;gap:14px;padding:17px 20px;border-bottom:1px solid #dbe5f0;font-size:15px;align-items:center;text-align:center}
.occurrence:nth-child(even){background:#fbfdff}
.occurrence:last-child{border:0}
.occurrence span{color:var(--muted);display:block;font-size:11px;margin-bottom:4px}
.occurrence-head{background:linear-gradient(90deg,var(--primary),#226d68)!important;color:#fff;font-weight:900;font-size:13px;padding-top:12px;padding-bottom:12px}
.occurrence-head div{color:#fff}
.table-wrap{overflow:auto;border-color:#cfdbea;background:#fff}
.table-wrap:focus-within{box-shadow:0 0 0 4px rgba(29,154,138,.12),var(--shadow)}
table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;font-size:16px;line-height:1.9;background:#fff}
th{text-align:center;color:#fff;background:linear-gradient(135deg,var(--primary-dark),#206f70);position:sticky;top:0;z-index:1;font-weight:950;font-size:15px;border-bottom:0;box-shadow:inset 0 -1px 0 rgba(255,255,255,.18)}
th:first-child{border-top-right-radius:calc(var(--radius) - 2px)}
th:last-child{border-top-left-radius:calc(var(--radius) - 2px)}
th,td{padding:17px 18px;border-bottom:1px solid #dbe5f0;vertical-align:middle;text-align:center}
td{color:#102035;font-weight:700;background:#fff}
tbody tr:nth-child(even) td{background:#f8fbfd}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#eef8f7}
td:nth-child(1),td:nth-child(3),td:nth-child(4){white-space:nowrap}
td:nth-child(2),td:nth-child(5){max-width:380px;white-space:normal}
.row-button{display:block;width:100%;border:0;background:transparent;text-align:center;font:inherit;cursor:pointer;padding:0;color:var(--primary);font-weight:950;letter-spacing:.2px}
.row-button:hover{text-decoration:underline;text-underline-offset:4px;color:#145f74}
.stacked-list{display:grid;gap:6px;justify-items:center;text-align:center;line-height:1.65}
.stacked-list span{display:block;width:100%;padding-bottom:6px;border-bottom:1px solid #e7eef6}
.stacked-list span:last-child{padding-bottom:0;border-bottom:0}
.batch-card textarea{width:100%;padding:15px;resize:vertical;line-height:1.7;min-height:250px}
.batch-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.batch-actions div{display:flex;gap:8px}
.small-search{padding:11px 13px;width:min(280px,100%)}
.survey-grid{display:grid;grid-template-columns:1fr;gap:14px}
.detail-card{padding:0;overflow:hidden}
.detail-card summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(90deg,#fff,rgba(34,168,216,.06))}
.detail-card summary::-webkit-details-marker{display:none}
.detail-card summary strong{display:block;color:var(--primary);font-size:18px;margin-bottom:5px}
.detail-card summary small{display:block;color:var(--muted);font-size:13px}
.detail-card summary i{font-style:normal;color:var(--teal);font-weight:900;white-space:nowrap}
.detail-card[open] summary{border-bottom:1px solid var(--line)}
.detail-body{padding:18px 20px 20px;display:grid;gap:14px}
.detail-body h4{margin:6px 0 -4px;color:var(--primary);font-size:15px}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.status-cloud{gap:8px}
.compact-table table{min-width:700px}
.login-gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,rgba(31,63,135,.96),rgba(29,154,138,.94) 58%,rgba(98,184,70,.9))}
.login-gate.hidden{opacity:0;pointer-events:none;transition:opacity .25s ease}
.login-card{width:min(420px,92vw);background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.75);border-radius:24px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.22);text-align:center}
.login-card .login-logo{display:block;margin:0 auto 16px}
.login-card h1{margin:0 0 16px;color:var(--primary);font-size:30px}
.passcode-input{width:100%;text-align:center;font-size:30px;font-weight:900;letter-spacing:10px;padding:13px 18px;color:var(--primary)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.toast{position:fixed;bottom:72px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;background:#102035;color:#fff;padding:12px 17px;border-radius:12px;box-shadow:var(--shadow);transition:.2s;z-index:10;font-size:13px}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
footer{position:fixed;bottom:0;right:0;left:0;text-align:center;padding:10px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-top:1px solid var(--line);color:var(--muted);font-size:12px}
footer b{color:var(--primary)}
@media(max-width:800px){
  .metrics{grid-template-columns:repeat(2,1fr)}
  .site-header{align-items:flex-start;position:relative;top:auto}
  .nav{grid-template-columns:repeat(3,1fr);overflow:visible;padding-bottom:6px}
  .nav-link{white-space:nowrap}
  .occurrence{grid-template-columns:1fr}
  .section-heading{align-items:flex-start;flex-direction:column}
  .entity-top{flex-direction:column}
  .search-row{flex-wrap:wrap}
  .search-row input{min-width:100%;flex-basis:100%}
  .batch-actions{align-items:flex-start;flex-direction:column}
  .batch-actions div{width:100%}
  .batch-actions .btn{flex:1}
}
@media(max-width:640px){
  body{background:linear-gradient(180deg,rgba(31,63,135,.08),rgba(34,168,216,.06) 45%,rgba(98,184,70,.07)),var(--bg)}
  .wrap{width:100%;padding:12px 14px 88px}
  .site-header{justify-content:center;text-align:center;gap:12px;margin-bottom:18px;padding:12px;border-radius:18px}
  .brand{width:100%;justify-content:center}
  .brand strong{font-size:17px}
  .nav{grid-template-columns:repeat(2,1fr);justify-content:stretch;border-radius:15px;overflow:visible;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav-link{padding:10px 13px;font-size:14px}
  .hero{text-align:center;padding:8px 0 14px}
  .hero h1,.section-heading h1{font-size:27px;line-height:1.35}
  .hero p,.section-heading p{font-size:14px}
  .dashboard-metrics{grid-template-columns:1fr;gap:12px;margin-top:18px}
  .dashboard-metrics .metric{min-height:116px;padding:18px}
  .dashboard-metrics .metric b{font-size:34px}
  .metrics.compact{grid-template-columns:1fr 1fr}
  .dashboard-details.card,.search-card,.batch-card{padding:14px}
  .dashboard-detail-head{align-items:stretch;flex-direction:column;text-align:center}
  .dashboard-detail-head .btn{width:100%}
  .table-wrap{overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none}
  table,.compact-table table{display:block;width:100%;min-width:0;border-collapse:separate;background:transparent;font-size:15px;line-height:1.75}
  thead{display:none}
  tbody{display:grid;gap:12px}
  tr{display:grid;overflow:hidden;border:1px solid #d7e3ef;border-radius:16px;background:#fff;box-shadow:var(--soft-shadow)}
  th,td{border:0}
  td,tbody tr:nth-child(even) td{display:grid;grid-template-columns:minmax(104px,38%) 1fr;gap:10px;align-items:center;padding:14px 15px;border-bottom:1px solid #e3ebf4;background:#fff;text-align:right!important;white-space:normal!important;max-width:none!important;font-size:15px}
  tr td:last-child{border-bottom:0}
  td:before{content:attr(data-label);color:var(--primary);font-weight:950;text-align:right}
  .row-button{text-align:right}
  .stacked-list{justify-items:start;text-align:right;gap:5px}
  .badge{white-space:normal;text-align:center}
  .occurrences{display:grid;gap:10px;padding:12px;background:#f8fbfd}
  .occurrence-head{display:none}
  .occurrence{grid-template-columns:1fr;gap:8px;padding:14px;border:1px solid #d7e3ef;border-radius:15px;background:#fff!important;text-align:right;font-size:14px;box-shadow:var(--soft-shadow)}
  .occurrence div{text-align:right}
  .occurrence span{font-size:12px;color:var(--primary);font-weight:900}
}
@media(max-width:480px){
  .wrap{width:min(94vw,1180px);padding-top:14px}
  .metrics{grid-template-columns:1fr 1fr;gap:9px}
  .dashboard-metrics{grid-template-columns:1fr}
  .metric{padding:12px}
  .metric b{font-size:21px}
  .search-row .btn{flex:1}
  .hero{padding-top:0}
  .detail-card summary{align-items:flex-start;flex-direction:column}
}