@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;600;700;800&display=swap');

*,
*::before,
*::after{
    box-sizing:border-box;
}

body{
    margin:0;
    color:#172033;
    font-family:'Be Vietnam Pro',sans-serif;
    background:#f4f7fb;
}

button,
input,
select{
    font:inherit;
}

.admin-layout{
    min-height:100vh;
    display:grid;
    grid-template-columns:250px minmax(0,1fr);
}

.admin-sidebar{
    padding:22px 16px;
    color:#eafdf7;
    background:linear-gradient(180deg,#062f31,#031e24);
}

.admin-brand{
    padding:10px 8px 24px;
    display:flex;
    align-items:center;
    gap:12px;
}

.admin-brand > span{
    font-size:35px;
}

.admin-brand strong,
.admin-brand small{
    display:block;
}

.admin-brand small{
    margin-top:4px;
    color:#9fcfc5;
}

.admin-sidebar nav{
    display:grid;
    gap:7px;
}

.admin-sidebar nav a{
    padding:12px 14px;
    border-radius:11px;
    color:#d8f6ef;
    text-decoration:none;
}

.admin-sidebar nav a:hover{
    background:rgba(255,255,255,.09);
}

.admin-content{
    min-width:0;
    padding:24px;
}

.admin-topbar{
    margin-bottom:20px;
}

.admin-topbar h1{
    margin:0;
    font-size:27px;
}

.admin-alert{
    margin-bottom:17px;
    padding:13px 15px;
    border-radius:11px;
}

.admin-alert-success{background:#dcfce7;color:#166534}
.admin-alert-error{background:#fee2e2;color:#991b1b}

.admin-stats{
    margin-bottom:20px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.admin-stats article,
.admin-panel{
    border:1px solid #e4eaf1;
    border-radius:16px;
    background:#fff;
    box-shadow:0 9px 28px rgba(15,23,42,.05);
}

.admin-stats article{
    padding:19px;
}

.admin-stats span{
    display:block;
    color:#64748b;
    font-size:13px;
}

.admin-stats strong{
    display:block;
    margin-top:7px;
    font-size:28px;
}

.admin-panel{
    padding:20px;
}

.panel-heading{
    margin-bottom:18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.panel-heading h2{
    margin:0;
    font-size:19px;
}

.panel-heading a,
.filter-links a{
    color:#087f5b;
    font-weight:700;
    text-decoration:none;
}

.admin-grid{
    display:grid;
    grid-template-columns:minmax(330px,420px) minmax(0,1fr);
    gap:18px;
    align-items:start;
}

.admin-form{
    display:grid;
    gap:10px;
}

.admin-form label{
    color:#334155;
    font-size:13px;
    font-weight:700;
}

.admin-form input,
.admin-form select,
.inline-form select{
    width:100%;
    padding:11px 12px;
    border:1px solid #cfd8e3;
    border-radius:9px;
    background:#fff;
}

.admin-form input[type="color"]{
    min-height:44px;
    padding:4px;
}

.admin-form button,
.inline-form button{
    padding:11px 16px;
    border:0;
    border-radius:9px;
    background:#087f5b;
    color:#fff;
    font-weight:800;
    cursor:pointer;
}

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.checkbox-line{
    display:flex !important;
    align-items:center;
    gap:8px;
}

.checkbox-line input{
    width:auto;
}

.secondary-button{
    padding:10px;
    border-radius:9px;
    background:#edf2f7;
    color:#334155;
    text-align:center;
    text-decoration:none;
}

.prize-admin-list{
    display:grid;
    gap:10px;
}

.prize-admin-list article{
    padding:13px;
    display:flex;
    align-items:center;
    gap:12px;
    border:1px solid #e4eaf1;
    border-radius:12px;
}

.color-dot{
    width:18px;
    height:46px;
    min-width:18px;
    border-radius:7px;
}

.prize-admin-info{
    min-width:0;
    flex:1;
}

.prize-admin-info strong,
.prize-admin-info small{
    display:block;
}

.prize-admin-info small{
    margin-top:5px;
    color:#64748b;
}

.row-actions{
    display:flex;
    align-items:center;
    gap:9px;
}

.row-actions form{
    margin:0;
}

.row-actions a,
.link-button{
    border:0;
    padding:0;
    background:transparent;
    color:#087f5b;
    font-size:12px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
}

.link-button.danger{
    color:#dc2626;
}

.table-wrap{
    overflow:auto;
}

table{
    width:100%;
    border-collapse:collapse;
}

th,
td{
    padding:11px 12px;
    border-bottom:1px solid #e6ebf1;
    text-align:left;
    white-space:nowrap;
    font-size:13px;
}

th{
    color:#475569;
}

.status{
    padding:5px 9px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
}

.status-pending{background:#fef3c7;color:#92400e}
.status-delivered{background:#dcfce7;color:#166534}
.status-cancelled{background:#fee2e2;color:#991b1b}

.inline-form{
    display:flex;
    gap:7px;
}

.filter-links{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.settings-panel{
    max-width:760px;
}

.admin-login-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:20px;
    background:
        radial-gradient(circle at 20% 15%,rgba(255,213,89,.22),transparent 24%),
        linear-gradient(135deg,#062f31,#031d24);
}

.admin-login-card{
    width:min(430px,100%);
    padding:30px;
    display:grid;
    gap:11px;
    border-radius:20px;
    background:#fff;
    box-shadow:0 25px 70px rgba(0,0,0,.3);
}

.admin-login-card h1{
    margin:0 0 12px;
    text-align:center;
    font-size:23px;
}

.admin-login-card input{
    padding:12px;
    border:1px solid #cfd8e3;
    border-radius:10px;
}

.admin-login-card button{
    margin-top:8px;
    padding:12px;
    border:0;
    border-radius:10px;
    background:#087f5b;
    color:#fff;
    font-weight:800;
    cursor:pointer;
}

.login-moon{
    text-align:center;
    font-size:55px;
}

@media(max-width:900px){
    .admin-layout{grid-template-columns:1fr}
    .admin-sidebar{position:static}
    .admin-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}
    .admin-content{padding:15px}
    .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .admin-grid{grid-template-columns:1fr}
}

@media(max-width:520px){
    .admin-stats{grid-template-columns:1fr}
    .form-row{grid-template-columns:1fr}
    .admin-sidebar nav{grid-template-columns:1fr}
    .prize-admin-list article{align-items:flex-start;flex-wrap:wrap}
    .row-actions{width:100%}
}
