*{
box-sizing:border-box;
}

body{
font-family:Arial, Helvetica, sans-serif;
margin:0;
padding:0;
background:#f5f5f5;
color:#222;
}

header{
background:#1e1e1e;
color:#fff;
padding:16px 20px;
}

header h1{
margin:0;
font-size:22px;
}

main{
padding:20px;
}

.page-wrap{
max-width:1100px;
margin:0 auto;
}

.card{
max-width:520px;
margin:30px auto;
background:#fff;
border:1px solid #ddd;
border-radius:10px;
padding:20px;
box-shadow:0 2px 8px rgba(0,0,0,0.05);
}

.wide-card{
max-width:1100px;
}

.form-group{
margin-bottom:15px;
}

label{
display:block;
font-weight:bold;
margin-bottom:6px;
}

input[type="password"],
input[type="text"],
input[type="email"],
input[type="date"],
textarea,
select{
width:100%;
padding:10px 12px;
border:1px solid #ccc;
border-radius:6px;
font-size:16px;
background:#fff;
}

button,
.button-link{
display:inline-block;
padding:10px 16px;
border:0;
border-radius:6px;
background:#1e1e1e;
color:#fff;
font-size:15px;
cursor:pointer;
text-decoration:none;
}

button:hover,
.button-link:hover{
opacity:0.92;
}

.secondary-link{
background:#666;
}

.danger-button{
background:#a61b1b;
}

.alert{
padding:10px 12px;
border-radius:6px;
margin:12px 0;
font-size:14px;
}

.alert-error{
background:#ffe3e3;
color:#9b1c1c;
border:1px solid #f5b5b5;
}

.alert-success{
background:#e6ffed;
color:#166534;
border:1px solid #b7ebc6;
}

.hint{
font-size:14px;
color:#666;
margin:10px 0 0 0;
}

.mt-15{
margin-top:15px;
}

.action-links{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-top:15px;
}

.action-stack{
display:flex;
gap:8px;
flex-wrap:wrap;
}

.table-wrap{
overflow-x:auto;
}

.data-table{
width:100%;
border-collapse:collapse;
margin-top:15px;
}

.data-table th,
.data-table td{
border:1px solid #ddd;
padding:10px;
text-align:left;
vertical-align:top;
}

.data-table th{
background:#f0f0f0;
}

.filter-form{
margin:10px 0 20px 0;
}

.filter-row{
display:flex;
gap:15px;
align-items:flex-end;
flex-wrap:wrap;
}

.filter-item{
min-width:220px;
}

.filter-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
}

.status-form{
display:flex;
gap:8px;
flex-wrap:wrap;
min-width:220px;
}

.status-badge{
display:inline-block;
padding:5px 10px;
border-radius:999px;
font-size:13px;
font-weight:bold;
}

.status-pending{
background:#ececec;
color:#555;
}

.status-active,
.status-confirmed{
background:#dff5e3;
color:#166534;
}

.status-disabled,
.status-rejected{
background:#ffe3e3;
color:#9b1c1c;
}

@media (max-width: 700px){
main{
padding:15px;
}

.card{
margin:15px auto;
padding:15px;
}

header h1{
font-size:18px;
}

.status-form{
min-width:unset;
}
}