:root{
  --orange:#EE4D2D;
  --orange-dark:#C0392B;
  --green:#7ED9A8;
  --green-bg:#17301F;
  --red:#F0A0A0;
  --red-bg:#2A1A1A;
  --amber:#E8B84A;
  --amber-bg:#3A2E12;
  --bg:#12151A;
  --card:#1A1E24;
  --card-alt:#12151A;
  --text:#F5F6F7;
  --muted:#8B93A0;
  --border:#262B33;
  --radius:12px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
html,body{width:100%;overflow-x:hidden;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  padding-left:env(safe-area-inset-left);
  padding-right:env(safe-area-inset-right);
}
img{max-width:100%;}

/* Topbar */
.topbar{
  background:var(--card);
  border-bottom:1px solid var(--border);
  color:var(--text);
  padding:14px 16px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  position:sticky;
  top:0;
  z-index:10;
}
.topbar h1{
  font-size:16px;
  margin:0;
  font-weight:700;
  letter-spacing:-.2px;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.topbar a{
  color:var(--muted);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  border:1px solid var(--border);
  background:var(--card-alt);
  padding:7px 12px;
  border-radius:9px;
  flex-shrink:0;
  white-space:nowrap;
}

.wrap{max-width:560px;margin:0 auto;padding:14px;padding-bottom:calc(80px + env(safe-area-inset-bottom));width:100%;}

.card{
  background:var(--card);
  border-radius:var(--radius);
  padding:18px;
  margin-bottom:14px;
  border:1px solid var(--border);
}
.card h2{margin:0 0 4px;font-size:15px;font-weight:700;color:var(--text);}

/* Buttons */
.btn{
  display:inline-block;
  border:none;
  border-radius:10px;
  padding:13px 18px;
  font-size:14.5px;
  font-weight:700;
  cursor:pointer;
  text-align:center;
  text-decoration:none;
  width:100%;
}
.btn:active{opacity:.85;}
.btn-primary{background:var(--orange);color:#fff;}
.btn-green{background:#1F8A4C;color:#fff;}
.btn-red{background:#B23A2E;color:#fff;}
.btn-outline{background:transparent;color:var(--text);border:1px solid var(--border);}
.btn-secondary{background:#232830;color:var(--text);}
.row2{display:flex;gap:10px;}
.row2 .btn{flex:1;}

/* Forms */
label{display:block;font-size:12px;color:var(--muted);margin:12px 0 6px;font-weight:600;}
input[type=text],input[type=number],input[type=email],input[type=password],textarea,select{
  width:100%;
  max-width:100%;
  padding:12px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  font-size:16px;
  background:var(--card-alt);
  color:var(--text);
}
input::placeholder{color:#5A626F;}
input:focus{outline:none;border-color:var(--orange);}
input[type=file]{
  width:100%;
  max-width:100%;
  padding:10px;
  border-radius:10px;
  border:1px dashed #3A414C;
  background:var(--card-alt);
  font-size:13px;
  color:var(--muted);
}

.radio-group{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap;}
.radio-option{
  flex:1 1 100px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px;
  text-align:center;
  cursor:pointer;
  font-weight:700;
  font-size:13.5px;
  background:var(--card-alt);
  color:var(--muted);
}
.radio-option input{display:none;}
.radio-option.active-yes{background:var(--amber-bg);border-color:var(--amber);color:var(--amber);}
.radio-option.active-no{background:#232830;border-color:#3A414C;color:var(--text);}

/* Stats */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.stat-box{background:var(--card-alt);border-radius:10px;padding:11px 12px;border:1px solid var(--border);min-width:0;}
.stat-box .label{font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--muted);}
.stat-box .value{font-size:15px;font-weight:700;margin-top:5px;color:var(--text);word-break:break-word;}
.minus{color:var(--red);}
.plus{color:var(--green);}

/* Lists */
.list-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--border);
  gap:10px;
  min-width:0;
}
.list-item:last-child{border-bottom:none;}
.list-item .desc{font-size:14px;font-weight:600;color:var(--text);word-break:break-word;}
.list-item .meta{font-size:12px;color:var(--muted);margin-top:3px;word-break:break-word;}
.thumb{width:42px;height:42px;border-radius:8px;object-fit:cover;border:1px solid var(--border);flex-shrink:0;}
.file-chip{
  display:inline-block;background:#1F242B;color:var(--muted);font-size:11px;
  padding:6px 10px;border-radius:20px;text-decoration:none;flex-shrink:0;font-weight:600;
  border:1px solid var(--border);
}
.empty{color:#5A626F;font-size:13px;text-align:center;padding:24px 0;}

.error-box{background:var(--red-bg);color:var(--red);padding:12px;border-radius:10px;margin-bottom:14px;font-size:13.5px;border:1px solid #4A2A2A;}
.success-box{background:var(--green-bg);color:var(--green);padding:12px;border-radius:10px;margin-bottom:14px;font-size:13.5px;border:1px solid #1F4A30;}
.hint{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5;}

.auth-wrap{max-width:380px;margin:60px auto;padding:0 16px;}
.auth-wrap h1{text-align:center;font-size:19px;font-weight:700;color:var(--text);}
.auth-wrap .card{margin-top:20px;}
.link-center{text-align:center;font-size:13.5px;margin-top:14px;color:var(--muted);}
.link-center a{color:var(--orange);font-weight:700;text-decoration:none;}

/* Modal */
.modal-overlay{
  display:none;
  position:fixed;inset:0;
  background:rgba(0,0,0,.7);
  z-index:100;
  align-items:flex-end;
  justify-content:center;
}
.modal-overlay.show{display:flex;}
.modal-box{
  background:var(--card);
  width:100%;
  max-width:560px;
  border-radius:16px 16px 0 0;
  padding:20px;
  max-height:88vh;
  overflow-y:auto;
  border-top:1px solid var(--border);
}
.modal-box h3{margin-top:0;font-size:16px;font-weight:700;color:var(--text);}
.modal-actions{display:flex;gap:10px;margin-top:18px;}
.modal-actions .btn{flex:1;}
.summary-table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px;}
.summary-table td{padding:8px 0;border-bottom:1px solid var(--border);color:var(--muted);}
.summary-table td:last-child{text-align:right;font-weight:700;color:var(--text);word-break:break-word;}

/* HP layar sangat kecil / jadul (contoh: 320px) */
@media (max-width:360px){
  .wrap{padding:10px;}
  .card{padding:14px;}
  .topbar{padding:12px 14px;}
  .topbar h1{font-size:14.5px;}
  .stat-grid{gap:6px;}
  .stat-box{padding:9px 10px;}
  .stat-box .value{font-size:13.5px;}
  .btn{padding:12px 14px;font-size:13.5px;}
  .row2{gap:8px;}
  .modal-box{padding:16px;}
}

/* HP layar lebar / tablet */
@media (min-width:700px){
  .wrap{max-width:640px;}
  .modal-box{max-width:480px;border-radius:16px;margin-bottom:40px;}
  .modal-overlay{align-items:center;}
}
