*{
  box-sizing:border-box;
  font-family:'Segoe UI', Arial, sans-serif;
}

body{
  background:#f1f3f6;
  margin:0;
}

.container{
  max-width:1100px;
  margin:40px auto;
  background:#fff;
  padding:25px;
  border-radius:10px;
  box-shadow:0 5px 15px rgba(0,0,0,.1);
}

h2,h3{
  margin-top:0;
}

.menu{
  margin-bottom:15px;
}

.menu a{
  text-decoration:none;
  margin-right:10px;
  color:#007bff;
  font-weight:600;
}

.menu a:hover{
  text-decoration:underline;
}

input,select,button{
  width:100%;
  padding:10px;
  margin:6px 0;
  border:1px solid #ccc;
  border-radius:5px;
}

button{
  background:#007bff;
  color:#fff;
  border:none;
  cursor:pointer;
}

button:hover{
  background:#0056b3;
}

table{
  width:100%;
  border-collapse:collapse;
  margin-top:15px;
}

table th{
  background:#007bff;
  color:#fff;
  padding:10px;
}

table td{
  border:1px solid #ddd;
  padding:8px;
}

.actions a{
  margin-right:8px;
  color:#007bff;
  text-decoration:none;
}

.actions a:hover{
  text-decoration:underline;
}

canvas{
  border:1px solid #ccc;
  margin-top:8px;
}

.login-box{
  max-width:400px;
  margin:80px auto;
  background:#fff;
  padding:25px;
  border-radius:10px;
  box-shadow:0 5px 15px rgba(0,0,0,.15);
}

canvas {
  border:1px solid #ccc;
  background:#fff;
  touch-action: none; /* PENTING */
}

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.table th {
  background: #0d6efd;
  color: #fff;
  padding: 10px;
  text-align: center;
}

.table td {
  padding: 8px;
  border-bottom: 1px solid #ddd;
  vertical-align: middle;
  text-align: center;
}

.ttd {
  width: 80px;
  height: auto;
  border: 1px solid #ccc;
  background: #fff;
}

.btn-edit {
  color: #0d6efd;
  text-decoration: none;
  font-weight: bold;
}

.container{
  max-width:1200px;
  margin:40px auto;
  background:#fff;
  padding:25px;
  border-radius:12px;
  box-shadow:0 5px 15px rgba(0,0,0,.1);
}

/* TABLE */
.table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}

.table th{
  background:#0d6efd;
  color:#fff;
  padding:12px 8px;
  text-align:center;
  white-space:nowrap;
}

.table td{
  padding:10px 8px;
  border-bottom:1px solid #ddd;
  vertical-align:middle;
  text-align:center;
}

/* FOTO PROGRESS */
.table img{
  max-width:90px;
  height:auto;
  border-radius:6px;
  border:1px solid #ccc;
}

/* TTD */
.ttd{
  max-width:80px;
  border:1px solid #ccc;
  background:#fff;
  padding:4px;
}

/* BUTTON */
.btn{
  display:inline-block;
  padding:6px 12px;
  background:#0d6efd;
  color:#fff;
  border-radius:5px;
  text-decoration:none;
  font-size:13px;
}

.btn:hover{
  background:#084298;
}

/* JUDUL */
h2{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:15px;
}

.menu-bar{
  display:flex;
  flex-wrap:wrap;          /* ➜ tetap kesamping, turun jika tidak muat */
  gap:10px;
  margin-bottom:20px;
}

.menu-btn{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:12px;
  background:#f5f7fa;
  color:#333;
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  white-space:nowrap;     /* ➜ teks tidak pecah ke bawah */
  flex:0 0 auto;          /* ➜ JANGAN dipaksa 100% */
  transition:0.25s ease;
}

/* icon */
.menu-btn .icon{
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#e9edf3;
  font-size:16px;
}

/* hover */
.menu-btn:hover{
  background:#0d6efd;
  color:#fff;
}

.menu-btn:hover .icon{
  background:rgba(255,255,255,.25);
}

/* logout khusus */
.menu-btn.logout{
  background:#fff1f1;
  color:#c0392b;
}

.menu-btn.logout .icon{
  background:#ffdada;
}

.menu-btn.logout:hover{
  background:#c0392b;
  color:#fff;
}

.chart-wrapper{
  width:100%;
  max-width:420px;     /* batas maksimal di desktop */
  aspect-ratio: 1 / 1; /* selalu kotak */
  margin:20px auto;
  position:relative;
}

/* canvas HARUS 100% */
.chart-wrapper canvas{
  width:100% !important;
  height:100% !important;
}
