*{

margin:0;
padding:0;
box-sizing:border-box;
font-family:Inter,Arial,sans-serif;

}


body{

background:#f5f7fb;
color:#1d1d1f;

}



.app{

display:flex;
min-height:100vh;

}







/* SIDEBAR */


.sidebar{

width:270px;

background:#12111f;

color:white;

padding:30px 25px;

display:flex;

flex-direction:column;

position:relative;

}



.brand{

display:flex;

align-items:center;

gap:15px;

margin-bottom:45px;

}



.brand img{

width:55px;

height:55px;

object-fit:contain;

background:white;

border-radius:15px;

}



.brand h2{

font-size:24px;

}



.brand p{

color:#aaa;

font-size:14px;

}





.menu{

list-style:none;

}



.menu li{

display:flex;

align-items:center;

gap:12px;

padding:15px;

border-radius:14px;

margin-bottom:10px;

cursor:pointer;

color:#ddd;

transition:.25s;

}



.menu li:hover,
.menu li.active{

background:#5da7c9;

color:white;

}






.storage-card{

margin-top:auto;

background:rgba(255,255,255,.08);

padding:20px;

border-radius:20px;

}



.storage-card h4{

margin-bottom:15px;

}



.storage-bar{

height:10px;

background:#333;

border-radius:20px;

overflow:hidden;

}



.storage-bar div{

height:100%;

width:0%;

background:#5da7c9;

transition:.5s;

}



.storage-card p{

margin-top:10px;

font-size:13px;

color:#ccc;

}




.logout{

margin-top:20px;

background:#252337;

padding:13px;

border-radius:12px;

text-align:center;

color:white;

text-decoration:none;

}









/* MAIN */


.main{

flex:1;

padding:35px;

}




.topbar{

display:flex;

justify-content:space-between;

align-items:center;

}



.topbar h1{

font-size:34px;

}



.topbar p{

color:#777;

margin-top:5px;

}



.profile img{

width:55px;

height:55px;

object-fit:contain;

}









/* STATS */


.stats{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:20px;

margin:35px 0;

}



.stat-card{

background:white;

padding:25px;

border-radius:22px;

box-shadow:

0 10px 30px rgba(0,0,0,.05);

}



.stat-card span{

color:#777;

}



.stat-card h2{

margin-top:10px;

font-size:30px;

}









/* UPLOAD */


.upload-box{

background:white;

padding:30px;

border-radius:25px;

display:flex;

justify-content:space-between;

align-items:center;

box-shadow:

0 10px 30px rgba(0,0,0,.05);

}



.upload-box p{

color:#777;

margin-top:5px;

}




.upload-actions{

display:flex;

gap:15px;

}



select,
input{

border:1px solid #ddd;

padding:13px 15px;

border-radius:12px;

background:white;

font-size:14px;

}





#uploadButton{

background:#5da7c9;

color:white;

border:none;

padding:13px 25px;

border-radius:12px;

cursor:pointer;

font-weight:bold;

}









/* DROPZONE */


.drop-zone{

margin:30px 0;

background:white;

border:2px dashed #5da7c9;

padding:45px;

border-radius:25px;

text-align:center;

cursor:pointer;

}



.upload-icon{

font-size:55px;

margin-bottom:15px;

}



.drop-zone p{

color:#777;

}









/* UPLOAD PROGRESS */


.upload-progress-container{

display:none;

background:white;

padding:25px;

border-radius:25px;

margin-bottom:30px;

box-shadow:

0 10px 30px rgba(0,0,0,.05);

}



.progress-title{

margin-bottom:20px;

}



.upload-item{

margin-bottom:20px;

}



.upload-header{

display:flex;

justify-content:space-between;

margin-bottom:10px;

}



.upload-name{

font-size:14px;

font-weight:bold;

}



.upload-status{

font-size:13px;

color:#777;

}



.progress-bar{

height:10px;

background:#e5e8ec;

border-radius:20px;

overflow:hidden;

}



.progress-fill{

height:100%;

width:0%;

background:#5da7c9;

transition:.2s;

}



.upload-meta{

display:flex;

justify-content:space-between;

margin-top:8px;

font-size:12px;

color:#777;

}






/* FILE TOOLBAR */


.files-toolbar{

display:flex;

gap:15px;

align-items:center;

margin-bottom:25px;

}



.files-toolbar input{

flex:1;

}




.view-buttons{

display:flex;

gap:10px;

}



.view-buttons button{

width:42px;

height:42px;

border:none;

border-radius:12px;

background:white;

cursor:pointer;

font-size:20px;

}









/* FILES */


.file-grid{

display:grid;

grid-template-columns:

repeat(auto-fill,minmax(250px,1fr));

gap:20px;

}



.file-grid.list{

display:flex;

flex-direction:column;

}





.file-card{

background:white;

padding:25px;

border-radius:22px;

box-shadow:

0 10px 25px rgba(0,0,0,.06);

}



.file-grid.list .file-card{

display:flex;

align-items:center;

justify-content:space-between;

}




.file-icon{

font-size:45px;

margin-bottom:15px;

}



.file-card h3{

font-size:16px;

word-break:break-word;

margin-bottom:10px;

}



.file-card p{

color:#777;

font-size:13px;

}




.badge{

display:inline-block;

margin-top:10px;

background:#edf8ff;

padding:6px 12px;

border-radius:20px;

font-size:12px;

}



.file-actions{

margin-top:20px;

display:flex;

gap:10px;

}



.file-actions button{

background:#12111f;

color:white;

border:none;

padding:10px 14px;

border-radius:10px;

cursor:pointer;

}








/* PREVIEW */


.modal{

display:none;

position:fixed;

inset:0;

background:rgba(0,0,0,.6);

align-items:center;

justify-content:center;

z-index:5000;

}



.preview-box{

background:white;

width:80%;

height:80%;

padding:30px;

border-radius:25px;

overflow:auto;

}



#closePreview{

float:right;

background:none;

border:none;

font-size:30px;

cursor:pointer;

}








/* MOBILE */


.mobile-menu{

display:none;

}





@media(max-width:900px){


.mobile-menu{

display:block;

position:fixed;

top:15px;

left:15px;

z-index:1000;

width:45px;

height:45px;

border:none;

border-radius:12px;

background:#12111f;

color:white;

font-size:22px;

}



.sidebar{

position:fixed;

left:-280px;

height:100vh;

z-index:999;

transition:.3s;

}



.sidebar.open{

left:0;

}



.main{

padding:80px 20px 20px;

}



.stats{

grid-template-columns:1fr;

}



.upload-box{

flex-direction:column;

align-items:flex-start;

gap:20px;

}



.upload-actions{

width:100%;

flex-wrap:wrap;

}



.files-toolbar{

flex-direction:column;

}



.files-toolbar input{

width:100%;

}



.file-grid{

grid-template-columns:1fr;

}



.topbar h1{

font-size:24px;

}



.preview-box{

width:95%;

height:85%;

}


}