/*==================================================
 INTERNATIONAL PROJECT GALLERY
 Premium Glassmorphism Theme
 Version : 1.0
==================================================*/

/*==========================
GOOGLE FONT
==========================*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/*==========================
ROOT
==========================*/

:root{

--primary:#2563eb;
--primary2:#3b82f6;
--secondary:#06b6d4;
--success:#16a34a;
--danger:#dc2626;
--warning:#f59e0b;

--dark:#0f172a;
--dark2:#1e293b;

--white:#ffffff;
--light:#f8fafc;

--border:#e5e7eb;

--text:#334155;

--radius:18px;

--shadow:
0 15px 40px rgba(0,0,0,.10);

--glass:
rgba(255,255,255,.72);

--blur:blur(20px);

}

/*==========================
RESET
==========================*/

*{

margin:0;

padding:0;

box-sizing:border-box;

scroll-behavior:smooth;

font-family:"Poppins",sans-serif;

}

html{

font-size:16px;

}

body{

background:

linear-gradient(135deg,#edf5ff,#ffffff);

color:var(--text);

overflow-x:hidden;

min-height:100vh;

}

/*==========================
SCROLLBAR
==========================*/

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#edf2f7;

}

::-webkit-scrollbar-thumb{

background:var(--primary);

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:#1747b3;

}

/*==========================
SELECTION
==========================*/

::selection{

background:var(--primary);

color:white;

}

/*==========================
CONTAINER
==========================*/

.container{

width:min(1400px,95%);

margin:auto;

}

/*==========================
LOADING
==========================*/

.loading{

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:white;

display:flex;

justify-content:center;

align-items:center;

z-index:99999;

}

.loader{

width:70px;

height:70px;

border-radius:50%;

border:6px solid #dbeafe;

border-top:6px solid var(--primary);

animation:spin .8s linear infinite;

}

@keyframes spin{

100%{

transform:rotate(360deg);

}

}

/*==========================
HEADER
==========================*/

header{

position:fixed;

top:0;

left:0;

width:100%;

z-index:999;

background:rgba(255,255,255,.75);

backdrop-filter:blur(18px);

box-shadow:

0 10px 35px rgba(0,0,0,.08);

}

header .container{

display:flex;

justify-content:space-between;

align-items:center;

height:80px;

}

.logo{

display:flex;

align-items:center;

gap:15px;

}

.logo i{

font-size:34px;

color:var(--primary);

}

.logo h1{

font-size:26px;

font-weight:700;

color:var(--dark);

}

nav{

display:flex;

gap:15px;

}

nav a{

text-decoration:none;

padding:12px 22px;

border-radius:40px;

font-weight:600;

transition:.35s;

color:var(--dark);

}

nav a:hover{

background:var(--primary);

color:white;

}

/*==========================
HERO
==========================*/

.hero{

margin-top:80px;

height:520px;

background:

url("hero.jpg")

center/cover;

position:relative;

display:flex;

justify-content:center;

align-items:center;

overflow:hidden;

}

.hero::before{

content:"";

position:absolute;

left:0;

top:0;

width:100%;

height:100%;

background:

linear-gradient(

135deg,

rgba(37,99,235,.80),

rgba(6,182,212,.55)

);

}

.heroContent{

position:relative;

z-index:5;

text-align:center;

width:min(900px,90%);

color:white;

}

.heroContent h1{

font-size:56px;

font-weight:800;

margin-bottom:20px;

}

.heroContent p{

font-size:20px;

line-height:1.8;

font-weight:300;

}
/*=========================================
UPLOAD SECTION
=========================================*/

.uploadSection{

padding:90px 0;

background:#f8fbff;

}

.uploadCard{

background:rgba(255,255,255,.75);

backdrop-filter:blur(25px);

border:1px solid rgba(255,255,255,.45);

border-radius:30px;

padding:45px;

box-shadow:0 20px 60px rgba(0,0,0,.08);

transition:.4s;

}

.uploadCard:hover{

transform:translateY(-6px);

box-shadow:0 35px 80px rgba(0,0,0,.12);

}

.uploadCard h2{

font-size:34px;

margin-bottom:35px;

color:#1e3a8a;

display:flex;

align-items:center;

gap:15px;

}

.uploadCard h2 i{

color:#2563eb;

}

/*=========================================
GRID
=========================================*/

.grid2{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:25px;

margin-bottom:25px;

}

/*=========================================
FORM
=========================================*/

.formGroup{

display:flex;

flex-direction:column;

margin-bottom:22px;

}

.formGroup label{

font-weight:700;

margin-bottom:10px;

color:#334155;

font-size:15px;

}

.formGroup input,

.formGroup textarea,

.formGroup select{

width:100%;

padding:16px 18px;

border:2px solid #dbeafe;

border-radius:16px;

background:white;

font-size:15px;

transition:.35s;

}

.formGroup textarea{

resize:vertical;

min-height:180px;

line-height:1.7;

}

.formGroup input:focus,

.formGroup textarea:focus,

.formGroup select:focus{

border-color:#2563eb;

outline:none;

box-shadow:0 0 0 5px rgba(37,99,235,.15);

}

/*=========================================
UPLOAD AREA
=========================================*/

.uploadArea{

margin:35px 0;

}

.uploadArea h3{

margin-bottom:18px;

font-size:24px;

display:flex;

align-items:center;

gap:10px;

color:#1e293b;

}

.uploadArea h3 i{

color:#2563eb;

}

.dropZone{

border:3px dashed #93c5fd;

border-radius:22px;

padding:50px;

text-align:center;

cursor:pointer;

background:#eff6ff;

transition:.35s;

position:relative;

overflow:hidden;

}

.dropZone:hover{

background:#dbeafe;

border-color:#2563eb;

transform:translateY(-3px);

}

.dropZone.dragover{

background:#bfdbfe;

border-color:#1d4ed8;

}

.dropZone i{

font-size:58px;

color:#2563eb;

margin-bottom:18px;

display:block;

}

.dropZone p{

font-size:17px;

color:#475569;

font-weight:500;

}

/*=========================================
PREVIEW
=========================================*/

.previewGrid{

display:grid;

grid-template-columns:repeat(auto-fill,minmax(180px,1fr));

gap:20px;

margin-top:30px;

}

.previewItem{

position:relative;

border-radius:18px;

overflow:hidden;

background:white;

box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.previewItem img,

.previewItem video{

width:100%;

height:180px;

object-fit:cover;

display:block;

}

.previewItem button{

position:absolute;

top:10px;

right:10px;

width:36px;

height:36px;

border:none;

border-radius:50%;

background:#ef4444;

color:#fff;

cursor:pointer;

font-size:16px;

transition:.3s;

}

.previewItem button:hover{

transform:scale(1.1);

}

/*=========================================
PROGRESS BAR
=========================================*/

.progressBox{

width:100%;

height:16px;

background:#dbeafe;

border-radius:20px;

overflow:hidden;

margin:30px 0;

display:none;

}

.progressBar{

width:0;

height:100%;

background:linear-gradient(90deg,#2563eb,#06b6d4);

transition:width .3s;

}

/*=========================================
INFO BOX
=========================================*/

.infoBox{

display:flex;

align-items:flex-start;

gap:15px;

padding:20px;

background:#eff6ff;

border-left:5px solid #2563eb;

border-radius:16px;

margin-bottom:30px;

}

.infoBox i{

font-size:24px;

color:#2563eb;

margin-top:2px;

}

.infoBox span{

font-size:15px;

line-height:1.7;

color:#334155;

}

/*=========================================
BUTTON
=========================================*/

.buttonArea{

display:flex;

justify-content:flex-end;

margin-top:25px;

}

.buttonArea button{

background:linear-gradient(135deg,#2563eb,#06b6d4);

color:#fff;

border:none;

padding:18px 40px;

border-radius:50px;

font-size:17px;

font-weight:700;

cursor:pointer;

display:flex;

align-items:center;

gap:12px;

transition:.35s;

box-shadow:0 18px 40px rgba(37,99,235,.25);

}

.buttonArea button:hover{

transform:translateY(-4px);

box-shadow:0 28px 60px rgba(37,99,235,.35);

}

.buttonArea button:active{

transform:scale(.98);

}
/*====================================================
GALLERY SECTION
====================================================*/

.gallerySection{

padding:90px 0;

background:#eef5ff;

}

.gallerySection h2{

font-size:42px;

font-weight:700;

color:#1e293b;

margin-bottom:12px;

text-align:center;

}

.gallerySection> .container> p{

text-align:center;

color:#64748b;

font-size:17px;

margin-bottom:50px;

}

/*====================================================
COUNTRY GRID
====================================================*/

.countryGrid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:35px;

align-items:start;

}

/*====================================================
COUNTRY CARD
====================================================*/

.countryCard{

background:rgba(255,255,255,.82);

backdrop-filter:blur(18px);

border-radius:28px;

overflow:hidden;

box-shadow:

0 18px 50px rgba(15,23,42,.08);

transition:.35s;

border:1px solid rgba(255,255,255,.45);

position:relative;

}

.countryCard:hover{

transform:translateY(-8px);

box-shadow:

0 30px 70px rgba(37,99,235,.18);

}

/*====================================================
CARD HEADER
====================================================*/

.cardHeader{

display:flex;

align-items:center;

gap:18px;

padding:22px 28px;

background:linear-gradient(

135deg,

#2563eb,

#3b82f6

);

color:white;

}

.countryIcon{

width:60px;

height:60px;

border-radius:50%;

background:rgba(255,255,255,.20);

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

}

.cardHeader h3{

font-size:24px;

font-weight:700;

}

.cardHeader small{

font-size:14px;

opacity:.9;

}

/*====================================================
PHOTO
====================================================*/

.cardPhoto{

width:100%;

height:340px;

overflow:hidden;

background:#ddd;

}

.cardPhoto img{

width:100%;

height:100%;

object-fit:cover;

transition:.5s;

cursor:pointer;

}

.countryCard:hover .cardPhoto img{

transform:scale(1.08);

}

/*====================================================
VIDEO
====================================================*/

.cardVideo{

padding:22px;

background:white;

}

.cardVideo video{

width:100%;

border-radius:18px;

cursor:pointer;

box-shadow:

0 10px 30px rgba(0,0,0,.08);

}

/*====================================================
BODY
====================================================*/

.cardBody{

padding:30px;

}

.cardBody p{

font-size:16px;

line-height:1.9;

color:#475569;

}

/*====================================================
INFO
====================================================*/

.cardInfo{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px;

padding:0 30px 30px;

}

.cardInfo div{

display:flex;

align-items:center;

gap:12px;

padding:15px;

background:#f8fbff;

border-radius:16px;

transition:.3s;

}

.cardInfo div:hover{

background:#dbeafe;

}

.cardInfo i{

color:#2563eb;

font-size:20px;

width:24px;

text-align:center;

}

.cardInfo span{

font-size:15px;

font-weight:600;

color:#334155;

}

/*====================================================
DATE BADGE
====================================================*/

.dateBadge{

position:absolute;

top:22px;

right:22px;

background:white;

color:#2563eb;

padding:10px 18px;

border-radius:50px;

font-size:13px;

font-weight:700;

box-shadow:

0 10px 30px rgba(0,0,0,.12);

}

/*====================================================
COUNTRY BADGE
====================================================*/

.countryBadge{

display:inline-flex;

align-items:center;

gap:8px;

background:#2563eb;

color:white;

padding:8px 18px;

border-radius:40px;

font-size:13px;

font-weight:600;

}

/*====================================================
ACTION BAR
====================================================*/

.actionBar{

display:flex;

justify-content:space-between;

align-items:center;

padding:22px 28px;

border-top:1px solid #edf2f7;

background:white;

}

.actionLeft{

display:flex;

gap:15px;

}

.actionBtn{

display:flex;

align-items:center;

gap:8px;

padding:10px 18px;

border-radius:50px;

background:#eff6ff;

cursor:pointer;

transition:.35s;

font-size:14px;

font-weight:600;

color:#2563eb;

}

.actionBtn:hover{

background:#2563eb;

color:white;

transform:translateY(-2px);

}

.actionBtn i{

font-size:16px;

}

/*====================================================
EMPTY CARD
====================================================*/

.emptyGallery{

grid-column:1/-1;

background:white;

padding:80px;

border-radius:28px;

text-align:center;

box-shadow:

0 20px 60px rgba(0,0,0,.08);

}

.emptyGallery i{

font-size:90px;

color:#cbd5e1;

margin-bottom:20px;

}

.emptyGallery h2{

font-size:32px;

margin-bottom:12px;

color:#334155;

}

.emptyGallery p{

font-size:18px;

color:#64748b;

}
/*==================================================
IMAGE MODAL
==================================================*/

.modal{

display:none;

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:rgba(15,23,42,.92);

justify-content:center;

align-items:center;

z-index:99999;

animation:fadeIn .35s;

}

.modal img{

max-width:90%;

max-height:90%;

border-radius:20px;

box-shadow:0 25px 70px rgba(0,0,0,.45);

}

.modal video{

max-width:90%;

max-height:90%;

border-radius:20px;

background:#000;

box-shadow:0 25px 70px rgba(0,0,0,.45);

}

.closeModal,

.closeVideo{

position:absolute;

top:25px;

right:35px;

font-size:45px;

color:#fff;

cursor:pointer;

transition:.3s;

}

.closeModal:hover,

.closeVideo:hover{

transform:rotate(90deg);

color:#60a5fa;

}

/*==================================================
TOP BUTTON
==================================================*/

#topButton{

position:fixed;

right:30px;

bottom:30px;

width:60px;

height:60px;

display:none;

justify-content:center;

align-items:center;

border:none;

border-radius:50%;

background:linear-gradient(135deg,#2563eb,#3b82f6);

color:#fff;

font-size:22px;

cursor:pointer;

box-shadow:0 18px 40px rgba(37,99,235,.35);

transition:.35s;

z-index:999;

}

#topButton:hover{

transform:translateY(-6px);

box-shadow:0 28px 55px rgba(37,99,235,.45);

}

/*==================================================
SEARCH
==================================================*/

.searchSection{

padding:70px 0;

background:#ffffff;

}

.searchBox{

max-width:700px;

margin:auto;

position:relative;

}

.searchBox input{

width:100%;

padding:18px 25px 18px 60px;

border-radius:60px;

border:2px solid #dbeafe;

font-size:17px;

transition:.35s;

}

.searchBox input:focus{

outline:none;

border-color:#2563eb;

box-shadow:0 0 0 5px rgba(37,99,235,.15);

}

.searchBox i{

position:absolute;

left:22px;

top:50%;

transform:translateY(-50%);

font-size:20px;

color:#2563eb;

}

/*==================================================
STATISTICS
==================================================*/

.statistics{

padding:80px 0;

background:#f8fbff;

}

.statistics .container{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:30px;

}

.statCard{

background:white;

border-radius:24px;

padding:45px;

text-align:center;

box-shadow:0 15px 40px rgba(0,0,0,.08);

transition:.35s;

}

.statCard:hover{

transform:translateY(-8px);

box-shadow:0 30px 70px rgba(37,99,235,.18);

}

.statCard i{

font-size:60px;

color:#2563eb;

margin-bottom:20px;

}

.statCard h2{

font-size:48px;

font-weight:800;

color:#1e293b;

margin-bottom:10px;

}

.statCard p{

font-size:18px;

color:#64748b;

}

/*==================================================
TOAST
==================================================*/

#toast{

position:fixed;

right:30px;

bottom:35px;

background:#16a34a;

color:white;

padding:18px 25px;

border-radius:16px;

display:flex;

align-items:center;

gap:15px;

box-shadow:0 20px 45px rgba(0,0,0,.18);

transform:translateX(500px);

transition:.45s;

z-index:99999;

}

#toast.show{

transform:translateX(0);

}

#toast i{

font-size:24px;

}

/*==================================================
LOADING BOX
==================================================*/

#loadingBox{

display:none;

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:rgba(255,255,255,.88);

backdrop-filter:blur(6px);

justify-content:center;

align-items:center;

flex-direction:column;

z-index:999999;

}

.spinner{

width:70px;

height:70px;

border-radius:50%;

border:7px solid #dbeafe;

border-top:7px solid #2563eb;

animation:spin 1s linear infinite;

}

#loadingBox p{

margin-top:20px;

font-size:18px;

font-weight:600;

color:#334155;

}

/*==================================================
FOOTER
==================================================*/

footer{

padding:45px 0;

background:#0f172a;

color:#cbd5e1;

}

footer .container{

display:flex;

justify-content:space-between;

align-items:center;

gap:40px;

flex-wrap:wrap;

}

.footerLeft h3{

font-size:28px;

color:white;

margin-bottom:12px;

}

.footerLeft p{

line-height:1.8;

max-width:550px;

}

.footerRight{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px;

}

.footerRight div{

display:flex;

align-items:center;

gap:12px;

background:rgba(255,255,255,.08);

padding:14px 18px;

border-radius:14px;

}

.footerRight i{

color:#60a5fa;

font-size:20px;

}

/*==================================================
ANIMATIONS
==================================================*/

@keyframes fadeIn{

from{

opacity:0;

transform:scale(.95);

}

to{

opacity:1;

transform:scale(1);

}

}

.fadeIn{

animation:fadeIn .5s ease;

}

.zoom{

transition:.35s;

}

.zoom:hover{

transform:scale(1.03);

}

.shadowHover{

transition:.35s;

}

.shadowHover:hover{

box-shadow:0 25px 60px rgba(37,99,235,.18);

}
/*==================================================
RESPONSIVE DESIGN
==================================================*/

@media (max-width:1400px){

.container{

width:96%;

}

.heroContent h1{

font-size:50px;

}

}

@media (max-width:1200px){

.countryGrid{

grid-template-columns:1fr;

}

.statistics .container{

grid-template-columns:repeat(2,1fr);

}

.grid2{

grid-template-columns:1fr;

}

.hero{

height:460px;

}

.heroContent h1{

font-size:44px;

}

.heroContent p{

font-size:18px;

}

}

@media (max-width:992px){

header .container{

height:75px;

}

.logo h1{

font-size:22px;

}

nav{

gap:8px;

}

nav a{

padding:10px 16px;

font-size:14px;

}

.uploadCard{

padding:30px;

}

.cardPhoto{

height:280px;

}

.statistics .container{

grid-template-columns:1fr;

}

.footerRight{

grid-template-columns:1fr;

width:100%;

}

footer .container{

flex-direction:column;

align-items:flex-start;

}

}

@media (max-width:768px){

header{

position:relative;

}

header .container{

flex-direction:column;

height:auto;

padding:15px 0;

}

nav{

margin-top:15px;

flex-wrap:wrap;

justify-content:center;

}

.hero{

margin-top:0;

height:400px;

}

.heroContent h1{

font-size:34px;

}

.heroContent p{

font-size:16px;

}

.gallerySection h2{

font-size:32px;

}

.uploadCard h2{

font-size:28px;

}

.cardHeader{

padding:18px;

}

.cardHeader h3{

font-size:20px;

}

.cardBody{

padding:22px;

}

.cardInfo{

grid-template-columns:1fr;

padding:20px;

}

.cardPhoto{

height:240px;

}

.previewGrid{

grid-template-columns:repeat(auto-fill,minmax(140px,1fr));

}

.modal img,

.modal video{

max-width:95%;

max-height:80%;

}

}

@media (max-width:576px){

.container{

width:94%;

}

.hero{

height:340px;

}

.heroContent h1{

font-size:28px;

}

.heroContent p{

font-size:15px;

}

.uploadCard{

padding:22px;

border-radius:20px;

}

.dropZone{

padding:35px 20px;

}

.dropZone i{

font-size:46px;

}

.buttonArea button{

width:100%;

justify-content:center;

}

.searchBox input{

font-size:15px;

padding:16px 20px 16px 52px;

}

.statCard{

padding:30px;

}

.statCard h2{

font-size:36px;

}

.countryCard{

border-radius:20px;

}

.cardPhoto{

height:210px;

}

#topButton{

width:52px;

height:52px;

right:18px;

bottom:18px;

font-size:18px;

}

}

/*==================================================
COUNTRY FLAG
==================================================*/

.flag{

width:34px;

height:24px;

border-radius:4px;

object-fit:cover;

border:1px solid rgba(0,0,0,.1);

margin-right:8px;

vertical-align:middle;

}

/*==================================================
BADGES
==================================================*/

.badge{

display:inline-flex;

align-items:center;

gap:8px;

padding:8px 16px;

border-radius:50px;

font-size:13px;

font-weight:600;

}

.badge.country{

background:#dbeafe;

color:#1d4ed8;

}

.badge.school{

background:#dcfce7;

color:#15803d;

}

.badge.city{

background:#fef3c7;

color:#b45309;

}

.badge.date{

background:#ede9fe;

color:#6d28d9;

}

/*==================================================
CARD HOVER EFFECT
==================================================*/

.countryCard::before{

content:"";

position:absolute;

top:0;

left:-100%;

width:100%;

height:100%;

background:linear-gradient(

90deg,

transparent,

rgba(255,255,255,.35),

transparent

);

transition:.8s;

pointer-events:none;

}

.countryCard:hover::before{

left:100%;

}

/*==================================================
IMAGE EFFECT
==================================================*/

.cardPhoto{

position:relative;

overflow:hidden;

}

.cardPhoto::after{

content:"";

position:absolute;

left:0;

top:0;

width:100%;

height:100%;

background:linear-gradient(

180deg,

transparent,

rgba(0,0,0,.18)

);

pointer-events:none;

}

.cardPhoto img{

transition:transform .6s ease;

}

.countryCard:hover .cardPhoto img{

transform:scale(1.08);

}

/*==================================================
VIDEO EFFECT
==================================================*/

.cardVideo{

position:relative;

}

.cardVideo::after{

content:"▶";

position:absolute;

left:50%;

top:50%;

transform:translate(-50%,-50%);

width:70px;

height:70px;

border-radius:50%;

background:rgba(255,255,255,.85);

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

color:#2563eb;

pointer-events:none;

}

/*==================================================
SMOOTH TRANSITIONS
==================================================*/

button,
input,
textarea,
select,
.countryCard,
.previewItem,
.dropZone,
.statCard,
.actionBtn{

transition:all .35s ease;

}
/*==================================================
FILTER BAR
==================================================*/

.filterBar{

display:flex;

justify-content:space-between;

align-items:center;

gap:20px;

margin:40px 0;

flex-wrap:wrap;

}

.filterLeft{

display:flex;

gap:15px;

flex-wrap:wrap;

}

.filterLeft select,

.filterLeft input{

padding:14px 18px;

border:2px solid #dbeafe;

border-radius:14px;

background:#fff;

font-size:15px;

min-width:220px;

transition:.35s;

}

.filterLeft select:focus,

.filterLeft input:focus{

outline:none;

border-color:#2563eb;

box-shadow:0 0 0 5px rgba(37,99,235,.15);

}

.filterRight{

display:flex;

gap:12px;

}

.filterButton{

padding:14px 24px;

border:none;

border-radius:14px;

background:#2563eb;

color:#fff;

font-weight:600;

cursor:pointer;

transition:.35s;

}

.filterButton:hover{

background:#1d4ed8;

transform:translateY(-2px);

}

/*==================================================
PAGINATION
==================================================*/

.pagination{

display:flex;

justify-content:center;

align-items:center;

gap:12px;

margin:60px 0;

flex-wrap:wrap;

}

.pagination a{

width:46px;

height:46px;

display:flex;

justify-content:center;

align-items:center;

text-decoration:none;

background:#fff;

color:#334155;

border-radius:12px;

font-weight:600;

box-shadow:0 10px 25px rgba(0,0,0,.08);

transition:.3s;

}

.pagination a:hover{

background:#2563eb;

color:#fff;

}

.pagination .active{

background:#2563eb;

color:#fff;

}

/*==================================================
TABLE
==================================================*/

.tableResponsive{

width:100%;

overflow:auto;

border-radius:20px;

box-shadow:0 18px 45px rgba(0,0,0,.08);

background:#fff;

}

table{

width:100%;

border-collapse:collapse;

min-width:900px;

}

thead{

background:#2563eb;

color:#fff;

}

thead th{

padding:18px;

font-size:15px;

text-align:left;

}

tbody td{

padding:18px;

border-bottom:1px solid #edf2f7;

font-size:14px;

vertical-align:middle;

}

tbody tr{

transition:.3s;

}

tbody tr:hover{

background:#eff6ff;

}

.tableImage{

width:90px;

height:70px;

border-radius:10px;

overflow:hidden;

}

.tableImage img{

width:100%;

height:100%;

object-fit:cover;

}

.tableVideo video{

width:110px;

border-radius:8px;

}

/*==================================================
STATUS
==================================================*/

.status{

display:inline-flex;

align-items:center;

padding:8px 18px;

border-radius:30px;

font-size:13px;

font-weight:700;

}

.status.pending{

background:#fef3c7;

color:#b45309;

}

.status.approved{

background:#dcfce7;

color:#15803d;

}

.status.rejected{

background:#fee2e2;

color:#b91c1c;

}

/*==================================================
ACTION BUTTONS
==================================================*/

.actions{

display:flex;

gap:10px;

flex-wrap:wrap;

}

.actions button{

width:42px;

height:42px;

border:none;

border-radius:12px;

cursor:pointer;

display:flex;

justify-content:center;

align-items:center;

font-size:17px;

transition:.35s;

}

.approve{

background:#16a34a;

color:#fff;

}

.edit{

background:#2563eb;

color:#fff;

}

.delete{

background:#dc2626;

color:#fff;

}

.reject{

background:#f59e0b;

color:#fff;

}

.actions button:hover{

transform:translateY(-3px);

filter:brightness(1.05);

}

/*==================================================
ADMIN CARD
==================================================*/

.adminCard{

background:#fff;

border-radius:22px;

padding:35px;

box-shadow:0 20px 50px rgba(0,0,0,.08);

margin-bottom:35px;

}

.adminCard h2{

font-size:28px;

margin-bottom:25px;

color:#1e293b;

display:flex;

align-items:center;

gap:12px;

}

.adminCard h2 i{

color:#2563eb;

}

/*==================================================
STAT MINI
==================================================*/

.adminStats{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:25px;

margin-bottom:40px;

}

.adminStat{

background:#fff;

border-radius:20px;

padding:30px;

text-align:center;

box-shadow:0 15px 35px rgba(0,0,0,.08);

transition:.35s;

}

.adminStat:hover{

transform:translateY(-5px);

}

.adminStat i{

font-size:36px;

color:#2563eb;

margin-bottom:15px;

}

.adminStat h3{

font-size:34px;

margin-bottom:8px;

color:#1e293b;

}

.adminStat span{

font-size:15px;

color:#64748b;

}
/*==================================================
ANIMATION CLASSES
==================================================*/

.fadeUp{
animation:fadeUp .8s ease both;
}

.fadeLeft{
animation:fadeLeft .8s ease both;
}

.fadeRight{
animation:fadeRight .8s ease both;
}

.zoomIn{
animation:zoomIn .6s ease both;
}

.rotateIn{
animation:rotateIn .8s ease both;
}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(40px);

}

to{

opacity:1;

transform:translateY(0);

}

}

@keyframes fadeLeft{

from{

opacity:0;

transform:translateX(-40px);

}

to{

opacity:1;

transform:translateX(0);

}

}

@keyframes fadeRight{

from{

opacity:0;

transform:translateX(40px);

}

to{

opacity:1;

transform:translateX(0);

}

}

@keyframes zoomIn{

from{

opacity:0;

transform:scale(.85);

}

to{

opacity:1;

transform:scale(1);

}

}

@keyframes rotateIn{

from{

opacity:0;

transform:rotate(-10deg) scale(.8);

}

to{

opacity:1;

transform:rotate(0) scale(1);

}

}

/*==================================================
FLOAT EFFECT
==================================================*/

.float{

animation:float 5s ease-in-out infinite;

}

@keyframes float{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-10px);

}

100%{

transform:translateY(0);

}

}

/*==================================================
CARD SHINE EFFECT
==================================================*/

.countryCard{

position:relative;

overflow:hidden;

}

.countryCard::after{

content:"";

position:absolute;

top:-150%;

left:-50%;

width:70%;

height:300%;

background:linear-gradient(

90deg,

transparent,

rgba(255,255,255,.28),

transparent

);

transform:rotate(25deg);

transition:1s;

pointer-events:none;

}

.countryCard:hover::after{

left:150%;

}

/*==================================================
IMAGE ZOOM
==================================================*/

.previewItem{

overflow:hidden;

}

.previewItem img{

transition:transform .6s;

}

.previewItem:hover img{

transform:scale(1.12);

}

/*==================================================
VIDEO ZOOM
==================================================*/

.previewItem video{

transition:transform .6s;

}

.previewItem:hover video{

transform:scale(1.05);

}

/*==================================================
BUTTON RIPPLE
==================================================*/

.buttonArea button{

position:relative;

overflow:hidden;

}

.buttonArea button::before{

content:"";

position:absolute;

width:0;

height:0;

left:50%;

top:50%;

background:rgba(255,255,255,.35);

border-radius:50%;

transform:translate(-50%,-50%);

transition:.6s;

}

.buttonArea button:hover::before{

width:450px;

height:450px;

}

/*==================================================
INPUT ICONS
==================================================*/

.inputIcon{

position:relative;

}

.inputIcon i{

position:absolute;

left:18px;

top:50%;

transform:translateY(-50%);

color:#2563eb;

font-size:18px;

}

.inputIcon input{

padding-left:48px;

}

/*==================================================
GLASS PANEL
==================================================*/

.glass{

background:rgba(255,255,255,.75);

backdrop-filter:blur(18px);

border:1px solid rgba(255,255,255,.35);

border-radius:20px;

}

/*==================================================
SECTION TITLE
==================================================*/

.sectionTitle{

text-align:center;

margin-bottom:55px;

}

.sectionTitle h2{

font-size:42px;

color:#1e293b;

margin-bottom:12px;

}

.sectionTitle p{

font-size:18px;

color:#64748b;

max-width:760px;

margin:auto;

line-height:1.8;

}

/*==================================================
CUSTOM CHECKBOX
==================================================*/

.checkbox{

display:flex;

align-items:center;

gap:12px;

cursor:pointer;

}

.checkbox input{

width:20px;

height:20px;

accent-color:#2563eb;

}

/*==================================================
CUSTOM RADIO
==================================================*/

.radio{

display:flex;

align-items:center;

gap:12px;

cursor:pointer;

}

.radio input{

accent-color:#2563eb;

}

/*==================================================
FILE SIZE BADGE
==================================================*/

.fileBadge{

display:inline-flex;

align-items:center;

gap:8px;

padding:6px 14px;

border-radius:40px;

background:#eff6ff;

color:#2563eb;

font-size:12px;

font-weight:600;

margin-top:10px;

}

/*==================================================
TOOLTIP
==================================================*/

.tooltip{

position:relative;

cursor:pointer;

}

.tooltip::before{

content:attr(data-title);

position:absolute;

bottom:130%;

left:50%;

transform:translateX(-50%);

background:#1e293b;

color:white;

padding:8px 12px;

border-radius:8px;

font-size:12px;

white-space:nowrap;

opacity:0;

visibility:hidden;

transition:.3s;

}

.tooltip:hover::before{

opacity:1;

visibility:visible;

}

/*==================================================
SMOOTH HOVER
==================================================*/

.cardPhoto img,

.cardVideo video,

.countryCard,

.previewItem,

button{

will-change:transform;

}
/*==================================================
DARK MODE
==================================================*/

@media (prefers-color-scheme:dark){

body{

background:#0f172a;

color:#e2e8f0;

}

header{

background:rgba(15,23,42,.85);

}

.logo h1,
nav a{

color:white;

}

.uploadCard,
.countryCard,
.statCard,
.adminCard{

background:#1e293b;

color:white;

border:1px solid rgba(255,255,255,.08);

}

.formGroup input,
.formGroup textarea,
.formGroup select{

background:#0f172a;

color:white;

border-color:#334155;

}

.formGroup label{

color:#cbd5e1;

}

.cardBody p,
.cardInfo span{

color:#cbd5e1;

}

.searchBox input{

background:#0f172a;

color:white;

border-color:#334155;

}

footer{

background:#020617;

}

}

/*==================================================
PRINT
==================================================*/

@media print{

header,
footer,
.buttonArea,
.searchSection,
#topButton,
.progressBox,
.loading,
#toast{

display:none !important;

}

body{

background:white;

color:black;

}

.countryCard{

break-inside:avoid;

box-shadow:none;

border:1px solid #ccc;

}

}

/*==================================================
ACCESSIBILITY
==================================================*/

:focus-visible{

outline:3px solid #2563eb;

outline-offset:3px;

border-radius:6px;

}

@media (prefers-reduced-motion:reduce){

*{

animation:none !important;

transition:none !important;

scroll-behavior:auto !important;

}

}

/*==================================================
UTILITY CLASSES
==================================================*/

.text-center{text-align:center;}
.text-left{text-align:left;}
.text-right{text-align:right;}

.mt-1{margin-top:10px;}
.mt-2{margin-top:20px;}
.mt-3{margin-top:30px;}
.mt-4{margin-top:40px;}
.mt-5{margin-top:50px;}

.mb-1{margin-bottom:10px;}
.mb-2{margin-bottom:20px;}
.mb-3{margin-bottom:30px;}
.mb-4{margin-bottom:40px;}
.mb-5{margin-bottom:50px;}

.p-1{padding:10px;}
.p-2{padding:20px;}
.p-3{padding:30px;}
.p-4{padding:40px;}
.p-5{padding:50px;}

.rounded{
border-radius:20px;
}

.shadow{
box-shadow:0 15px 40px rgba(0,0,0,.12);
}

.flex{
display:flex;
}

.flex-center{

display:flex;

justify-content:center;

align-items:center;

}

.flex-between{

display:flex;

justify-content:space-between;

align-items:center;

}

.flex-column{

display:flex;

flex-direction:column;

}

.gap-10{gap:10px;}
.gap-20{gap:20px;}
.gap-30{gap:30px;}

.w-100{
width:100%;
}

.h-100{
height:100%;
}

.d-none{
display:none;
}

.d-block{
display:block;
}

/*==================================================
IMAGE HELPERS
==================================================*/

.img-cover{

width:100%;

height:100%;

object-fit:cover;

}

.img-contain{

width:100%;

height:100%;

object-fit:contain;

}

/*==================================================
BUTTON COLORS
==================================================*/

.btn-primary{

background:#2563eb;

color:#fff;

}

.btn-success{

background:#16a34a;

color:#fff;

}

.btn-warning{

background:#f59e0b;

color:#fff;

}

.btn-danger{

background:#dc2626;

color:#fff;

}

.btn-dark{

background:#0f172a;

color:#fff;

}

.btn-primary:hover,
.btn-success:hover,
.btn-warning:hover,
.btn-danger:hover,
.btn-dark:hover{

filter:brightness(1.08);

}

/*==================================================
CARD EFFECTS
==================================================*/

.hover-up:hover{

transform:translateY(-8px);

}

.hover-scale:hover{

transform:scale(1.03);

}

.hover-shadow:hover{

box-shadow:0 30px 70px rgba(0,0,0,.18);

}

/*==================================================
END OF FILE
==================================================*/