body{
font-family:Arial, Helvetica, sans-serif;
margin:0;
background:#f7f7f7;
}

.container{
max-width:1100px;
margin:auto;
padding:20px;
}

/* HEADER */

.header{
background:white;
border-bottom:1px solid #ddd;
}

.nav-container{
max-width:1100px;
margin:auto;
display:flex;
justify-content:space-between;
align-items:center;
padding:15px;
}

.logo a{
font-size:22px;
font-weight:bold;
text-decoration:none;
color:#333;
}

.nav-links a{
margin-left:15px;
text-decoration:none;
color:#333;
}

.post-btn{
background:#28a745;
color:white;
padding:8px 15px;
border-radius:5px;
}

/* FOOTER */

.footer{
background:#222;
color:white;
margin-top:40px;
}

.footer-container{
max-width:1100px;
margin:auto;
padding:20px;
display:flex;
justify-content:space-between;
}

/* VENDOR CREATE FORM */

.form-container{
max-width:900px;
margin:auto;
padding:20px;
}

.form-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:15px;
}

.full{
grid-column:1 / -1;
}

label{
font-weight:600;
font-size:14px;
}

.required{
color:red;
}

input, textarea, select{
width:100%;
padding:10px;
border:1px solid #ccc;
border-radius:6px;
font-size:14px;
}

textarea{
min-height:80px;
resize:vertical;
}

button{
padding:10px 18px;
border:none;
border-radius:6px;
background:#2c7be5;
color:white;
cursor:pointer;
}

button:hover{
background:#1b5fcc;
}

.section-title{
margin-top:30px;
font-size:18px;
font-weight:700;
border-bottom:1px solid #eee;
padding-bottom:5px;
}

.service-row{
display:flex;
gap:10px;
margin-bottom:8px;
}

.service-row input{
flex:1;
}

.remove-btn{
background:#ff4d4d;
color:white;
border:none;
padding:6px 10px;
border-radius:4px;
cursor:pointer;
}

.remove-btn:hover{
background:#cc0000;
}

.hours-grid{
display:grid;
grid-template-columns:120px 1fr 1fr auto;
gap:10px;
align-items:center;
margin-bottom:8px;
}

@media(max-width:700px){

.form-grid{
grid-template-columns:1fr;
}

.hours-grid{
grid-template-columns:1fr 1fr;
}

}

/* VENDOR PAGE */

.vendor-page{
max-width:900px;
margin:auto;
padding:20px;
}

.vendor-description{
color:#555;
margin-bottom:20px;
}

.vendor-actions{
display:flex;
gap:10px;
margin-bottom:20px;
}

.btn-direction{
background:#2c7be5;
color:white;
padding:10px 16px;
border-radius:6px;
text-decoration:none;
}

.btn-direction:hover{
background:#1b5fcc;
}

.btn-favorite{
background:#ffc107;
border:none;
padding:10px 16px;
border-radius:6px;
cursor:pointer;
}

.vendor-section{
margin-top:30px;
}

.service-list{
list-style:none;
padding:0;
}

.service-list li{
background:#f5f5f5;
padding:8px 12px;
border-radius:6px;
margin-bottom:6px;
display:inline-block;
}

.hours-table{
width:100%;
max-width:400px;
}

.hours-table td{
padding:4px 10px;
}

/* DASHBOARD */

.dashboard-container{
max-width:1100px;
margin:auto;
padding:20px;
}

.dashboard-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:30px;
flex-wrap:wrap;
}

.dashboard-title{
font-size:26px;
font-weight:700;
}

.btn-primary{
background:#2c7be5;
color:white;
padding:10px 16px;
border-radius:6px;
text-decoration:none;
}

.btn-primary:hover{
background:#1b5fcc;
}

.listings-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:20px;
}

.listing-card{
background:white;
border:1px solid #eee;
border-radius:8px;
padding:18px;
box-shadow:0 2px 6px rgba(0,0,0,0.05);
}

.listing-title{
font-weight:600;
font-size:18px;
margin-bottom:10px;
}

.card-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-top:10px;
}

.btn-small{
padding:6px 10px;
border-radius:5px;
font-size:13px;
text-decoration:none;
}

.btn-view{
background:#28a745;
color:white;
}

.btn-edit{
background:#ffc107;
color:black;
}

.btn-delete{
background:#dc3545;
color:white;
}

.btn-share{
background:#6c757d;
color:white;
}

.favorite-list{
margin-top:40px;
}

.favorite-item{
background:#f7f7f7;
padding:10px 12px;
border-radius:6px;
margin-bottom:8px;
}

.homepage{
max-width:1200px;
margin:auto;
padding:40px 20px;
}

.hero{
text-align:center;
margin-bottom:60px;
}

.hero h1{
font-size:36px;
margin-bottom:25px;
}

.search-box{
display:flex;
justify-content:center;
gap:10px;
flex-wrap:wrap;
}

.search-box input{
width:350px;
padding:14px;
border:1px solid #ddd;
border-radius:8px;
font-size:16px;
}

.search-box button{
padding:14px 20px;
background:#2c7be5;
color:white;
border:none;
border-radius:8px;
cursor:pointer;
}

.popular-search{
margin-top:15px;
font-size:14px;
color:#777;
}

.section{
margin-top:60px;
}

.section-subtitle{
color:#777;
margin-bottom:20px;
}

.featured-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
gap:20px;
}

.featured-card{
background:white;
border-radius:10px;
padding:20px;
box-shadow:0 2px 8px rgba(0,0,0,0.05);
}

.request-list{
display:flex;
flex-direction:column;
gap:12px;
}

.request-item{
background:white;
padding:14px 16px;
border-radius:8px;
display:flex;
justify-content:space-between;
}



/* MOBILE */

@media(max-width:768px){

.nav-container{
flex-direction:column;
align-items:flex-start;
}

.nav-links{
margin-top:10px;
}

.error{
background:#ffe6e6;
color:#b30000;
padding:10px;
margin-bottom:15px;
border-radius:5px;
}

.required{
color:red;
font-weight:bold;
}

}