/* ===========================================
   MAGGOT MARKETPLACE SYSTEM
   STYLE.CSS
=========================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

*{

margin:0;

padding:0;

box-sizing:border-box;

font-family:'Poppins',sans-serif;

}

html{

scroll-behavior:smooth;

}

body{

background:#f5f7fb;

color:#222;

font-size:15px;

line-height:1.6;

}

/* ===========================================
   LINK
=========================================== */

a{

text-decoration:none;

color:inherit;

transition:.3s;

}

a:hover{

opacity:.8;

}

/* ===========================================
   LIST
=========================================== */

ul{

list-style:none;

}

/* ===========================================
   IMAGE
=========================================== */

img{

max-width:100%;

display:block;

}

/* ===========================================
   LAYOUT
=========================================== */

.wrapper{

display:flex;

min-height:100vh;

}

/* ===========================================
   SIDEBAR
=========================================== */

.sidebar{

width:250px;

background:#ffffff;

border-right:1px solid #e6e6e6;

padding:25px;

position:fixed;

left:0;

top:0;

bottom:0;

overflow-y:auto;

}

.sidebar-logo{

margin-bottom:30px;

text-align:center;

}

.sidebar-logo h2{

font-size:28px;

font-weight:700;

color:#16a34a;

}

.sidebar-user{

padding:15px;

background:#f7fff8;

border-radius:12px;

margin-bottom:30px;

text-align:center;

border:1px solid #dff3e5;

}
.sidebar-menu{

list-style:none;

margin:0;

padding:0;

}

.sidebar-menu li{

list-style:none;

margin:0 0 10px;

padding:0;

}

.sidebar-menu li a{

display:block;

width:100%;

padding:14px 18px;

border-radius:12px;

font-weight:500;

text-decoration:none;

color:#222;

box-sizing:border-box;

transition:.3s;

}

.sidebar-user p{

font-size:17px;

font-weight:600;

}

.sidebar-user small{

color:#777;

}

.sidebar-menu li a:hover{

background:#e9f8ee;

color:#16a34a;

}

.sidebar-menu li.active a{

background:#16a34a;

color:#fff;

}

/* ===========================================
   CONTENT
=========================================== */

.content{
    margin-left:250px;
    width:calc(100% - 250px);
    padding:25px 30px;
    box-sizing:border-box;
}

/* ===========================================
   TOPBAR
=========================================== */

.topbar{

background:#fff;

padding:20px 30px;

border-radius:14px;

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:30px;

box-shadow:0 2px 12px rgba(0,0,0,.05);

}

.topbar-title{

font-size:30px;

font-weight:700;

}

.topbar-user{

display:flex;

align-items:center;

gap:15px;

font-weight:500;

}

/* ===========================================
   PAGE TITLE
=========================================== */

.page-title{

font-size:32px;

font-weight:700;

margin-bottom:8px;

}

.page-subtitle{

color:#888;

margin-bottom:30px;

}

/* ===========================================
   CARD
=========================================== */

.card{

background:#fff;

border-radius:16px;

padding:25px;

margin-bottom:25px;

box-shadow:0 4px 18px rgba(0,0,0,.05);

}

.card-title{

font-size:22px;

font-weight:600;

margin-bottom:20px;

}

/* ===========================================
   GRID
=========================================== */

.row{

display:flex;

gap:20px;

flex-wrap:wrap;

}

.col{

flex:1;

}

/* ===========================================
   STAT CARD
=========================================== */

.stat-card{

background:#fff;

padding:30px;

border-radius:16px;

box-shadow:0 4px 18px rgba(0,0,0,.05);

text-align:center;

flex:1;

}

.stat-card h4{

font-size:17px;

font-weight:600;

margin-bottom:15px;

color:#666;

}

.stat-card h2{

font-size:38px;

font-weight:700;

color:#16a34a;

}

/* ===========================================
   BUTTON
=========================================== */

button,

.btn{

padding:11px 22px;

border:none;

border-radius:10px;

background:#16a34a;

color:#fff;

cursor:pointer;

font-size:14px;

font-weight:500;

transition:.3s;

}

button:hover,

.btn:hover{

background:#15803d;

}

.btn-secondary{

background:#f1f5f9;

color:#222;

}

.btn-secondary:hover{

background:#dbe4ee;

}

.btn-danger{

background:#dc2626;

}

.btn-danger:hover{

background:#b91c1c;

}

/* ===========================================
   INPUT
=========================================== */

input,

select,

textarea{

width:100%;

padding:12px 15px;

border:1px solid #dcdcdc;

border-radius:10px;

outline:none;

transition:.3s;

font-size:14px;

}

input:focus,

select:focus,

textarea:focus{

border-color:#16a34a;

box-shadow:0 0 0 3px rgba(22,163,74,.15);

}

/* ===========================================
   FORM
=========================================== */

.form-group{

margin-bottom:20px;

}

label{

display:block;

margin-bottom:8px;

font-weight:500;

}

/* ===========================================
   TABLE
=========================================== */

table{

width:100%;

border-collapse:collapse;

background:#fff;

}

table th{

background:#16a34a;

color:#fff;

padding:14px;

font-size:14px;

}

table td{

padding:14px;

border-bottom:1px solid #ececec;

}

table tr:hover{

background:#f8fff9;

}

/* ===========================================
   BADGE
=========================================== */

.badge{

padding:6px 12px;

border-radius:20px;

font-size:13px;

font-weight:600;

display:inline-block;

}

.badge-success{

background:#dcfce7;

color:#15803d;

}

.badge-warning{

background:#fef3c7;

color:#b45309;

}

.badge-danger{

background:#fee2e2;

color:#b91c1c;

}

/* ===========================================
   ALERT
=========================================== */

.alert{

padding:18px;

border-radius:12px;

margin-bottom:20px;

}

.alert-success{

background:#dcfce7;

color:#166534;

}

.alert-danger{

background:#fee2e2;

color:#991b1b;

}

/* ===========================================
   SHADOW
=========================================== */

.shadow{

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

/* ===========================================
   RADIUS
=========================================== */

.radius{

border-radius:16px;

}

/* ===========================================
   DASHBOARD
=========================================== */

.dashboard-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:25px;

}

.dashboard-header h1{

font-size:34px;

font-weight:700;

color:#16a34a;

}

.dashboard-header p{

color:#666;

margin-top:5px;

}

/* ===========================================
   WELCOME CARD
=========================================== */

.welcome-card{

display:flex;

align-items:center;

gap:20px;

background:#fff;

padding:25px;

border-radius:18px;

box-shadow:0 5px 20px rgba(0,0,0,.05);

margin-bottom:25px;

}

.welcome-icon{

width:75px;

height:75px;

border-radius:50%;

background:#eaf9ef;

display:flex;

justify-content:center;

align-items:center;

font-size:32px;

color:#16a34a;

font-weight:bold;

}

.welcome-content h2{

font-size:28px;

margin-bottom:8px;

}

.welcome-content p{

color:#666;

}

/* ===========================================
   DASHBOARD STATISTICS
=========================================== */

.dashboard-stats{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(230px,1fr));

gap:20px;

margin-bottom:30px;

}

.stat-box{
    background:#fff;
    border-radius:18px;
    padding:30px;
    min-height:170px;

    display:flex;
    align-items:center;

    box-shadow:0 8px 25px rgba(0,0,0,.08);
    transition:.3s;
}

.stat-box:hover{
    transform:translateY(-5px);
}

.stat-box:hover{

transform:translateY(-4px);

}

.stat-icon{

width:70px;

height:70px;

border-radius:50%;

display:flex;

justify-content:center;

align-items:center;

font-size:28px;

font-weight:bold;

}

.stat-green{

background:#eaf9ef;

color:#16a34a;

}

.stat-blue{

background:#eef5ff;

color:#2563eb;

}

.stat-orange{

background:#fff3e8;

color:#ea580c;

}

.stat-purple{

background:#f5edff;

color:#7c3aed;

}
.stat-info{
    width:100%;
}

.stat-info h4{
    font-size:22px;
    font-weight:700;
    color:#222;
    line-height:34px;
    margin-bottom:25px;
}

.stat-info h2{
    font-size:54px;
    color:#16a34a;
    font-weight:700;
}

.stat-info small{

color:#888;

}
.section-title{
    font-size:38px;
    font-weight:700;
    color:#222;
    margin:50px 0 20px;
}
/* ===========================================
   DASHBOARD GRID
=========================================== */

.dashboard-grid{

display:grid;

grid-template-columns:2fr 1fr;

gap:25px;

margin-bottom:25px;

}

@media(max-width:992px){

.dashboard-grid{

grid-template-columns:1fr;

}

}

/* ===========================================
   ACTIVITY CARD
=========================================== */

.activity-card{

background:#fff;

border-radius:18px;

padding:25px;

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

.activity-card h3{

margin-bottom:20px;

font-size:23px;

color:#16a34a;

}

.activity-item{

display:flex;

justify-content:space-between;

align-items:center;

padding:15px 0;

border-bottom:1px solid #ececec;

}

.activity-item:last-child{

border:none;

}

.activity-left{

display:flex;

align-items:center;

gap:15px;

}

.activity-icon{

width:50px;

height:50px;

border-radius:50%;

display:flex;

justify-content:center;

align-items:center;

font-size:20px;

font-weight:bold;

}

.activity-title{

font-weight:600;

margin-bottom:3px;

}

.activity-desc{

font-size:13px;

color:#777;

}

.activity-right{

text-align:right;

}

.activity-date{

font-size:13px;

color:#888;

}

/* ===========================================
   SUMMARY CARD
=========================================== */

.summary-card{

background:#fff;

border-radius:18px;

padding:25px;

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

.summary-card h3{

margin-bottom:20px;

font-size:23px;

color:#16a34a;

}

.summary-list{

display:flex;

flex-direction:column;

gap:18px;

}

.summary-item{

display:flex;

gap:12px;

align-items:flex-start;

}

.summary-dot{

width:12px;

height:12px;

border-radius:50%;

margin-top:8px;

}

.dot-green{

background:#16a34a;

}

.dot-blue{

background:#2563eb;

}

.dot-orange{

background:#ea580c;

}

.dot-purple{

background:#7c3aed;

}

.summary-text h5{

margin-bottom:4px;

font-size:15px;

}

.summary-text p{

font-size:14px;

color:#666;

}

/* ===========================================
   ACTION CARD
=========================================== */

.action-card{

margin-top:25px;

background:#fff;

border-radius:18px;

padding:20px 25px;

display:flex;

justify-content:space-between;

align-items:center;

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

.action-card h3{

font-size:24px;

margin-bottom:6px;

}

.action-card p{

color:#666;

}

.action-card button{

padding:14px 30px;

font-size:15px;

}

/* ===========================================
   MINI CARD
=========================================== */

.mini-card{

background:#fff;

padding:20px;

border-radius:15px;

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

.mini-card h4{

margin-bottom:12px;

}

.mini-card p{

color:#777;

}

/* ===========================================
   RESPONSIVE
=========================================== */

@media(max-width:768px){

.content{

margin-left:0;

width:100%;

padding:20px;

}

.sidebar{

left:-250px;

}

.dashboard-header{

flex-direction:column;

align-items:flex-start;

gap:10px;

}

.welcome-card{

flex-direction:column;

text-align:center;

}

.action-card{

flex-direction:column;

gap:20px;

text-align:center;

}

}
/* ===========================================
   FORM LAYOUT
=========================================== */

.form-card{

background:#ffffff;

padding:30px;

border-radius:18px;

box-shadow:0 5px 20px rgba(0,0,0,.05);

margin-bottom:30px;

}

.form-title{

font-size:28px;

font-weight:700;

margin-bottom:8px;

color:#16a34a;

}

.form-subtitle{

color:#777;

margin-bottom:25px;

}

/* ===========================================
   FORM GRID
=========================================== */

.form-row{

display:flex;

gap:20px;

margin-bottom:20px;

flex-wrap:wrap;

}

.form-col{

flex:1;

min-width:250px;

}

/* ===========================================
   LABEL
=========================================== */

.form-group{

margin-bottom:20px;

}

.form-group label{

display:block;

margin-bottom:8px;

font-weight:600;

color:#333;

}

/* ===========================================
   INPUT
=========================================== */

.form-control{

width:100%;

padding:13px 16px;

border:1px solid #dcdcdc;

border-radius:12px;

background:#fff;

font-size:15px;

transition:.3s;

}

.form-control:focus{

border-color:#16a34a;

box-shadow:0 0 0 3px rgba(22,163,74,.15);

outline:none;

}

/* ===========================================
   TEXTAREA
=========================================== */

textarea.form-control{

resize:vertical;

min-height:120px;

}

/* ===========================================
   SELECT
=========================================== */

select.form-control{

cursor:pointer;

}

/* ===========================================
   FILE
=========================================== */

input[type=file]{

padding:10px;

background:#fff;

border:1px dashed #bfbfbf;

border-radius:12px;

cursor:pointer;

}

input[type=file]:hover{

border-color:#16a34a;

}

/* ===========================================
   INPUT GROUP
=========================================== */

.input-group{

display:flex;

align-items:center;

}

.input-group span{

padding:13px 18px;

background:#16a34a;

color:#fff;

border-radius:12px 0 0 12px;

font-weight:600;

}

.input-group input{

border-radius:0 12px 12px 0;

border-left:none;

}

/* ===========================================
   CHECKBOX
=========================================== */

.checkbox-group{

display:flex;

align-items:center;

gap:10px;

margin-top:10px;

}

.checkbox-group input{

width:auto;

}

/* ===========================================
   RADIO
=========================================== */

.radio-group{

display:flex;

gap:20px;

margin-top:10px;

}

.radio-group label{

display:flex;

align-items:center;

gap:8px;

font-weight:500;

}

/* ===========================================
   BUTTON GROUP
=========================================== */

.form-button{

display:flex;

justify-content:flex-end;

gap:15px;

margin-top:30px;

flex-wrap:wrap;

}

.form-button .btn{

min-width:140px;

}

/* ===========================================
   SEARCH BAR
=========================================== */

.search-box{

display:flex;

gap:15px;

align-items:center;

flex-wrap:wrap;

margin-bottom:25px;

}

.search-box input{

flex:1;

}

/* ===========================================
   FILTER
=========================================== */

.filter-box{

background:#fff;

padding:20px;

border-radius:16px;

box-shadow:0 4px 15px rgba(0,0,0,.05);

margin-bottom:25px;

}

.filter-row{

display:flex;

gap:20px;

flex-wrap:wrap;

}

.filter-item{

flex:1;

min-width:220px;

}

/* ===========================================
   LOGIN
=========================================== */
.login-wrapper{

display:flex;

justify-content:center;

align-items:flex-start;

min-height:100vh;

padding:40px 20px;

background:#f4f7fb;

overflow-y:auto;

}
.register-box{

width:100%;

max-width:650px;

background:#fff;

padding:35px;

margin:30px 0;

border-radius:20px;

box-shadow:0 8px 25px rgba(0,0,0,.06);

}

.login-box h2{

text-align:center;

margin-bottom:10px;

color:#16a34a;

font-size:32px;

}

.login-box p{

text-align:center;

margin-bottom:30px;

color:#777;

}

.login-box button{

width:100%;

margin-top:10px;

}

/* ===========================================
   REGISTER
=========================================== */

.register-box{

width:100%;
max-width:650px;

background:#fff;

padding:35px;

border-radius:20px;

box-shadow:0 8px 25px rgba(0,0,0,.06);

margin:30px 0;

}
/* ===========================================
   PROFILE
=========================================== */

.profile-box{

display:flex;

gap:30px;

align-items:flex-start;

flex-wrap:wrap;

}

.profile-image{

width:180px;

height:180px;

border-radius:50%;

background:#f3f3f3;

display:flex;

justify-content:center;

align-items:center;

overflow:hidden;

border:3px solid #16a34a;

}

.profile-image img{

width:100%;

height:100%;

object-fit:cover;

}

.profile-info{

flex:1;

}

/* ===========================================
   IMAGE PREVIEW
=========================================== */

.image-preview{

width:180px;

height:180px;

border:2px dashed #ccc;

border-radius:16px;

display:flex;

justify-content:center;

align-items:center;

overflow:hidden;

background:#fafafa;

}

.image-preview img{

width:100%;

height:100%;

object-fit:cover;

}

/* ===========================================
   FORM ALERT
=========================================== */

.form-error{

color:#dc2626;

font-size:13px;

margin-top:5px;

}

.form-success{

color:#16a34a;

font-size:13px;

margin-top:5px;

}

/* ===========================================
   RESPONSIVE FORM
=========================================== */

@media(max-width:768px){

.form-row{

flex-direction:column;

}

.form-button{

justify-content:center;

}

.login-box{

width:95%;

padding:30px;

}

.profile-box{

flex-direction:column;

align-items:center;

text-align:center;

}

}

/* ===========================================
   TABLE CONTAINER
=========================================== */

.table-card{

background:#ffffff;

padding:25px;

border-radius:18px;

box-shadow:0 5px 20px rgba(0,0,0,.05);

margin-bottom:30px;

overflow-x:auto;

}

/* ===========================================
   TABLE TITLE
=========================================== */

.table-title{

font-size:24px;

font-weight:700;

margin-bottom:20px;

color:#16a34a;

}

/* ===========================================
   TABLE
=========================================== */
.table{
    width:100%;

    border-collapse:separate;
    border-spacing:0;
}
.table thead{

background:#16a34a;

color:#fff;

}
.table thead th{
    padding:16px 10px;
    text-align:center;
    font-size:14px;
    line-height:20px;
    vertical-align:middle;
}

.table tbody td{
    padding:15px 10px;
    vertical-align:middle;
    font-size:15px;
}

.table tbody tr{

transition:.3s;

}

.table tbody tr:nth-child(even){

background:#fafafa;

}
.table tbody tr:hover{

background:#f8fffa;

}
/* Kolom Tanggal */
.table th:nth-child(2),
.table td:nth-child(2){
    width:100px;
    white-space:nowrap;
}

/* Kolom Berat */
.table th:nth-child(5),
.table td:nth-child(5){
    width:70px;
    white-space:nowrap;
}
/* KHUSUS TABEL RIWAYAT SAMPAH */

.table-riwayat th:nth-child(2),
.table-riwayat td:nth-child(2){
    width:100px;
    white-space:nowrap;
}

/* ===========================================
   TABLE ALIGN
=========================================== */

.text-center{

text-align:center;

}

.text-right{

text-align:right;

}

.text-left{

text-align:left;

}

/* ===========================================
   TABLE IMAGE
=========================================== */

.table-image{

width:65px;

height:65px;

border-radius:10px;

object-fit:cover;

border:1px solid #ddd;

}

/* ===========================================
   TABLE ACTION
=========================================== */

.table-action{

display:flex;

gap:8px;

justify-content:center;

flex-wrap:wrap;

}

.table-action a{

display:inline-block;

}

/* ===========================================
   BUTTON DETAIL
=========================================== */
.btn-detail{

display:inline-block;

padding:10px 18px;

background:#16a34a;

color:#fff;

border-radius:8px;

font-weight:600;

text-decoration:none;

min-width:90px;

text-align:center;

}

.btn-detail:hover{

background:#15803d;

}
/* ===========================================
   BUTTON EDIT
=========================================== */

.btn-edit{

background:#f59e0b;

color:#fff;

padding:9px 16px;

border-radius:10px;

font-size:13px;

}

.btn-edit:hover{

background:#d97706;

}

/* ===========================================
   BUTTON DELETE
=========================================== */

.btn-delete{

background:#dc2626;

color:#fff;

padding:9px 16px;

border-radius:10px;

font-size:13px;

}

.btn-delete:hover{

background:#b91c1c;

}

/* ===========================================
   BUTTON SUCCESS
=========================================== */

.btn-success{

background:#16a34a;

color:#fff;

padding:9px 16px;

border-radius:10px;

font-size:13px;

}

.btn-success:hover{

background:#15803d;

}

/* ===========================================
   STATUS BADGE
=========================================== */

.status{

display:inline-block;

padding:7px 14px;

border-radius:30px;

font-size:13px;

font-weight:600;

}

.status-menunggu{

background:#fff7cc;

color:#c27803;

}

.status-diproses{

background:#dbeafe;

color:#2563eb;

}

.status-dikemas{

background:#ede9fe;

color:#7c3aed;

}

.status-dikirim{

background:#e0f2fe;

color:#0284c7;

}

.status-selesai{

background:#dcfce7;

color:#15803d;

}

.status-ditolak{

background:#fee2e2;

color:#b91c1c;

}

/* ===========================================
   EMPTY DATA
=========================================== */

.table-empty{

padding:45px;

text-align:center;

color:#999;

font-size:15px;

}

/* ===========================================
   PAGINATION
=========================================== */

.pagination{

display:flex;

justify-content:center;

align-items:center;

gap:10px;

margin-top:30px;

flex-wrap:wrap;

}

.pagination a{

display:flex;

justify-content:center;

align-items:center;

width:42px;

height:42px;

background:#fff;

border:1px solid #ddd;

border-radius:10px;

transition:.3s;

font-weight:500;

}

.pagination a:hover{

background:#16a34a;

color:#fff;

border-color:#16a34a;

}

.pagination .active{

background:#16a34a;

color:#fff;

border-color:#16a34a;

}

/* ===========================================
   SEARCH BAR
=========================================== */

.search-filter{

display:flex;

justify-content:space-between;

align-items:center;

gap:20px;

margin-bottom:20px;

flex-wrap:wrap;

}

.search-filter input{

max-width:300px;

}

/* ===========================================
   FILTER BUTTON
=========================================== */

.filter-button{

display:flex;

gap:12px;

flex-wrap:wrap;

}

/* ===========================================
   INFO CARD
=========================================== */

.info-card{

display:flex;

gap:20px;

margin-bottom:25px;

flex-wrap:wrap;

}

.info-item{

flex:1;

background:#fff;

padding:25px;

border-radius:16px;

box-shadow:0 4px 18px rgba(0,0,0,.05);

text-align:center;

}

.info-item h5{

color:#666;

margin-bottom:10px;

font-size:15px;

}

.info-item h2{

font-size:34px;

color:#16a34a;

font-weight:700;

}

/* ===========================================
   TABLE RESPONSIVE
=========================================== */

@media(max-width:992px){

.table{

min-width:700px;

}

}

@media(max-width:768px){

.table-card{

padding:18px;

}

.table thead th{

padding:12px;

font-size:13px;

}

.table tbody td{

padding:12px;

font-size:13px;

}

.table-action{

flex-direction:column;

}

.search-filter{

flex-direction:column;

align-items:stretch;

}

.info-card{

flex-direction:column;

}

}
/* ===========================================
   DETAIL PAGE
=========================================== */

.detail-card{

background:#ffffff;

border-radius:20px;

padding:30px;

box-shadow:0 6px 22px rgba(0,0,0,.06);

margin-bottom:30px;

}

.detail-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:30px;

flex-wrap:wrap;

gap:20px;

}

.detail-header h2{

font-size:30px;

font-weight:700;

color:#16a34a;

}

.detail-header p{

color:#777;

margin-top:6px;

}

/* ===========================================
   DETAIL BODY
=========================================== */

.detail-body{

display:flex;

gap:35px;

flex-wrap:wrap;

}

/* ===========================================
   DETAIL IMAGE
=========================================== */

.detail-image{

width:320px;

flex-shrink:0;

}

.detail-image img{

width:100%;

border-radius:18px;

border:1px solid #e5e5e5;

box-shadow:0 5px 18px rgba(0,0,0,.08);

}

.detail-no-image{

width:320px;

height:320px;

background:#f3f3f3;

border-radius:18px;

display:flex;

justify-content:center;

align-items:center;

color:#999;

font-size:18px;

border:2px dashed #ddd;

}

/* ===========================================
   DETAIL INFO
=========================================== */

.detail-info{

flex:1;

min-width:350px;

}

.detail-info h3{

font-size:28px;

margin-bottom:25px;

color:#222;

}

/* ===========================================
   DETAIL TABLE
=========================================== */

.detail-table{

width:100%;

border-collapse:collapse;

}

.detail-table tr{

border-bottom:1px solid #eeeeee;

}

.detail-table td{

padding:14px 8px;

font-size:15px;

vertical-align:top;

}

.detail-table td:first-child{

width:220px;

font-weight:600;

color:#444;

}

.detail-table td:last-child{

color:#666;

}

/* ===========================================
   DETAIL PRICE
=========================================== */

.detail-price{

font-size:32px;

font-weight:700;

color:#16a34a;

margin:20px 0;

}

/* ===========================================
   DETAIL STATUS
=========================================== */

.detail-status{

display:inline-block;

padding:9px 18px;

border-radius:30px;

font-size:14px;

font-weight:600;

margin-top:10px;

}

/* ===========================================
   DESCRIPTION
=========================================== */

.detail-description{

margin-top:30px;

background:#fafafa;

padding:20px;

border-radius:14px;

line-height:1.8;

color:#555;

}

/* ===========================================
   DETAIL BUTTON
=========================================== */

.detail-action{

margin-top:35px;

display:flex;

gap:15px;

flex-wrap:wrap;

}

.detail-action a,

.detail-action button{

min-width:150px;

}

/* ===========================================
   PROFILE DETAIL
=========================================== */

.profile-detail{

display:flex;

gap:35px;

align-items:flex-start;

flex-wrap:wrap;

}

.profile-photo{

width:220px;

height:220px;

border-radius:50%;

overflow:hidden;

border:4px solid #16a34a;

box-shadow:0 6px 20px rgba(0,0,0,.08);

}

.profile-photo img{

width:100%;

height:100%;

object-fit:cover;

}

.profile-data{

flex:1;

}

/* ===========================================
   INFORMATION BOX
=========================================== */

.info-box{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

gap:20px;

margin-top:30px;

}

.info-item-box{

background:#f9fafb;

padding:20px;

border-radius:14px;

border-left:5px solid #16a34a;

}

.info-item-box h5{

font-size:14px;

margin-bottom:8px;

color:#666;

}

.info-item-box p{

font-size:18px;

font-weight:600;

color:#222;

}

/* ===========================================
   TIMELINE
=========================================== */

.timeline{

margin-top:35px;

border-left:4px solid #16a34a;

padding-left:25px;

}

.timeline-item{

margin-bottom:30px;

position:relative;

}

.timeline-item::before{

content:"";

width:16px;

height:16px;

background:#16a34a;

border-radius:50%;

position:absolute;

left:-34px;

top:4px;

}

.timeline-item h5{

font-size:16px;

margin-bottom:5px;

}

.timeline-item small{

color:#888;

display:block;

margin-bottom:6px;

}

.timeline-item p{

color:#555;

}

/* ===========================================
   FILE PREVIEW
=========================================== */

.file-preview{

margin-top:20px;

padding:20px;

background:#f8fafc;

border-radius:15px;

border:1px dashed #d4d4d4;

text-align:center;

}

.file-preview img{

max-width:100%;

border-radius:12px;

}

/* ===========================================
   RESPONSIVE
=========================================== */

@media(max-width:992px){

.detail-body{

flex-direction:column;

}

.detail-image{

width:100%;

}

.detail-no-image{

width:100%;

}

.profile-detail{

flex-direction:column;

align-items:center;

text-align:center;

}

}

@media(max-width:768px){

.detail-card{

padding:20px;

}

.detail-header{

flex-direction:column;

align-items:flex-start;

}

.detail-table td{

display:block;

width:100%;

padding:8px 0;

}

.detail-table tr{

padding:10px 0;

display:block;

}

.detail-table td:first-child{

font-weight:700;

}

.detail-action{

justify-content:center;

}

}

/* ===========================================
   LOADING
=========================================== */

.loading{

display:flex;

justify-content:center;

align-items:center;

padding:50px;

}

.loading::after{

content:"";

width:45px;

height:45px;

border:5px solid #d1fae5;

border-top:5px solid #16a34a;

border-radius:50%;

animation:loading .8s linear infinite;

}

@keyframes loading{

100%{

transform:rotate(360deg);

}

}

/* ===========================================
   SCROLLBAR
=========================================== */

::-webkit-scrollbar{

width:10px;

height:10px;

}

::-webkit-scrollbar-track{

background:#f3f4f6;

}

::-webkit-scrollbar-thumb{

background:#16a34a;

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:#15803d;

}

/* ===========================================
   FADE ANIMATION
=========================================== */

.fade{

animation:fade .4s ease;

}

@keyframes fade{

from{

opacity:0;

transform:translateY(15px);

}

to{

opacity:1;

transform:translateY(0);

}

}

/* ===========================================
   CARD HOVER
=========================================== */

.card,

.table-card,

.detail-card,

.stat-box,

.welcome-card,

.activity-card,

.summary-card,

.form-card{

transition:.3s;

}

.card:hover,

.table-card:hover,

.detail-card:hover,

.stat-box:hover,

.activity-card:hover,

.summary-card:hover,

.form-card:hover{

transform:translateY(-3px);

box-shadow:0 10px 30px rgba(0,0,0,.08);

}

/* ===========================================
   MODAL
=========================================== */

.modal{

display:none;

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:rgba(0,0,0,.45);

justify-content:center;

align-items:center;

z-index:9999;

}

.modal-content{

background:#fff;

width:500px;

max-width:95%;

padding:30px;

border-radius:18px;

animation:fade .3s;

}

.modal-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:20px;

}

.modal-header h3{

font-size:24px;

}

.modal-close{

font-size:28px;

cursor:pointer;

color:#999;

}

.modal-close:hover{

color:#dc2626;

}

/* ===========================================
   TOAST
=========================================== */

.toast{

position:fixed;

right:30px;

top:30px;

background:#16a34a;

color:#fff;

padding:16px 22px;

border-radius:12px;

box-shadow:0 8px 25px rgba(0,0,0,.15);

z-index:9999;

animation:fade .3s;

}

.toast-error{

background:#dc2626;

}

.toast-warning{

background:#f59e0b;

}

/* ===========================================
   FOOTER
=========================================== */

.footer{

margin-top:40px;

padding:20px;

text-align:center;

color:#888;

font-size:14px;

}

/* ===========================================
   BREADCRUMB
=========================================== */

.breadcrumb{

display:flex;

gap:10px;

margin-bottom:20px;

font-size:14px;

color:#666;

}

.breadcrumb a{

color:#16a34a;

font-weight:500;

}

/* ===========================================
   PAGE HEADER
=========================================== */

.page-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:30px;

flex-wrap:wrap;

gap:15px;

}

.page-header h2{

font-size:32px;

font-weight:700;

color:#16a34a;

}

/* ===========================================
   ICON BUTTON
=========================================== */

.icon-btn{

width:45px;

height:45px;

display:flex;

justify-content:center;

align-items:center;

border-radius:12px;

background:#16a34a;

color:#fff;

cursor:pointer;

transition:.3s;

}

.icon-btn:hover{

background:#15803d;

}

/* ===========================================
   BADGE NUMBER
=========================================== */

.badge-number{

background:#dc2626;

color:#fff;

padding:3px 8px;

font-size:11px;

border-radius:20px;

margin-left:6px;

}

/* ===========================================
   DROPDOWN
=========================================== */

.dropdown{

position:relative;

display:inline-block;

}

.dropdown-menu{

display:none;

position:absolute;

top:110%;

right:0;

background:#fff;

min-width:180px;

border-radius:12px;

box-shadow:0 10px 25px rgba(0,0,0,.08);

overflow:hidden;

z-index:100;

}

.dropdown:hover .dropdown-menu{

display:block;

}

.dropdown-menu a{

display:block;

padding:14px 18px;

}

.dropdown-menu a:hover{

background:#f4f4f4;

}

/* ===========================================
   MOBILE MENU
=========================================== */

.menu-toggle{

display:none;

font-size:28px;

cursor:pointer;

color:#16a34a;

}

@media(max-width:768px){

.menu-toggle{

display:block;

}

.sidebar{

position:fixed;

left:-250px;

transition:.3s;

z-index:999;

}

.sidebar.active{

left:0;

}

.content{

margin-left:0;

width:100%;

padding:20px;

}

}

/* ===========================================
   PRINT
=========================================== */

@media print{

.sidebar,

.topbar,

button,

.btn,

.pagination,

.search-box,

.filter-box,

.form-button{

display:none!important;

}

.content{

margin:0;

width:100%;

padding:0;

}

body{

background:#fff;

}

}

/* ===========================================
   SELECTION
=========================================== */

::selection{

background:#16a34a;

color:#fff;

}

/* ===========================================
   DISABLED
=========================================== */

button:disabled{

background:#bdbdbd;

cursor:not-allowed;

}
/* ===========================================
   PRODUK CARD
=========================================== */

.produk-container{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:20px;

}

.produk-card{

background:#fff;

border:1px solid #e5e5e5;

border-radius:15px;

padding:18px;

box-shadow:0 3px 12px rgba(0,0,0,.05);

}

.produk-top{

display:flex;

gap:15px;

align-items:flex-start;

margin-bottom:18px;

}

.produk-image{

width:85px;

height:85px;

border-radius:50%;

border:1px solid #ddd;

object-fit:cover;

flex-shrink:0;

}

.produk-info{

flex:1;

font-size:14px;

}

.produk-info h4{

margin-bottom:10px;

font-size:18px;

}

.produk-info p{

margin-bottom:6px;

}

.produk-btn{

margin-top:15px;

text-align:center;

}

.produk-btn .btn{

width:100%;

}

@media(max-width:1200px){

.produk-container{

grid-template-columns:repeat(3,1fr);

}

}

@media(max-width:900px){

.produk-container{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:600px){

.produk-container{

grid-template-columns:1fr;

}

}
/* ===========================================
   MARKETPLACE PRODUK MAGGOT
=========================================== */

.produk-container{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:25px;

margin-top:25px;

}

.produk-card{

background:#ffffff;

border-radius:20px;

overflow:hidden;

box-shadow:0 8px 25px rgba(0,0,0,.08);

transition:.3s;

border:1px solid #ececec;

display:flex;

flex-direction:column;

height:100%;

}

.produk-card:hover{

transform:translateY(-6px);

box-shadow:0 15px 35px rgba(0,0,0,.12);

}

.produk-image{

width:100%;

height:230px;

object-fit:cover;

background:#f8f8f8;

}

.produk-no-image{

width:100%;

height:230px;

display:flex;

justify-content:center;

align-items:center;

background:#f3f4f6;

color:#999;

font-size:16px;

}

.produk-body{

padding:22px;

display:flex;

flex-direction:column;

flex:1;

}

.produk-title{

font-size:24px;

font-weight:700;

margin-bottom:12px;

color:#222;

line-height:1.3;

}

.produk-farmer{

font-size:15px;

color:#666;

margin-bottom:15px;

}

.produk-price{

font-size:30px;

font-weight:700;

color:#16a34a;

margin-bottom:15px;

}

.produk-stock{

display:inline-block;

background:#eaf9ef;

color:#15803d;

padding:8px 15px;

border-radius:30px;

font-size:13px;

font-weight:600;

margin-bottom:18px;

width:max-content;

}

.produk-desc{

color:#666;

font-size:14px;

line-height:1.7;

margin-bottom:25px;

display:-webkit-box;

-webkit-line-clamp:3;

-webkit-box-orient:vertical;

overflow:hidden;

min-height:72px;

}

.produk-footer{

margin-top:auto;

}

.produk-footer .btn{

width:100%;

padding:14px;

font-size:15px;

border-radius:12px;

}

.produk-footer .btn:hover{

transform:scale(1.02);

}

.produk-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:30px;

flex-wrap:wrap;

gap:15px;

}

.produk-header h1{

font-size:34px;

font-weight:700;

color:#222;

}

.produk-header p{

color:#777;

font-size:15px;

}

@media(max-width:1200px){

.produk-container{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.produk-container{

grid-template-columns:1fr;

}

.produk-image,

.produk-no-image{

height:200px;

}

.produk-title{

font-size:22px;

}

.produk-price{

font-size:26px;

}

}

@media(max-width:480px){

.produk-body{

padding:18px;

}

.produk-title{

font-size:20px;

}

.produk-price{

font-size:24px;

}

}
/* ===========================================
   END STYLE
=========================================== */

/* ===========================================
   GLOBAL RESPONSIVE SYSTEM
=========================================== */

body{

min-width:0;

overflow-x:hidden;

}

.content{
    width:100%;

transition:margin-left .3s ease;

}

/* ===========================================
   MOBILE TOPBAR
=========================================== */

.mobile-topbar{

display:none;

}

.mobile-menu-button{

display:none;

}
.sidebar-overlay{

display:none;

}

/* ===========================================
   DESKTOP BESAR
=========================================== */

@media(min-width:1201px){

.sidebar{

width:250px;

left:0;

}

.content{
    margin-left:250px;
    width:calc(100% - 250px);
    padding:25px 30px;
    box-sizing:border-box;
}

}

/* ===========================================
   LAPTOP
=========================================== */

@media(min-width:993px) and (max-width:1200px){

.sidebar{

width:250px;

padding:22px;

}

.content{

margin-left:250px;

width:calc(100% - 250px);

padding:28px;

}

.sidebar-logo h2{

font-size:24px;

}

.sidebar-menu li a{

padding:12px 15px;

font-size:14px;

}
.dashboard-stats{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:25px;
    width:100%;
    margin:20px 0 40px;
}

.produk-container{

grid-template-columns:repeat(2,minmax(0,1fr));

}

}

/* ===========================================
   TABLET
=========================================== */

@media(max-width:992px){

body{

padding-top:68px;

}

.mobile-topbar{

display:flex;

position:fixed;

top:0;

left:0;

right:0;

height:68px;

background:#ffffff;

border-bottom:1px solid #e6e6e6;

align-items:center;

justify-content:space-between;

padding:0 22px;

z-index:1100;

box-shadow:0 3px 15px rgba(0,0,0,.06);

}

.mobile-brand{

font-size:18px;

font-weight:700;

color:#16a34a;

line-height:1.2;

}

.mobile-menu-button{

display:flex;

width:44px;

height:44px;

padding:0;

border-radius:10px;

align-items:center;

justify-content:center;

font-size:25px;

background:#16a34a;

color:#ffffff;

}

.sidebar{

width:250px;

max-width:85%;

left:-300px;

top:0;

bottom:0;

padding:25px;

z-index:1200;

transition:left .3s ease;

box-shadow:8px 0 25px rgba(0,0,0,.12);

}

.sidebar.active{

left:0;

}

.sidebar-overlay{

display:block;

position:fixed;

inset:0;

background:rgba(0,0,0,.4);

z-index:1150;

opacity:0;

visibility:hidden;

transition:.3s;

}

.sidebar-overlay.active{

opacity:1;

visibility:visible;

}

body.sidebar-open{

overflow:hidden;

}

.content{

margin-left:0;

width:100%;

padding:25px;

}

.dashboard-grid{

grid-template-columns:1fr;

}

.dashboard-stats{

grid-template-columns:repeat(2,minmax(0,1fr));

}

.produk-container{

grid-template-columns:repeat(2,minmax(0,1fr));

}

.detail-body{

flex-direction:column;

}

.detail-image{

width:100%;

max-width:450px;

margin:0 auto;

}

.detail-info{

width:100%;

min-width:0;

}

.form-row{

flex-wrap:wrap;

}

.form-col{

min-width:calc(50% - 10px);

}

.table-card{

width:100%;

overflow-x:auto;

-webkit-overflow-scrolling:touch;

}

table{

white-space:nowrap;

}

.detail-table{

white-space:normal;

}

}

/* ===========================================
   HP DAN TABLET KECIL
=========================================== */

@media(max-width:768px){

body{

font-size:14px;

padding-top:62px;

}

.mobile-topbar{

height:62px;

padding:0 16px;

}

.mobile-brand{

font-size:16px;

}

.mobile-menu-button{

width:40px;

height:40px;

font-size:22px;

}

.content{

margin-left:0;

width:100%;

padding:18px;

}

.page-title{

font-size:26px;

line-height:1.3;

}

.page-header{

align-items:flex-start;

}

.page-header h2{

font-size:26px;

}

.dashboard-header{

flex-direction:column;

align-items:flex-start;

}

.dashboard-header h1{

font-size:27px;

}

.welcome-card{

flex-direction:column;

text-align:center;

padding:22px;

}

.welcome-content h2{

font-size:23px;

}

.dashboard-stats{

grid-template-columns:1fr;

}

.stat-box{

padding:20px;

}

.dashboard-grid{

grid-template-columns:1fr;

}

.action-card{

flex-direction:column;

align-items:stretch;

text-align:center;

}

.action-card button,

.action-card .btn{

width:100%;

}

.produk-container{

grid-template-columns:1fr;

gap:20px;

}

.produk-card{

width:100%;

}

.produk-image,

.produk-no-image{

width:100%;

height:210px;

border-radius:0;

}

.produk-body{

padding:20px;

}

.produk-title{

font-size:21px;

}

.produk-price{

font-size:25px;

}

.form-card{

padding:20px;

}

.form-row{

display:block;

}

.form-col{

width:100%;

min-width:0;

}

.form-button{

flex-direction:column;

}

.form-button .btn,

.form-button button{

width:100%;

}

input,

select,

textarea,

.form-control{

font-size:16px;

}

.search-box{

flex-direction:column;

align-items:stretch;

}

.search-box input,

.search-box select,

.search-box button,

.search-box .btn{

width:100%;

}

.search-filter{

flex-direction:column;

align-items:stretch;

}

.search-filter input{

max-width:none;

width:100%;

}

.filter-row{

flex-direction:column;

}

.filter-item{

width:100%;

min-width:0;

}

.info-card{

flex-direction:column;

}

.detail-card{

padding:20px;

border-radius:15px;

}

.detail-header{

flex-direction:column;

align-items:flex-start;

}

.detail-header h2{

font-size:25px;

}

.detail-body{

display:block;

}

.detail-image{

width:100%;

max-width:none;

margin-bottom:25px;

}

.detail-image img{

width:100%;

height:auto;

max-height:350px;

object-fit:cover;

}

.detail-no-image{

width:100%;

height:250px;

}

.detail-info{

width:100%;

min-width:0;

}

.detail-info h3{

font-size:23px;

}

.detail-table{

width:100%;

white-space:normal;

}

.detail-table tr{

display:block;

padding:12px 0;

border-bottom:1px solid #eeeeee;

}

.detail-table td{

display:block;

width:100%;

padding:3px 0;

}

.detail-table td:first-child{

width:100%;

font-weight:700;

color:#333;

}

.detail-table td:last-child{

width:100%;

overflow-wrap:anywhere;

}

.detail-action{

flex-direction:column;

}

.detail-action a,

.detail-action button,

.detail-action .btn{

width:100%;

min-width:0;

text-align:center;

}

.table-card{

padding:15px;

overflow-x:auto;

}

.table{

min-width:750px;

}

table:not(.detail-table){

min-width:700px;

}

.table-action{

flex-direction:row;

flex-wrap:nowrap;

}

.profile-box{

flex-direction:column;

align-items:center;

}

.profile-info{

width:100%;

}

.profile-detail{

flex-direction:column;

align-items:center;

}

.login-wrapper{

padding:20px 15px;

}

.login-box,

.register-box{

width:100%;

max-width:100%;

padding:25px 20px;

margin:15px 0;

}

.checkout-product{

width:100%;

}

.checkout-product img{

max-width:100%;

height:auto;

object-fit:cover;

}

.row{

flex-direction:column;

}

.col{

width:100%;

}

}

/* ===========================================
   HP KECIL
=========================================== */

@media(max-width:480px){

.content{

padding:14px;

}

.mobile-topbar{

padding:0 12px;

}

.mobile-brand{

font-size:15px;

}

.sidebar{

width:250px;

max-width:88%;

padding:22px 18px;

}

.sidebar-logo h2{

font-size:22px;

}

.sidebar-user{

padding:12px;

margin-bottom:20px;

}

.sidebar-menu li{

margin-bottom:6px;

}

.sidebar-menu li a{

padding:11px 14px;

font-size:13px;

}

.page-title{

font-size:23px;

}

.page-header h2{

font-size:23px;

}

.card,

.activity-card,

.summary-card,

.form-card,

.detail-card{

padding:18px;

border-radius:14px;

}

.stat-box{

padding:18px;

}

.stat-icon{

width:55px;

height:55px;

font-size:22px;

}

.stat-info h2{

font-size:25px;

}

.produk-container{

gap:16px;

}

.produk-image,

.produk-no-image{

height:190px;

}

.produk-body{

padding:17px;

}

.produk-title{

font-size:20px;

}

.produk-price{

font-size:23px;

}

.produk-stock{

padding:7px 12px;

}

button,

.btn{

padding:11px 16px;

}

.detail-price{

font-size:25px;

}

.info-item{

padding:20px;

}

.info-item h2{

font-size:28px;

}

}

/* ===========================================
   RESPONSIVE IMAGE SAFETY
=========================================== */

img{

max-width:100%;

height:auto;

}

.produk-image{

object-fit:cover;

}

.table-image{

object-fit:cover;

}

/* ===========================================
   RESPONSIVE TABLE SAFETY
=========================================== */

.table-card{

max-width:100%;

overflow-x:auto;

-webkit-overflow-scrolling:touch;

}

.table-card table{

width:100%;

}

/* ===========================================
   RESPONSIVE TEXT SAFETY
=========================================== */

.content,

.card,

.detail-card,

.form-card,

.produk-card{

overflow-wrap:anywhere;

}

/* ===========================================
   END GLOBAL RESPONSIVE SYSTEM
=========================================== */

/* ===========================================
   KONSISTENSI LAYOUT HALAMAN
=========================================== */

.wrapper{
    width:100%;
    min-height:100vh;
}

.content{
    margin-left:250px;
    width:calc(100% - 250px);
    padding:20px 15px;
    box-sizing:border-box;
}

.topbar{
    width:100%;
    box-sizing:border-box;
}

.dashboard-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
    margin:25px 0 35px;
}

.stat-box{
    background:#ffffff;
    border-radius:15px;
    padding:25px;
    box-shadow:0 5px 20px rgba(0,0,0,.05);
    min-width:0;
}

.stat-info h4{
    margin:0 0 15px;
    font-size:14px;
    color:#222;
}

.stat-info h2{
    margin:0;
    font-size:30px;
    color:#111;
}

@media(max-width:1200px){

    .dashboard-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}

@media(max-width:992px){

    .content{
        margin-left:0;
        width:100%;
        padding:25px;
    }

}

@media(max-width:768px){

    .content{
        padding:18px;
    }

    .dashboard-stats{
        grid-template-columns:1fr;
        gap:15px;
    }
    
}
/* ===========================================
   KONTAK WHATSAPP
=========================================== */

.wa-section{

    padding-top:10px;

}
.wa-section h3{

    margin-bottom:12px;

    font-size:30px;

}

.wa-section p{

    margin-bottom:25px;

    color:#666;

}
.wa-action{

    display:flex;

    justify-content:flex-start;

    margin-top:30px;

}

.btn-whatsapp{

    background:#25D366;

    color:#fff;

}

.btn-whatsapp:hover{

    background:#1fa855;

}
.section-divider{

    border:none;

    border-top:1px solid #e5e7eb;

    margin:45px 0 35px;

}
.status-action{

    display:flex;

    justify-content:flex-start;

    margin-top:30px;

    margin-bottom:40px;

}
/* ===========================================
   STATUS TRANSAKSI
=========================================== */
.status-content{

    margin-top:15px;

}

.status-content h4{

    margin-bottom:15px;

}

.status-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:35px; /* tambahkan ini */

}

.status-footer{

    display:flex;

    justify-content:flex-start;

}
.wa-button{

    display:flex;

    justify-content:flex-start;

    padding-top:35px;

}
.btn-whatsapp{

    display:inline-block;

    background:#25D366;

    color:#fff;

    padding:14px 28px;

    border-radius:10px;

}
.btn-download{

    display:inline-block;

    margin-left:10px;

    padding:10px 20px;

    background:#dc3545;

    color:#fff;

    text-decoration:none;

    border-radius:8px;

    font-weight:600;

}

.btn-download:hover{

    background:#bb2d3b;

}
.card{

    background:#fff;

    border-radius:20px;

    padding:25px;

    box-shadow:0 8px 20px rgba(0,0,0,.05);

    margin-top:25px;

}

.card h2{

    font-size:22px;

    margin-bottom:20px;

    font-weight:700;

}
.judul-laporan{
    font-size:32px;
    font-weight:700;
    margin-bottom:25px;
    color:#222;
}

.subjudul-laporan{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#fff;
    padding:25px;
    margin-bottom:20px;
}

.ringkasan-laporan{
    display:flex;
    background:#fff;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 3px 10px rgba(0,0,0,.08);
    margin-bottom:25px;
}

.ringkasan-item{
    flex:1;
    padding:25px;
    text-align:center;
}

.ringkasan-item:first-child{
    border-right:1px solid #eee;
}

.ringkasan-item h3{
    margin-bottom:10px;
}
.ringkasan-item h1{
    font-size:24px;
    margin-top:10px;
    color:#16a34a;
}
.filter-box{

background:#fff;

padding:25px;

border-radius:15px;

margin-bottom:30px;

box-shadow:0 3px 10px rgba(0,0,0,.08);

}

.filter-row{

display:flex;

align-items:center;

gap:20px;

margin-bottom:20px;

}

.filter-row label{

width:140px;

font-weight:600;

}

.filter-row input{

flex:1;

padding:12px;

border:1px solid #ddd;

border-radius:10px;

}

.btn-group{

display:flex;

gap:10px;

margin-left:auto;

}
/* =========================
   PERBAIKAN KOLOM AKSI
========================= */

.table th:last-child,
.table td:last-child{
    width:140px !important;
    min-width:140px !important;
    text-align:center;
    white-space:nowrap;
}

/* tombol detail */
.btn-detail{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;

    width:100px;
    height:42px;

    background:#16a34a;
    color:#fff !important;

    border-radius:10px;
    font-size:15px;
    font-weight:600;

    text-decoration:none;
    white-space:nowrap;
}

.btn-detail:hover{
    background:#15803d;
}
.btn-detail{

display:inline-block;

padding:10px 24px;

background:#16a34a;

color:#fff;

text-decoration:none;

border-radius:10px;

font-size:14px;

font-weight:600;

transition:.3s;

min-width:90px;

text-align:center;

}

.btn-detail:hover{

background:#15803d;

color:#fff;

}
/*=====================================
HEADER LAPORAN
=====================================*/

.report-header{

display:flex;

justify-content:space-between;

align-items:center;

background:#fff;

padding:25px 35px;

border-radius:18px;

margin-bottom:25px;

box-shadow:0 6px 20px rgba(0,0,0,.08);

}

.report-title h2{

margin:0;

font-size:22px;

font-weight:700;

}

.report-user{

font-size:18px;

}


/*=====================================
CARD TOTAL
=====================================*/
.summary-card{
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    margin-bottom:25px;
    box-shadow:0 6px 20px rgba(0,0,0,.08);
}

.summary-item{
    padding:40px;
    text-align:center;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.summary-item:first-child{
    border-right:1px solid #eee;
}

.summary-item h3{
    margin:0;
    font-size:22px;
    font-weight:700;
    color:#111827;
}

.summary-item span{
    margin-top:20px;
    font-size:34px;
    font-weight:700;
    color:#16a34a;
    line-height:1;
}
/*=====================================
FILTER
=====================================*/

.filter-box{
    background:#fff;
    padding:35px;
    border-radius:18px;
    margin-bottom:30px;
    box-shadow:0 6px 20px rgba(0,0,0,.08);
}

.filter-row{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:20px;
}

.filter-row:last-child{
    margin-bottom:0;
}

.filter-row label{
    width:160px;
    font-size:18px;
    font-weight:600;
}

.filter-row input{
    flex:1;
    padding:15px;
    border:1px solid #ddd;
    border-radius:12px;
    font-size:16px;
}
.btn-group{
    display:flex;
    gap:16px;
    align-items:center;
}

.btn-group .btn{
    flex:0 0 auto;
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    height:50px;
    padding:0 28px;

    border:none;
    border-radius:12px;

    font-size:16px;
    font-weight:600;

    white-space:nowrap;
}
/* ======================================
   ADMIN DASHBOARD
====================================== */

.admin-section{
    margin:35px 0 20px;
}

.admin-title{
    font-size:40px;
    font-weight:700;
    color:#222;
    margin-bottom:25px;
}

.admin-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
    width:100%;
}

.admin-card{
    background:#fff;
    border-radius:18px;
    padding:30px;
    min-height:170px;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    transition:.3s;
}

.admin-card:hover{
    transform:translateY(-4px);
}

.admin-card h4{
    font-size:22px;
    font-weight:700;
    color:#222;
    line-height:32px;
    margin-bottom:25px;
}

.admin-card h2{
    font-size:46px;
    font-weight:700;
    color:#16a34a;
}

.admin-card h2.money{
    font-size:38px;
}

@media(max-width:1200px){

.admin-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.admin-grid{

grid-template-columns:1fr;

}

}
.admin-chart{

background:#fff;

padding:30px;

border-radius:18px;

box-shadow:0 8px 20px rgba(0,0,0,.08);

margin-bottom:40px;

}
.admin-chart{

background:#fff;

padding:30px;

border-radius:20px;

box-shadow:0 8px 25px rgba(0,0,0,.08);

height:500px;

margin-bottom:35px;

}
.detail-page{

margin-left:0 !important;

padding-left:20px;

width:100%;

max-width:100%;

}
/* ===========================================
   PEMBAGIAN KOLOM DATA EDUKASI
=========================================== */

/* No */
.table-edukasi th:nth-child(1),
.table-edukasi td:nth-child(1) {
    width: 5%;
    min-width: 55px;
    text-align: center;
    white-space: nowrap;
}

/* Judul */
.table-edukasi th:nth-child(2),
.table-edukasi td:nth-child(2) {
    width: 35%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
}

/* Kategori */
.table-edukasi th:nth-child(3),
.table-edukasi td:nth-child(3) {
    width: 20%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
}

/* Tanggal */
.table-edukasi th:nth-child(4),
.table-edukasi td:nth-child(4) {
    width: 14%;
    min-width: 150px;
    text-align: center;
    white-space: nowrap;
}

/* Aksi */
.table-edukasi th:nth-child(5),
.table-edukasi td:nth-child(5) {
    width: 26%;
    min-width: 350px;
    text-align: center;
    white-space: nowrap;
}

/* Tombol Detail, Edit, Hapus tetap satu baris */
.table.table-edukasi .table-action {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.table.table-edukasi .table-action a {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Tampilan laptop/tablet:
   tabel boleh digeser horizontal jika ruang sempit */
@media (max-width: 992px) {
    .table-card:has(.table.table-edukasi) {
        overflow-x: auto;
    }

    .table.table-edukasi {
        min-width: 760px;
    }
}

/* HP:
   tetap rapi dan tombol aksi tidak ditumpuk */
@media (max-width: 768px) {
    .table.table-edukasi {
        min-width: 760px;
    }

    .table.table-edukasi .table-action {
        flex-direction: row;
        flex-wrap: nowrap;
    }
}

/* ===========================================
   FIX DASHBOARD CARD
   Hanya untuk pembagian card dashboard
=========================================== */

.dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 20px;
    width: 100%;
    margin: 25px 0 35px;
}

.dashboard-stats .stat-box {
    width: 100%;
    min-width: 0;
}
/* ===========================================
   POPUP NOTIFIKASI PEMBELIAN SAMPAH
=========================================== */

.popup-error-overlay {
    position: fixed !important;

    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    width: 100vw !important;
    height: 100vh !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: rgba(0, 0, 0, 0.55) !important;

    z-index: 999999 !important;

    padding: 20px;
    box-sizing: border-box;
}

.popup-error-box {
    position: relative;

    width: 500px;
    max-width: 90vw;

    padding: 35px 40px;

    background: #ffffff;

    border-radius: 20px;

    text-align: center;

    box-sizing: border-box;

    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);

    animation: popupErrorMasuk 0.25s ease;
}

.popup-error-icon {
    width: 70px;
    height: 70px;

    margin: 0 auto 20px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #fee2e2;

    color: #dc2626;

    font-size: 38px;
    font-weight: 700;
}

.popup-error-box h2 {
    margin: 0 0 15px;

    font-size: 24px;
    font-weight: 700;

    color: #222;
}

.popup-error-box p {
    margin: 0 auto 25px;

    max-width: 420px;

    font-size: 16px;
    line-height: 1.6;

    color: #555;
}

.popup-error-kembali {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-width: 130px;

    padding: 13px 28px;

    border-radius: 10px;

    background: #16a34a;

    color: #ffffff;

    text-decoration: none;

    font-size: 16px;
    font-weight: 700;

    transition: 0.2s ease;
}

.popup-error-kembali:hover {
    background: #15803d;
    transform: translateY(-1px);
}

@keyframes popupErrorMasuk {

    from {
        opacity: 0;
        transform: scale(0.92);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }

}
/* =========================================
   KHUSUS HALAMAN LIHAT EDUKASI
========================================= */

.table-lihat-edukasi {
    width: 100%;
    table-layout: fixed;
}

/* NO */
.table-lihat-edukasi th:nth-child(1),
.table-lihat-edukasi td:nth-child(1) {
    width: 6%;
    text-align: center;
}

/* JUDUL */
.table-lihat-edukasi th:nth-child(2),
.table-lihat-edukasi td:nth-child(2) {
    width: 34%;

    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: normal;

    line-height: 1.5;
}

/* KATEGORI */
.table-lihat-edukasi th:nth-child(3),
.table-lihat-edukasi td:nth-child(3) {
    width: 18%;

    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: normal;

    line-height: 1.5;
}

/* PENULIS */
.table-lihat-edukasi th:nth-child(4),
.table-lihat-edukasi td:nth-child(4) {
    width: 18%;

    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: normal;
}

/* TANGGAL */
.table-lihat-edukasi th:nth-child(5),
.table-lihat-edukasi td:nth-child(5) {
    width: 14%;

    white-space: nowrap !important;
}

/* AKSI */
.table-lihat-edukasi th:nth-child(6),
.table-lihat-edukasi td:nth-child(6) {
    width: 10%;

    text-align: center;
    white-space: nowrap !important;
}

/* SEMUA ISI CELL */
.table-lihat-edukasi td {
    vertical-align: middle;
}

/* JUDUL LEBIH RAPI */
.table-lihat-edukasi td:nth-child(2) {
    font-weight: 600;
}

/* TOMBOL LIHAT KHUSUS HALAMAN INI */
.table-lihat-edukasi .btn-lihat-edukasi {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 100px;
    height: 42px;

    padding: 0;

    background: #16a34a;
    color: #fff;

    border-radius: 10px;

    font-size: 14px;
    font-weight: 600;

    text-decoration: none;
    white-space: nowrap;

    box-sizing: border-box;
}

.table-lihat-edukasi .btn-lihat-edukasi:hover {
    background: #15803d;
    color: #fff;
}
/* =========================================
   DETAIL EDUKASI MASYARAKAT
   KHUSUS HALAMAN DETAIL EDUKASI
========================================= */

.detail-education-card {
    width: 100%;
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    margin-top: 25px;
    margin-bottom: 25px;
    box-shadow: 0 6px 22px rgba(0,0,0,.06);
}

.detail-education-info {
    width: 100%;
}

.detail-education-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 25px;

    padding: 20px 10px;

    border-bottom: 1px solid #eeeeee;
}

.detail-education-row:last-child {
    border-bottom: none;
}

.detail-education-label {
    font-weight: 700;
    color: #333;
    font-size: 16px;
}

.detail-education-value {
    color: #555;
    font-size: 16px;
    line-height: 1.7;

    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

.detail-education-content {
    align-items: start;
}

.detail-education-content .detail-education-value {
    line-height: 1.8;
}

/* TOMBOL KEMBALI */

.detail-education-back {
    margin-top: 20px;
    margin-bottom: 30px;
}

.btn-detail-education-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 120px;
    height: 45px;

    padding: 0 25px;

    background: #16a34a;
    color: #ffffff;

    border-radius: 10px;

    font-size: 15px;
    font-weight: 600;

    text-decoration: none;
    transition: .3s;
}

.btn-detail-education-back:hover {
    background: #15803d;
    color: #ffffff;
    transform: translateY(-2px);
}


/* =========================================
   GAMBAR DETAIL EDUKASI
========================================= */

.detail-image {
    width: 480px;
    max-width: 100%;
    height: 280px;

    object-fit: cover;

    border-radius: 18px;

    box-shadow: 0 6px 20px rgba(0,0,0,.08);

    margin-top: 20px;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 768px) {

    .detail-education-card {
        padding: 20px;
    }

    .detail-education-row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 18px 5px;
    }

    .detail-education-label {
        font-size: 15px;
    }

    .detail-education-value {
        font-size: 15px;
    }

    .detail-image {
        width: 100%;
        height: 240px;
    }

    .btn-detail-education-back {
        width: 100%;
    }
}
/* ==========================================
   FIX TABEL LAPORAN SAMPAH
========================================== */

.table-laporan-sampah {
    width: 100%;
    table-layout: fixed;
}

.table-laporan-sampah th,
.table-laporan-sampah td {
    vertical-align: middle;
    padding: 16px 12px;
}

.table-laporan-sampah th:nth-child(1),
.table-laporan-sampah td:nth-child(1) {
    width: 6%;
    text-align: center;
    white-space: nowrap;
}

.table-laporan-sampah th:nth-child(2),
.table-laporan-sampah td:nth-child(2) {
    width: 18%;
}

.table-laporan-sampah th:nth-child(3),
.table-laporan-sampah td:nth-child(3) {
    width: 16%;
}

.table-laporan-sampah th:nth-child(4),
.table-laporan-sampah td:nth-child(4) {
    width: 10%;
    text-align: center;
    white-space: nowrap;
}

.table-laporan-sampah th:nth-child(5),
.table-laporan-sampah td:nth-child(5) {
    width: 12%;
    white-space: nowrap;
}

.table-laporan-sampah th:nth-child(6),
.table-laporan-sampah td:nth-child(6) {
    width: 13%;
    white-space: nowrap;
}

.table-laporan-sampah th:nth-child(7),
.table-laporan-sampah td:nth-child(7) {
    width: 10%;
    text-align: center;
}

.table-laporan-sampah th:nth-child(8),
.table-laporan-sampah td:nth-child(8) {
    width: 10%;
    white-space: nowrap;
}

.table-laporan-sampah th:nth-child(9),
.table-laporan-sampah td:nth-child(9) {
    width: 10%;
    text-align: center;
    white-space: nowrap;
}

/* Teks panjang tidak dipotong per karakter */
.table-laporan-sampah td:nth-child(2),
.table-laporan-sampah td:nth-child(3) {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}

/* Tombol Detail */
.btn-detail-laporan {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 100px;
    min-width: 100px;
    height: 44px;

    padding: 0 16px;

    background: #16a34a;
    color: #fff !important;

    border-radius: 10px;

    font-size: 14px;
    font-weight: 600;

    text-decoration: none;
    white-space: nowrap;

    transition: .3s;
}

.btn-detail-laporan:hover {
    background: #15803d;
    color: #fff !important;
    transform: translateY(-1px);
}

/* Jangan biarkan tombol/detail terpotong */
.table-laporan-sampah td:last-child {
    overflow: visible;
}

/* Tampilan layar kecil */
@media (max-width: 992px) {
    .table-card {
        overflow-x: auto;
    }

    .table-laporan-sampah {
        min-width: 1050px;
        table-layout: fixed;
    }
}
