gekina commited on
Commit
48bbd45
·
verified ·
1 Parent(s): 2b1799c

Update src/Styles.css

Browse files
Files changed (1) hide show
  1. src/Styles.css +122 -846
src/Styles.css CHANGED
@@ -1,863 +1,139 @@
1
- /* ================================================= */
2
- /* 1. GLOBAL & RESET */
3
- /* ================================================= */
4
- * {
5
- margin: 0;
6
- padding: 0;
7
- box-sizing: border-box;
8
- }
9
-
10
- html {
11
- scroll-behavior: smooth;
12
- }
13
-
14
  body {
15
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
16
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
17
- sans-serif;
18
- line-height: 1.6;
19
- color: #333;
20
- background-color: #f8f9fa;
21
- overflow-x: hidden;
22
- }
23
-
24
- .container {
25
- max-width: 1200px;
26
- margin: 0 auto;
27
- padding: 0 20px;
28
- width: 100%;
29
- }
30
-
31
- /* ================================================= */
32
- /* 2. HEADER & NAVIGATION */
33
- /* ================================================= */
34
- .header {
35
- background: white;
36
- padding: 0.8rem 0;
37
- position: sticky;
38
- top: 0;
39
- z-index: 1000;
40
- box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
41
- border-bottom: 1px solid #e0e0e0;
42
- }
43
-
44
- .header-content {
45
- display: flex;
46
- justify-content: space-between;
47
- align-items: center;
48
- }
49
-
50
- .logo-container {
51
- display: flex;
52
- align-items: center;
53
- gap: 15px;
54
- padding: 0;
55
  }
56
 
57
- .header-logo {
58
- width: 50px;
59
- height: 50px;
60
- object-fit: contain;
61
- display: block;
62
- transition: all 0.3s ease;
63
- cursor: pointer;
64
- }
65
-
66
- .header-logo:hover {
67
- transform: scale(1.03);
68
- }
69
-
70
- .nav-right {
71
- display: flex;
72
- align-items: center;
73
- gap: 2.5rem;
74
- }
75
-
76
- .nav-link {
77
- color: #2a5298;
78
- text-decoration: none;
79
- font-weight: 600;
80
- font-size: 1.1rem;
81
- padding: 0.6rem 0;
82
- position: relative;
83
- transition: all 0.3s ease;
84
- letter-spacing: 0.3px;
85
- cursor: pointer;
86
- }
87
-
88
- .nav-link:hover {
89
- color: #1e3c72;
90
- }
91
 
92
- .nav-link::after {
93
- content: '';
94
- position: absolute;
95
- bottom: 0;
96
- left: 0;
97
- width: 0;
98
- height: 3px;
99
- background: linear-gradient(90deg, #2a5298, #1e3c72);
100
- border-radius: 2px;
101
- transition: width 0.3s ease;
102
- }
103
 
104
- .nav-link:hover::after {
105
- width: 100%;
106
- }
 
 
107
 
108
  .primary-btn, .nav-diagnosa {
109
- background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
110
- color: white;
111
- padding: 0.6rem 2rem;
112
- border-radius: 30px;
113
- font-weight: 600;
114
- text-decoration: none;
115
- transition: all 0.3s ease;
116
- border: none;
117
- cursor: pointer;
118
- font-size: 1rem;
119
- letter-spacing: 0.3px;
120
- display: inline-block;
121
- text-align: center;
122
- box-shadow: 0 4px 12px rgba(42, 82, 152, 0.25);
123
- min-width: 120px;
124
  }
 
125
 
126
- .primary-btn:hover, .nav-diagnosa:hover {
127
- background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
128
- color: white;
129
- transform: translateY(-3px);
130
- box-shadow: 0 8px 20px rgba(42, 82, 152, 0.35);
131
- }
132
-
133
- /* ================================================= */
134
- /* 3. HERO SECTION */
135
- /* ================================================= */
136
  .hero {
137
- min-height: 500px;
138
- position: relative;
139
- overflow: hidden;
140
- padding: 0;
141
- color: white;
142
- background-image:
143
- linear-gradient(rgba(42, 82, 152, 0.7), rgba(42, 82, 152, 0.7)),
144
- url('./assets/images/hero doctor.jpg'); /* Pastikan path gambar benar */
145
- background-size: cover;
146
- background-position: center 20%;
147
- background-repeat: no-repeat;
148
- background-attachment: fixed;
149
- }
150
-
151
- .hero-content {
152
- display: flex;
153
- align-items: center;
154
- justify-content: flex-start;
155
- gap: 3rem;
156
- padding: 4rem 0;
157
- height: 100%;
158
- min-height: 500px;
159
- }
160
-
161
- .hero-text {
162
- flex: 1;
163
- max-width: 100%;
164
- color: white;
165
- padding-top: 0;
166
- animation: fadeInUp 0.8s ease-out;
167
- text-align: left;
168
- }
169
-
170
- .hero h1 {
171
- font-size: 2.8rem;
172
- margin-bottom: 1rem;
173
- color: white;
174
- line-height: 1.2;
175
- font-weight: 700;
176
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
177
- }
178
-
179
- .hero-subtitle {
180
- font-size: 1.25rem;
181
- opacity: 0.9;
182
- margin-bottom: 2rem;
183
- display: block;
184
- color: white;
185
- max-width: 600px;
186
- line-height: 1.6;
187
- }
188
-
189
- .hero-buttons-left {
190
- display: flex;
191
- justify-content: flex-start;
192
- margin-top: 2rem;
193
- }
194
-
195
- .hero-diagnosis-btn {
196
- padding: 1.2rem 3rem;
197
- font-size: 1.2rem;
198
- border-radius: 15px;
199
- position: relative;
200
- min-width: 250px;
201
- background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
202
- color: white;
203
- border: none;
204
- cursor: pointer;
205
- font-weight: 600;
206
- box-shadow: 0 6px 20px rgba(42, 82, 152, 0.3);
207
- transition: all 0.3s ease;
208
- }
209
-
210
- .hero-diagnosis-btn:hover {
211
- transform: translateY(-3px);
212
- box-shadow: 0 10px 25px rgba(42, 82, 152, 0.4);
213
- }
214
-
215
- @keyframes fadeInUp {
216
- from { opacity: 0; transform: translateY(30px); }
217
- to { opacity: 1; transform: translateY(0); }
218
- }
219
-
220
- /* ================================================= */
221
- /* 4. FEATURES SECTION */
222
- /* ================================================= */
223
- .features {
224
- padding: 5rem 0;
225
- background: white;
226
- }
227
-
228
- .section-title {
229
- text-align: center;
230
- margin-bottom: 3rem;
231
- color: #1e3c72;
232
- font-size: 2.2rem;
233
- font-weight: 700;
234
- position: relative;
235
- padding-bottom: 15px;
236
- }
237
-
238
- .section-title::after {
239
- content: '';
240
- position: absolute;
241
- bottom: 0;
242
- left: 50%;
243
- transform: translateX(-50%);
244
- width: 60px;
245
- height: 4px;
246
- background: linear-gradient(90deg, #1e3c72, #2a5298);
247
- border-radius: 2px;
248
- }
249
-
250
- .features-grid {
251
- display: block;
252
- margin-top: 2rem;
253
- }
254
-
255
- .feature-card {
256
- background: #f8f9fa;
257
- border-radius: 15px;
258
- padding: 3rem;
259
- margin-bottom: 2rem;
260
- display: flex;
261
- align-items: center;
262
- gap: 3rem;
263
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
264
- transition: all 0.3s ease;
265
- overflow: hidden;
266
- position: relative;
267
- }
268
-
269
- .feature-card::before {
270
- content: '';
271
- position: absolute;
272
- top: 0;
273
- left: 0;
274
- width: 5px;
275
- height: 100%;
276
- background: linear-gradient(180deg, #1e3c72, #2a5298);
277
- border-radius: 5px 0 0 5px;
278
- }
279
-
280
- .feature-card:hover {
281
- transform: translateY(-5px);
282
- box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
283
- }
284
-
285
  .feature-card-left-image { flex-direction: row; }
286
  .feature-card-right-image { flex-direction: row-reverse; }
287
-
288
- .feature-image-container {
289
- flex: 0 0 40%;
290
- max-width: 400px;
291
- height: 250px;
292
- border-radius: 10px;
293
- overflow: hidden;
294
- box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
295
- transition: all 0.3s ease;
296
- }
297
-
298
- .feature-card:hover .feature-image-container {
299
- transform: scale(1.02);
300
- box-shadow: 0 12px 25px rgba(0, 0, 0, 0.2);
301
- }
302
-
303
- .feature-image {
304
- width: 100%;
305
- height: 100%;
306
- object-fit: cover;
307
- transition: transform 0.5s ease;
308
- }
309
-
310
  .feature-card:hover .feature-image { transform: scale(1.05); }
311
-
312
  .feature-text-content { flex: 1; text-align: left; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
313
 
314
- .feature-header {
315
- display: flex;
316
- align-items: center;
317
- gap: 15px;
318
- margin-bottom: 1rem;
319
- }
320
-
321
- .feature-icon {
322
- font-size: 2.8rem;
323
- color: #2a5298;
324
- margin-bottom: 0;
325
- }
326
-
327
- .feature-card h3 {
328
- color: #1e3c72;
329
- margin-bottom: 0;
330
- font-size: 1.6rem;
331
- font-weight: 600;
332
- }
333
-
334
- .feature-card p {
335
- color: #555;
336
- line-height: 1.7;
337
- font-size: 1rem;
338
- }
339
-
340
- /* ================================================= */
341
- /* 5. PRIVACY SECTION */
342
- /* ================================================= */
343
- .privacy {
344
- padding: 5rem 0;
345
- background: #f1f8ff;
346
- position: relative;
347
- overflow: hidden;
348
- }
349
-
350
- .privacy::before {
351
- content: '';
352
- position: absolute;
353
- top: 0;
354
- left: 0;
355
- width: 100%;
356
- height: 100%;
357
- background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,0 L100,0 L100,100 Z" fill="rgba(255,255,255,0.1)"/></svg>');
358
- background-size: cover;
359
- opacity: 0.3;
360
- }
361
-
362
- .privacy-content {
363
- max-width: 800px;
364
- margin: 0 auto;
365
- text-align: center;
366
- padding: 3rem;
367
- background: white;
368
- border-radius: 15px;
369
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
370
- position: relative;
371
- z-index: 1;
372
- animation: fadeIn 0.8s ease-out;
373
- }
374
-
375
- .privacy h2 {
376
- color: #1e3c72;
377
- margin-bottom: 1.5rem;
378
- font-size: 2.2rem;
379
- font-weight: 700;
380
- }
381
-
382
- .privacy p {
383
- margin-bottom: 1.5rem;
384
- color: #555;
385
- line-height: 1.7;
386
- font-size: 1.05rem;
387
- }
388
-
389
- .security-badge {
390
- display: inline-flex;
391
- align-items: center;
392
- gap: 12px;
393
- background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
394
- color: white;
395
- padding: 1rem 2rem;
396
- border-radius: 25px;
397
- margin-top: 1.5rem;
398
- font-weight: 600;
399
- font-size: 1.1rem;
400
- box-shadow: 0 4px 10px rgba(46, 125, 50, 0.1);
401
- transition: all 0.3s ease;
402
- }
403
-
404
- .security-badge:hover {
405
- transform: translateY(-2px);
406
- box-shadow: 0 6px 15px rgba(46, 125, 50, 0.15);
407
- }
408
-
409
- /* ================================================= */
410
- /* 6. FOOTER */
411
- /* ================================================= */
412
- .footer {
413
- background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
414
- color: white;
415
- padding: 4rem 0 2rem;
416
- text-align: center;
417
- position: relative;
418
- }
419
-
420
- .footer::before {
421
- content: '';
422
- position: absolute;
423
- top: 0;
424
- left: 0;
425
- width: 100%;
426
- height: 5px;
427
- background: white
428
- }
429
-
430
- .footer-content {
431
- display: flex;
432
- flex-direction: column;
433
- align-items: center;
434
- gap: 2rem;
435
- position: relative;
436
- z-index: 1;
437
- }
438
-
439
- .footer-logo {
440
- font-size: 2.2rem;
441
- font-weight: 700;
442
- color: white;
443
- text-decoration: none;
444
- margin-bottom: 1rem;
445
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
446
- }
447
-
448
- .footer-tagline {
449
- font-size: 1.15rem;
450
- opacity: 0.9;
451
- max-width: 600px;
452
- margin: 0 auto 2rem;
453
- line-height: 1.6;
454
- }
455
-
456
- .footer-bottom {
457
- margin-top: 3rem;
458
- padding-top: 2rem;
459
- border-top: 1px solid rgba(255, 255, 255, 0.1);
460
- width: 100%;
461
- font-size: 0.9rem;
462
- opacity: 0.7;
463
- }
464
-
465
- /* ================================================= */
466
- /* 7. PROFILE BUTTON (HEADER) */
467
- /* ================================================= */
468
- .profile-btn {
469
- background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
470
- color: white;
471
- padding: 0.5rem 1.2rem;
472
- border-radius: 30px;
473
- border: none;
474
- cursor: pointer;
475
- display: flex;
476
- align-items: center;
477
- gap: 10px;
478
- font-weight: 600;
479
- box-shadow: 0 4px 10px rgba(42, 82, 152, 0.2);
480
- transition: all 0.2s;
481
- }
482
-
483
- .profile-btn:hover {
484
- transform: translateY(-2px);
485
- box-shadow: 0 6px 15px rgba(42, 82, 152, 0.3);
486
- }
487
-
488
- .avatar-circle {
489
- width: 24px;
490
- height: 24px;
491
- background-color: rgba(255, 255, 255, 0.3);
492
- border-radius: 50%;
493
- display: flex;
494
- align-items: center;
495
- justify-content: center;
496
- font-size: 0.8rem;
497
- }
498
-
499
- /* ================================================= */
500
- /* 8. MODAL PROFIL STYLES (NEW DESIGN) */
501
- /* ================================================= */
502
- .modal-overlay {
503
- position: fixed;
504
- top: 0;
505
- left: 0;
506
- width: 100%;
507
- height: 100%;
508
- background-color: rgba(0, 0, 0, 0.4);
509
- display: flex;
510
- justify-content: center;
511
- align-items: center;
512
- z-index: 2000;
513
- backdrop-filter: blur(2px);
514
- }
515
-
516
- .modal-profile-card {
517
- background: white;
518
- width: 700px;
519
- max-width: 90%;
520
- border-radius: 12px;
521
- padding: 40px;
522
- position: relative;
523
- box-shadow: 0 10px 40px rgba(0,0,0,0.15);
524
- animation: popUp 0.3s ease-out;
525
- }
526
-
527
- .close-btn-absolute {
528
- position: absolute;
529
- top: 15px;
530
- right: 20px;
531
- background: none;
532
- border: none;
533
- font-size: 24px;
534
- color: #999;
535
- cursor: pointer;
536
- }
537
-
538
- /* Layout Kiri (Avatar) - Kanan (Form) */
539
- .profile-layout {
540
- display: flex;
541
- gap: 40px;
542
- margin-bottom: 30px;
543
- align-items: flex-start;
544
- }
545
-
546
- .profile-left {
547
- flex: 0 0 auto;
548
- }
549
-
550
- .avatar-large-placeholder {
551
- width: 160px;
552
- height: 160px;
553
- background-color: #d9d9d9;
554
- border-radius: 50%;
555
- display: flex;
556
- justify-content: center;
557
- align-items: center;
558
- }
559
-
560
- .profile-right {
561
- flex: 1;
562
- display: flex;
563
- flex-direction: column;
564
- gap: 15px;
565
- /* Agar tombol keluar bisa didorong ke bawah */
566
- min-height: 250px;
567
- }
568
-
569
- /* Input Styling */
570
- .profile-input-group {
571
- position: relative;
572
- width: 100%;
573
- }
574
-
575
- .input-label-sm {
576
- font-size: 0.8rem;
577
- color: #888;
578
- margin-bottom: 2px;
579
- display: block;
580
- }
581
-
582
- .profile-input {
583
- width: 100%;
584
- padding: 10px 15px;
585
- border: 1px solid #ddd;
586
- border-radius: 6px;
587
- font-size: 1rem;
588
- color: #333;
589
- outline: none;
590
- }
591
-
592
- /* Input Background Abu untuk Read-Only */
593
- .profile-input.bg-gray {
594
- background-color: #f8f9fa;
595
- color: #666;
596
- }
597
-
598
- /* Input Mode Edit: Background Putih, Border Biru Tema */
599
- .profile-input.editable {
600
- background-color: white;
601
- border: 1px solid #2a5298; /* Warna Tema */
602
- box-shadow: 0 0 0 3px rgba(42, 82, 152, 0.1);
603
- }
604
-
605
- .edit-icon {
606
- position: absolute;
607
- right: 12px;
608
- top: 65%; /* Disesuaikan karena ada label */
609
- transform: translateY(-50%);
610
- color: #1e3c72;
611
- cursor: pointer;
612
- }
613
-
614
- /* Area Password Baru */
615
- .password-edit-area {
616
- background-color: #f0f7ff;
617
- padding: 10px;
618
- border-radius: 8px;
619
- margin-bottom: 10px;
620
- border: 1px dashed #2a5298;
621
- }
622
-
623
- /* Tombol Aksi */
624
- .profile-actions-row {
625
- display: flex;
626
- gap: 10px;
627
- }
628
-
629
- .btn-outline-small {
630
- padding: 8px 15px;
631
- border: 1px solid #3f51b5;
632
- background: white;
633
- color: #3f51b5;
634
- border-radius: 4px;
635
- font-size: 0.9rem;
636
- cursor: pointer;
637
- transition: all 0.2s;
638
- }
639
-
640
- .btn-outline-small:hover {
641
- background-color: #f0f4ff;
642
- }
643
-
644
- /* Tombol Simpan (Biru Tema) */
645
- .primary-btn {
646
- background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%);
647
- color: white;
648
- border: none;
649
- border-radius: 4px;
650
- cursor: pointer;
651
- font-weight: 600;
652
- transition: opacity 0.2s;
653
- }
654
- .primary-btn:hover {
655
- opacity: 0.9;
656
- }
657
-
658
- /* Tombol Batal (Abu) */
659
- .btn-cancel-gray {
660
- padding: 8px 15px;
661
- background-color: #e0e0e0;
662
- color: #333;
663
- border: none;
664
- border-radius: 4px;
665
- font-weight: 600;
666
- cursor: pointer;
667
- font-size: 0.9rem;
668
- }
669
- .btn-cancel-gray:hover {
670
- background-color: #d6d6d6;
671
- }
672
-
673
- /* Tombol Keluar (Merah) */
674
- .btn-logout-red {
675
- background-color: #ff0000;
676
- color: white;
677
- border: none;
678
- padding: 8px 20px;
679
- border-radius: 4px;
680
- font-weight: 600;
681
- cursor: pointer;
682
- width: fit-content;
683
- margin-top: auto; /* Dorong ke paling bawah */
684
- /* align-self diatur di JSX parent flex container */
685
- }
686
-
687
- .btn-logout-red:hover {
688
- background-color: #cc0000;
689
- }
690
-
691
- /* Divider & Bottom Section */
692
- .profile-divider {
693
- border: 0;
694
- border-top: 1px solid #eee;
695
- margin: 20px 0;
696
- }
697
-
698
- .profile-bottom-settings {
699
- display: flex;
700
- flex-direction: column;
701
- gap: 15px;
702
- }
703
-
704
- .setting-row {
705
- display: flex;
706
- justify-content: space-between;
707
- align-items: center;
708
- }
709
-
710
- .setting-label {
711
- font-size: 1rem;
712
- color: #1e3c72;
713
- }
714
-
715
- .bold-text {
716
- font-weight: 600;
717
- }
718
-
719
- .btn-outline-box {
720
- padding: 6px 20px;
721
- border: 1px solid #1e3c72;
722
- background: white;
723
- color: #1e3c72;
724
- border-radius: 4px;
725
- cursor: pointer;
726
- }
727
-
728
- .btn-delete-red {
729
- background-color: #ff0000;
730
- color: white;
731
- border: none;
732
- padding: 6px 25px;
733
- border-radius: 4px;
734
- font-weight: 600;
735
- cursor: pointer;
736
- }
737
-
738
- @keyframes popUp {
739
- from { transform: scale(0.95); opacity: 0; }
740
- to { transform: scale(1); opacity: 1; }
741
- }
742
-
743
- /* ================================================= */
744
- /* 9. ADMIN DASHBOARD STYLES */
745
- /* ================================================= */
746
- .modal-content {
747
- background: white;
748
- padding: 25px;
749
- border-radius: 15px;
750
- width: 90%;
751
- max-width: 350px;
752
- text-align: center;
753
- box-shadow: 0 10px 30px rgba(0,0,0,0.2);
754
- animation: popUp 0.3s;
755
- }
756
-
757
- .modal-header {
758
- display: flex;
759
- justify-content: space-between;
760
- align-items: center;
761
- margin-bottom: 20px;
762
- border-bottom: 1px solid #eee;
763
- padding-bottom: 10px;
764
- }
765
-
766
- .close-btn {
767
- background: none;
768
- border: none;
769
- font-size: 1.5rem;
770
- cursor: pointer;
771
- color: #999;
772
- }
773
-
774
- /* ================================================= */
775
- /* 10. LOGOUT CONFIRM POPUP */
776
- /* ================================================= */
777
- .logout-confirm-card {
778
- background: white;
779
- padding: 30px;
780
- border-radius: 12px;
781
- width: 400px;
782
- max-width: 90%;
783
- text-align: center;
784
- box-shadow: 0 10px 40px rgba(0,0,0,0.2);
785
- animation: popUp 0.2s ease-out;
786
- }
787
-
788
- .logout-confirm-card h3 {
789
- color: #1e3c72;
790
- margin-bottom: 10px;
791
- font-size: 1.4rem;
792
- }
793
-
794
- .logout-confirm-card p {
795
- color: #666;
796
- margin-bottom: 25px;
797
- }
798
-
799
- .logout-actions {
800
- display: flex;
801
- justify-content: center;
802
- gap: 15px;
803
- }
804
-
805
- .btn-cancel {
806
- padding: 10px 25px;
807
- border: 1px solid #ccc;
808
- background: white;
809
- color: #555;
810
- border-radius: 8px;
811
- font-weight: 600;
812
- cursor: pointer;
813
- transition: all 0.2s;
814
- }
815
-
816
- .btn-cancel:hover {
817
- background: #f5f5f5;
818
- border-color: #bbb;
819
- }
820
-
821
- .btn-confirm-logout {
822
- padding: 10px 25px;
823
- border: none;
824
- background: #ff0000;
825
- color: white;
826
- border-radius: 8px;
827
- font-weight: 600;
828
- cursor: pointer;
829
- box-shadow: 0 4px 10px rgba(255, 0, 0, 0.2);
830
- transition: all 0.2s;
831
- }
832
-
833
- .btn-confirm-logout:hover {
834
- background: #cc0000;
835
- transform: translateY(-2px);
836
- box-shadow: 0 6px 15px rgba(255, 0, 0, 0.3);
837
- }
838
-
839
- /* Responsive Mobile */
840
  @media (max-width: 768px) {
841
- .modal-profile-card {
842
- padding: 20px;
843
- width: 95%;
844
- }
845
-
846
- .profile-layout {
847
- flex-direction: column;
848
- align-items: center;
849
- }
850
-
851
- .profile-right {
852
- width: 100%;
853
- min-height: auto;
854
- }
855
-
856
- .profile-actions-row {
857
- justify-content: center;
858
- }
859
-
860
- .btn-logout-red {
861
- margin: 20px auto 0;
862
- }
863
  }
 
1
+ * { margin: 0; padding: 0; box-sizing: border-box; }
2
+ html { scroll-behavior: smooth; }
 
 
 
 
 
 
 
 
 
 
 
3
  body {
4
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
5
+ line-height: 1.6; color: #333; background-color: #f8f9fa; overflow-x: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  }
7
 
8
+ .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; width: 100%; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
+ /* HEADER */
11
+ .header { background: white; padding: 0.8rem 0; position: sticky; top: 0; z-index: 1000; box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); border-bottom: 1px solid #e0e0e0; }
12
+ .header-content { display: flex; justify-content: space-between; align-items: center; }
13
+ .logo-container { display: flex; align-items: center; gap: 15px; padding: 0; }
14
+ .header-logo { width: 50px; height: 50px; object-fit: contain; display: block; transition: all 0.3s ease; cursor: pointer; }
15
+ .header-logo:hover { transform: scale(1.03); }
 
 
 
 
 
16
 
17
+ .nav-right { display: flex; align-items: center; gap: 2.5rem; }
18
+ .nav-link { color: #2a5298; text-decoration: none; font-weight: 600; font-size: 1.1rem; padding: 0.6rem 0; position: relative; transition: all 0.3s ease; letter-spacing: 0.3px; cursor: pointer; }
19
+ .nav-link:hover { color: #1e3c72; }
20
+ .nav-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 3px; background: linear-gradient(90deg, #2a5298, #1e3c72); border-radius: 2px; transition: width 0.3s ease; }
21
+ .nav-link:hover::after { width: 100%; }
22
 
23
  .primary-btn, .nav-diagnosa {
24
+ background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); color: white; padding: 0.6rem 2rem; border-radius: 30px; font-weight: 600; text-decoration: none; transition: all 0.3s ease; border: none; cursor: pointer; font-size: 1rem; letter-spacing: 0.3px; display: inline-block; text-align: center; box-shadow: 0 4px 12px rgba(42, 82, 152, 0.25); min-width: 120px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  }
26
+ .primary-btn:hover, .nav-diagnosa:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(42, 82, 152, 0.35); }
27
 
28
+ /* HERO */
 
 
 
 
 
 
 
 
 
29
  .hero {
30
+ min-height: 500px; position: relative; overflow: hidden; padding: 0; color: white;
31
+ background-image: linear-gradient(rgba(42, 82, 152, 0.7), rgba(42, 82, 152, 0.7)), url('./assets/images/hero doctor.jpg');
32
+ background-size: cover; background-position: center 20%; background-repeat: no-repeat; background-attachment: fixed;
33
+ }
34
+ .hero-content { display: flex; align-items: center; justify-content: flex-start; gap: 3rem; padding: 4rem 0; height: 100%; min-height: 500px; }
35
+ .hero-text { flex: 1; max-width: 100%; color: white; padding-top: 0; animation: fadeInUp 0.8s ease-out; text-align: left; }
36
+ .hero h1 { font-size: 2.8rem; margin-bottom: 1rem; color: white; line-height: 1.2; font-weight: 700; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); }
37
+ .hero-subtitle { font-size: 1.25rem; opacity: 0.9; margin-bottom: 2rem; display: block; color: white; max-width: 600px; line-height: 1.6; }
38
+ .hero-buttons-left { display: flex; justify-content: flex-start; margin-top: 2rem; }
39
+ .hero-diagnosis-btn { padding: 1.2rem 3rem; font-size: 1.2rem; border-radius: 15px; position: relative; min-width: 250px; background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); color: white; border: none; cursor: pointer; font-weight: 600; box-shadow: 0 6px 20px rgba(42, 82, 152, 0.3); transition: all 0.3s ease; }
40
+ .hero-diagnosis-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(42, 82, 152, 0.4); }
41
+ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
42
+
43
+ /* FEATURES */
44
+ .features { padding: 5rem 0; background: white; }
45
+ .section-title { text-align: center; margin-bottom: 3rem; color: #1e3c72; font-size: 2.2rem; font-weight: 700; position: relative; padding-bottom: 15px; }
46
+ .section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 60px; height: 4px; background: linear-gradient(90deg, #1e3c72, #2a5298); border-radius: 2px; }
47
+ .features-grid { display: block; margin-top: 2rem; }
48
+ .feature-card { background: #f8f9fa; border-radius: 15px; padding: 3rem; margin-bottom: 2rem; display: flex; align-items: center; gap: 3rem; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; overflow: hidden; position: relative; }
49
+ .feature-card::before { content: ''; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: linear-gradient(180deg, #1e3c72, #2a5298); border-radius: 5px 0 0 5px; }
50
+ .feature-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  .feature-card-left-image { flex-direction: row; }
52
  .feature-card-right-image { flex-direction: row-reverse; }
53
+ .feature-image-container { flex: 0 0 40%; max-width: 400px; height: 250px; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); transition: all 0.3s ease; }
54
+ .feature-card:hover .feature-image-container { transform: scale(1.02); box-shadow: 0 12px 25px rgba(0, 0, 0, 0.2); }
55
+ .feature-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  .feature-card:hover .feature-image { transform: scale(1.05); }
 
57
  .feature-text-content { flex: 1; text-align: left; }
58
+ .feature-header { display: flex; align-items: center; gap: 15px; margin-bottom: 1rem; }
59
+ .feature-icon { font-size: 2.8rem; color: #2a5298; margin-bottom: 0; }
60
+ .feature-card h3 { color: #1e3c72; margin-bottom: 0; font-size: 1.6rem; font-weight: 600; }
61
+ .feature-card p { color: #555; line-height: 1.7; font-size: 1rem; }
62
+
63
+ /* PRIVACY */
64
+ .privacy { padding: 5rem 0; background: #f1f8ff; position: relative; overflow: hidden; }
65
+ .privacy::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,0 L100,0 L100,100 Z" fill="rgba(255,255,255,0.1)"/></svg>'); background-size: cover; opacity: 0.3; }
66
+ .privacy-content { max-width: 800px; margin: 0 auto; text-align: center; padding: 3rem; background: white; border-radius: 15px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); position: relative; z-index: 1; animation: fadeIn 0.8s ease-out; }
67
+ .privacy h2 { color: #1e3c72; margin-bottom: 1.5rem; font-size: 2.2rem; font-weight: 700; }
68
+ .privacy p { margin-bottom: 1.5rem; color: #555; line-height: 1.7; font-size: 1.05rem; }
69
+ .security-badge { display: inline-flex; align-items: center; gap: 12px; background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); color: white; padding: 1rem 2rem; border-radius: 25px; margin-top: 1.5rem; font-weight: 600; font-size: 1.1rem; box-shadow: 0 4px 10px rgba(46, 125, 50, 0.1); transition: all 0.3s ease; }
70
+ .security-badge:hover { transform: translateY(-2px); box-shadow: 0 6px 15px rgba(46, 125, 50, 0.15); }
71
+
72
+ /* FOOTER */
73
+ .footer { background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); color: white; padding: 4rem 0 2rem; text-align: center; position: relative; }
74
+ .footer::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: white }
75
+ .footer-content { display: flex; flex-direction: column; align-items: center; gap: 2rem; position: relative; z-index: 1; }
76
+ .footer-logo { font-size: 2.2rem; font-weight: 700; color: white; text-decoration: none; margin-bottom: 1rem; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); }
77
+ .footer-tagline { font-size: 1.15rem; opacity: 0.9; max-width: 600px; margin: 0 auto 2rem; line-height: 1.6; }
78
+ .footer-bottom { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.1); width: 100%; font-size: 0.9rem; opacity: 0.7; }
79
+
80
+ /* PROFILE BTN */
81
+ .profile-btn { background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); color: white; padding: 0.5rem 1.2rem; border-radius: 30px; border: none; cursor: pointer; display: flex; align-items: center; gap: 10px; font-weight: 600; box-shadow: 0 4px 10px rgba(42, 82, 152, 0.2); transition: all 0.2s; }
82
+ .profile-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 15px rgba(42, 82, 152, 0.3); }
83
+ .avatar-circle { width: 24px; height: 24px; background-color: rgba(255, 255, 255, 0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; }
84
+
85
+ /* MODAL PROFIL STYLES */
86
+ .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); display: flex; justify-content: center; align-items: center; z-index: 2000; backdrop-filter: blur(2px); }
87
+ .modal-profile-card { background: white; width: 700px; max-width: 90%; border-radius: 12px; padding: 40px; position: relative; box-shadow: 0 10px 40px rgba(0,0,0,0.15); animation: popUp 0.3s ease-out; }
88
+ .close-btn-absolute { position: absolute; top: 15px; right: 20px; background: none; border: none; font-size: 24px; color: #999; cursor: pointer; }
89
+ .profile-layout { display: flex; gap: 40px; margin-bottom: 30px; align-items: flex-start; }
90
+ .profile-left { flex: 0 0 auto; }
91
+ .avatar-large-placeholder { width: 160px; height: 160px; background-color: #d9d9d9; border-radius: 50%; display: flex; justify-content: center; align-items: center; }
92
+ .profile-right { flex: 1; display: flex; flex-direction: column; gap: 15px; }
93
+ .profile-input-group { position: relative; width: 100%; }
94
+ .profile-input { width: 100%; padding: 10px 15px; border: 1px solid #ddd; border-radius: 6px; font-size: 1rem; color: #333; outline: none; }
95
+ .profile-input.bg-gray { background-color: #f8f9fa; color: #666; }
96
+ .edit-icon { position: absolute; right: 12px; top: 70%; transform: translateY(-50%); color: #1e3c72; cursor: pointer; }
97
+ .profile-actions-row { display: flex; gap: 10px; margin-top: 10px; }
98
+ .btn-outline-small { padding: 8px 15px; border: 1px solid #3f51b5; background: white; color: #3f51b5; border-radius: 4px; font-size: 0.9rem; cursor: pointer; transition: all 0.2s; }
99
+ .btn-outline-small:hover { background-color: #f0f4ff; }
100
+ .btn-logout-red { background-color: #ff0000; color: white; border: none; padding: 8px 20px; border-radius: 4px; font-weight: 600; cursor: pointer; width: fit-content; margin-top: 5px; }
101
+ .btn-logout-red:hover { background-color: #cc0000; }
102
+ .profile-divider { border: 0; border-top: 1px solid #eee; margin: 20px 0; }
103
+ .profile-bottom-settings { display: flex; flex-direction: column; gap: 15px; }
104
+ .setting-row { display: flex; justify-content: space-between; align-items: center; }
105
+ .setting-label { font-size: 1rem; color: #1e3c72; }
106
+ .bold-text { font-weight: 600; }
107
+ .btn-outline-box { padding: 6px 20px; border: 1px solid #1e3c72; background: white; color: #1e3c72; border-radius: 4px; cursor: pointer; }
108
+ .btn-delete-red { background-color: #ff0000; color: white; border: none; padding: 6px 25px; border-radius: 4px; font-weight: 600; cursor: pointer; }
109
+ @keyframes popUp { from { transform: scale(0.95); opacity: 0; } to { transform: scale(1); opacity: 1; } }
110
+
111
+ /* ADMIN DASHBOARD */
112
+ .modal-content { background: white; padding: 25px; border-radius: 15px; width: 90%; max-width: 350px; text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,0.2); animation: popUp 0.3s; }
113
+ .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; border-bottom: 1px solid #eee; padding-bottom: 10px; }
114
+ .close-btn { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #999; }
115
+
116
+ /* LOGOUT CONFIRM POPUP */
117
+ .logout-confirm-card { background: white; padding: 30px; border-radius: 12px; width: 400px; max-width: 90%; text-align: center; box-shadow: 0 10px 40px rgba(0,0,0,0.2); animation: popUp 0.2s ease-out; }
118
+ .logout-confirm-card h3 { color: #1e3c72; margin-bottom: 10px; font-size: 1.4rem; }
119
+ .logout-confirm-card p { color: #666; margin-bottom: 25px; }
120
+ .logout-actions { display: flex; justify-content: center; gap: 15px; }
121
+ .btn-cancel { padding: 10px 25px; border: 1px solid #ccc; background: white; color: #555; border-radius: 8px; font-weight: 600; cursor: pointer; transition: all 0.2s; }
122
+ .btn-cancel:hover { background: #f5f5f5; border-color: #bbb; }
123
+ .btn-confirm-logout { padding: 10px 25px; border: none; background: #ff0000; color: white; border-radius: 8px; font-weight: 600; cursor: pointer; box-shadow: 0 4px 10px rgba(255, 0, 0, 0.2); transition: all 0.2s; }
124
+ .btn-confirm-logout:hover { background: #cc0000; transform: translateY(-2px); box-shadow: 0 6px 15px rgba(255, 0, 0, 0.3); }
125
+
126
+ /* --- EDIT MODE STYLE (FINAL) --- */
127
+ .input-label-sm { font-size: 0.8rem; color: #888; margin-bottom: 2px; display: block; }
128
+ .profile-input.editable { background-color: white; border: 1px solid #2a5298; box-shadow: 0 0 0 3px rgba(42, 82, 152, 0.1); }
129
+ .btn-save-green { padding: 8px 15px; background: linear-gradient(135deg, #2a5298 0%, #1e3c72 100%); color: white; border: none; border-radius: 4px; font-weight: 600; cursor: pointer; font-size: 0.9rem; }
130
+ .btn-save-green:hover { opacity: 0.9; }
131
+ .btn-cancel-gray { padding: 8px 15px; background-color: #e0e0e0; color: #333; border: none; border-radius: 4px; font-weight: 600; cursor: pointer; font-size: 0.9rem; }
132
+ .btn-cancel-gray:hover { background-color: #d6d6d6; }
133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  @media (max-width: 768px) {
135
+ .modal-profile-card { padding: 20px; width: 95%; }
136
+ .profile-layout { flex-direction: column; align-items: center; }
137
+ .profile-actions-row { justify-content: center; }
138
+ .btn-logout-red { margin: 10px auto 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  }